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"); }
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); }
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); }