#!/usr/bin/env ruby # encoding: UTF-8 require_relative '../../../config/environment' directory = File.join(Rails.root,'data') Dir.mkdir(directory) unless File.exists?(directory) emails = ['leandronunes@gmail.com', 'leandro.santos@serpro.gov.br'] + ARGV emails.uniq! puts 'Iniciando script propostas' file = File.open(File.join(directory,'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) directory = File.join(Rails.root,'data') attachments["eventos.csv"] = File.read("#{directory}/event.csv") attachments["propostas.csv"] = File.read("#{directory}/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