public static void DevolverNF(TRegistro_LanFaturamento val) { if (val != null) { //Verificar se Nf é de devolução if (new TCD_LanFat_ComplementoDevolucao().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.NR_LanctoFiscal_Destino", vOperador = "=", vVL_Busca = val.Nr_lanctofiscalstr } }, "1") != null) { MessageBox.Show("Não é possivel devolver NF Devolução!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } using (TFDevolverNF fDev = new TFDevolverNF()) { fDev.rNf = val; if (fDev.ShowDialog() == DialogResult.OK) { if (fDev.rNf != null) { try { TRegistro_LanFaturamento rFat = GerarDevolucao(fDev.rNf); TCN_LanFaturamento.GravarFaturamento(rFat, null, null); //Enviar NFe Destino if (rFat != null) { //Buscar nota fiscal de destino TRegistro_LanFaturamento rNf = TCN_LanFaturamento.BuscarNF(rFat.Cd_empresa, rFat.Nr_lanctofiscalstr, null); //Se for nota propria e NF-e if (rNf.Tp_nota.Trim().ToUpper().Equals("P") && rNf.Cd_modelo.Trim().Equals("55")) { if (MessageBox.Show("Deseja enviar NF-e Devolução para a receita agora?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { try { using (srvNFE.TFGerenciarNFe fGerNfe = new srvNFE.TFGerenciarNFe()) { fGerNfe.rNfe = rNf; fGerNfe.ShowDialog(); } } catch (Exception ex) { MessageBox.Show("Erro enviar NF-e: " + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } }
private void Imprime_Danfe() { FormRelPadrao.Relatorio Danfe = new FormRelPadrao.Relatorio(); Danfe.Altera_Relatorio = Altera_Relatorio; //Buscar NFe TRegistro_LanFaturamento rNfe = TCN_LanFaturamento.BuscarNF((bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa, (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscalstr, null); //Buscar Itens NFe rNfe.ItensNota = TCN_LanFaturamento_Item.Busca(rNfe.Cd_empresa, rNfe.Nr_lanctofiscalstr, string.Empty, null); Danfe.Parametros_Relatorio.Add("VL_IPI", rNfe.ItensNota.Sum(v => v.Vl_ipi)); Danfe.Parametros_Relatorio.Add("VL_ICMS", rNfe.ItensNota.Sum(v => v.Vl_icms + v.Vl_FCP)); Danfe.Parametros_Relatorio.Add("VL_BASEICMS", rNfe.ItensNota.Sum(v => v.Vl_basecalcICMS)); Danfe.Parametros_Relatorio.Add("VL_BASEICMSSUBST", rNfe.ItensNota.Sum(v => v.Vl_basecalcSTICMS)); Danfe.Parametros_Relatorio.Add("VL_ICMSSUBST", rNfe.ItensNota.Sum(v => v.Vl_ICMSST + v.Vl_FCPST)); BindingSource Bin = new BindingSource(); Bin.DataSource = new TList_RegLanFaturamento() { rNfe }; Danfe.Nome_Relatorio = "TFLanFaturamento_Danfe"; Danfe.NM_Classe = "TFLanConsultaNFe"; Danfe.Modulo = "FAT"; Danfe.Ident = "TFLanFaturamento_Danfe"; Danfe.DTS_Relatorio = Bin; //Buscar financeiro da DANFE CamadaDados.Financeiro.Duplicata.TList_RegLanParcela lParc = new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'L'" }, new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fin_duplicata x " + "inner join tb_fat_notafiscal_x_duplicata y " + "on x.cd_empresa = y.cd_empresa " + "and x.nr_lancto = y.nr_lanctoduplicata " + "where isnull(x.st_registro, 'A') <> 'C' " + "and x.cd_empresa = a.cd_empresa " + "and x.nr_lancto = a.nr_lancto " + "and y.cd_empresa = '" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "' " + "and y.nr_lanctofiscal = " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscal + ")" } }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty); if (lParc.Count == 0) { //Verificar se Nota a nota foi vinculada de um cupom e buscar o Financeiro lParc = new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'L'" }, new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fin_duplicata x " + "inner join TB_PDV_CupomFiscal_X_Duplicata y " + "on x.cd_empresa = y.cd_empresa " + "and x.nr_lancto = y.nr_lancto " + "inner join TB_PDV_Cupom_X_VendaRapida k " + "on y.cd_empresa = k.cd_empresa " + "and y.id_cupom = k.id_vendarapida " + "inner join TB_FAT_ECFVinculadoNF z " + "on k.cd_empresa = z.cd_empresa " + "and k.id_cupom = z.id_cupom " + "where isnull(x.st_registro, 'A') <> 'C' " + "and x.cd_empresa = a.cd_empresa " + "and x.nr_lancto = a.nr_lancto " + "and z.cd_empresa = '" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "' " + "and z.nr_lanctofiscal = " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscal + ")" } }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty); if (lParc.Count == 0) { //Verificar se Nota foi gerada de uma venda rapida e buscar o Financeiro lParc = new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'L'" }, new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fin_duplicata x " + "inner join TB_PDV_CupomFiscal_X_Duplicata y " + "on x.cd_empresa = y.cd_empresa " + "and x.nr_lancto = y.nr_lancto " + "inner join TB_PDV_Pedido_X_VendaRapida k " + "on k.cd_empresa = y.cd_empresa " + "and k.id_vendarapida = y.id_cupom " + "inner join TB_FAT_NotaFiscal z " + "on z.cd_empresa = k.cd_empresa " + "and z.nr_pedido = k.nr_pedido " + "where isnull(x.st_registro, 'A') <> 'C' " + "and x.cd_empresa = a.cd_empresa " + "and x.nr_lancto = a.nr_lancto " + "and z.cd_empresa = '" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "' " + "and z.nr_lanctofiscal = " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscal + ")" } }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty); } } if (lParc.Count > 0) { for (int i = 0; i < lParc.Count; i++) { if (i < 12) { Danfe.Parametros_Relatorio.Add("DT_VENCTO" + i.ToString(), lParc[i].Dt_venctostring); Danfe.Parametros_Relatorio.Add("VL_DUP" + i.ToString(), lParc[i].Vl_parcela_padrao); } else { break; } } } //Verificar se existe logo configurada para a empresa object log = new CamadaDados.Diversos.TCD_CadEmpresa().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "'" } }, "a.logoEmpresa"); if (log != null) { Danfe.Parametros_Relatorio.Add("IMAGEM_RELATORIO", log); } Danfe.Gera_Relatorio(); }
private void afterPrint() { if (bsNotaFiscal.Current != null) { if ((bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_modelo.Trim().Equals("55")) { //Verificar o status de retorno da NF-e object obj = new CamadaDados.Faturamento.NFE.TCD_LanLoteNFE_X_NotaFiscal().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.nr_lanctofiscal", vOperador = "=", vVL_Busca = (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscal.ToString() }, new TpBusca() { vNM_Campo = "a.Status", vOperador = "=", vVL_Busca = "'100'" } }, "1"); if (obj != null) { using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao()) { fImp.St_enabled_enviaremail = true; fImp.pCd_clifor = (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_clifor; fImp.pMensagem = "NF-e Nº " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_notafiscal.ToString(); if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail)) { Imprime_Danfe(); } } } else { MessageBox.Show("Permitido imprimir DANFE somente de NF-e aceita pela receita.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { if ((bsNotaFiscal.Current as TRegistro_LanFaturamento).St_registro.Trim().ToUpper().Equals("C")) { MessageBox.Show("Não é permitido imprimir nota fiscal cancelada.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if ((bsNotaFiscal.Current as TRegistro_LanFaturamento).Tp_nota.Trim().ToUpper().Equals("T")) { MessageBox.Show("Não é permitido imprimir nota fiscal de terceiro.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao()) { fImp.St_enabled_enviaremail = true; fImp.pCd_clifor = (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_clifor; fImp.pMensagem = "NOTA FISCAL Nº " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_notafiscal.ToString(); if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail)) { Imprime_NotaFiscal(TCN_LanFaturamento.BuscarNF((bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa, (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscalstr, null), fImp.pSt_imprimir, fImp.pSt_visualizar, fImp.pSt_enviaremail, fImp.pDestinatarios, "NOTA FISCAL Nº " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_notafiscal.ToString(), fImp.pDs_mensagem); } } } } }
public static string Excluir(TRegistro_LanFixacao val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LanFixacao qtb_fixacao = new TCD_LanFixacao(); try { if (banco == null) { st_transacao = qtb_fixacao.CriarBanco_Dados(true); } else { qtb_fixacao.Banco_Dados = banco; } //Cancelar NF de Fixacao TCN_Fixacao_NF.Buscar(string.Empty, val.Id_fixacao.Value.ToString(), string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, 0, string.Empty, qtb_fixacao.Banco_Dados).ForEach(p => { if (!p.Tp_nota.Trim().ToUpper().Equals("P")) //Nota de Complemento/Devolucao { TCN_LanFaturamento.CancelarFaturamento( TCN_LanFaturamento.BuscarNF(p.Cd_empresa, p.Nr_lanctofiscal.ToString(), qtb_fixacao.Banco_Dados), qtb_fixacao.Banco_Dados); } }); //Cancelar Duplicata val.lDupFixacao.ForEach(p => { //Excluir Fixacao X Duplicata TList_Fixacao_X_Duplicata lFDup = TCN_Fixacao_X_Duplicata.Buscar(val.Id_fixacao.Value.ToString(), p.Cd_empresa, p.Nr_lancto.ToString(), qtb_fixacao.Banco_Dados); if (lFDup.Count > 0) { TCN_Fixacao_X_Duplicata.Excluir(lFDup[0], qtb_fixacao.Banco_Dados); } //Cancelar Duplicata Financeiro.Duplicata.TCN_LanDuplicata.CancelarDuplicata(p, qtb_fixacao.Banco_Dados); }); //Cancelar Fixacao val.St_registro = "C"; qtb_fixacao.Gravar(val); if (st_transacao) { qtb_fixacao.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_fixacao.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro cancelar fixação: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_fixacao.deletarBanco_Dados(); } } }