private void PrintButton_Click(object sender, EventArgs e)
        {
            CustomListBoxItem _item               = (CustomListBoxItem)LocalList.SelectedItem;
            int                _local             = _item._value;
            Processo_bll       processoRepository = new Processo_bll(_connection);
            List <Processogti> _lista             = processoRepository.Lista_Processos_CCusto(_local);

            TextWriter tw = new StreamWriter("d:\\tmp\\lista.txt");

            List <Rel> _listaRel = new List <Rel>();
            int        _pos = 1, _total = _lista.Count;

            foreach (Processogti reg in _lista)
            {
                Local_Tramite lt    = processoRepository.Verificar_Processo(reg.Ano, reg.Numero);
                DateTime      _data = lt.Data_Evento;
                if (_data == DateTime.MinValue)
                {
                    _data = reg.Dataentrada;
                }

                bool _find = false;
                if (lt.Local_Codigo == _local)
                {
                    foreach (Rel check in _listaRel)
                    {
                        if (check.Ano == reg.Ano && check.Numero == reg.Numero)
                        {
                            _find = true;
                        }
                    }
                    if (!_find)
                    {
                        short  ret  = Convert.ToInt16(processoRepository.DvProcesso(reg.Numero));
                        string _row = reg.Numero + "-" + ret.ToString() + "/" + reg.Ano.ToString();
                        tw.WriteLine(_row);
                        Rel _r = new Rel()
                        {
                            Ano    = reg.Ano,
                            Numero = reg.Numero
                        };
                        _listaRel.Add(_r);
                    }
                }

                if (_pos % 10 == 0)
                {
                    PBar.Value = _pos * 100 / _total;
                    PBar.Update();
                    System.Windows.Forms.Application.DoEvents();
                }
                _pos++;
            }


            tw.Close();
            MessageBox.Show("Fim");
        }
