Пример #1
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);
                 }
             }
         }
     }
 }
Пример #2
0
        private void ImprimirDanfe()
        {
            //Verificar status NFe
            object obj = new CamadaDados.Faturamento.NFE.TCD_LanLoteNFE_X_NotaFiscal().BuscarEscalar(
                new Utils.TpBusca[]
            {
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + rNfe.Cd_empresa.Trim() + "'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.nr_lanctofiscal",
                    vOperador = "=",
                    vVL_Busca = rNfe.Nr_lanctofiscal.ToString()
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = string.Empty,
                    vOperador = "exists",
                    vVL_Busca = "(select 1 from TB_FAT_LoteNFE x " +
                                "where x.id_lote = a.id_lote " +
                                "and x.st_registro = 'P' " +
                                "and x.status = '104')"
                }
            }, "a.status");

            if (obj != null)
            {
                if (obj.ToString().Trim().Equals("100"))
                {
                    try
                    {
                        using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao())
                        {
                            FormRelPadrao.Relatorio Rel = new FormRelPadrao.Relatorio();
                            Rel.Altera_Relatorio = Altera_Relatorio;

                            BindingSource BinDados = new BindingSource();
                            if (rNfe != null)
                            {
                                //Buscar registro nfe x nota fiscal
                                CamadaDados.Faturamento.NFE.TList_LanLoteNFE_X_NotaFiscal lLoteNfe =
                                    new CamadaDados.Faturamento.NFE.TCD_LanLoteNFE_X_NotaFiscal().Select(
                                        new Utils.TpBusca[]
                                {
                                    new Utils.TpBusca()
                                    {
                                        vNM_Campo = "a.cd_empresa",
                                        vOperador = "=",
                                        vVL_Busca = "'" + rNfe.Cd_empresa.Trim() + "'"
                                    },
                                    new Utils.TpBusca()
                                    {
                                        vNM_Campo = "a.nr_lanctofiscal",
                                        vOperador = "=",
                                        vVL_Busca = rNfe.Nr_lanctofiscalstr
                                    },
                                    new Utils.TpBusca()
                                    {
                                        vNM_Campo = "a.status",
                                        vOperador = "=",
                                        vVL_Busca = "'100'"
                                    }
                                }, 1, string.Empty);
                                if (lLoteNfe.Count > 0)
                                {
                                    rNfe.Dt_processamento = lLoteNfe[0].Dt_processamento;
                                    rNfe.Nr_protocolo     = lLoteNfe[0].Nr_protocolo.HasValue ? lLoteNfe[0].Nr_protocolo.Value.ToString() : string.Empty;
                                }
                                Rel.Parametros_Relatorio.Add("VL_IPI", rNfe.ItensNota.Sum(v => v.Vl_ipi));
                                Rel.Parametros_Relatorio.Add("VL_ICMS", rNfe.ItensNota.Sum(v => v.Vl_icms + v.Vl_FCP));
                                Rel.Parametros_Relatorio.Add("VL_BASEICMS", rNfe.ItensNota.Sum(v => v.Vl_basecalcICMS));
                                Rel.Parametros_Relatorio.Add("VL_BASEICMSSUBST", rNfe.ItensNota.Sum(v => v.Vl_basecalcSTICMS));
                                Rel.Parametros_Relatorio.Add("VL_ICMSSUBST", rNfe.ItensNota.Sum(v => v.Vl_ICMSST + v.Vl_FCPST));

                                //Buscar conf impressao da nota fiscal
                                obj = new CamadaDados.Faturamento.Cadastros.TCD_CFGImpNF().BuscarEscalar(
                                    new Utils.TpBusca[]
                                {
                                    new Utils.TpBusca()
                                    {
                                        vNM_Campo = "a.cd_empresa",
                                        vOperador = "=",
                                        vVL_Busca = "'" + rNfe.Cd_empresa.Trim() + "'"
                                    },
                                    new Utils.TpBusca()
                                    {
                                        vNM_Campo = "a.nr_serie",
                                        vOperador = "=",
                                        vVL_Busca = "'" + rNfe.Nr_serie.Trim() + "'"
                                    }
                                }, "a.QT_ItensNota");
                                if (obj != null)
                                {
                                    if (rNfe.ItensNota.Count < Convert.ToDecimal(obj.ToString()))
                                    {
                                        while (rNfe.ItensNota.Count < Convert.ToDecimal(obj.ToString()))
                                        {
                                            rNfe.ItensNota.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item());
                                        }
                                    }
                                }
                            }
                            BinDados.DataSource = new CamadaDados.Faturamento.NotaFiscal.TList_RegLanFaturamento()
                            {
                                rNfe
                            };
                            Rel.DTS_Relatorio = BinDados;
                            //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 = '" + rNfe.Cd_empresa.Trim() + "' " +
                                                "and y.nr_lanctofiscal = " + rNfe.Nr_lanctofiscal.ToString() + ")"
                                }
                            }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty);

                            if (lParc.Count == 0)
                            {
                                //Verificar se 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 = '" + rNfe.Cd_empresa.Trim() + "' " +
                                                    "and z.nr_lanctofiscal = " + rNfe.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 = '" + rNfe.Cd_empresa.Trim() + "' " +
                                                        "and z.nr_lanctofiscal = " + rNfe.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)
                                    {
                                        Rel.Parametros_Relatorio.Add("DT_VENCTO" + i.ToString(), lParc[i].Dt_venctostring);
                                        Rel.Parametros_Relatorio.Add("VL_DUP" + i.ToString(), lParc[i].cVl_atual);
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
                            }
                            Rel.Nome_Relatorio          = "TFLanFaturamento_Danfe";
                            Rel.NM_Classe               = "TFLanConsultaNFe";
                            Rel.Modulo                  = "FAT";
                            Rel.Ident                   = "TFLanFaturamento_Danfe";
                            fImp.St_enabled_enviaremail = true;
                            fImp.pCd_clifor             = rNfe.Cd_clifor;
                            fImp.pMensagem              = "DANFE Nº" + rNfe.Nr_notafiscal.ToString();
                            fImp.St_danfe               = true;
                            //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 = "'" + rNfe.Cd_empresa.Trim() + "'"
                                }
                            }, "a.logoEmpresa");
                            if (log != null)
                            {
                                Rel.Parametros_Relatorio.Add("IMAGEM_RELATORIO", log);
                            }
                            if (Altera_Relatorio)
                            {
                                Rel.Gera_Relatorio(string.Empty,
                                                   fImp.pSt_imprimir,
                                                   fImp.pSt_visualizar,
                                                   fImp.pSt_enviaremail,
                                                   fImp.pSt_exportPdf,
                                                   fImp.Path_exportPdf,
                                                   fImp.pDestinatarios,
                                                   null,
                                                   "DANFE",
                                                   fImp.pDs_mensagem);
                                Altera_Relatorio = false;
                            }
                            else if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail))
                            {
                                List <string> Anexo = null;
                                if (fImp.St_receberXmlNfe)
                                {
                                    string path_anexo = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVlString("PATH_ANEXO_EMAIL", null);
                                    if (!string.IsNullOrEmpty(path_anexo))
                                    {
                                        if (!System.IO.Directory.Exists(path_anexo))
                                        {
                                            System.IO.Directory.CreateDirectory(path_anexo);
                                        }
                                        if (!path_anexo.EndsWith("\\"))
                                        {
                                            path_anexo += System.IO.Path.DirectorySeparatorChar.ToString();
                                        }

                                        //Limpar diretorio path arquivo
                                        string[] arq = System.IO.Directory.GetFiles(path_anexo.Trim(), "*.xml");
                                        try
                                        {
                                            srvNFE.GerarArq.TGerarArq2.GerarArqXmlPeriodo(path_anexo,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          rNfe.Cd_empresa,
                                                                                          rNfe.Nr_notafiscal.ToString(),
                                                                                          rNfe.rCfgNfe);
                                        }
                                        catch { }
                                        //Ler arquivo gerado
                                        Anexo = new List <string>();
                                        Anexo.Add(path_anexo + rNfe.Chave_acesso_nfe.Trim() + "-nfe.xml");
                                    }
                                }
                                Rel.Gera_Relatorio(string.Empty,
                                                   fImp.pSt_imprimir,
                                                   fImp.pSt_visualizar,
                                                   fImp.pSt_enviaremail,
                                                   fImp.pSt_exportPdf,
                                                   fImp.Path_exportPdf,
                                                   fImp.pDestinatarios,
                                                   Anexo,
                                                   "DANFE",
                                                   fImp.pDs_mensagem);
                            }
                        }
                    }
                    catch { }
                }
                else
                {
                    MessageBox.Show("Lote Processado com Sucesso.\r\nNota Fiscal não foi aceita pela receita.\r\n" +
                                    "Verifique o erro na tela de controle de NFe.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Erro ao processar Lote NFe.\r\n" +
                                "Verifique o erro na tela de controle de NFe.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }