コード例 #1
0
 private void VincularCfNFe()
 {
     using (Proc_Commoditties.TFVincularECFNF fVincular = new Proc_Commoditties.TFVincularECFNF())
     {
         if (fVincular.ShowDialog() == DialogResult.OK)
         {
             if (fVincular.lCupom != null)
             {
                 if (fVincular.lCupom.Count > 0)
                 {
                     CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = null;
                     try
                     {
                         rPed = Proc_Commoditties.TProcessaCFVinculadoNF.ProcessarPedido(fVincular.lCupom,
                                                                                         fVincular.pCd_empresa,
                                                                                         fVincular.pCd_cliente);
                         //Gravar Pedido
                         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Grava_Pedido(rPed, null);
                         //Buscar pedido
                         rPed = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Registro_Pedido(rPed.Nr_pedido.ToString(), null);
                         //Buscar itens pedido
                         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Pedido_Itens(rPed, false, null);
                         //Se o CMI do pedido gerar financeiro
                         CamadaDados.Financeiro.Duplicata.TList_RegLanParcela lParcVinculado = new CamadaDados.Financeiro.Duplicata.TList_RegLanParcela();
                         //Buscar parcelas em aberto dos cupons que estao sendo vinculados
                         fVincular.lCupom.ForEach(p =>
                         {
                             new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select(
                                 new TpBusca[]
                             {
                                 new TpBusca()
                                 {
                                     vNM_Campo = "isnull(dup.st_registro, 'A')",
                                     vOperador = "<>",
                                     vVL_Busca = "'C'"
                                 },
                                 new TpBusca()
                                 {
                                     vNM_Campo = "isnull(a.st_registro, 'A')",
                                     vOperador = "in",
                                     vVL_Busca = "('A', 'P')"
                                 },
                                 new TpBusca()
                                 {
                                     vNM_Campo = string.Empty,
                                     vOperador = "exists",
                                     vVL_Busca = "(select 1 from tb_pdv_cupom_x_vendarapida x " +
                                                 "inner join tb_pdv_cupomfiscal_x_duplicata y " +
                                                 "on x.cd_empresa = y.cd_empresa " +
                                                 "and x.id_vendarapida = y.id_cupom " +
                                                 "where y.cd_empresa = a.cd_empresa " +
                                                 "and y.nr_lancto = a.nr_lancto " +
                                                 "and x.cd_empresa = '" + p.Cd_empresa.Trim() + "' " +
                                                 "and x.id_cupom = " + p.Id_nfcestr + ")"
                                 }
                             }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty).ForEach(v => lParcVinculado.Add(v));
                         });
                         //Gerar Nota Fiscal
                         CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat =
                             Proc_Commoditties.TProcessaPedFaturar.ProcessaPedFaturar(rPed,
                                                                                      true,
                                                                                      lParcVinculado.Sum(p => p.Vl_atual));
                         //Vincular Cupom a Nota Fiscal
                         string Obs  = string.Empty;
                         string virg = string.Empty;
                         fVincular.lCupom.ForEach(p =>
                         {
                             rFat.lCupom.Add(p);
                             string Placa_km = TCN_NFCe.BuscarPlacaKM(p.Cd_empresa, p.Id_nfcestr, null);
                             Obs            += virg + p.NR_NFCestr.Trim() + "-" + (string.IsNullOrEmpty(Placa_km) ? p.Placa : Placa_km.Trim()) + (!string.IsNullOrEmpty(p.Nr_requisicao) ? "/" + p.Nr_requisicao.Trim() : string.Empty);
                             virg            = ",";
                         });
                         //Vincular financeiro a Nota Fiscal
                         rFat.lParcAgrupar = lParcVinculado;
                         if (!string.IsNullOrEmpty(Obs))
                         {
                             rFat.Dadosadicionais = (!string.IsNullOrEmpty(rFat.Dadosadicionais) ? "\r\n" : string.Empty) + "Ref. CF-Placa/KM/Frota/Requisicao " + Obs.Trim();
                         }
                         //Gravar Nota Fiscal
                         CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.GravarFaturamento(rFat, null, null);
                         if (rFat.Cd_modelo.Trim().Equals("55"))
                         {
                             if (MessageBox.Show("NFe gerada com sucesso.\r\n" +
                                                 "Deseja enviar para receita?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
                                                 MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                             {
                                 using (srvNFE.TFGerenciarNFe fGerNfe = new srvNFE.TFGerenciarNFe())
                                 {
                                     fGerNfe.rNfe = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rFat.Cd_empresa,
                                                                                                                     rFat.Nr_lanctofiscalstr,
                                                                                                                     null);
                                     fGerNfe.ShowDialog();
                                 }
                             }
                         }
                     }
                     catch (Exception ex)
                     {
                         MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Deleta_Pedido(rPed, null);
                     }
                 }
                 else
                 {
                     MessageBox.Show("Não existe cupom fiscal selecionado para vincular a Nota Fiscal.", "Mensagem",
                                     MessageBoxButtons.OK, MessageBoxIcon.Information);
                 }
             }
         }
     }
 }
コード例 #2
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);
                 }
             }
         }
     }
 }