Example #2
0
        private void GerarButton_Click(object sender, EventArgs e)
        {
            MainListView.Items.Clear();
            string _d1 = DataInicioMask.Text;
            string _d2 = DataFinalMask.Text;

            if (!gtiCore.IsDate(_d1))
            {
                MessageBox.Show("Data inicial inválida!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (!gtiCore.IsDate(_d2))
            {
                MessageBox.Show("Data final inválida!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            DateTime _dataInicio = Convert.ToDateTime(_d1);
            DateTime _dataFinal  = Convert.ToDateTime(_d2);

            if (_dataInicio > _dataFinal)
            {
                MessageBox.Show("Data inicial maior que a data final!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            gtiCore.Ocupado(this);
            Processo_bll             processoRepository = new Processo_bll(_connection);
            List <ProcessoAnoNumero> Lista = processoRepository.Lista_Processos_Atraso(_dataInicio, _dataFinal);
            int _total = Lista.Count();

            if (_total == 0)
            {
                gtiCore.Liberado(this);
                MessageBox.Show("Nenhum processo em atraso no período informado!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

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

            foreach (ProcessoAnoNumero item in Lista)
            {
                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   Local_Nome   = "";
                string   _assunto     = lt.Assunto_Nome;
                int      NumDias      = lt.Dias;
                if (Arquivado)
                {
                    Local_Nome = lt.Local_Nome;
                }
                else
                {
                    if (Suspenso)
                    {
                        Local_Nome = "PROCESSO SUSPENSO/CANCELADO";
                    }
                    else
                    {
                        Local_Nome = lt.Local_Nome;
                    }
                }

                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        = Local_Nome,
                        Data_Evento       = Data_Evento,
                        Dias              = NumDias,
                        Assunto_Nome      = _assunto
                    };
                    _listaProcessos.Add(reg);
                }

                if (_pos % 10 == 0)
                {
                    pBar.Value = _pos * 100 / _total;
                    pBar.Update();
                    Refresh();
                }
                _pos++;
            }
            pBar.Value = 0;
            pBar.Update();
            Refresh();

            List <Secretaria> listaSecretaria = processoRepository.Lista_Secretaria();

            foreach (Local_Tramite reg in _listaProcessos)
            {
                short _cod2 = 0;
                for (int i = 0; i < listaSecretaria.Count; i++)
                {
                    if (listaSecretaria[i].Codigocc == reg.Local_Codigo)
                    {
                        _cod2 = listaSecretaria[i].Codigo;
                        break;
                    }
                }
                string       _processo = reg.Numero.ToString() + "-" + processoRepository.DvProcesso(reg.Numero).ToString() + "/" + reg.Ano.ToString();
                ListViewItem lvi       = new ListViewItem(_processo);
                lvi.SubItems.Add(reg.Local_Codigo.ToString("000"));
                lvi.SubItems.Add(_cod2.ToString("000"));
                lvi.SubItems.Add(reg.Local_Nome);
                lvi.SubItems.Add(reg.Secretaria_Codigo.ToString("000"));
                lvi.SubItems.Add(reg.Secretaria_Nome);
                lvi.SubItems.Add(reg.Data_Evento.ToString("dd/MM/yyyy"));
                lvi.SubItems.Add(reg.Dias.ToString());
                lvi.SubItems.Add(reg.Assunto_Nome);

                MainListView.Items.Add(lvi);
            }

            gtiCore.Liberado(this);
        }
Example #3
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();
        }
        private void ConsultarButton_Click(object sender, EventArgs e)
        {
            Processo_bll processoRepository = new Processo_bll(_connection);

            Limpa();
            int   Numero = Convert.ToInt32(NumeroText.Text);
            short Ano    = Convert.ToInt16(AnoText.Text);
            //Processogti _proc = processoRepository.Retorna_ProcessoGti(Ano, Numero);

            //lvMain.Items.Clear();
            //gtiCore.Ocupado(this);

            //List<TramiteStruct> Lista = processoRepository.DadosTramite(Ano, Numero,_proc.Codassunto );

            //foreach (TramiteStruct Reg in Lista) {
            //    ListViewItem lvi = new ListViewItem();
            //    lvi.SubItems.Add(Reg.Seq.ToString("00"));
            //    lvi.SubItems.Add(Reg.CentroCustoCodigo.ToString());
            //    lvi.SubItems.Add(Reg.CentroCustoNome ?? "");
            //    lvi.SubItems.Add(Reg.DataEntrada ?? "");
            //    lvi.SubItems.Add(Reg.HoraEntrada ?? "");
            //    lvi.SubItems.Add(Reg.Usuario1 ?? "");
            //    lvi.SubItems.Add(Reg.DespachoNome ?? "");
            //    lvi.SubItems.Add("0");
            //    lvi.SubItems.Add(Reg.DataEnvio ?? "");
            //    lvi.SubItems.Add(Reg.Usuario2 ?? "");
            //    lvi.SubItems.Add(Reg.Obs ?? "");
            //    lvi.Tag = Reg.Obs ?? "";
            //    if (!string.IsNullOrEmpty(Reg.Obs)) lvi.ImageIndex = 0;
            //    lvMain.Items.Add(lvi);
            //}

            Local_Tramite lt    = processoRepository.Verificar_Processo(Ano, Numero);
            DateTime      _data = lt.Data_Evento;

            if (_data == DateTime.MinValue)
            {
                ProcessoStruct _proc = processoRepository.Retorna_ProcessoGti(Ano, Numero);
                _data = Convert.ToDateTime(_proc.DataEntrada);
            }

            LocalCodigoText.Text = lt.Local_Codigo.ToString();
            DataText.Text        = _data.ToString("dd/MM/yyyy");
            ArquivadoText.Text   = lt.Arquivado ? "Sim" : "Não";
            SuspensoText.Text    = lt.Suspenso ? "Sim" : "Não";
            if (lt.Arquivado)
            {
                LocalNomeText.Text = "PROCESSO ARQUIVADO";
            }
            else
            {
                if (lt.Suspenso)
                {
                    LocalNomeText.Text = "PROCESSO SUSPENSO/CANCELADO";
                }
                else
                {
                    LocalNomeText.Text = lt.Local_Nome;
                }
            }

            gtiCore.Liberado(this);
        }