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

mails = ['leandronunes@gmail.com', 'leandro.santos@serpro.gov.br']

puts 'Iniciando script'

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

#articles = ProposalsDiscussionPlugin::Proposal.all
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
From: Relatorio Dialoga <relatorio@dialoga.gov.br>
To: Leandro <leandronunes@gmail.com>
Subject: Relatorio do Dialoga

Segue em anexo o relatorio do Dialoga.
MESSAGE_END

Net::SMTP.start('localhost') do |smtp|
  smtp.send_message message, 'leandronunes@gmail.com', 
                             'leandro.santos@serpro.gov.br'
end