sent_proposal_report 1.84 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('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

message = <<MESSAGE_END

Segue em anexo o relatorio do Dialoga.
MESSAGE_END


ActionMailer::Base.logger = Logger.new(STDOUT)
class Sender < ActionMailer::Base                                                                                                     
  def test(to, from)
    mail to: to, from: from,
      subject: "Relatorio do Dialoga", body: message
  end
end
Sender.test(emails, 'dialoga@dialoga.gov.br').deliver