private void btnEnvio_Click(object sender, EventArgs e) { try { objCriaXml = new belCriaXml(); bool bContingencia = false; if (!belStatic.bModoContingencia) { if (Operacao) { #region Verifica se Item Selecionado já foi enviado for (int i = 0; i < dgvArquivos.RowCount; i++) { if (dgvArquivos["cl_assina", i].Value != null) { if (dgvArquivos["cl_assina", i].Value.ToString().Equals("True")) { if (objGerais.VerificaCampoReciboPreenchido(belStatic.CodEmpresaCte, dgvArquivos["nr_lanc", i].Value.ToString()) != "") { throw new Exception("O Conhecimento de Sequência " + dgvArquivos["nr_lanc", i].Value.ToString() + " Já tem um recibo Salvo no Banco de Dados, tente Buscar Retorno."); } } } } #endregion lblStatus.Text = "Carregando Informações..."; #region Pega Notas Selecionadas na Grid string sCanceladas = ""; slistaConhec = new List<string>(); for (int i = 0; i < dgvArquivos.RowCount; i++) { try { if (dgvArquivos["cl_assina", i].Value != null) { if (((dgvArquivos["cl_assina", i].Value != null) && (dgvArquivos["cl_assina", i].Value.ToString().Equals("True"))) && ((dgvArquivos["ds_cancelamento", i].Value.ToString() == "")) && (dgvArquivos["st_cte", i].Value.ToString().Equals("0"))) { if (Convert.ToBoolean(dgvArquivos["st_cte", i].Value) == false && Convert.ToBoolean(dgvArquivos["st_contingencia", i].Value) == true) { bContingencia = true; if (slistaConhec.Count() > 0) { throw new Exception("Os Conhecimentos Pendentes devem ser Enviados um por vez."); } } slistaConhec.Add((string)dgvArquivos["nr_lanc", i].Value); } if (dgvArquivos["ds_cancelamento", i].Value.ToString() != "") { if (Convert.ToBoolean(dgvArquivos["cl_assina", i].Value.ToString()) == true) { sCanceladas += "Conhecimento de Transp. " + dgvArquivos["cd_conheci", i].Value.ToString() + " - Esta Cancelado e não é Permitido o Reenvio do mesmo!" + Environment.NewLine + Environment.NewLine; } } } } catch (Exception) { throw; } } #endregion if (slistaConhec.Count == 0) { KryptonMessageBox.Show("Nenhuma nota Válida foi Selecionada!", "A T E N Ç Ã O", MessageBoxButtons.OK, MessageBoxIcon.Error); if (sCanceladas != "") { throw new Exception(sCanceladas); } lblStatus.Text = ""; } else { if (!bContingencia) { #region Envio Normal //verifica no banco se as sequencias são existentes. List<string> objLGerarSeq = objGerais.ValidaSeqNoBanco(belStatic.CodEmpresaCte, slistaConhec); if (objLGerarSeq.Count > 0) { frmGerarNumeroCte objfrmGerarNum = new frmGerarNumeroCte(belStatic.CodEmpresaCte, objLGerarSeq); objfrmGerarNum.ShowDialog(); } cert = new X509Certificate2(); cert = belCertificadoDigital.BuscaNome(""); if (!belCertificadoDigital.ValidaCertificado(cert)) { lblStatus.Text = ""; throw new Exception("Certificado não Selecionado."); } #region Popula as Classes e abre form Visualização belPopulaObjetos objObjetos = new belPopulaObjetos(belStatic.CodEmpresaCte, slistaConhec, objbelUfEmp.CUF, cert); daoInfCte objdaoInfCte = new daoInfCte(); objdaoInfCte.ImportaConhecInfCte(objObjetos, belStatic.CodEmpresaCte); lblStatus.Text = "Aguardando Envio"; frmVisualizaCte objFrm = new frmVisualizaCte(objObjetos); objFrm.ShowDialog(); #endregion if (objFrm.bCancela) { lblStatus.Text = ""; throw new Exception("Envio do(s) Conhecimento(s) Cancelado"); } else { #region Envia Lote WebService lblStatus.Text = "Enviando Lote para WebService..."; daoGenerator objGerator = new daoGenerator(); int iNumLote = Convert.ToInt32(objGerator.RetornaProximoValorGenerator("GEN_LOTE_CTE")); objGravaDadosRetorno.GravarChave(objFrm.objObjetosAlter); string sRecibo = objCriaXml.GerarXml(objFrm.objObjetosAlter, iNumLote); List<belStatusCte> ListaStatus = objCriaXml.ConsultaLoteEnviado(sRecibo); // if (sRecibo != "") // sicupira { objGravaDadosRetorno.GravarRecibo(objFrm.objObjetosAlter, sRecibo); } foreach (belStatusCte cte in ListaStatus.Where(C => C.Enviado == true)) { if (cte.CodRetorno != "218" && cte.CodRetorno != "101" && cte.CodRetorno != "103" && cte.CodRetorno != "104" && cte.CodRetorno != "105" && cte.CodRetorno != "100" && cte.CodRetorno != "204") { objGravaDadosRetorno.ApagarRecibo(sRecibo); } else { objGravaDadosRetorno.GravarProtocoloEnvio(cte); } } KryptonMessageBox.Show(belTrataMensagem.RetornaMensagem(ListaStatus, belTrataMensagem.Tipo.Envio), "CT-e - Retorno WebService", MessageBoxButtons.OK, MessageBoxIcon.Information); objGerais = new daoBuscaDadosGerais(); foreach (belStatusCte cte in ListaStatus.Where(C => C.Enviado == true)) { lblStatus.Text = "Salvando Arquivos"; objGravaDadosRetorno.AlterarStatusCte(cte); string sChave = objGravaDadosRetorno.BuscaChave(cte.NumeroSeq); objCriaXml.SalvaArquivoPastaEnviado(objGerais.BuscaNumeroConhecimento(cte.NumeroSeq), sChave); if (cte.CodRetorno == "218" || cte.CodRetorno == "101") { objCriaXml.SalvaArquivoPastaCancelado(sChave); } } lblStatus.Text = ""; Pendencias = objGerais.VerificaPendenciasdeEnvio(); if (Pendencias.Count > 0) { txtPendencias.Text = ""; txtPendencias.Visible = true; btnPendencias.Visible = true; foreach (string item in Pendencias) { txtPendencias.Text += "Seq. " + item + Environment.NewLine; } } else { txtPendencias.Visible = false; btnPendencias.Visible = false; } btnPesquisa_Click(sender, e); #endregion } #endregion } else { #region Envio Contingencia cert = new X509Certificate2(); cert = belCertificadoDigital.BuscaNome(""); if (!belCertificadoDigital.ValidaCertificado(cert)) { lblStatus.Text = ""; throw new Exception("Certificado não Selecionado."); } objCriaXml.cert = cert; objGerais = new daoBuscaDadosGerais(); belGlobais objGlobais = new belGlobais(); XmlDocument doc = new XmlDocument(); string sChave = objGerais.BuscaChaveRetornoCteSeq(slistaConhec[0]); DirectoryInfo dPastaContingencia = new DirectoryInfo(belStaticPastas.CONTINGENCIA); FileInfo[] finfo = dPastaContingencia.GetFiles("*.xml", SearchOption.AllDirectories); bool ArquivoPastaEnvio = false; bool ArquivoPastaEnvioMesAtual = false; string sCaminho = ""; foreach (FileInfo arq in finfo) { if (arq.Name.Contains("Lote") && ArquivoPastaEnvio == false) { doc.Load(@arq.FullName); if (doc.GetElementsByTagName("infCte")[0].Attributes["Id"].Value.ToString().Replace("CTe", "").Equals(sChave)) { sCaminho = @arq.FullName; string sPathDest = belStaticPastas.ENVIO + "\\" + arq.Name; string sPathOrigem = belStaticPastas.CONTINGENCIA + "\\" + arq.Name; if (File.Exists(sPathDest)) { File.Delete(sPathDest); } File.Copy(sPathOrigem, sPathDest); ArquivoPastaEnvio = true; } } else if (!arq.Name.Contains("Lote") && ArquivoPastaEnvioMesAtual == false) { string sData = HLP.Util.Util.GetDateServidor().Date.ToString("dd-MM-yyyy"); doc.Load(@arq.FullName); if (doc.GetElementsByTagName("infCte")[0].Attributes["Id"].Value.ToString().Replace("CTe", "").Equals(sChave)) { string sPathDest = belStaticPastas.ENVIO + sData.Substring(3, 2) + "-" + sData.Substring(8, 2) + @"\\" + arq.Name; string sPathOrigem = belStaticPastas.CONTINGENCIA + sData.Substring(3, 2) + "-" + sData.Substring(8, 2) + @"\\" + arq.Name; if (File.Exists(sPathDest)) { File.Delete(sPathDest); } File.Copy(sPathOrigem, sPathDest); ArquivoPastaEnvioMesAtual = true; } } if (ArquivoPastaEnvioMesAtual && ArquivoPastaEnvio) { lblStatus.Text = "Enviando Lote para WebService..."; doc.Load(sCaminho); string sRetorno = objCriaXml.TransmitirLote(doc); string sRecibo = objCriaXml.BuscaReciboRetornoEnvio(sRetorno); List<belStatusCte> ListaStatus = objCriaXml.ConsultaLoteEnviado(sRecibo); if (sRecibo != "") { objGravaDadosRetorno.GravarRecibo(slistaConhec[0], sRecibo); } foreach (belStatusCte cte in ListaStatus) { if (cte.CodRetorno != "103" && cte.CodRetorno != "104" && cte.CodRetorno != "105" && cte.CodRetorno != "100") { objGravaDadosRetorno.ApagarRecibo(sRecibo); } else { objGravaDadosRetorno.GravarProtocoloEnvio(cte); } } KryptonMessageBox.Show(belTrataMensagem.RetornaMensagem(ListaStatus, belTrataMensagem.Tipo.Envio), "CT-e - Retorno WebService", MessageBoxButtons.OK, MessageBoxIcon.Information); objGerais = new daoBuscaDadosGerais(); foreach (belStatusCte cte in ListaStatus.Where(C => C.Enviado == true)) { lblStatus.Text = "Salvando Arquivos"; objGravaDadosRetorno.AlterarStatusCte(cte); string sprot = objGerais.BuscaNumProtocolo(cte.NumeroSeq); objCriaXml.SalvaArquivoPastaEnviado(objGerais.BuscaNumeroConhecimento(cte.NumeroSeq), cte.Chave); } lblStatus.Text = ""; btnPendencias_Click(sender, e); break; } } if (!ArquivoPastaEnvioMesAtual && !ArquivoPastaEnvio) { lblStatus.Text = ""; KryptonMessageBox.Show("Arquivo para Envio não Encontrado", "CONHECIMENTO DE TRANSP. ELETRÔNICO", MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion } } } else { KryptonMessageBox.Show("Sistema está Indisponível!", "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { KryptonMessageBox.Show("Sistema se encontra em Modo de Contingência", "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { lblStatus.Text = ""; KryptonMessageBox.Show(null, _sMessageException + (ex.InnerException != null ? ex.InnerException.Message : ex.Message).ToString(), "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); ; } }
private void btnPendencias_Click(object sender, EventArgs e) { try { daoBuscaDadosGerais objdaoGerais = new daoBuscaDadosGerais(); StringBuilder strCampos = new StringBuilder(); strCampos.Append("c.nr_lanc, "); strCampos.Append("coalesce(c.cd_conheci, '') cd_conheci , "); strCampos.Append("cast(case when coalesce(c.st_contingencia, 'N') = 'S' then 1 else 0 end as smallint) st_contingencia , "); strCampos.Append("c.dt_emi, "); strCampos.Append("r.nm_social, "); strCampos.Append("c.vl_total, "); strCampos.Append("cast(case when coalesce(c.st_cte, 'N') = 'S' then 1 else 0 end as smallint ) st_cte, "); strCampos.Append("cast(case when coalesce(c.ds_cancelamento, 'N') = 'N' then 0 else 1 end as smallint) ds_cancelamento "); dgvArquivos.DataSource = objdaoGerais.PesquisaGridViewContingencia(strCampos.ToString()); for (int i = 0; i < dgvArquivos.RowCount; i++) { if (dgvArquivos["ds_cancelamento", i].Value.ToString() != "") { dgvArquivos.Rows[i].DefaultCellStyle.BackColor = Color.Khaki; } else if (Convert.ToBoolean(dgvArquivos["st_cte", i].Value) == true) { dgvArquivos.Rows[i].DefaultCellStyle.BackColor = Color.LightGreen; } else if (Convert.ToBoolean(dgvArquivos["st_cte", i].Value) == false && Convert.ToBoolean(dgvArquivos["st_contingencia", i].Value) == true) { dgvArquivos.Rows[i].DefaultCellStyle.BackColor = Color.Red; } } VerificaPendenciasContingencia(); } catch (Exception ex) { KryptonMessageBox.Show(null, _sMessageException + (ex.InnerException != null ? ex.InnerException.Message : ex.Message).ToString(), "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); ; } }
private void btnConsultaSituacao_Click(object sender, EventArgs e) { try { lblStatus.Text = ""; List<string> sListCodConhec = new List<string>(); for (int i = 0; i < dgvArquivos.RowCount; i++) { if (dgvArquivos["cl_assina", i].Value != null) { if (dgvArquivos["cl_assina", i].Value.ToString().Equals("True")) { string sRecibo = objGerais.VerificaCampoReciboPreenchido(belStatic.CodEmpresaCte, dgvArquivos["nr_lanc", i].Value.ToString()); if (sRecibo != "") { sListCodConhec.Add(dgvArquivos["cd_conheci", i].Value.ToString()); } } } } if (sListCodConhec.Count == 1) { objCriaXml = new belCriaXml(); cert = new X509Certificate2(); cert = belCertificadoDigital.BuscaNome(""); if (!belCertificadoDigital.ValidaCertificado(cert)) { throw new Exception("Certificado não Selecionado."); } else { objCriaXml.cert = cert; objGerais = new daoBuscaDadosGerais(); string sChave = objGerais.BuscaChaveRetornoCte(sListCodConhec[0]); List<belStatusCte> ListaStatus = objCriaXml.GerarXmlConsultaSituacao(sChave, false); if (ListaStatus[0].NumeroSeq != null) { belTrataMensagem.sNumCte = objGerais.BuscaNumeroConhecimento(ListaStatus[0].NumeroSeq); } KryptonMessageBox.Show(belTrataMensagem.RetornaMensagem(ListaStatus, belTrataMensagem.Tipo.Situacao), "CT-e - Retorno WebService", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else if (sListCodConhec.Count > 1) { KryptonMessageBox.Show("Não é possível consultar vários CT-e de uma vez!", "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); ; } else { KryptonMessageBox.Show("Nenhum CT-e válido foi Selecionado.", "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); ; } } catch (Exception ex) { KryptonMessageBox.Show(null, _sMessageException + (ex.InnerException != null ? ex.InnerException.Message : ex.Message).ToString(), "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); ; } }
private void CarregaGrid() { try { daoBuscaDadosGerais objdaoGerais = new daoBuscaDadosGerais(); StringBuilder strCampos = new StringBuilder(); strCampos.Append("c.nr_lanc, "); strCampos.Append("coalesce(c.cd_conheci, '') cd_conheci , "); strCampos.Append("cast(case when coalesce(c.st_contingencia, 'N') = 'S' then 1 else 0 end as smallint) st_contingencia , "); strCampos.Append("c.dt_emi, "); strCampos.Append("r.nm_social, "); strCampos.Append("c.vl_total, "); strCampos.Append("cast(case when coalesce(c.st_cte, 'N') = 'S' then 1 else 0 end as smallint ) st_cte, "); strCampos.Append("coalesce(c.cd_recibocanc, '') cancelado "); StringBuilder strWhere = new StringBuilder(); strWhere.Append(" ((c.cd_empresa = '"); strWhere.Append(belStatic.CodEmpresaCte); strWhere.Append("')"); if (rdbData.Checked) { strWhere.Append(" and "); strWhere.Append(" (c.dt_emi between '"); strWhere.Append(dtpIni.Value.ToString("dd.MM.yyyy")); strWhere.Append("' and '"); strWhere.Append(dtpFim.Value.ToString("dd.MM.yyyy")); strWhere.Append("')"); } else { strWhere.Append(" and "); strWhere.Append(" (c.nr_lanc between '"); strWhere.Append(txtNfIni.Text.ToString()); strWhere.Append("' and '"); strWhere.Append(txtNfFim.Text.ToString()); strWhere.Append("')"); } strWhere.Append(")"); if (rbdNaoEnviadas.Checked == true) { strWhere.Append(" and "); strWhere.Append("(c.st_cte = 'N' or c.st_cte is null) "); } if (rbdEnviadas.Checked == true) { strWhere.Append(" and "); strWhere.Append("(c.st_cte = 'S') "); strWhere.Append("or (c.st_contingencia = 'S') "); } dgvArquivos.DataSource = objdaoGerais.PesquisaGridView(strCampos.ToString(), strWhere.ToString()); for (int i = 0; i < dgvArquivos.RowCount; i++) { if (dgvArquivos["ds_cancelamento", i].Value.ToString() != "") { dgvArquivos.Rows[i].DefaultCellStyle.BackColor = Color.Khaki; } else if (Convert.ToBoolean(dgvArquivos["st_cte", i].Value) == true) { dgvArquivos.Rows[i].DefaultCellStyle.BackColor = Color.LightGreen; } else if (Convert.ToBoolean(dgvArquivos["st_cte", i].Value) == false && Convert.ToBoolean(dgvArquivos["st_contingencia", i].Value) == true) { dgvArquivos.Rows[i].DefaultCellStyle.BackColor = Color.Red; } dgvArquivos["cl_assina", i].Value = false; dgvArquivos["cl_imprime", i].Value = false; } } catch (Exception ex) { KryptonMessageBox.Show(null, _sMessageException + (ex.InnerException != null ? ex.InnerException.Message : ex.Message).ToString(), "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); ; } }
private void btnBuscaRetorno_Click(object sender, EventArgs e) { try { for (int i = 0; i < dgvArquivos.RowCount; i++) { if (dgvArquivos["cl_assina", i].Value != null) { if (dgvArquivos["cl_assina", i].Value.ToString().Equals("True")) { string sRecibo = objGerais.VerificaCampoReciboPreenchido(belStatic.CodEmpresaCte, dgvArquivos["nr_lanc", i].Value.ToString()); if (sRecibo != "") { cert = new X509Certificate2(); cert = belCertificadoDigital.BuscaNome(""); if (!belCertificadoDigital.ValidaCertificado(cert)) { lblStatus.Text = ""; throw new Exception("Certificado não Selecionado."); } lblStatus.Text = "Buscando Retorno..."; objCriaXml = new belCriaXml(cert); List<belStatusCte> ListaStatus = objCriaXml.ConsultaLoteEnviado(sRecibo); foreach (belStatusCte cte in ListaStatus) { if (cte.CodRetorno != "218" && cte.CodRetorno != "101" && cte.CodRetorno != "103" && cte.CodRetorno != "104" && cte.CodRetorno != "105" && cte.CodRetorno != "100" && cte.CodRetorno != "204") { objGravaDadosRetorno.ApagarRecibo(sRecibo); } else { objGravaDadosRetorno.GravarProtocoloEnvio(cte); if (cte.CodRetorno == "218" || cte.CodRetorno == "101") { //if (string.IsNullOrEmpty(cte.NumeroSeq)) { cte.NumeroSeq = dgvArquivos["nr_lanc", i].Value.ToString(); cte.NumeroCte = dgvArquivos["cd_conheci", i].Value.ToString(); } cte.Enviado = true; objGravaDadosRetorno.GravarReciboCancelamento(cte.NumeroCte, sRecibo, "ERRO DE SISTEMA"); } } } objGerais = new daoBuscaDadosGerais(); foreach (belStatusCte cte in ListaStatus.Where(C => C.Enviado == true)) { objGravaDadosRetorno.AlterarStatusCte(cte); string sChave = objGravaDadosRetorno.BuscaChave(cte.NumeroSeq); objCriaXml.SalvaArquivoPastaEnviado(objGerais.BuscaNumeroConhecimento(cte.NumeroSeq), sChave); if (cte.CodRetorno == "218" || cte.CodRetorno == "101") { objCriaXml.SalvaArquivoPastaCancelado(sChave); } } belTrataMensagem.sNumCte = dgvArquivos["nr_lanc", i].Value.ToString(); KryptonMessageBox.Show(belTrataMensagem.RetornaMensagem(ListaStatus, belTrataMensagem.Tipo.Individual), "CT-e - Retorno WebService", MessageBoxButtons.OK, MessageBoxIcon.Information); lblStatus.Text = ""; btnPesquisa_Click(sender, e); } else { KryptonMessageBox.Show("Conhecimento selecionado ainda não Foi enviado!", "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } } catch (Exception ex) { KryptonMessageBox.Show(null, _sMessageException + (ex.InnerException != null ? ex.InnerException.Message : ex.Message).ToString(), "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); ; } }