sent_proposal_report 1.88 KB
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
require 'net/smtp'


emails = ['leandronunes@gmail.com', 'leandro.santos@serpro.gov.br'] + ARGV
emails.uniq!

puts 'Iniciando script'

file = File.open(File.join(Rails.root,'data.csv'), 'w+')

tasks = ProposalsDiscussionPlugin::ProposalTask.all
count = 0
header = "'Origem';'Status';'Criada em';'Moderado por';'Data de Moderado';'Validado por';'Data de Validado';'Autor';'Proposta'\n"
file.write(header)
STATUS_TRANSLATION = {
  1 => 'Pendente de Moderacao',
  2 => 'Rejeitada',
  3 => 'Aprovada',
  5 => 'Pre Aprovada',
  6 => 'Pre Rejeitada',
}
tasks.map do |task|
  count += 1
  puts "%s de %s: adicionando task: %s" % [count, tasks.count, task.id ]
  info = []
  info.push(task.proposal_source)
  info.push(STATUS_TRANSLATION[task.status])
  info.push(task.created_at.strftime("%d/%m/%y %H:%M"))
  info.push(task.proposal_evaluation.present? ? task.proposal_evaluation.evaluated_by.name : '')
  info.push(task.proposal_evaluation.present? ? task.proposal_evaluation.created_at.strftime("%d/%m/%y %H:%M") : '')
  info.push(task.closed_by.present? ? task.closed_by.name : '')
  info.push(task.closed_by.present? ? task.end_date.strftime("%d/%m/%y %H:%M") : '')
  info.push(task.requestor.present? ? task.requestor.name : '')
  info.push(task.abstract.present? ? task.abstract.gsub(/\s+/, ' ').strip : '')
  file.write(info.map{|i| "'" + i.to_s + "'"}.join(";"))
  file.write("\n")
end

file.close

ActionMailer::Base.logger = Logger.new(STDOUT)
class Sender < ActionMailer::Base             
  def send_report(to, from)
    attachments["eventos.csv"] = File.read("#{Rails.root}/event.csv")
    attachments["propostas.csv"] = File.read("#{Rails.root}/data.csv")
    mail to: to, from: from,
      subject: "Relatorio do Dialoga", body: "Segue em anexo os relatorios do Dialoga"
  end

end

Sender.send_report(emails, 'dialoga@dialoga.gov.br').deliver