예제 #1
0
        public Exception Incluir_Secretaria_Processo_Remessa(Secretaria_processo_remessa reg)
        {
            Processo_Data obj = new Processo_Data(_connection);
            Exception     ex  = obj.Incluir_Secretaria_Processo_Remessa(reg);

            return(ex);
        }
예제 #2
0
        static void Main(string[] args)
        {
            string _connection = gtiCore.Connection_Name();
            string _path       = "C:\\WORK\\GTI\\PROCESSO_EMAIL\\" + DateTime.Now.Year.ToString();
            //DateTime Data1 = Convert.ToDateTime("01/10/2021");
            //DateTime Data2 = Convert.ToDateTime("04/10/2021");
            DateTime Data1 = Convert.ToDateTime("01/01/2021");
            DateTime Data2 = Convert.ToDateTime(DateTime.Now.Date);

            Processo_bll processoRepository = new Processo_bll(_connection);

            Print("Buscando Processos: ");
            int _total = 0;
            List <ProcessoAnoNumero> Lista = processoRepository.Lista_Processos_Atraso(Data1, Data2);

            _total = Lista.Count();
            Console.SetCursorPosition(Console.CursorLeft, Console.CursorTop);
            Print("Localizados " + _total.ToString() + " Processos.");
            BreakLine();

            List <short>         listaSecretariaRel = new List <short>();
            int                  _pos            = 0;
            List <Local_Tramite> _listaProcessos = new List <Local_Tramite>();

            Print("Carregando: ");
            using (var progress = new ProgressBar()) {
                foreach (ProcessoAnoNumero item in Lista)
                {
                    progress.Report((double)_pos / _total);
                    short _ano    = item.Ano;
                    int   _numero = item.Numero;

                    Local_Tramite lt    = processoRepository.Verificar_Processo(_ano, _numero);
                    DateTime?     _data = lt.Data_Evento;
                    if (_data == DateTime.MinValue)
                    {
                        _data = lt.Data_Entrada;
                    }

                    int      Local_Codigo = lt.Local_Codigo;
                    DateTime Data_Evento  = Convert.ToDateTime(_data);
                    bool     Arquivado    = lt.Arquivado;
                    bool     Suspenso     = lt.Suspenso;
                    string   _assunto     = lt.Assunto_Nome;
                    int      NumDias      = lt.Dias;

                    if (NumDias < 6)
                    {
                        goto Proximo;
                    }

                    if (!Arquivado && !Suspenso)
                    {
                        Tuple <short, string> Secretaria = processoRepository.Retorna_Vinculo_Top_CentroCusto((short)Local_Codigo);
                        int    secretaria_codigo         = Secretaria.Item1;
                        string secretaria_nome           = Secretaria.Item2;

                        Local_Tramite reg = new Local_Tramite()
                        {
                            Ano               = _ano,
                            Numero            = _numero,
                            Secretaria_Codigo = secretaria_codigo,
                            Secretaria_Nome   = secretaria_nome,
                            Local_Codigo      = Local_Codigo,
                            Local_Nome        = lt.Local_Nome,
                            Data_Evento       = Data_Evento,
                            Dias              = NumDias,
                            Assunto_Nome      = _assunto
                        };
                        _listaProcessos.Add(reg);

                        bool _find = false;
                        for (int i = 0; i < listaSecretariaRel.Count; i++)
                        {
                            if (listaSecretariaRel[i] == secretaria_codigo)
                            {
                                _find = true;
                                break;
                            }
                        }
                        if (!_find)
                        {
                            listaSecretariaRel.Add((short)secretaria_codigo);
                        }
                    }
                    Proximo :;
                    _pos++;
                }
            }
            Print("OK");
            BreakLine();
            Print("Secretarias encontradas: " + listaSecretariaRel.Count.ToString());
            BreakLine();
            Console.WriteLine("ENVIANDO E-MAILS PARA AS SECRETARIAS");
            Console.WriteLine("------------------------------------");


            for (int z = 0; z < listaSecretariaRel.Count; z++)
            {
                Secretaria _secretaria = processoRepository.Retorna_Secretaria(listaSecretariaRel[z]);
                Console.WriteLine(_secretaria.Nome);
                int          _qtde     = 0;
                short        _seq      = processoRepository.Retorna_Seq_Processo_Secretaria_Remessa(listaSecretariaRel[z]);
                string       _filename = "REL" + listaSecretariaRel[z].ToString("000") + _seq.ToString("00") + ".TXT";
                string       _fullpath = Path.Combine(_path, _filename);
                StreamWriter sw        = new StreamWriter(_fullpath);
                sw.WriteLine("RELATÓRIO DE PROCESSOS QUE SE ENCONTRAM A MAIS DE 5 DIAS NA SECRETARIA");
                sw.WriteLine("");
                sw.WriteLine(_secretaria.Nome);
                sw.WriteLine("");

                sw.WriteLine("Nº PROCESSO  LOCAL ONDE O PROCESSO DE ENCONTRA        ASSUNTO DO PROCESSO                      DIAS");
                sw.WriteLine("===================================================================================================");
                sw.WriteLine("");
                foreach (Local_Tramite item in _listaProcessos.Where(p => p.Secretaria_Codigo == listaSecretariaRel[z]).OrderBy(h => h.Local_Nome).ThenByDescending(m => m.Dias))
                {
                    string _processo = item.Numero.ToString("00000") + "-" + processoRepository.DvProcesso(item.Numero) + "/" + item.Ano.ToString();
                    sw.WriteLine(_processo + " " + gtiCore.TruncateTo(item.Local_Nome.PadRight(40), 40) + " " + gtiCore.TruncateTo(item.Assunto_Nome.PadRight(40), 40) + "  " + item.Dias.ToString("000"));
                    _qtde++;
                }

                sw.WriteLine("");
                sw.WriteLine("===============================");
                sw.WriteLine("QTDE DE PROCESSOS ==> " + _qtde.ToString());
                sw.WriteLine("RELATÓRIO GERADO EM " + DateTime.Now);
                sw.WriteLine("GESTÃO DE TIBUTAÇÃO MUNICIPAL INTEGRADA (G.T.I.)");

                sw.Close();

                //Enviar Email
                MailAddress from = new MailAddress("*****@*****.**", "Sistema GTI");
                MailAddress to   = new MailAddress("*****@*****.**", "Eduardo");
                using (MailMessage emailMessage = new MailMessage()) {
                    string Body = File.ReadAllText("C:\\WORK\\GTI\\PROCESSO_EMAIL\\AccessTemplate.htm");
                    Body = Body.Replace("#$$$#", _secretaria.Nome);
                    emailMessage.From = from;
                    emailMessage.To.Add(to);
                    emailMessage.Attachments.Add(new Attachment(_fullpath));
                    emailMessage.Subject    = "Relatório dos processos quem encontram-se na secretaria a mais de 5 dias";
                    emailMessage.Body       = Body;
                    emailMessage.IsBodyHtml = true;

                    using (SmtpClient MailClient = new SmtpClient("smtp.gmail.com", 587)) {
                        MailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                        MailClient.EnableSsl      = true;
                        MailClient.Credentials    = new NetworkCredential("*****@*****.**", "esnssgzxxjcdjrpk");
                        MailClient.Send(emailMessage);
                    }
                }


                //Gravar remessa na tabela
                Secretaria_processo_remessa reg = new Secretaria_processo_remessa()
                {
                    Codigo = listaSecretariaRel[z],
                    Data   = DateTime.Now.Date,
                    Seq    = _seq,
                    Qtde   = _qtde
                };
                Exception ex = processoRepository.Incluir_Secretaria_Processo_Remessa(reg);
            }

            Console.WriteLine("");
            Console.WriteLine("Processo finalizado, aperte uma tecla para finalizar");
            Console.ReadLine();
        }