public TRegistro_MovRastreabilidade() { this.id_lote = null; this.id_lotestr = string.Empty; this.Nr_lote = string.Empty; this.Cd_empresa = string.Empty; this.Nm_empresa = string.Empty; this.id_mov = null; this.id_movstr = string.Empty; this.nr_lanctofiscal = null; this.nr_lanctofiscalstr = string.Empty; this.id_nfitem = null; this.id_nfitemstr = string.Empty; this.Cd_produto = string.Empty; this.Ds_produto = string.Empty; this.id_apontamento = null; this.id_apontamentostr = string.Empty; this.tp_mov = string.Empty; this.Tipo_mov = string.Empty; this.dt_fabric = null; this.dt_fabricstr = string.Empty; this.dt_validade = null; this.dt_validadestr = string.Empty; this.Quantidade = decimal.Zero; this.lNfOrigem = new CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento(); }
private void gNotaFiscal_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { if (gNotaFiscal.Columns[e.ColumnIndex].SortMode == DataGridViewColumnSortMode.NotSortable) { return; } if (bsNotaFiscal.Count < 1) { return; } PropertyDescriptorCollection lP = TypeDescriptor.GetProperties(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento()); CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento lComparer; SortOrder direcao = SortOrder.None; if ((gNotaFiscal.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection == SortOrder.None) || (gNotaFiscal.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection == SortOrder.Descending)) { lComparer = new CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento(lP.Find(gNotaFiscal.Columns[e.ColumnIndex].DataPropertyName, true), SortOrder.Ascending); foreach (DataGridViewColumn c in gNotaFiscal.Columns) { c.HeaderCell.SortGlyphDirection = SortOrder.None; } direcao = SortOrder.Ascending; } else { lComparer = new CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento(lP.Find(gNotaFiscal.Columns[e.ColumnIndex].DataPropertyName, true), SortOrder.Descending); foreach (DataGridViewColumn c in gNotaFiscal.Columns) { c.HeaderCell.SortGlyphDirection = SortOrder.None; } direcao = SortOrder.Descending; } (bsNotaFiscal.List as CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento).Sort(lComparer); bsNotaFiscal.ResetBindings(false); gNotaFiscal.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection = direcao; }
public TRegistro_LanRoyaltiesGMO() { id_lanctoGMO = null; id_lanctoGMOstr = string.Empty; Nr_Contratostr = string.Empty; CD_Produto = string.Empty; DS_Produto = string.Empty; DS_Observacao = string.Empty; QTD_Credito = decimal.Zero; QTD_Debito = decimal.Zero; TP_Lancto = "A"; tp_gmo = "D"; tipo_gmo = "INTACTA DECLARADA"; Cd_clifor = string.Empty; nm_Clifor = string.Empty; Cd_unidade = string.Empty; Ds_unidade = string.Empty; Sigla_unidade = string.Empty; this.Vl_royalties_retido = decimal.Zero; lPesagem = new CamadaDados.Balanca.TList_RegLanPesagemGraos(); lNf = new CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento(); lDuplicata = new CamadaDados.Financeiro.Duplicata.TList_RegLanDuplicata(); lCaixa = new CamadaDados.Financeiro.Caixa.TList_LanCaixa(); }
private void FaturarLote() { using (TFProcLoteContrato fProc = new TFProcLoteContrato()) { if (fProc.ShowDialog() == DialogResult.OK) { if (fProc.lContratos != null) { Utils.ThreadEspera tEspera = new Utils.ThreadEspera("Inicio processamento lote."); string ret = string.Empty; try { ret = CamadaNegocio.Servicos.TCN_Contrato.ProcessarLote(fProc.lContratos, fProc.Dt_referencia, tEspera, null); } finally { tEspera.Fechar(); tEspera = null; } MessageBox.Show("Lote processado com sucesso." + (string.IsNullOrEmpty(ret) ? string.Empty : "\r\nOs seguintes contratos não foram processados:\r\n" + ret.Trim()), "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento lLote = new CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento(); //Buscar CfgNfe para a empresa CamadaDados.Faturamento.Cadastros.TList_CfgNfe lCfgNfe = CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar(fProc.lContratos[0].Cd_empresa, string.Empty, string.Empty, null); if (lCfgNfe.Count.Equals(0)) { MessageBox.Show("Não existe configuração para envio de NFS-e para a empresa " + fProc.lContratos[0].Cd_empresa.Trim() + ".", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { fProc.lContratos.ForEach(p => { if (p.lNF.Count > 0) { if (p.lNF[0].Cd_modelo.Trim().Equals("55")) { lLote.Add(CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(p.lNF[0].Cd_empresa, p.lNF[0].Nr_lanctofiscalstr, null)); } } if (lLote.Count.Equals(50)) { NFES.TGerarRPS.CriarArquivoRPS(lCfgNfe[0], lLote); MessageBox.Show("Lote RPS enviado com sucesso. Aguarde alguns segundos e consulte o status do lote.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); lLote.Clear(); } }); if (lLote.Count > 0) { NFES.TGerarRPS.CriarArquivoRPS(lCfgNfe[0], lLote); MessageBox.Show("Lote RPS enviado com sucesso. Aguarde alguns segundos e consulte o status do lote.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } //Imprimir boletos CamadaDados.Financeiro.Bloqueto.blListaTitulo lBloq = new CamadaDados.Financeiro.Bloqueto.blListaTitulo(); fProc.lContratos.ForEach(p => { if (p.lNF.Count > 0) { if (p.lNF[0].Duplicata.Count > 0) { CamadaNegocio.Financeiro.Bloqueto.TCN_Titulo.Buscar(p.lNF[0].Cd_empresa, p.lNF[0].Duplicata[0].Nr_lancto, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, 0, null).ForEach(v => lBloq.Add(v)); } } }); if (lBloq.Count > 0) { FormRelPadrao.TCN_LayoutBloqueto.Imprime_Bloqueto(false, lBloq, false, true, false, false, string.Empty, null, "BLOQUETO(S) CONTRATO SERVIÇO", string.Empty, false); } } } } }
private void CorrigirNota(bool St_saida) { if (St_saida) { if (bsImpostoSaida.Current != null) { if ((bsImpostoSaida.Current as CamadaDados.Faturamento.NotaFiscal.TRegistro_ImpostosNF).Tp_docto.Trim().ToUpper().Equals("NFF")) { using (TFCorrecaoNota fCorrecao = new TFCorrecaoNota()) { //Buscar registro nota fiscal para corrigir CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento lNf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.Busca((bsImpostoSaida.Current as CamadaDados.Faturamento.NotaFiscal.TRegistro_ImpostosNF).Cd_empresa, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, 0, string.Empty, null); if (lNf.Count > 0) { if (lNf[0].Tp_nota.Trim().ToUpper().Equals("P") && lNf[0].Cd_modelo.Trim().Equals("55") && lNf[0].St_transmitidoNFe) { MessageBox.Show("Não é permitido fazer correção NF-e enviada para receita.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } fCorrecao.rfaturamento = lNf[0]; if (fCorrecao.ShowDialog() == DialogResult.OK) { if (fCorrecao.rfaturamento != null) { //Processar alteracao nota CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.AlterarFaturamento(fCorrecao.rfaturamento, null); MessageBox.Show("Documento Fiscal Alterado com Sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); this.afterBusca(); } } } } } } } else { if (bsImpostosEntrada.Current != null) { if ((bsImpostosEntrada.Current as CamadaDados.Faturamento.NotaFiscal.TRegistro_ImpostosNF).Tp_docto.Trim().ToUpper().Equals("NFF")) { using (TFCorrecaoNota fCorrecao = new TFCorrecaoNota()) { //Buscar registro nota fiscal para corrigir CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento lNf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.Busca((bsImpostosEntrada.Current as CamadaDados.Faturamento.NotaFiscal.TRegistro_ImpostosNF).Cd_empresa, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, 0, string.Empty, null); if (lNf.Count > 0) { if (lNf[0].Tp_nota.Trim().ToUpper().Equals("P") && lNf[0].Cd_modelo.Trim().Equals("55") && lNf[0].St_transmitidoNFe) { MessageBox.Show("Não é permitido fazer correção NF-e enviada para receita.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } fCorrecao.rfaturamento = lNf[0]; if (fCorrecao.ShowDialog() == DialogResult.OK) { if (fCorrecao.rfaturamento != null) { //Processar alteracao nota CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.AlterarFaturamento(fCorrecao.rfaturamento, null); MessageBox.Show("Documento Fiscal Alterado com Sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); this.afterBusca(); } } } } } } } }
public static void CorrigirNumeroNFSe(TRegistro_LoteRPS_X_NFES val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteRPS_X_NFES qtb_lote = new TCD_LoteRPS_X_NFES(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } if (val.Nr_notafiscal.HasValue && val.Nr_nfse.HasValue) { if (val.Nr_notafiscal.Value != val.Nr_nfse.Value) { //Verificar se existe NF-e utilizando numero nota CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento lFat = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.Busca(val.Cd_empresa, val.Nr_nfse.Value.ToString(), val.Nr_serie, string.Empty, string.Empty, string.Empty, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, 1, string.Empty, qtb_lote.Banco_Dados); if (lFat.Count > 0) { if (lFat[0].St_registro.Trim().ToUpper().Equals("C")) { throw new Exception("Nº de NFS-e <" + val.Nr_nfse.Value.ToString() + "> já esta em uso no sistema."); } else if (new TCD_LoteRPS(qtb_lote.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.st_lote", vOperador = "=", vVL_Busca = "3" }, new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_FAT_LoteRPS_X_NFES x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_lote = a.id_lote " + "and x.cd_empresa = '" + lFat[0].Cd_empresa.Trim() + "' " + "and x.nr_lanctofiscal = " + lFat[0].Nr_lanctofiscalstr + ")" } }, "1") != null) { throw new Exception("Nº de NFS-e <" + val.Nr_nfse.Value.ToString() + "> já esta em uso no sistema."); } else { CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.CancelarFaturamento(lFat[0], qtb_lote.Banco_Dados); } } //Buscar Nota Fiscal para alterar numero lFat = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.Busca(val.Cd_empresa, string.Empty, string.Empty, val.Nr_lanctofiscal.Value.ToString(), string.Empty, string.Empty, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, string.Empty, "A", string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, 1, string.Empty, qtb_lote.Banco_Dados); if (lFat.Count > 0) { lFat[0].Nr_notafiscal = val.Nr_nfse; CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.AlterarFaturamento(lFat[0], qtb_lote.Banco_Dados); //Buscar sequencia NFSe CamadaDados.Faturamento.Cadastros.TList_CadSequenciaNF lSeq = new CamadaDados.Faturamento.Cadastros.TCD_CadSequenciaNF(qtb_lote.Banco_Dados).Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + lFat[0].Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.nr_serie", vOperador = "=", vVL_Busca = "'" + lFat[0].Nr_serie.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_modelo", vOperador = "=", vVL_Busca = "'" + lFat[0].Cd_modelo.Trim() + "'" } }, 1, string.Empty); if (lSeq.Count > 0) { if (lSeq[0].Seq_NotaFiscal < val.Nr_nfse.Value) { lSeq[0].Seq_NotaFiscal = val.Nr_nfse.Value; CamadaNegocio.Faturamento.Cadastros.TCN_CadSequenciaNF.Gravar(lSeq[0], qtb_lote.Banco_Dados); } } //Se possuir duplicata alterar Nº Docto CamadaDados.Financeiro.Duplicata.TList_RegLanDuplicata lDup = new CamadaDados.Financeiro.Duplicata.TCD_LanDuplicata(qtb_lote.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" }, new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_notafiscal_x_duplicata x " + "where x.cd_empresa = a.cd_empresa " + "and x.Nr_LanctoDuplicata = a.nr_lancto " + "and x.cd_empresa = '" + val.Cd_empresa.Trim() + "'" + "and x.nr_lanctofiscal = " + val.Nr_lanctofiscal + ") " } }, 1, string.Empty); if (lDup.Count > 0) { qtb_lote.executarSql("update TB_FIN_Duplicata set Nr_docto = '" + val.Nr_nfse.Value.ToString() + "' " + "where cd_empresa = '" + lDup[0].Cd_empresa.Trim() + "' " + "and nr_lancto = " + lDup[0].Nr_lancto.ToString(), null); } } } } if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro corrigir numero NFS-e: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }
private void CancelarNFe() { if (string.IsNullOrEmpty(cd_empresa.Text)) { MessageBox.Show("Obrigatorio informar empresa.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (cbSerie.SelectedItem == null) { MessageBox.Show("Obrigatorio informar serie.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cbSerie.Focus(); return; } if (string.IsNullOrEmpty(nr_notafiscal.Text)) { MessageBox.Show("Obrigatorio informar " + (St_nfce ? "NFCe" : "NFe") + ".", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); nr_notafiscal.Focus(); return; } if (St_nfce) { CamadaDados.Faturamento.PDV.TList_NFCe lNFCe = CamadaNegocio.Faturamento.PDV.TCN_NFCe.Buscar(string.Empty, nr_notafiscal.Text, cd_empresa.Text, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, cbSerie.SelectedValue.ToString(), string.Empty, false, string.Empty, string.Empty, 1, null); if (lNFCe.Count > 0) { List <CamadaDados.Faturamento.PDV.TRegistro_VendaRapida> lVenda = null; if (lNFCe[0].St_registro.Trim().ToUpper().Equals("C")) { MessageBox.Show("NFCe ja se encontra CANCELADA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string msg = string.Empty; if (lNFCe[0].Id_contingencia.HasValue && !lNFCe[0].Nr_protocolo.HasValue) { msg = "NFCe emitida em CONTINGÊNCIA OFFLINE e ainda não transmitida para a receita.\r\n" + "O cancelamento desta NFCe somente ocorrerá após o envio da mesma para receita."; } if (MessageBox.Show((string.IsNullOrEmpty(msg) ? string.Empty : msg + "\r\n") + "Confirma cancelamento NFCe?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { try { bool st_cancelar = true; //Verificar se o NFCe esta vinculado a NFe object obj = new CamadaDados.Faturamento.NotaFiscal.TCD_LanFaturamento().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" }, new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_ecfvinculadoNF x " + "where x.cd_empresa = a.cd_empresa " + "and x.nr_lanctofiscal = a.nr_lanctofiscal " + "and x.cd_empresa = '" + lNFCe[0].Cd_empresa.Trim() + "' " + "and x.id_cupom = " + lNFCe[0].Id_nfcestr + ")" } }, "a.nr_notafiscal"); if (obj != null) { MessageBox.Show("NFCe Nº" + lNFCe[0].Id_nfcestr + " esta vinculado a NFe Nº" + obj.ToString() + ".\r\n" + "Para cancelar NFCe obrigatório antes cancelar NFe.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (lNFCe[0].Nr_protocolo.HasValue || lNFCe[0].Id_contingencia.HasValue) { string motivo = string.Empty; CamadaDados.Faturamento.Cadastros.TList_CfgNfe lCfg = null; CamadaDados.Faturamento.Cadastros.TList_Evento lEv = null; //Verificar evento CamadaDados.Faturamento.PDV.TList_EventoNFCe lEvento = CamadaNegocio.Faturamento.PDV.TCN_EventoNFCe.Buscar(lNFCe[0].Cd_empresa, lNFCe[0].Id_nfcestr, string.Empty, null); if (lEvento.Count.Equals(0)) { if (string.IsNullOrEmpty(motivo)) { InputBox ibp = new InputBox(); ibp.Text = "Motivo Cancelamento NFCe"; motivo = ibp.ShowDialog(); if (string.IsNullOrEmpty(motivo)) { MessageBox.Show("Obrigatorio informar motivo de cancelamento da NFCe.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (motivo.Trim().Length < 15) { MessageBox.Show("Motivo de cancelamento deve ter mais que 15 caracteres.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } //Buscar evento Cancelamento if (lEv == null) { lEv = CamadaNegocio.Faturamento.Cadastros.TCN_Evento.Buscar(string.Empty, string.Empty, "CA", null); } if (lEv.Count.Equals(0)) { MessageBox.Show("Não existe evento de CANCELAMENTO NFE cadastrado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Cancelar NFe Receita CamadaDados.Faturamento.PDV.TRegistro_EventoNFCe rEvento = new CamadaDados.Faturamento.PDV.TRegistro_EventoNFCe(); rEvento.Cd_empresa = lNFCe[0].Cd_empresa; rEvento.Id_cupom = lNFCe[0].Id_nfce; rEvento.Chave_acesso_nfce = lNFCe[0].Chave_acesso; rEvento.Nr_protocoloNFCe = lNFCe[0].Nr_protocolo; rEvento.Dt_evento = CamadaDados.UtilData.Data_Servidor(); rEvento.Justificativa = motivo; rEvento.Cd_eventostr = lEv[0].Cd_eventostr; rEvento.Tp_evento = lEv[0].Tp_evento; rEvento.Ds_evento = lEv[0].Ds_evento; rEvento.St_registro = "A"; CamadaNegocio.Faturamento.PDV.TCN_EventoNFCe.Gravar(rEvento, null); lEvento.Add(rEvento); } if (!lEvento[0].St_registro.Trim().ToUpper().Equals("T") && lNFCe[0].Nr_protocolo.HasValue) { //Buscar CfgNfe para a empresa if (lCfg == null) { lCfg = CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar(lNFCe[0].Cd_empresa, string.Empty, string.Empty, null); } if (lCfg.Count.Equals(0)) { MessageBox.Show("Não existe configuração para envio de evento para a empresa " + lNFCe[0].Cd_empresa.Trim() + ".", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { msg = NFCe.EventoNFCe.TEventoNFCe.EnviarEvento(lEvento[0], lCfg[0]); if (!string.IsNullOrEmpty(msg)) { MessageBox.Show("Erro ao enviar evento CANCELAMENTO para a receita.\r\n" + "Aguarde um tempo e tente novamente.\r\n" + "Erro: " + msg.Trim() + ".", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); st_cancelar = false; } } } } if (st_cancelar) { if (!lNFCe[0].Nr_protocolo.HasValue && !lNFCe[0].Id_contingencia.HasValue) { //Buscar CfgNfe para a empresa CamadaDados.Faturamento.Cadastros.TList_CfgNfe lCfgNfCe = CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar(lNFCe[0].Cd_empresa, string.Empty, string.Empty, null); if (lCfgNfCe.Count.Equals(0)) { MessageBox.Show("Não existe configuração NFC-e para a empresa " + lNFCe[0].Cd_empresa.Trim() + ".", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { //Consultar Chave string ret = NFCe.ConsultaChave.TConsultaChave.ConsultaChave(lNFCe[0].Chave_acesso, "1", lCfgNfCe[0]); if (!string.IsNullOrEmpty(ret)) { MessageBox.Show("Não é permtido excluir cupom com chave de acesso existente na receita.\r\n" + ret, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } CamadaNegocio.Faturamento.PDV.TCN_NFCe.CancelarCF(lNFCe[0], null); MessageBox.Show("NFCe cancelada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); if (!lNFCe[0].Nr_protocolo.HasValue && !lNFCe[0].Id_contingencia.HasValue) { CamadaDados.Faturamento.Cadastros.TList_CadSequenciaNF lSeq = CamadaNegocio.Faturamento.Cadastros.TCN_CadSequenciaNF.Busca(lNFCe[0].Nr_serie, lNFCe[0].Cd_modelo, lNFCe[0].Cd_empresa, null); if (lSeq.Count > 0) { if (lSeq[0].Seq_NotaFiscal.Equals(lNFCe[0].NR_NFCe)) { lSeq[0].Seq_NotaFiscal--; CamadaNegocio.Faturamento.Cadastros.TCN_CadSequenciaNF.Gravar(lSeq[0], null); MessageBox.Show("Sequencia de numeração da serie voltada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { //Buscar configuracao nfe CamadaDados.Faturamento.Cadastros.TList_CfgNfe lCfgNfe = CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar(lNFCe[0].Cd_empresa, string.Empty, string.Empty, null); if (lCfgNfe.Count > 0) { try { //Inutilizar numero nota NFCe.InutilizaNFCe.TInutilizaNFCe.InutilizarNFCe(lCfgNfe[0].Cd_uf_empresa, lCfgNfe[0].Cnpj_empresa, lNFCe[0].Nr_serie, lNFCe[0].Cd_modelo, DateTime.Now.Year.ToString(), lNFCe[0].NR_NFCe.Value, lNFCe[0].NR_NFCe.Value, "NUMERO INUTILIZADO DEVIDO A ERRO NA EMISSAO DA NFCe", lCfgNfe[0]); MessageBox.Show("Numero INUTILIZADO com sucesso na receita.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Erro: " + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } else { CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento lNf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.Busca(cd_empresa.Text, nr_notafiscal.Text, cbSerie.SelectedValue.ToString(), string.Empty, string.Empty, string.Empty, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, true, string.Empty, string.Empty, "S", string.Empty, "A", string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, "'P'", string.Empty, false, string.Empty, string.Empty, string.Empty, 1, string.Empty, null); if (lNf.Count > 0) { try { //Verificar se NFe ja nao foi cancelada junto a receita CamadaDados.Faturamento.NFE.TList_EventoNFe lEvento = CamadaNegocio.Faturamento.NFE.TCN_EventoNFe.Buscar(string.Empty, lNf[0].Cd_empresa, lNf[0].Nr_lanctofiscal.ToString(), string.Empty, string.Empty, "CA", string.Empty, null); if (lEvento.Count.Equals(0) ? false : lEvento[0].St_registro.Trim().ToUpper().Equals("T")) { //Cancelar somente NFe no Aliance.NET CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.CancelarFaturamento(lNf[0], null); MessageBox.Show("NF-e cancelada com sucesso no sistema Aliance.NET", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); //Cancelar pedido CamadaDados.Faturamento.Pedido.TList_Pedido lPed = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca(lNf[0].Cd_empresa, string.Empty, lNf[0].Nr_pedidostring, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, false, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, false, 1, string.Empty, null); CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Deleta_Pedido(lPed[0], null); //Cancelar venda rapida CamadaDados.Faturamento.PDV.TList_VendaRapida lVenda = new CamadaDados.Faturamento.PDV.TCD_VendaRapida().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_pdv_pedido_x_vendarapida x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_vendarapida = a.id_cupom " + "and x.nr_pedido = " + lNf[0].Nr_pedidostring + ")" } }, 0, string.Empty, string.Empty); CamadaNegocio.Faturamento.PDV.TCN_VendaRapida.ExcluirVendaRapida(lVenda, null); Close(); } else { if (lEvento.Count.Equals(0)) { InputBox ibp = new InputBox(); ibp.Text = "Motivo Cancelamento Nota Fiscal"; string motivo = ibp.ShowDialog(); if (string.IsNullOrEmpty(motivo)) { MessageBox.Show("Obrigatorio informar motivo de cancelamento da nota fiscal.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (motivo.Trim().Length < 15) { MessageBox.Show("Motivo de cancelamento deve ter mais que 15 caracteres.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Buscar evento Carta Correcao CamadaDados.Faturamento.Cadastros.TList_Evento lEv = CamadaNegocio.Faturamento.Cadastros.TCN_Evento.Buscar(string.Empty, string.Empty, "CA", null); if (lEv.Count.Equals(0)) { MessageBox.Show("Não existe evento de CANCELAMENTO NFE cadastrado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Cancelar NFe Receita CamadaDados.Faturamento.NFE.TRegistro_EventoNFe rEvento = new CamadaDados.Faturamento.NFE.TRegistro_EventoNFe(); rEvento.Cd_empresa = lNf[0].Cd_empresa; rEvento.Nr_lanctofiscal = lNf[0].Nr_lanctofiscal; rEvento.Chave_acesso_nfe = lNf[0].Chave_acesso_nfe; rEvento.Nr_protocoloNfe = lNf[0].Nr_protocolo; rEvento.Dt_evento = CamadaDados.UtilData.Data_Servidor(); rEvento.Ds_evento = motivo; rEvento.Cd_eventostr = lEv[0].Cd_eventostr; rEvento.Descricao_evento = lEv[0].Ds_evento; rEvento.Tp_evento = lEv[0].Tp_evento; rEvento.St_registro = "A"; CamadaNegocio.Faturamento.NFE.TCN_EventoNFe.Gravar(rEvento, null); if (MessageBox.Show("Evento de CANCELAMENTO gravado com sucesso.\r\n" + "Deseja enviar o mesmo para a receita?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { //Buscar CfgNfe para a empresa CamadaDados.Faturamento.Cadastros.TList_CfgNfe lCfg = CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar(lNf[0].Cd_empresa, string.Empty, string.Empty, null); if (lCfg.Count.Equals(0)) { MessageBox.Show("Não existe configuração para envio de evento para a empresa " + lNf[0].Cd_empresa.Trim() + ".", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { string msg = srvNFE.Evento.TEventoNFe.EnviarEvento(rEvento, lCfg[0]); if (!string.IsNullOrEmpty(msg)) { MessageBox.Show("Erro ao enviar evento CANCELAMENTO para a receita.\r\n" + "Aguarde um tempo e tente novamente.\r\n" + "Erro: " + msg.Trim() + "\r\n" + "Obs.: A NFe não será cancelada no sistema Aliance.NET enquanto a mesma não for cancelada junto a receita.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("Evento registrado e vinculado a NF-e.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.CancelarFaturamento(lNf[0], null); MessageBox.Show("NF-e cancelada com sucesso no sistema Aliance.NET", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); //Cancelar pedido CamadaDados.Faturamento.Pedido.TList_Pedido lPed = new CamadaDados.Faturamento.Pedido.TCD_Pedido().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.nr_pedido", vOperador = "=", vVL_Busca = lNf[0].Nr_pedidostring }, new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_pdv_pedido_x_vendarapida x " + "where x.nr_pedido = a.nr_pedido)" } }, 1, string.Empty); if (lPed.Count > 0) { CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Deleta_Pedido(lPed[0], null); //Cancelar venda rapida CamadaDados.Faturamento.PDV.TList_VendaRapida lVenda = new CamadaDados.Faturamento.PDV.TCD_VendaRapida().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_pdv_pedido_x_vendarapida x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_vendarapida = a.id_cupom " + "and x.nr_pedido = " + lNf[0].Nr_pedidostring + ")" } }, 0, string.Empty, string.Empty); CamadaNegocio.Faturamento.PDV.TCN_VendaRapida.ExcluirVendaRapida(lVenda, null); } //Cancelar venda rapida nota entrega futura CamadaDados.Faturamento.PDV.TList_VendaRapida lVendaEF = new CamadaDados.Faturamento.PDV.TCD_VendaRapida().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_pdv_vendarapida_x_entregafutura x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_cupom = a.id_cupom " + "and x.cd_empresa = '" + lNf[0].Cd_empresa.Trim() + "' " + "and x.nr_lanctofiscal = " + lNf[0].Nr_lanctofiscalstr + ")" } }, 0, string.Empty, string.Empty); CamadaNegocio.Faturamento.PDV.TCN_VendaRapida.ExcluirVendaRapida(lVendaEF, null); Close(); } } } } else { //Buscar CfgNfe para a empresa CamadaDados.Faturamento.Cadastros.TList_CfgNfe lCfg = CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar(lNf[0].Cd_empresa, string.Empty, string.Empty, null); if (lCfg.Count.Equals(0)) { MessageBox.Show("Não existe configuração para envio de evento para a empresa " + lNf[0].Cd_empresa.Trim() + ".", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { string msg = srvNFE.Evento.TEventoNFe.EnviarEvento(lEvento[0], lCfg[0]); if (!string.IsNullOrEmpty(msg)) { MessageBox.Show("Erro ao enviar evento CANCELAMENTO para a receita.\r\n" + "Aguarde um tempo e tente novamente.\r\n" + "Erro: " + msg.Trim() + "\r\n" + "Obs.: A NFe não será cancelada no sistema Aliance.NET enquanto a mesma não for cancelada junto a receita.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("Evento registrado e vinculado a NF-e.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.CancelarFaturamento(lNf[0], null); MessageBox.Show("NF-e cancelada com sucesso no sistema Aliance.NET", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); //Cancelar pedido CamadaDados.Faturamento.Pedido.TList_Pedido lPed = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca(lNf[0].Cd_empresa, string.Empty, lNf[0].Nr_pedidostring, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, false, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, false, 1, string.Empty, null); CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Deleta_Pedido(lPed[0], null); //Cancelar venda rapida CamadaDados.Faturamento.PDV.TList_VendaRapida lVenda = new CamadaDados.Faturamento.PDV.TCD_VendaRapida().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_pdv_pedido_x_vendarapida x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_vendarapida = a.id_cupom " + "and x.nr_pedido = " + lNf[0].Nr_pedidostring + ")" } }, 0, string.Empty, string.Empty); CamadaNegocio.Faturamento.PDV.TCN_VendaRapida.ExcluirVendaRapida(lVenda, null); Close(); } } } } } catch (Exception ex) { MessageBox.Show("Erro: " + ex.Message.Trim()); } } } }