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); } } } } }