Beispiel #1
0
 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); }
                 }
             }
         }
     }
 }
Beispiel #2
0
        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();
        }
Beispiel #3
0
 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);
                 }
             }
         }
     }
 }
Beispiel #4
0
        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();
                }
            }
        }