コード例 #1
0
 private void afterPrint()
 {
     if (bsNFCe.Current != null)
     {
         if ((bsNFCe.Current as TRegistro_NFCe).St_registro.Trim().ToUpper().Equals("C"))
         {
             MessageBox.Show("Não é permitido imprimir DANFE NFCe CANCELADO.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if ((bsNFCe.Current as TRegistro_NFCe).Id_contingencia.HasValue ? false : !(bsNFCe.Current as TRegistro_NFCe).Nr_protocolo.HasValue)
         {
             MessageBox.Show("Permitido imprimir DANFE somente de NFCe aceita pela receita.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao())
         {
             FormRelPadrao.Relatorio Rel = new FormRelPadrao.Relatorio();
             Rel.Altera_Relatorio = Altera_Relatorio;
             BindingSource dts = new BindingSource();
             dts.DataSource    = new TList_NFCe_Item();
             Rel.DTS_Relatorio = dts;// bsItens;
             //DTS Cupom
             BindingSource bs = new BindingSource();
             bs.DataSource = new TList_NFCe()
             {
                 TCN_NFCe.BuscarNFCe((bsNFCe.Current as TRegistro_NFCe).Cd_empresa,
                                     (bsNFCe.Current as TRegistro_NFCe).Id_nfcestr,
                                     null)
             };
             NFCe.TGerarQRCode.GerarQRCode2(bs.Current as TRegistro_NFCe);
             Rel.Adiciona_DataSource("DTS_NFCE", bs);
             //Buscar Empresa
             BindingSource bsEmpresa = new BindingSource();
             bsEmpresa.DataSource = new CamadaDados.Diversos.TList_CadEmpresa()
             {
                 (bs.Current as TRegistro_NFCe).rEmpresa
             };
             Rel.Adiciona_DataSource("DTS_EMP", bsEmpresa);
             //Forma Pagamento
             BindingSource bsPagto = new BindingSource();
             if ((bs.Current as TRegistro_NFCe).lDup.Count > 0)
             {
                 (bs.Current as TRegistro_NFCe).lPagto.Add(new TRegistro_MovCaixa()
                 {
                     Tp_portador = "05",
                     Vl_recebido = (bs.Current as TRegistro_NFCe).lDup[0].Vl_documento
                 });
             }
             bsPagto.DataSource = (bs.Current as TRegistro_NFCe).lPagto;
             Rel.Adiciona_DataSource("DTS_PAGTO", bsPagto);
             //Parametros
             Rel.Parametros_Relatorio.Add("TOT_IMP_APROX", (bs.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_imposto_Aprox));
             Rel.Parametros_Relatorio.Add("QTD_ITENS", (bs.Current as TRegistro_NFCe).lItem.Count);
             Rel.Parametros_Relatorio.Add("TOT_SUBTOTAL", (bs.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_subtotal));
             Rel.Parametros_Relatorio.Add("TOT_ACRESCIMO", (bs.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_acrescimo));
             Rel.Parametros_Relatorio.Add("TOT_DESCONTO", (bs.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_desconto));
             Rel.Parametros_Relatorio.Add("ST_VIAEMPRESA", "N");
             object obj = new CamadaDados.Faturamento.NFCe.TCD_LoteNFCe().BuscarEscalar(
                 new TpBusca[]
             {
                 new TpBusca()
                 {
                     vNM_Campo = string.Empty,
                     vOperador = "exists",
                     vVL_Busca = "(select 1 from TB_FAT_Lote_X_NFCe x " +
                                 "where x.cd_empresa = a.cd_empresa " +
                                 "and x.id_lote = a.id_lote " +
                                 "and x.status = '100')"
                 }
             }, "a.tp_ambiente");
             Rel.Parametros_Relatorio.Add("TP_AMBIENTE", obj == null ? string.Empty : obj.ToString());
             string dadoscf = TCN_NFCe.BuscarPlacaKM((bs.Current as TRegistro_NFCe).Cd_empresa,
                                                     (bs.Current as TRegistro_NFCe).Id_nfcestr,
                                                     null);
             if (!string.IsNullOrEmpty(dadoscf))
             {
                 string[] linhas        = dadoscf.Split(new char[] { ':' });
                 string   placa         = string.Empty;
                 string   km            = string.Empty;
                 string   frota         = string.Empty;
                 string   requisicao    = string.Empty;
                 string   nm_motorista  = string.Empty;
                 string   cpf_motorista = string.Empty;
                 string   media         = string.Empty;
                 string   virg          = string.Empty;
                 foreach (string s in linhas)
                 {
                     string[] colunas = s.Split(new char[] { '/' });
                     placa         += virg + colunas[0];
                     km            += virg + colunas[1];
                     frota         += virg + colunas[2];
                     requisicao    += virg + colunas[3];
                     nm_motorista  += virg + colunas[4];
                     cpf_motorista += virg + colunas[5];
                     media         += virg + colunas[6];
                     virg           = ",";
                 }
                 if (!string.IsNullOrEmpty(placa))
                 {
                     Rel.Parametros_Relatorio.Add("PLACA", placa);
                 }
                 if (!string.IsNullOrEmpty(km))
                 {
                     Rel.Parametros_Relatorio.Add("KM", km);
                 }
                 if (!string.IsNullOrEmpty(media))
                 {
                     Rel.Parametros_Relatorio.Add("MEDIA", media + " KM/LT");
                 }
                 if (!string.IsNullOrEmpty(frota))
                 {
                     Rel.Parametros_Relatorio.Add("FROTA", frota);
                 }
                 if (!string.IsNullOrEmpty(requisicao))
                 {
                     Rel.Parametros_Relatorio.Add("REQUISICAO", requisicao);
                 }
                 if (!string.IsNullOrEmpty(nm_motorista))
                 {
                     Rel.Parametros_Relatorio.Add("NM_MOTORISTA", nm_motorista);
                 }
                 if (!string.IsNullOrEmpty(cpf_motorista))
                 {
                     Rel.Parametros_Relatorio.Add("CPF_MOTORISTA", cpf_motorista);
                 }
             }
             Rel.Nome_Relatorio          = "DANFE_NFCE";
             Rel.NM_Classe               = "TFConsultaFrenteCaixa";
             Rel.Modulo                  = "FAT";
             Rel.Ident                   = "DANFE_NFCE";
             fImp.St_enabled_enviaremail = true;
             fImp.pCd_clifor             = string.Empty;
             fImp.pMensagem              = "DANFE NFC-e";
             fImp.St_danfenfce           = true;
             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 NFC-e",
                                    fImp.pDs_mensagem);
                 Altera_Relatorio = false;
             }
             else
             {
                 fImp.pCd_clifor = (bs.Current as TRegistro_NFCe).Cd_clifor;
                 if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail))
                 {
                     if (fImp.St_danfenfcedetalhada)
                     {
                         Rel.DTS_Relatorio = bsItens;
                     }
                     if ((bs.Current as TRegistro_NFCe).Id_contingencia.HasValue &&
                         fImp.St_viaestabelecimento)
                     {
                         if (Rel.Parametros_Relatorio.ContainsKey("ST_VIAEMPRESA"))
                         {
                             Rel.Parametros_Relatorio["ST_VIAEMPRESA"] = "S";
                         }
                         else
                         {
                             Rel.Parametros_Relatorio.Add("ST_VIAEMPRESA", "S");
                         }
                     }
                     Rel.Gera_Relatorio(string.Empty,
                                        fImp.pSt_imprimir,
                                        fImp.pSt_visualizar,
                                        fImp.pSt_enviaremail,
                                        fImp.pSt_exportPdf,
                                        fImp.Path_exportPdf,
                                        fImp.pDestinatarios,
                                        null,
                                        "DANFE NFC-e",
                                        fImp.pDs_mensagem);
                 }
             }
         }
     }
 }