sent_proposal_report
1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/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