private void bb_cadclifor_Click(object sender, EventArgs e) { using (Financeiro.Cadastros.TFCadCliforResumido fClifor = new Financeiro.Cadastros.TFCadCliforResumido()) { if (!string.IsNullOrEmpty(CD_Clifor.Text)) { if (!rCfg.Cd_clifor.Trim().Equals(CD_Clifor.Text.Trim())) { CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rClifor = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(CD_Clifor.Text, null); rClifor.lEndereco = CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(CD_Clifor.Text, cd_endereco.Text, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 0, null); rClifor.lContato = CamadaNegocio.Financeiro.Cadastros.TCN_CadContatoCliFor.Buscar(string.Empty, CD_Clifor.Text, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, string.Empty, 0, null); fClifor.rClifor = rClifor; } } if (fClifor.ShowDialog() == DialogResult.OK) { try { CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.GravarClifor(fClifor.rClifor, null); MessageBox.Show("Cliente gravado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); CD_Clifor.Text = fClifor.rClifor.Cd_clifor; NM_Clifor.Text = fClifor.rClifor.Nm_clifor; cd_endereco.Text = fClifor.rClifor.lEndereco[0].Cd_endereco; ds_endereco.Text = fClifor.rClifor.lEndereco[0].Ds_endereco; } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
private void afterGrava() { if (pDados.validarCampoObrigatorio()) { if (nr_cartafrete.Focused) { if (!this.ValidarCartaFrete()) { return; } } if (string.IsNullOrEmpty(cd_transportadora.Text) && string.IsNullOrEmpty(cd_unidpagadora.Text)) { MessageBox.Show("Obrigatorio informar TRANSPORTADORA ou UNIDADE PAGADORA para gravar carta frete.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cd_transportadora.Focus(); return; } if ((!string.IsNullOrEmpty(cd_unidpagadora.Text)) && string.IsNullOrEmpty(cd_endunidpagadora.Text)) { MessageBox.Show("Obrigatorio informar endereço para unidade pagadora.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cd_endunidpagadora.Focus(); return; } if (dt_emissao.Data.Date > dt_vencimento.Data.Date) { MessageBox.Show("Data de vencimento não pode ser menor que data de emissão.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Validar CNPJ/CPF do Cliente/Fornecedor if (CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("ST_FIN_CLIFOR_VALIDO", Cd_empresa, null).Trim().ToUpper().Equals("S")) { CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rClifor = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(string.IsNullOrEmpty(cd_transportadora.Text) ? cd_unidpagadora.Text : cd_transportadora.Text, null); if (rClifor.Tp_pessoa.Trim().ToUpper().Equals("J")) { Utils.CNPJ_Valido.nr_CNPJ = rClifor.Nr_cgc; if (string.IsNullOrEmpty(Utils.CNPJ_Valido.nr_CNPJ)) { MessageBox.Show("Não é permitido gravar CARTA FRETE para " + (string.IsNullOrEmpty(cd_transportadora.Text) ? "UNIDADE PAGADORA" : "TRANSPORTADORA") + " com CNPJ invalido.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } else if (rClifor.Tp_pessoa.Trim().ToUpper().Equals("F")) { Utils.CPF_Valido.nr_CPF = rClifor.Nr_cpf; if (string.IsNullOrEmpty(Utils.CPF_Valido.nr_CPF)) { MessageBox.Show("Não é permitido gravar CARTA FRETE para " + (string.IsNullOrEmpty(cd_transportadora.Text) ? "UNIDADE PAGADORA" : "TRANSPORTADORA") + " com CPF invalido.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } this.DialogResult = DialogResult.OK; } }
public static CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento ProcessarEmpreendimento(string tp_nota, string Cd_clifor, TRegistro_Orcamento rOrcamento, List <TRegistro_FichaTec> rFicha) { // TP_NOTA S SERVICO N NORMAL if (new TCD_CadCFGEmpreendimento().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rOrcamento.Cd_empresa.Trim() + "'" } }, "a.cfg_remessa", string.Empty, string.Empty, null) == null) { throw new Exception("Não existe configuração para emitir NF peças para a empresa " + rOrcamento.Cd_empresa.Trim()); } //Buscar configuracao fiscal do pedido CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPed = new CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal(); if (tp_nota.Equals("N")) { lCfgPed = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_EMP_CFGEmpreendimento x " + "where a.cfg_pedido = x.cfg_remessa " + "and x.cd_empresa = '" + rOrcamento.Cd_empresa.Trim() + "')" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'NO'" } }, 1, string.Empty); } if (tp_nota.Equals("S")) { lCfgPed = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_EMP_CFGEmpreendimento x " + "where a.cfg_pedido = x.cfg_servico " + "and x.cd_empresa = '" + rOrcamento.Cd_empresa.Trim() + "')" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'SE'" } }, 1, string.Empty); } if (lCfgPed.Count.Equals(0)) { throw new Exception("Não existe configuração fiscal do pedido para o tipo pedido!"); } //Objeto Nota Fiscal CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNf = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento(); //Buscar registro empresa CamadaDados.Diversos.TRegistro_CadEmpresa rEmpresa = CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(rOrcamento.Cd_empresa, string.Empty, string.Empty, null)[0]; rNf.Cd_empresa = rEmpresa.Cd_empresa; rNf.Cd_uf_empresa = rEmpresa.rEndereco.Cd_uf; rNf.Uf_empresa = rEmpresa.rEndereco.UF; //Buscar registro clifor CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rCliente = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(Cd_clifor, null); rNf.Cd_clifor = rCliente.Cd_clifor; rNf.Cd_condfiscal_clifor = rCliente.Cd_condfiscal_clifor; //Buscar endereco cliente CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco rEndereco = CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(Cd_clifor, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, null)[0]; rNf.Cd_endereco = rEndereco.Cd_endereco; rNf.Cd_uf_clifor = rEndereco.Cd_uf; rNf.Uf_clifor = rEndereco.UF; rNf.Cd_cmi = lCfgPed[0].Cd_cmi; rNf.Cd_movimentacao = lCfgPed[0].Cd_movto; rNf.lCFGFiscal = lCfgPed; rNf.Tp_duplicata = lCfgPed[0].Tp_duplicata; rNf.Ds_tpduplicata = lCfgPed[0].Ds_tpduplicata; rNf.Cd_condpgto = lCfgPed[0].CD_CondPgto; rNf.Tp_movimento = "S"; rNf.Tp_pessoa = rCliente.Tp_pessoa; rNf.Tp_nota = (rNf.Tp_pessoa.Trim().ToUpper().Equals("J") && rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? "T" : "P"); rNf.Nr_serie = lCfgPed[0].Nr_serie; rNf.Cd_modelo = lCfgPed[0].Cd_modelo; rNf.St_sequenciaauto = lCfgPed[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S"); rNf.Dt_emissao = CamadaDados.UtilData.Data_Servidor(); rNf.Dt_saient = rNf.Dt_emissao; rNf.Dadosadicionais = ProcessaAplicacao.BuscarObsMov("D", rNf.Cd_movimentacaostring, rEndereco.UF.Trim().Equals(rEmpresa.rEndereco.UF.Trim())); rNf.Obsfiscal = ProcessaAplicacao.BuscarObsMov("F", rNf.Cd_movimentacaostring, rEndereco.UF.Trim().Equals(rEmpresa.rEndereco.UF.Trim())); //Abrir tela para capturar dados da nota fiscal using (NumeroNota.TFNumero_Nota fNumero = new NumeroNota.TFNumero_Nota()) { fNumero.pCd_empresa = rNf.Cd_empresa; fNumero.pNm_empresa = rNf.Nm_empresa; fNumero.pCd_clifor = rNf.Cd_clifor; fNumero.pNm_clifor = rNf.Nm_clifor; fNumero.pTp_pessoa = rNf.Tp_pessoa; fNumero.pTp_movimento = rNf.Tp_movimento; fNumero.pCd_municipioexecservico = rOrcamento.Cd_cidadeemp; fNumero.pNm_municipioexecservico = rOrcamento.Ds_cidadeemp; fNumero.pTp_nota = rNf.Tp_nota; fNumero.pChave_Acesso_NFe = rNf.Chave_acesso_nfe; fNumero.pNr_serie = rNf.Nr_serie; fNumero.pDs_serie = rNf.Ds_serienf; fNumero.pCd_modelo = rNf.Cd_modelo; fNumero.pDt_emissao = rNf.Dt_emissao; fNumero.pST_NotaUnica = false; fNumero.pNr_notafiscal = rNf.Nr_notafiscal.HasValue ? rNf.Nr_notafiscal.Value.ToString() : string.Empty; fNumero.pDt_saient = rNf.Dt_saient; fNumero.pDs_dadosadic = rNf.Dadosadicionais; fNumero.pDs_obsfiscal = rNf.Obsfiscal; fNumero.pSt_sequenciaauto = rNf.St_sequenciaauto; fNumero.pCd_movto = rNf.Cd_movimentacaostring; fNumero.pCd_cmi = rNf.Cd_cmistring; if (rNf.Tp_nota.Trim().ToUpper().Equals("T")) { fNumero.pInsc_estadual = rEndereco.Insc_estadual; } if (fNumero.ShowDialog() == System.Windows.Forms.DialogResult.OK) { rNf.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe; if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal)) { rNf.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal); } else { rNf.Nr_notafiscal = null; } rNf.Nr_serie = fNumero.pNr_serie; rNf.Cd_modelo = fNumero.pCd_modelo; rNf.Dt_emissao = fNumero.pDt_emissao; rNf.Dt_saient = fNumero.pDt_saient; rNf.Obsfiscal = fNumero.pDs_obsfiscal; rNf.Dadosadicionais = fNumero.pDs_dadosadic; rNf.Cd_transportadora = fNumero.pCd_transportadora; rNf.Nm_razaosocialtransp = fNumero.pNm_transportadora; rNf.Cpf_transp = fNumero.pCnpjCpfTransp; rNf.Placaveiculo = fNumero.pPlacaVeiculo; rNf.Tp_frete = fNumero.pTp_frete; rNf.Especie = fNumero.pEspecie; rNf.Quantidade = fNumero.pQuantidade; rNf.Pesobruto = fNumero.pPsbruto; rNf.Pesoliquido = fNumero.pPsliquido; rNf.Vl_frete = fNumero.pVl_frete; CamadaDados.Fiscal.TRegistro_CadCMI rCmi = CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, null)[0]; rNf.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_CMI() { St_compdevimposto = rCmi.St_compdevimposto, St_complementar = rCmi.St_complementar, St_devolucao = rCmi.St_devolucao, St_geraestoque = rCmi.St_geraestoque, St_mestra = rCmi.St_mestra, St_simplesremessa = rCmi.St_simplesremessa, St_retorno = rCmi.St_retorno }); rNf.Cd_cmistring = fNumero.pCd_cmi; rNf.Ds_cmi = rCmi.Ds_cmi; rNf.Tp_duplicata = rCmi.Tp_duplicata; rNf.Ds_tpduplicata = rCmi.ds_tpduplicata; } else { throw new Exception("Obrigatorio informar numero da nota fiscal."); } } if (rNf.Nr_notafiscal.HasValue) { CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.existeNumeroNota(rNf.Nr_notafiscal.ToString(), rNf.Nr_serie, rNf.Cd_empresa, rNf.Cd_clifor, string.Empty, rNf.Tp_nota, null); if (rFat != null) { if (rFat.St_registro.Trim().ToUpper().Equals("C")) { throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra cancelada.\r\n" + "Para poder utilizar o mesmo numero e necessario excluir a nota fiscal cancelada.\r\n" + "Dica: Menu FATURAMENTO->Emissão de Notas Fiscais / NFe, localize a nota fiscal cancelada e exclua a mesma.\r\n" + "Obs.: Para excluir a nota fiscal cancelada é necessario que o usuario tenha permissão."); } else { throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra ativa.\r\n" + "Não é permitido gerar nota fiscal com mesmo numero."); } } } //Itens da Nota rFicha.ForEach(item => { CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item rItem = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item(); rItem.Cd_empresa = item.Cd_empresa; rItem.Cd_produto = item.Cd_produto; //pega cd condfiscal do produto object cd_cfiscal = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar(new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = item.Cd_produto } }, "d.cd_condfiscal_produto"); TList_CadCFGEmpreendimento cfg = TCN_CadCFGEmpreendimento.Busca(item.Cd_empresa, string.Empty, null); object ncmm = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + item.Cd_produto.Trim() + "'" } }, "isnull(a.ncm, 0)"); if (ncmm != null) { if (!string.IsNullOrEmpty(ncmm.ToString())) { object obj_imp = new CamadaDados.Fiscal.TCD_CadNCM().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.ncm", vOperador = "=", vVL_Busca = "'" + ncmm.ToString().Trim() + "'" } }, "isnull(a.Pc_Aliquota, 0)"); if (obj_imp != null) { if (!string.IsNullOrEmpty(obj_imp.ToString())) { rItem.Pc_imposto_Aprox = Convert.ToDecimal(obj_imp.ToString()); } } } } //buscar cdunidade rItem.Cd_condfiscal_produto = cd_cfiscal != null ?cd_cfiscal.ToString() : string.Empty; rItem.Cd_unidade = item.Cd_unidade; rItem.Cd_local = cfg[0].cd_local; rItem.Cd_unidEst = item.Cd_unidade; rItem.Quantidade = item.quantidade_agregar; rItem.Quantidade_estoque = item.quantidade_agregar; rItem.Vl_subtotal = item.quantidade_agregar * item.Vl_unitario; rItem.Vl_subtotal_estoque = item.quantidade_agregar * item.Vl_unitario; rItem.Vl_unitario = item.Vl_unitario; //Buscar cfop do item CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null; bool st_dentroestado = rEndereco.Cd_uf.Trim().Equals(rEmpresa.rEndereco.Cd_uf.Trim()); if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNf.Cd_movimentacaostring, rItem.Cd_condfiscal_produto, rEndereco.Cd_uf.Trim().Equals("99") ? "I" : rEndereco.Cd_uf.Trim().Equals(rEmpresa.rEndereco.Cd_uf.Trim()) ? "D" : "F", (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa), (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor), rNf.Tp_movimento, rNf.Cd_condfiscal_clifor, rNf.Cd_empresa, ref rCfop, null)) { rItem.Cd_cfop = rCfop.CD_CFOP; rItem.Ds_cfop = rCfop.DS_CFOP; rItem.St_bonificacao = rCfop.St_bonificacaobool; } else { throw new Exception("Não existe CFOP " + (rEndereco.Cd_uf.Trim().Equals("99") ? "internacional" : rEndereco.Cd_uf.Trim().Equals(rEmpresa.rEndereco.Cd_uf.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNf.Cd_movimentacaostring + " condição fiscal do produto "); //+ item.Cd_condfiscal_produto } //Procurar Impostos Estaduais para o Item string vObsFiscal = string.Empty; CamadaDados.Faturamento.NotaFiscal.TList_ImpostosNF lImpUf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf(rNf.Cd_empresa, (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa), (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor), rNf.Cd_movimentacaostring, rNf.Tp_movimento, rNf.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rItem.Vl_subtotal, rItem.Quantidade, ref vObsFiscal, rNf.Dt_emissao, rItem.Cd_produto, rNf.Tp_nota, rNf.Nr_serie, null); if (lImpUf.Exists(v => v.Imposto.St_ICMS)) { CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem); rNf.Obsfiscal += vObsFiscal.Trim(); } else if (CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, rNf.Nr_serie, null)) { throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" + "Tipo Movimento: " + rNf.Tipo_movimento.Trim() + "\r\n" + "Movimentação: " + rNf.Cd_movimentacao.ToString() + "\r\n" + "Cond. Fiscal Clifor: " + rNf.Cd_condfiscal_clifor.Trim() + "\r\n" + "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" + "UF Origem: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_clifor.Trim() : rNf.Uf_empresa.Trim()) + "\r\n" + "UF Destino: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_empresa.Trim() : rNf.Uf_clifor.Trim())); } //Procurar impostos sobre os itens da nota fiscal de destino CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherOutrosImpostos( CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNf.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rNf.Cd_movimentacaostring, rNf.Tp_movimento, rNf.Tp_pessoa, rNf.Cd_empresa, rNf.Nr_serie, rNf.Cd_clifor, rItem.Cd_unidEst, rNf.Dt_emissao, rItem.Quantidade, rItem.Vl_subtotal, rNf.Tp_nota, rNf.Cd_municipioexecservico, null), rItem, rNf.Tp_movimento); rItem.rItemFichaTec = item; rNf.ItensNota.Add(rItem); }); return(rNf); }
public static TRegistro_LanFaturamento GerarDevolucao(TRegistro_LanFaturamento rNf) { CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor Reg_Clifor = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(rNf.Cd_clifor, null); #region Nota Fiscal Devolução TRegistro_LanFaturamento rNfDev = new TRegistro_LanFaturamento(); CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPedido = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_pedido x " + "where x.cfg_pedido = a.cfg_pedido " + "and x.nr_pedido = " + rNf.Nr_pedido.ToString() + ")" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'DV'" } }, 1, string.Empty); if (lCfgPedido.Count > 0) { rNfDev.Cd_empresa = rNf.Cd_empresa; rNfDev.Nr_serie = lCfgPedido[0].Nr_serie; rNfDev.Ds_serienf = lCfgPedido[0].Ds_serienf; rNfDev.Cd_modelo = lCfgPedido[0].Cd_modelo; rNfDev.Cd_movimentacao = lCfgPedido[0].Cd_movto; rNfDev.Cd_cmi = lCfgPedido[0].Cd_cmi; rNfDev.Tp_movimento = lCfgPedido[0].Tp_movimento.ToUpper().Equals("S") ? "E" : "S"; rNfDev.Dt_emissao = CamadaDados.UtilData.Data_Servidor(); rNfDev.Dt_saient = CamadaDados.UtilData.Data_Servidor(); rNfDev.Cd_uf_clifor = rNf.Cd_uf_clifor; rNfDev.Cd_uf_empresa = rNf.Cd_uf_empresa; rNfDev.Cd_condfiscal_clifor = rNf.Cd_condfiscal_clifor; rNfDev.rEndereco = rNf.rEndereco; rNfDev.Cd_clifor = rNf.Cd_clifor; rNfDev.Cd_endereco = rNf.Cd_endereco; rNfDev.Nr_pedido = rNf.Nr_pedido; using (TFNumero_Nota fNumero = new TFNumero_Nota()) { fNumero.Text = "Dados Nota Fiscal Devolução"; fNumero.pCd_empresa = rNf.Cd_empresa; fNumero.pNm_empresa = rNf.Nm_empresa; fNumero.pCd_clifor = rNf.Cd_clifor; fNumero.pNm_clifor = rNf.Nm_clifor; fNumero.pTp_pessoa = rNf.Tp_pessoa; fNumero.pNr_serie = lCfgPedido[0].Nr_serie; fNumero.pDs_serie = lCfgPedido[0].Ds_serienf; fNumero.pCd_modelo = lCfgPedido[0].Cd_modelo; fNumero.pTp_movimento = lCfgPedido[0].Tp_movimento.ToUpper().Equals("S") ? "E" : "S"; fNumero.pNr_notafiscal = string.Empty; fNumero.pDt_emissao = rNfDev.Dt_emissao; fNumero.pDt_saient = rNfDev.Dt_saient; fNumero.pSt_sequenciaauto = lCfgPedido[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S"); fNumero.pCd_movto = rNfDev.Cd_movimentacaostring; fNumero.pCd_cmi = rNfDev.Cd_cmistring; //Buscar insc. estadual origem object obj_inscdestino = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + rNf.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + rNf.Cd_endereco.Trim() + "'" } }, "a.insc_estadual"); if (obj_inscdestino != null) { fNumero.pInsc_estadual = obj_inscdestino.ToString(); } fNumero.pTp_nota = (TCN_LanFaturamento.validarST_Nota(fNumero.pTp_movimento, fNumero.pTp_pessoa, Reg_Clifor.St_equiparado_pjbool, Reg_Clifor.St_agropecuariabool).Equals(0) ? "P" : "T"); if (fNumero.ShowDialog() == DialogResult.OK) { rNfDev.Nr_serie = fNumero.pNr_serie; rNfDev.Tp_pessoa = fNumero.pTp_pessoa; rNfDev.Cd_modelo = fNumero.pCd_modelo; rNfDev.Tp_movimento = fNumero.pTp_movimento; rNfDev.Tp_nota = fNumero.pTp_nota; rNfDev.Dt_emissao = fNumero.pDt_emissao; rNfDev.Dt_saient = fNumero.pDt_saient; rNfDev.Obsfiscal = fNumero.pDs_obsfiscal; rNfDev.Dadosadicionais = fNumero.pDs_dadosadic; rNfDev.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe; if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal)) { rNfDev.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal); } else { rNfDev.Nr_notafiscal = null; } rNfDev.St_sequenciaauto = fNumero.pSt_sequenciaauto; if (rNfDev.Cd_cmistring.Trim() != fNumero.pCd_cmi.Trim()) { CamadaDados.Fiscal.TRegistro_CadCMI rCmi = CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, null)[0]; rNfDev.Cminf.Add(new TRegistro_LanFaturamento_CMI() { St_compdevimposto = rCmi.St_compdevimposto, St_complementar = rCmi.St_complementar, St_devolucao = rCmi.St_devolucao, St_geraestoque = rCmi.St_geraestoque, St_mestra = rCmi.St_mestra, St_simplesremessa = rCmi.St_simplesremessa, St_retorno = rCmi.St_retorno }); rNfDev.Cd_cmistring = fNumero.pCd_cmi; rNfDev.Ds_cmi = rCmi.Ds_cmi; rNfDev.Tp_duplicata = rCmi.Tp_duplicata; rNfDev.Ds_tpduplicata = rCmi.ds_tpduplicata; } //Dados Frete rNfDev.Cd_transportadora = fNumero.pCd_transportadora; rNfDev.Nm_razaosocialtransp = fNumero.pNm_transportadora; rNfDev.Cpf_transp = fNumero.pCnpjCpfTransp; rNfDev.Cd_enderecotransp = fNumero.pCd_endtransportadora; rNfDev.Especie = fNumero.pEspecie; rNfDev.Placaveiculo = fNumero.pPlacaVeiculo; rNfDev.Freteporconta = fNumero.pTp_frete; rNfDev.Vl_frete = fNumero.pVl_frete; rNfDev.Quantidade = fNumero.pQuantidade; rNfDev.Pesobruto = fNumero.pPsbruto; rNfDev.Pesoliquido = fNumero.pPsliquido; //Dados Exportacao rNfDev.Cd_ufsaidaex = fNumero.pCd_ufsaidaex; rNfDev.Ds_ufsaidaex = fNumero.pDs_ufsaidaex; rNfDev.Uf_saidaex = fNumero.pUf_saidaex; rNfDev.Ds_localex = fNumero.pDs_localex; } else { throw new Exception("Obrigatorio informar numero da nota fiscal de destino."); } } } else { throw new Exception("Não existe configuração fiscal Devolução para tipo de pedido!"); } //Itens da Nota rNf.ItensNota.FindAll(p => p.St_processar).ForEach(item => { //Item da nota fiscal TRegistro_LanFaturamento_Item rItem = new TRegistro_LanFaturamento_Item(); rItem.Cd_empresa = item.Cd_empresa; rItem.Nr_pedido = item.Nr_pedido; rItem.Id_pedidoitem = item.Id_pedidoitem; rItem.Cd_produto = item.Cd_produto; rItem.Cd_local = item.Cd_local; rItem.Cd_condfiscal_produto = item.Cd_condfiscal_produto; rItem.Cd_unidade = item.Cd_unidade; rItem.Cd_unidEst = item.Cd_unidade; rItem.Quantidade = item.Qtd_devolver; rItem.Quantidade_estoque = item.Qtd_devolver; rItem.Vl_subtotal = item.Qtd_devolver * item.Vl_unitario; rItem.Vl_subtotal_estoque = item.Qtd_devolver * item.Vl_unitario; rItem.Vl_unitario = item.Vl_unitario; rItem.Vl_desconto = (item.Vl_desconto / item.Quantidade) * item.Qtd_devolver; rItem.Vl_juro_fin = (item.Vl_juro_fin / item.Quantidade) * item.Qtd_devolver; //Buscar cfop do item CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null; if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNfDev.Cd_movimentacaostring, item.Cd_condfiscal_produto, rNfDev.rEndereco.Cd_uf.Trim().Equals("99") ? "I" : rNfDev.Cd_uf_clifor.Trim().Equals(rNfDev.Cd_uf_empresa.Trim()) ? "D" : "F", (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_clifor : rNfDev.Cd_uf_empresa), (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_empresa : rNfDev.Cd_uf_clifor), rNfDev.Tp_movimento, rNfDev.Cd_condfiscal_clifor, rItem.Cd_empresa, ref rCfop, null)) { rItem.Cd_cfop = rCfop.CD_CFOP; rItem.Ds_cfop = rCfop.DS_CFOP; rItem.St_bonificacao = rCfop.St_bonificacaobool; } else { throw new Exception("Não existe CFOP " + (rNf.rEndereco.Cd_uf.Trim().Equals("99") ? "internacional" : rNf.rEndereco.Cd_uf.Trim().Equals(rNf.rEndereco.Cd_uf.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNf.Cd_movimentacaostring + " condição fiscal do produto " + item.Cd_condfiscal_produto); } //Procurar Impostos Estaduais para o Item string vObsFiscal = string.Empty; TList_ImpostosNF lImpUf = TCN_LanFaturamento_Item.procuraImpostosPorUf(rItem.Cd_empresa, (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa), (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor), rNfDev.Cd_movimentacaostring, rNfDev.Tp_movimento, rNfDev.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rItem.Vl_subtotal, rItem.Quantidade, ref vObsFiscal, rNfDev.Dt_emissao, rItem.Cd_produto, rNfDev.Tp_nota, rNfDev.Nr_serie, null); if (lImpUf.Exists(v => v.Imposto.St_ICMS)) { TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem); rNf.Obsfiscal += vObsFiscal.Trim(); } else if (TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, rNf.Nr_serie, null)) { throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" + "Tipo Movimento: " + rNfDev.Tp_movimento + "\r\n" + "Movimentação: " + rNfDev.Cd_movimentacao.ToString() + "\r\n" + "Cond. Fiscal Clifor: " + rNfDev.Cd_condfiscal_clifor.Trim() + "\r\n" + "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" + "UF Origem: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_clifor.Trim() : rNf.Uf_empresa.Trim()) + "\r\n" + "UF Destino: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_empresa.Trim() : rNf.Uf_clifor.Trim())); } //Procurar impostos sobre os itens da nota fiscal de destino TCN_LanFaturamento_Item.PreencherOutrosImpostos( TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNf.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rNfDev.Cd_movimentacaostring, rNfDev.Tp_movimento, rNfDev.Tp_pessoa, rNfDev.Cd_empresa, rNfDev.Nr_serie, rNfDev.Cd_clifor, rItem.Cd_unidEst, rNfDev.Dt_emissao, rItem.Quantidade, rItem.Vl_subtotal, rNfDev.Tp_nota, rNf.Cd_municipioexecservico, null), rItem, rNfDev.Tp_movimento); // Formar Itens a devolver rItem.lNfcompdev.Add(new TRegistro_LanFat_ComplementoDevolucao() { Cd_empresa = item.Cd_empresa, Nr_notafiscal_origem = rNf.Nr_notafiscal, Nr_serie_origem = rNf.Nr_serie, Nr_lanctofiscal_origem = rNf.Nr_lanctofiscal, Id_nfitem_origem = item.Id_nfitem, Qtd_lancto = item.Qtd_devolver, Vl_lancto = item.Quantidade * item.Vl_unitario, Tp_operacao = "D" }); //Observação do Item com os dados das notas de orig rItem.Observacao_item += "NF/Serie Origem Quantidade Valor(R$)\r\n" + (rNf.Nr_notafiscalstr + rNf.Nr_serie).FormatStringDireita(21, ' ') + item.Qtd_devolver.ToString("N3", new System.Globalization.CultureInfo("en-US", true)) + rItem.Sigla_unidade_estoque.Trim().FormatStringDireita(15, ' ') + decimal.Multiply(item.Quantidade, item.Vl_unitario).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringDireita(12, ' ') + "\r\n"; rNfDev.ItensNota.Add(rItem); }); return(rNfDev); #endregion }
public static CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento ProcessarNfDevolucao(string Cd_clifor, List <CamadaDados.Faturamento.PDV.TRegistro_ItensCondicional> lItens) { if (new CamadaDados.Faturamento.Cadastros.TCD_CFGCupomFiscal().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + lItens[0].Cd_empresa.Trim() + "'" } }, "a.cfg_pedcondicional") == null) { throw new Exception("Não existe configuração para emitir NF Condicional para a empresa " + lItens[0].Cd_empresa.Trim()); } //Buscar configuracao fiscal do pedido CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPed = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_PDV_CFGCupomFiscal x " + "where a.cfg_pedido = x.cfg_pedcondicional " + "and x.cd_empresa = '" + lItens[0].Cd_empresa.Trim() + "')" }, new Utils.TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'DV'" } }, 1, string.Empty); if (lCfgPed.Count.Equals(0)) { throw new Exception("Não existe configuração fiscal de devolução para o tipo pedido condicional."); } //Objeto Nota Fiscal CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNf = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento(); //Buscar registro empresa CamadaDados.Diversos.TRegistro_CadEmpresa rEmpresa = CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(lItens[0].Cd_empresa, string.Empty, string.Empty, null)[0]; rNf.Cd_empresa = rEmpresa.Cd_empresa; rNf.Cd_uf_empresa = rEmpresa.rEndereco.Cd_uf; rNf.Uf_empresa = rEmpresa.rEndereco.UF; //Buscar registro clifor CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rCliente = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(Cd_clifor, null); rNf.Cd_clifor = rCliente.Cd_clifor; rNf.Cd_condfiscal_clifor = rCliente.Cd_condfiscal_clifor; //Buscar endereco cliente CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco rEndereco = CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(Cd_clifor, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, null)[0]; rNf.Cd_endereco = rEndereco.Cd_endereco; rNf.Cd_uf_clifor = rEndereco.Cd_uf; rNf.Uf_clifor = rEndereco.UF; rNf.Cd_cmi = lCfgPed[0].Cd_cmi; rNf.Cd_movimentacao = lCfgPed[0].Cd_movto; rNf.lCFGFiscal = lCfgPed; rNf.Tp_duplicata = lCfgPed[0].Tp_duplicata; rNf.Ds_tpduplicata = lCfgPed[0].Ds_tpduplicata; rNf.Cd_condpgto = lCfgPed[0].CD_CondPgto; rNf.Tp_movimento = "E"; rNf.Tp_pessoa = rCliente.Tp_pessoa; rNf.Tp_nota = (rNf.Tp_pessoa.Trim().ToUpper().Equals("J") && rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? "T" : "P"); rNf.Nr_serie = lCfgPed[0].Nr_serie; rNf.Cd_modelo = lCfgPed[0].Cd_modelo; rNf.St_sequenciaauto = lCfgPed[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S"); rNf.Dt_emissao = CamadaDados.UtilData.Data_Servidor(); rNf.Dt_saient = rNf.Dt_emissao; rNf.Dadosadicionais = ProcessaAplicacao.BuscarObsMov("D", rNf.Cd_movimentacaostring, rEndereco.UF.Trim().Equals(rEmpresa.rEndereco.UF.Trim())); rNf.Obsfiscal = ProcessaAplicacao.BuscarObsMov("F", rNf.Cd_movimentacaostring, rEndereco.UF.Trim().Equals(rEmpresa.rEndereco.UF.Trim())); //Abrir tela para capturar dados da nota fiscal using (NumeroNota.TFNumero_Nota fNumero = new NumeroNota.TFNumero_Nota()) { fNumero.pCd_empresa = rNf.Cd_empresa; fNumero.pNm_empresa = rNf.Nm_empresa; fNumero.pCd_clifor = rNf.Cd_clifor; fNumero.pNm_clifor = rNf.Nm_clifor; fNumero.pTp_pessoa = rNf.Tp_pessoa; fNumero.pTp_movimento = rNf.Tp_movimento; fNumero.pTp_nota = rNf.Tp_nota; fNumero.pChave_Acesso_NFe = rNf.Chave_acesso_nfe; fNumero.pNr_serie = rNf.Nr_serie; fNumero.pDs_serie = rNf.Ds_serienf; fNumero.pCd_modelo = rNf.Cd_modelo; fNumero.pDt_emissao = rNf.Dt_emissao; fNumero.pST_NotaUnica = false; fNumero.pNr_notafiscal = rNf.Nr_notafiscal.HasValue ? rNf.Nr_notafiscal.Value.ToString() : string.Empty; fNumero.pDt_saient = rNf.Dt_saient; fNumero.pDs_dadosadic = rNf.Dadosadicionais; fNumero.pDs_obsfiscal = rNf.Obsfiscal; fNumero.pSt_sequenciaauto = rNf.St_sequenciaauto; fNumero.pCd_movto = rNf.Cd_movimentacaostring; fNumero.pCd_cmi = rNf.Cd_cmistring; if (rNf.Tp_nota.Trim().ToUpper().Equals("T")) { fNumero.pInsc_estadual = rEndereco.Insc_estadual; } if (fNumero.ShowDialog() == System.Windows.Forms.DialogResult.OK) { rNf.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe; if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal)) { rNf.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal); } else { rNf.Nr_notafiscal = null; } rNf.Tp_nota = fNumero.pTp_nota; rNf.Nr_serie = fNumero.pNr_serie; rNf.Cd_modelo = fNumero.pCd_modelo; rNf.Dt_emissao = fNumero.pDt_emissao; rNf.Dt_saient = fNumero.pDt_saient; rNf.Obsfiscal = fNumero.pDs_obsfiscal; rNf.Dadosadicionais = fNumero.pDs_dadosadic; rNf.Cd_transportadora = fNumero.pCd_transportadora; rNf.Nm_razaosocialtransp = fNumero.pNm_transportadora; rNf.Cpf_transp = fNumero.pCnpjCpfTransp; rNf.Placaveiculo = fNumero.pPlacaVeiculo; rNf.Tp_frete = fNumero.pTp_frete; rNf.Especie = fNumero.pEspecie; rNf.Quantidade = fNumero.pQuantidade; rNf.Pesobruto = fNumero.pPsbruto; rNf.Pesoliquido = fNumero.pPsliquido; rNf.Vl_frete = fNumero.pVl_frete; if (rNf.Cd_cmistring.Trim() != fNumero.pCd_cmi.Trim()) { CamadaDados.Fiscal.TRegistro_CadCMI rCmi = CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, null)[0]; rNf.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_CMI() { St_compdevimposto = rCmi.St_compdevimposto, St_complementar = rCmi.St_complementar, St_devolucao = rCmi.St_devolucao, St_geraestoque = rCmi.St_geraestoque, St_mestra = rCmi.St_mestra, St_simplesremessa = rCmi.St_simplesremessa, St_retorno = rCmi.St_retorno }); rNf.Cd_cmistring = fNumero.pCd_cmi; rNf.Ds_cmi = rCmi.Ds_cmi; rNf.Tp_duplicata = rCmi.Tp_duplicata; rNf.Ds_tpduplicata = rCmi.ds_tpduplicata; } } else { throw new Exception("Obrigatorio informar numero da nota fiscal."); } } if (rNf.Nr_notafiscal.HasValue) { CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.existeNumeroNota(rNf.Nr_notafiscal.ToString(), rNf.Nr_serie, rNf.Cd_empresa, rNf.Cd_clifor, string.Empty, rNf.Tp_nota, null); if (rFat != null) { if (rFat.St_registro.Trim().ToUpper().Equals("C")) { throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra cancelada.\r\n" + "Para poder utilizar o mesmo numero e necessario excluir a nota fiscal cancelada.\r\n" + "Dica: Menu FATURAMENTO->Emissão de Notas Fiscais / NFe, localize a nota fiscal cancelada e exclua a mesma.\r\n" + "Obs.: Para excluir a nota fiscal cancelada é necessario que o usuario tenha permissão."); } else { throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra ativa.\r\n" + "Não é permitido gerar nota fiscal com mesmo numero."); } } } //Itens da Nota lItens.ForEach(item => { //Item da nota fiscal CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item rItem = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item(); rItem.Cd_empresa = item.Cd_empresa; rItem.Cd_produto = item.Cd_produto; rItem.Cd_local = item.Cd_local; rItem.Cd_condfiscal_produto = item.Cd_condfiscal_produto; rItem.Cd_unidade = item.Cd_unidade; rItem.Cd_unidEst = item.Cd_unidade; rItem.Quantidade = item.Qtd_devolver; rItem.Quantidade_estoque = item.Qtd_devolver; rItem.Vl_subtotal = item.Qtd_devolver * item.Vl_unitario; rItem.Vl_subtotal_estoque = item.Qtd_devolver * item.Vl_unitario; rItem.Vl_unitario = item.Vl_unitario; rItem.Pc_imposto_Aprox = item.Pc_aprox_imposto; //Buscar cfop do item CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null; if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNf.Cd_movimentacaostring, item.Cd_condfiscal_produto, rEndereco.Cd_uf.Trim().Equals("99") ? "I" : rEndereco.Cd_uf.Trim().Equals(rEmpresa.rEndereco.Cd_uf.Trim()) ? "D" : "F", (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa), (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor), rNf.Tp_movimento, rNf.Cd_condfiscal_clifor, rNf.Cd_empresa, ref rCfop, null)) { rItem.Cd_cfop = rCfop.CD_CFOP; rItem.Ds_cfop = rCfop.DS_CFOP; rItem.St_bonificacao = rCfop.St_bonificacaobool; } else { throw new Exception("Não existe CFOP " + (rEndereco.Cd_uf.Trim().Equals("99") ? "internacional" : rEndereco.Cd_uf.Trim().Equals(rEmpresa.rEndereco.Cd_uf.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNf.Cd_movimentacaostring + " condição fiscal do produto " + item.Cd_condfiscal_produto); } //Procurar Impostos Estaduais para o Item string vObsFiscal = string.Empty; CamadaDados.Faturamento.NotaFiscal.TList_ImpostosNF lImpUf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf(rNf.Cd_empresa, (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa), (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor), rNf.Cd_movimentacaostring, rNf.Tp_movimento, rNf.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rItem.Vl_subtotal, rItem.Quantidade, ref vObsFiscal, rNf.Dt_emissao, rItem.Cd_produto, rNf.Tp_nota, rNf.Nr_serie, null); if (lImpUf.Exists(v => v.Imposto.St_ICMS)) { CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem); rNf.Obsfiscal += vObsFiscal.Trim(); } else if (CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, rNf.Nr_serie, null)) { throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" + "Tipo Movimento: " + rNf.Tipo_movimento.Trim() + "\r\n" + "Movimentação: " + rNf.Cd_movimentacao.ToString() + "\r\n" + "Cond. Fiscal Clifor: " + rNf.Cd_condfiscal_clifor.Trim() + "\r\n" + "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" + "UF Origem: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_clifor.Trim() : rNf.Uf_empresa.Trim()) + "\r\n" + "UF Destino: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_empresa.Trim() : rNf.Uf_clifor.Trim())); } //Procurar impostos sobre os itens da nota fiscal de destino CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherOutrosImpostos( CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNf.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rNf.Cd_movimentacaostring, rNf.Tp_movimento, rNf.Tp_pessoa, rNf.Cd_empresa, rNf.Nr_serie, rNf.Cd_clifor, rItem.Cd_unidEst, rNf.Dt_emissao, rItem.Quantidade, rItem.Vl_subtotal, rNf.Tp_nota, rNf.Cd_municipioexecservico, null), rItem, rNf.Tp_movimento); //Buscar lista de itens nf com saldo para devolver List <CamadaDados.Faturamento.NotaFiscal.TRegistro_NFCompDev> lItenDev = new CamadaDados.Faturamento.NotaFiscal.TCD_LanFat_ComplementoDevolucao().SelectNFCompDev( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_pdv_itenscondicional_x_nfitem x " + "where x.cd_empresa = a.cd_empresa " + "and x.nr_lanctofiscal = a.nr_lanctofiscal " + "and x.id_nfitem = a.id_nfitem " + "and x.cd_empresa = '" + item.Cd_empresa.Trim() + "' " + "and x.id_condicional = " + item.Id_condicionalstr + " " + "and x.id_item = " + item.Id_itemstr + ")" }, new Utils.TpBusca() { vNM_Campo = "a.quantidade - a.qtd_devolvido", vOperador = ">", vVL_Busca = "0" }, new Utils.TpBusca() { vNM_Campo = "a.tp_movimento", vOperador = "=", vVL_Busca = "'S'" } }); if (lItenDev.Count.Equals(0)) { throw new Exception("Não existe NF com saldo disponivel para gerar NF de devolução."); } if (lItenDev.Sum(p => p.Quantidade - p.Qtd_devolvido) < item.Qtd_devolver) { throw new Exception("Não existe saldo NF suficiente para gerar NF de devolução."); } decimal saldo_devolver = item.Qtd_devolver; StringBuilder obs = null; foreach (CamadaDados.Faturamento.NotaFiscal.TRegistro_NFCompDev r in lItenDev) { if (saldo_devolver > decimal.Zero) { rItem.lNfcompdev.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFat_ComplementoDevolucao() { Cd_empresa = r.Cd_empresa, Nr_notafiscal_origem = r.Nr_notafiscal, Nr_serie_origem = r.Nr_serie, Nr_lanctofiscal_origem = r.Nr_lanctofiscal, Id_nfitem_origem = r.Id_nfitem, Qtd_lancto = (r.Quantidade - r.Qtd_devolvido > saldo_devolver ? saldo_devolver : r.Quantidade - r.Qtd_devolvido), Vl_lancto = (r.Quantidade - r.Qtd_devolvido > saldo_devolver ? saldo_devolver : r.Quantidade - r.Qtd_devolvido) * item.Vl_unitario, Tp_operacao = "D" }); //Observação do Item com os dados das notas de origem obs = new StringBuilder(); obs.Append((r.Nr_notafiscal.ToString() + "/" + r.Nr_serie).PadRight(21, ' ') + ((r.Quantidade - r.Qtd_devolvido > saldo_devolver ? saldo_devolver : r.Quantidade - r.Qtd_devolvido).ToString("N3", new System.Globalization.CultureInfo("en-US", true))).PadRight(15, ' ') + ((r.Quantidade - r.Qtd_devolvido > saldo_devolver ? saldo_devolver : r.Quantidade - r.Qtd_devolvido) * item.Vl_unitario).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).PadRight(12, ' ') + "\r\n"); saldo_devolver -= (r.Quantidade - r.Qtd_devolvido > saldo_devolver ? saldo_devolver : r.Quantidade - r.Qtd_devolvido); } } if (!string.IsNullOrEmpty(obs.ToString())) { rItem.Observacao_item = "NF/Serie Origem Quantidade Valor(R$)\r\n" + obs.ToString(); } rItem.rItemCondicional = item; rNf.ItensNota.Add(rItem); }); return(rNf); }
private void bsFichaTec_PositionChanged(object sender, EventArgs e) { if (bsImpostos.Count <= 0) { CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor clifor = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo((bsOrcamento.Current as TRegistro_Orcamento).Cd_clifor, null); object cd_cidade = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = (bsOrcamento.Current as TRegistro_Orcamento).Cd_clifor }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = (bsOrcamento.Current as TRegistro_Orcamento).Cd_endereco } }, "a.cd_cidade"); object uf_clifor = new CamadaDados.Financeiro.Cadastros.TCD_CadCidade().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_cidade", vOperador = "=", vVL_Busca = cd_cidade.ToString() } }, "a.cd_uf"); object uf_empresa = new CamadaDados.Diversos.TCD_CadEmpresa().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = (bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa } }, "c.cd_uf"); CamadaDados.Estoque.Cadastros.TRegistro_CadProduto prod = CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Busca_Produto_Codigo((bsFichaTec.Current as TRegistro_FichaTec).Cd_produto, null); string vObsFiscal = string.Empty; (bsFichaTec.Current as TRegistro_FichaTec).lImpostos = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf((bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa, uf_empresa.ToString(), uf_clifor.ToString(), (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Cd_movtostring, (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Tp_movimento, clifor.Cd_condfiscal_clifor, prod.CD_CondFiscal_Produto, decimal.Zero, (bsFichaTec.Current as TRegistro_FichaTec).Quantidade, ref vObsFiscal, dt_emissao.Data, (bsFichaTec.Current as TRegistro_FichaTec).Cd_produto, "P", (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Nr_serie, null); (bsFichaTec.Current as TRegistro_FichaTec).lImpostos.Concat( CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(clifor.Cd_condfiscal_clifor, prod.CD_CondFiscal_Produto, (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Cd_movtostring, (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Tp_movimento, clifor.Tp_pessoa, (bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa, (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Cfg_pedido, clifor.Cd_clifor, prod.CD_Unidade, dt_emissao.Data, (bsFichaTec.Current as TRegistro_FichaTec).Quantidade, decimal.Zero, "P", (bsOrcamento.Current as TRegistro_Orcamento).Cd_cidadeemp, null)); } (bsFichaTec.Current as TRegistro_FichaTec).lImpostos.ForEach(p => { p.Vl_basecalc = (bsFichaTec.Current as TRegistro_FichaTec).Vl_subtotal; CamadaNegocio.Faturamento.NotaFiscal.TCN_ImpostosNF.CalcValorImposto(p, p.Vl_basecalc, false); }); bsFichaTec.ResetCurrentItem(); }
private void ImprimirReduzido(TRegistro_PreVenda val, string porta, string Tp_impressora) { //Buscar dados da empresa CamadaDados.Diversos.TList_CadEmpresa lEmpresa = CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(val.Cd_empresa, string.Empty, string.Empty, null); if (lEmpresa.Count < 1) { throw new Exception("Não foi possivel localizar empresa " + val.Cd_empresa); } if (!string.IsNullOrEmpty(Tp_impressora)) { PDV.TGerenciarImpNaoFiscal.IniciarPorta(porta); try { StringBuilder imp = new StringBuilder(); imp.AppendLine(" PRÉ-VENDA N: " + val.Id_prevendastr + " " + val.Dt_emissaostr); imp.AppendLine(" ========================================="); imp.AppendLine(" DADOS EMPRESA "); imp.AppendLine(" ========================================="); imp.AppendLine(" " + lEmpresa[0].Nm_empresa.Trim().ToUpper()); imp.AppendLine(" " + lEmpresa[0].Ds_endereco.Trim().ToUpper() + "," + lEmpresa[0].rEndereco.Numero); imp.AppendLine(" " + lEmpresa[0].rEndereco.Bairro.Trim().ToUpper()); imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" DADOS CLIENTE "); imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" " + val.Cd_clifor.Trim() + "-" + val.Nm_clifor.Trim().ToUpper()); //Buscar clifor config object obj_clifor = new CamadaDados.Faturamento.Cadastros.TCD_CFGCupomFiscal().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" } }, "a.cd_clifor"); if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor))) { //Buscar dados cliente CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rCliente = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(val.Cd_clifor, null); if (!string.IsNullOrEmpty(rCliente.Nm_fantasia)) { imp.Append(" " + rCliente.Nm_fantasia.Trim().ToUpper()); } if (rCfg.St_impcpfcnpjbool) { if ((!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero())) || (!string.IsNullOrEmpty(rCliente.Nr_cpf.SoNumero()))) { imp.AppendLine(" CNPJ/CPF: " + (!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero()) ? rCliente.Nr_cgc : rCliente.Nr_cpf)); } } } imp.Append(" " + val.Ds_endereco.Trim().ToUpper()); if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor))) { //Buscar Endereco do cliente CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEndereco = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + val.Cd_endereco.Trim() + "'" } }, 0, string.Empty); if (lEndereco.Count > 0) { if (!string.IsNullOrEmpty(lEndereco[0].Numero)) { imp.AppendLine(", " + lEndereco[0].Numero.Trim().ToUpper()); } if (!string.IsNullOrEmpty(lEndereco[0].Bairro)) { imp.AppendLine(" " + lEndereco[0].Bairro.Trim().ToUpper()); } if (!string.IsNullOrEmpty(lEndereco[0].DS_Cidade)) { imp.AppendLine(" " + lEndereco[0].DS_Cidade.Trim().ToUpper() + " - " + lEndereco[0].UF); } if (!string.IsNullOrEmpty(lEndereco[0].Fone.SoNumero())) { imp.AppendLine(" " + lEndereco[0].Fone.Trim().ToUpper() + (!string.IsNullOrEmpty(lEndereco[0].Celular.SoNumero()) ? "/" + lEndereco[0].Celular.Trim().ToUpper() : string.Empty)); } if (!string.IsNullOrEmpty(lEndereco[0].Cep.SoNumero())) { imp.AppendLine(" CEP: " + lEndereco[0].Cep); } if (!string.IsNullOrEmpty(lEndereco[0].Proximo)) { imp.AppendLine(" " + lEndereco[0].Proximo.Trim().ToUpper()); } } } else { imp.AppendLine(); imp.AppendLine(); } if (!string.IsNullOrEmpty(val.Nm_vendedor)) { imp.AppendLine((" VENDEDOR: " + val.Nm_vendedor.Trim()).FormatStringDireita(42, ' ')); } imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" PRODUTO QTD VAL.UNIT SUBTOTAL"); imp.AppendLine(" -----------------------------------------"); val.lItens.ForEach(p => { imp.AppendLine(" " + (p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim().ToUpper())); imp.Append(p.Quantidade.ToString("N3", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(13, ' ') + "x"); imp.Append(p.Vl_unitario.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(14, ' ')); imp.Append(p.Vl_subtotal.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(10, ' ')); imp.AppendLine(); if (p.Vl_desconto > decimal.Zero) { imp.AppendLine(" DESCONTO: " + p.Vl_desconto.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } if (p.Vl_acrescimo > decimal.Zero) { imp.AppendLine(" ACRESCIMO: " + p.Vl_acrescimo.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } if (p.Vl_juro_fin > decimal.Zero) { imp.AppendLine(" JURO FIN.: " + p.Vl_juro_fin.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } }); imp.Append(" -----------------------------------------------"); imp.Append(" ACRESCIMOS JUROS FIN. FRETE DESCONTO LIQUIDO"); imp.Append(val.lItens.Sum(p => p.Vl_acrescimo).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(12, ' ')); imp.Append(val.lItens.Sum(p => p.Vl_juro_fin).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(11, ' ')); imp.Append(val.lItens.Sum(p => p.Vl_frete).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(7, ' ')); imp.Append(val.lItens.Sum(p => p.Vl_desconto).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' ')); imp.AppendLine(val.lItens.Sum(p => p.Vl_liquido).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' ')); imp.AppendLine(" -------------------------------------------"); if (!string.IsNullOrEmpty(val.Cd_portador)) { imp.AppendLine(" FORMA PGTO : " + val.Cd_portador.Trim() + "-" + val.Ds_portador.Trim()); } //Buscar Parcelas TList_PreVenda_DT_Vencto lParc = CamadaNegocio.Faturamento.PDV.TCN_PreVenda_DT_Vencto.Buscar(val.Id_prevendastr, val.Cd_empresa, null); if (lParc.Count > 0) { imp.AppendLine(" COND.PGTO : " + val.Cd_condPgto.Trim() + "-" + val.Ds_condPgto.Trim()); imp.AppendLine(" VENCIMENTO VALOR "); lParc.OrderBy(p => p.Dt_vencto).ToList().ForEach(p => imp.AppendLine(" " + p.Dt_vencto.ToString("dd/MM/yyyy").FormatStringDireita(20, ' ') + p.Vl_parcela.ToString("C2", new System.Globalization.CultureInfo("pt-BR")))); imp.AppendLine(); imp.AppendLine(); } imp.AppendLine(); imp.AppendLine(); imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" Cliente "); imp.AppendLine(); imp.AppendLine(); //Imprimir observacao cupom if (!string.IsNullOrEmpty(val.Ds_observacao)) { string obs = val.Ds_observacao.Trim(); imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" OBSERVAÇÕES "); imp.AppendLine(" -----------------------------------------"); while (true) { if (obs.Length <= 40) { imp.AppendLine(" " + obs); break; } else { imp.AppendLine(" " + obs.Substring(0, 40)); obs = obs.Remove(0, 40); } } } imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" Este recibo nao tem valor Fiscal "); imp.AppendLine(); imp.AppendLine(); imp.AppendLine(); imp.AppendLine(); imp.AppendLine(); PDV.TGerenciarImpNaoFiscal.Texto(imp.ToString()); PDV.TGerenciarImpNaoFiscal.Guilhotina(); } catch (Exception ex) { MessageBox.Show("Erro: " + ex.Message.Trim()); } finally { PDV.TGerenciarImpNaoFiscal.FecharPorta(); } } else { System.IO.FileInfo f = null; System.IO.StreamWriter w = null; f = new System.IO.FileInfo(System.IO.Path.GetTempPath() + System.IO.Path.DirectorySeparatorChar + "Orcamento.txt"); w = f.CreateText(); try { w.WriteLine(" PRÉ-VENDA N: " + val.Id_prevendastr + " " + val.Dt_emissaostr); w.WriteLine(" ========================================="); w.WriteLine(" DADOS EMPRESA "); w.WriteLine(" ========================================="); w.WriteLine(" " + lEmpresa[0].Nm_empresa.Trim().ToUpper()); w.WriteLine(" " + lEmpresa[0].Ds_endereco.Trim().ToUpper() + "," + lEmpresa[0].rEndereco.Numero); w.WriteLine(" " + lEmpresa[0].rEndereco.Bairro.Trim().ToUpper()); w.WriteLine(" -----------------------------------------"); w.WriteLine(" DADOS CLIENTE "); w.WriteLine(" -----------------------------------------"); w.WriteLine(" " + val.Cd_clifor.Trim() + "-" + val.Nm_clifor.Trim().ToUpper()); object obj_clifor = new CamadaDados.Faturamento.Cadastros.TCD_CFGCupomFiscal().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" } }, "a.cd_clifor"); if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor))) { //Buscar dados cliente CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rCliente = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(val.Cd_clifor, null); if (!string.IsNullOrEmpty(rCliente.Nm_fantasia)) { w.WriteLine(" " + rCliente.Nm_fantasia.Trim().ToUpper()); } if (rCfg.St_impcpfcnpjbool) { if ((!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero())) || (!string.IsNullOrEmpty(rCliente.Nr_cpf.SoNumero()))) { w.WriteLine(" CNPJ/CPF: " + (!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero()) ? rCliente.Nr_cgc : rCliente.Nr_cpf)); } } } w.Write(" " + val.Ds_endereco.Trim().ToUpper()); if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor))) { //Buscar Endereco do cliente CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEndereco = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + val.Cd_endereco.Trim() + "'" } }, 0, string.Empty); if (lEndereco.Count > 0) { if (!string.IsNullOrEmpty(lEndereco[0].Numero)) { w.WriteLine(", " + lEndereco[0].Numero.Trim().ToUpper()); } if (!string.IsNullOrEmpty(lEndereco[0].Bairro)) { w.WriteLine(" " + lEndereco[0].Bairro.Trim().ToUpper()); } if (!string.IsNullOrEmpty(lEndereco[0].DS_Cidade)) { w.WriteLine(" " + lEndereco[0].DS_Cidade.Trim().ToUpper() + " - " + lEndereco[0].UF); } if (!string.IsNullOrEmpty(lEndereco[0].Fone.SoNumero())) { w.WriteLine(" " + lEndereco[0].Fone.Trim().ToUpper() + (!string.IsNullOrEmpty(lEndereco[0].Celular.SoNumero()) ? "/" + lEndereco[0].Celular.Trim().ToUpper() : string.Empty)); } if (!string.IsNullOrEmpty(lEndereco[0].Cep.SoNumero())) { w.WriteLine(" CEP: " + lEndereco[0].Cep); } if (!string.IsNullOrEmpty(lEndereco[0].Proximo)) { w.WriteLine(" " + lEndereco[0].Proximo.Trim().ToUpper()); } } } else { w.WriteLine(); w.WriteLine(); } if (!string.IsNullOrEmpty(val.Nm_vendedor)) { w.WriteLine((" VENDEDOR: " + val.Nm_vendedor.Trim()).FormatStringDireita(42, ' ')); } w.WriteLine(" -----------------------------------------"); w.WriteLine(" PRODUTO QTD VAL.UNIT SUBTOTAL"); w.WriteLine(" -----------------------------------------"); val.lItens.ForEach(p => { w.WriteLine(" " + (p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim().ToUpper())); w.Write(p.Quantidade.ToString("N3", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(13, ' ') + "x"); w.Write(p.Vl_unitario.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(14, ' ')); w.Write(p.Vl_subtotal.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(10, ' ')); w.WriteLine(); if (p.Vl_desconto > decimal.Zero) { w.WriteLine(" DESCONTO: " + p.Vl_desconto.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } if (p.Vl_acrescimo > decimal.Zero) { w.WriteLine(" ACRESCIMO: " + p.Vl_acrescimo.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } if (p.Vl_juro_fin > decimal.Zero) { w.WriteLine(" JURO FIN.: " + p.Vl_juro_fin.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } }); w.WriteLine(" -----------------------------------------"); w.WriteLine(" ACRESCIMOS JUROS FIN. DESCONTO LIQUIDO "); w.Write(val.lItens.Sum(p => p.Vl_acrescimo).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(12, ' ')); w.Write(val.lItens.Sum(p => p.Vl_juro_fin).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(11, ' ')); w.Write(val.lItens.Sum(p => p.Vl_desconto).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' ')); w.WriteLine(val.lItens.Sum(p => p.Vl_liquido).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' ')); w.WriteLine(" -----------------------------------------"); if (!string.IsNullOrEmpty(val.Cd_portador)) { w.WriteLine(" FORMA PGTO : " + val.Cd_portador.Trim() + "-" + val.Ds_portador.Trim()); } //Buscar Parcelas TList_PreVenda_DT_Vencto lParc = CamadaNegocio.Faturamento.PDV.TCN_PreVenda_DT_Vencto.Buscar(val.Id_prevendastr, val.Cd_empresa, null); if (lParc.Count > 0) { w.WriteLine(" COND.PGTO : " + val.Cd_condPgto.Trim() + "-" + val.Ds_condPgto.Trim()); w.WriteLine(" VENCIMENTO VALOR "); lParc.OrderBy(p => p.Dt_vencto).ToList().ForEach(p => w.WriteLine(" " + p.Dt_vencto.ToString("dd/MM/yyyy").FormatStringDireita(20, ' ') + p.Vl_parcela.ToString("C2", new System.Globalization.CultureInfo("pt-BR")))); w.WriteLine(); w.WriteLine(); } w.WriteLine(); w.WriteLine(); w.WriteLine(" -----------------------------------------"); w.WriteLine(" Cliente "); w.WriteLine(); w.WriteLine(); //Imprimir observacao cupom if (!string.IsNullOrEmpty(val.Ds_observacao)) { string obs = val.Ds_observacao.Trim(); w.WriteLine("Observacoes".FormatStringDireita(42, '-')); while (true) { if (obs.Length <= 40) { w.WriteLine(" " + obs); break; } else { w.WriteLine(" " + obs.Substring(0, 40)); obs = obs.Remove(0, 40); } } } w.WriteLine(" -----------------------------------------"); w.WriteLine(" Este recibo nao tem valor Fiscal "); w.Write(Convert.ToChar(27)); w.Write(Convert.ToChar(109)); w.Flush(); decimal copias = CamadaNegocio.ConfigGer.TCN_CadParamGer.VlNumericoEmpresa("QTD_VIA_REC_ECF", val.Cd_empresa, null); if (copias.Equals(decimal.Zero)) { copias = 1; } for (int i = 0; i < copias; i++) { f.CopyTo(porta); } } catch (Exception ex) { throw new Exception("Erro na impressao: " + ex.Message.Trim()); } finally { w.Dispose(); f = null; } } }
private void btn_CorrigirEndereco_Click(object sender, EventArgs e) { if (dsBloqueto.Current != null) { //Buscar cadastro cliente CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rClifor = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo((dsBloqueto.Current as CamadaDados.Financeiro.Bloqueto.blTitulo).Cd_sacado, null); //Buscar endereco rClifor.lEndereco = CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(rClifor.Cd_clifor, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 0, null); //Buscar Contatos rClifor.lContato = CamadaNegocio.Financeiro.Cadastros.TCN_CadContatoCliFor.Buscar(string.Empty, rClifor.Cd_clifor, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, string.Empty, 0, null); //Buscar Dados bancario rClifor.lDadosBanc = CamadaNegocio.Financeiro.Cadastros.TCN_CadDados_Bancarios_Clifor.Busca(rClifor.Cd_clifor, string.Empty, string.Empty, string.Empty, null); using (Financeiro.Cadastros.TFClifor fClifor = new Financeiro.Cadastros.TFClifor()) { fClifor.rClifor = rClifor; if (fClifor.ShowDialog() == DialogResult.OK) { if (fClifor.rClifor != null) { try { CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Gravar(fClifor.rClifor, null); MessageBox.Show("Cadastro Cliente/Fornecedor atualizado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); afterBusca(); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } }
private void bb_consultar_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(cnpj.Text.SoNumero()) && string.IsNullOrEmpty(cpf.Text.SoNumero())) { MessageBox.Show("Obrigatorio informar CNPJ ou CPF para realizar consulta.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (uf.SelectedIndex < 0) { MessageBox.Show("Obrigatorio informar UF para realizar consulta.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); uf.Focus(); return; } try { //Verificar se o cliente nao existe na base de dados CamadaDados.Financeiro.Cadastros.TList_CadClifor lClifor = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor(string.Empty, string.Empty, string.Empty, cnpj.Text, cpf.Text, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, null); if (lClifor.Count > 0) { rclifor = lClifor[0]; rclifor.lEndereco = CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(rclifor.Cd_clifor, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 0, null); } else { rclifor = ConsultaCad.TConsultaCad2.ConsultaCadClifor(cnpj.Text, cpf.Text, uf.Text, rCfgNfe); } DialogResult = DialogResult.OK; } catch (Exception ex) { MessageBox.Show("Não foi possivel consultar CNPJ na base da SEFAZ.\r\n" + "Realize o cadastro manualmente ou tente nova consulta mais tarde.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void ImportNfe(string path) { if (string.IsNullOrEmpty(path)) { return; } using (TFImportarNFeCTe fImport = new TFImportarNFeCTe()) { //Leitura do arquivo XML XmlDocument xml = new XmlDocument(); xml.Load(path); XmlNodeList lNo = xml.GetElementsByTagName("infNFe"); if (lNo.Count.Equals(0)) { MessageBox.Show("XML Invalido.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } #region Identificação NFe lNo = xml.GetElementsByTagName("ide"); if (lNo.Count > 0) { string tp_mov = string.Empty; foreach (XmlNode no in lNo[0].ChildNodes) { if (no.LocalName.Equals("nNF")) { nr_notafiscal.Text = no.InnerText; } else if (no.LocalName.Equals("dhEmi")) { dt_requisicao.Text = DateTime.Parse(no.InnerText).ToString("dd/MM/yyyy"); } } } #endregion #region Emitente NFe lNo = xml.GetElementsByTagName("emit"); //Criar classe Clifor rCliforEmit = new CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor(); //Criar classe Endereco CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco rEndCliforEmit = new CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco(); if (lNo.Count > 0) { foreach (XmlNode no in lNo[0].ChildNodes) { if (no.LocalName.Equals("CNPJ")) { rCliforEmit.Nr_cgc = no.InnerText; rCliforEmit.Tp_pessoa = "J"; } else if (no.LocalName.Equals("CPF")) { rCliforEmit.Nr_cpf = no.InnerText; rCliforEmit.Tp_pessoa = "F"; } else if (no.LocalName.Equals("xNome")) { rCliforEmit.Nm_clifor = no.InnerText; } else if (no.LocalName.Equals("xFant")) { rCliforEmit.Nm_fantasia = no.InnerText; } else if (no.LocalName.Equals("IE")) { rEndCliforEmit.Insc_estadual = no.InnerText; } } //Buscar fornecedor lFornec = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor(string.Empty, string.Empty, string.Empty, string.IsNullOrEmpty(rCliforEmit.Nr_cgc.SoNumero()) ? string.Empty : Convert.ToUInt64(rCliforEmit.Nr_cgc).ToString(@"00\.000\.000\/0000\-00"), string.IsNullOrEmpty(rCliforEmit.Nr_cpf.SoNumero()) ? string.Empty : Convert.ToUInt64(rCliforEmit.Nr_cpf).ToString(@"000\.000\.000\-00"), string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, null); } #endregion #region Endereco Emitente NFe lNo = xml.GetElementsByTagName("enderEmit"); if (lNo.Count > 0) { foreach (XmlNode no in lNo[0].ChildNodes) { if (no.LocalName.Equals("xLgr")) { rEndCliforEmit.Ds_endereco = no.InnerText; } else if (no.LocalName.Equals("nro")) { rEndCliforEmit.Numero = no.InnerText; } else if (no.LocalName.Equals("xCpl")) { rEndCliforEmit.Ds_complemento = no.InnerText; } else if (no.LocalName.Equals("xBairro")) { rEndCliforEmit.Bairro = no.InnerText; } else if (no.LocalName.Equals("cMun")) { rEndCliforEmit.Cd_cidade = no.InnerText; } else if (no.LocalName.Equals("xMun")) { rEndCliforEmit.DS_Cidade = no.InnerText; } else if (no.LocalName.Equals("CEP")) { rEndCliforEmit.Cep = no.InnerText; } else if (no.LocalName.Equals("fone")) { rEndCliforEmit.Fone = no.InnerText; } else if (no.LocalName.Equals("UF")) { rEndCliforEmit.UF = no.InnerText; } } //Buscar endereco fornecedor if (lFornec.Count > 0) { CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEnd = CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(lFornec[0].Cd_clifor, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.IsNullOrEmpty(rEndCliforEmit.Cep.SoNumero()) ? string.Empty : rEndCliforEmit.Cep, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, null); } } #endregion #region Destinatario NFe lNo = xml.GetElementsByTagName("dest"); if (lNo.Count > 0) { string cnpj_dest = string.Empty; foreach (XmlNode no in lNo[0].ChildNodes) { if (no.LocalName.Equals("CNPJ")) { cnpj_dest = no.InnerText; } } if (new CamadaDados.Diversos.TCD_CadEmpresa().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from VTB_FIN_Clifor x " + "where a.cd_clifor = x.cd_clifor " + "and x.nr_cgc = '" + rCliforEmit.Nr_cgc.Trim() + "')" } }, "1") == null) { MessageBox.Show("Destinatário do XML não se encontra cadastrado como empresa!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } rCliforEmit.lEndereco.Add(rEndCliforEmit); if (lFornec.Count > 0) { (bsAbastecimento.Current as CamadaDados.Frota.TRegistro_AbastVeiculo).Cd_fornecedor = lFornec[0].Cd_clifor; nm_fornecedor.Text = lFornec[0].Nm_clifor; } } #endregion #region Itens da NFe //Buscar Combustivel lNo = xml.GetElementsByTagName("det"); if (lNo.Count == 1) { foreach (XmlNode no in lNo) { rItem = new CamadaDados.Faturamento.NotaFiscal.TRegistro_ItensXMLNFe(); foreach (XmlNode noF in no.ChildNodes) { if (noF.LocalName.Equals("prod")) { foreach (XmlNode noP in noF.ChildNodes) { if (noP.LocalName.Equals("cProd")) { rItem.Cd_produto_xml = noP.InnerText; } else if (noP.LocalName.Equals("xProd")) { rItem.Ds_produto_xml = noP.InnerText; } else if (noP.LocalName.Equals("qCom")) { volume_requisicao.Value = decimal.Parse(noP.InnerText, new System.Globalization.CultureInfo("en-US")); rItem.Quantidade_xml = volume_requisicao.Value; } else if (noP.LocalName.Equals("vUnCom")) { vl_unitario.Value = decimal.Parse(noP.InnerText, new System.Globalization.CultureInfo("en-US")); } else if (noP.LocalName.Equals("vProd")) { vl_subtotal.Value = decimal.Parse(noP.InnerText, new System.Globalization.CultureInfo("en-US")); } } } } //Buscar produto no sistema if (rCliforEmit != null) { CamadaDados.Estoque.Cadastros.TList_CadProduto lProd = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" }, new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_EST_Produto_X_Fornecedor x " + "where x.cd_produto = a.cd_produto " + "and x.codigo_fornecedor = '" + rItem.Cd_produto_xml.Trim() + "' " + "and x.cd_fornecedor = '" + lFornec[0].Cd_clifor.Trim() + "')" } }, 1, string.Empty, string.Empty, string.Empty); if (lProd.Count.Equals(1)) { rItem.rProd = lProd[0]; rItem.Cd_produto = lProd[0].CD_Produto; rItem.Ds_produto = lProd[0].DS_Produto; cd_produto.Text = rItem.Cd_produto; ds_produto.Text = rItem.Ds_produto; } (bsAbastecimento.Current as CamadaDados.Frota.TRegistro_AbastVeiculo).rProdForn = rItem; } #endregion if (!System.IO.Directory.Exists(Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp")) { System.IO.Directory.CreateDirectory(Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp"); } if (!System.IO.File.Exists(Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + path.Substring(path.LastIndexOf("\\"), path.Trim().Length - path.LastIndexOf("\\")))) { System.IO.File.Move(path, Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + path.Substring(path.LastIndexOf("\\"), path.Trim().Length - path.LastIndexOf("\\"))); } } } } }
private void ImportNfe(string path) { if (string.IsNullOrEmpty(path)) { return; } using (TFImportarNFeCTe fImport = new TFImportarNFeCTe()) { //Leitura do arquivo XML XmlDocument xml = new XmlDocument(); xml.Load(path); XmlNodeList lNo = xml.GetElementsByTagName("infNFe"); if (lNo.Count.Equals(0)) { MessageBox.Show("XML Invalido.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } #region Identificação NFe lNo = xml.GetElementsByTagName("ide"); if (lNo.Count > 0) { string tp_mov = string.Empty; foreach (XmlNode no in lNo[0].ChildNodes) { if (no.LocalName.Equals("nNF")) { nr_notafiscal.Text = no.InnerText; } else if (no.LocalName.Equals("dhEmi")) { dt_realizada.Text = DateTime.Parse(no.InnerText).ToString("dd/MM/yyyy"); } } } lNo = xml.GetElementsByTagName("total"); if (lNo.Count > 0) { foreach (XmlNode noT in lNo[0].ChildNodes) { if (noT.LocalName.Equals("ICMSTot")) { foreach (XmlNode noIT in noT.ChildNodes) { if (noIT.LocalName.Equals("vNF")) { vl_realizado.Value = decimal.Parse(noIT.InnerText, new System.Globalization.CultureInfo("pt-BR")); } } } } } #endregion #region Emitente NFe lNo = xml.GetElementsByTagName("emit"); //Criar classe Clifor rCliforEmit = new CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor(); //Criar classe Endereco CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco rEndCliforEmit = new CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco(); if (lNo.Count > 0) { foreach (XmlNode no in lNo[0].ChildNodes) { if (no.LocalName.Equals("CNPJ")) { rCliforEmit.Nr_cgc = no.InnerText; rCliforEmit.Tp_pessoa = "J"; } else if (no.LocalName.Equals("CPF")) { rCliforEmit.Nr_cpf = no.InnerText; rCliforEmit.Tp_pessoa = "F"; } else if (no.LocalName.Equals("xNome")) { rCliforEmit.Nm_clifor = no.InnerText; } else if (no.LocalName.Equals("xFant")) { rCliforEmit.Nm_fantasia = no.InnerText; } else if (no.LocalName.Equals("IE")) { rEndCliforEmit.Insc_estadual = no.InnerText; } } //Buscar fornecedor lFornec = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor(string.Empty, string.Empty, string.Empty, string.IsNullOrEmpty(rCliforEmit.Nr_cgc.SoNumero()) ? string.Empty : Convert.ToUInt64(rCliforEmit.Nr_cgc).ToString(@"00\.000\.000\/0000\-00"), string.IsNullOrEmpty(rCliforEmit.Nr_cpf.SoNumero()) ? string.Empty : Convert.ToUInt64(rCliforEmit.Nr_cpf).ToString(@"000\.000\.000\-00"), string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, null); } #endregion #region Endereco Emitente NFe lNo = xml.GetElementsByTagName("enderEmit"); if (lNo.Count > 0) { foreach (XmlNode no in lNo[0].ChildNodes) { if (no.LocalName.Equals("xLgr")) { rEndCliforEmit.Ds_endereco = no.InnerText; } else if (no.LocalName.Equals("nro")) { rEndCliforEmit.Numero = no.InnerText; } else if (no.LocalName.Equals("xCpl")) { rEndCliforEmit.Ds_complemento = no.InnerText; } else if (no.LocalName.Equals("xBairro")) { rEndCliforEmit.Bairro = no.InnerText; } else if (no.LocalName.Equals("cMun")) { rEndCliforEmit.Cd_cidade = no.InnerText; } else if (no.LocalName.Equals("xMun")) { rEndCliforEmit.DS_Cidade = no.InnerText; } else if (no.LocalName.Equals("CEP")) { rEndCliforEmit.Cep = no.InnerText; } else if (no.LocalName.Equals("fone")) { rEndCliforEmit.Fone = no.InnerText; } else if (no.LocalName.Equals("UF")) { rEndCliforEmit.UF = no.InnerText; } } //Buscar endereco fornecedor if (lFornec.Count > 0) { CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEnd = CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(lFornec[0].Cd_clifor, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.IsNullOrEmpty(rEndCliforEmit.Cep.SoNumero()) ? string.Empty : rEndCliforEmit.Cep, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, null); } } #endregion #region Destinatario NFe lNo = xml.GetElementsByTagName("dest"); if (lNo.Count > 0) { string cnpj_dest = string.Empty; foreach (XmlNode no in lNo[0].ChildNodes) { if (no.LocalName.Equals("CNPJ")) { cnpj_dest = no.InnerText; } } if (new CamadaDados.Diversos.TCD_CadEmpresa().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from VTB_FIN_Clifor x " + "where a.cd_clifor = x.cd_clifor " + "and x.nr_cgc = '" + rCliforEmit.Nr_cgc.Trim() + "')" } }, "1") == null) { MessageBox.Show("Destinatário do XML não se encontra cadastrado como empresa!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } rCliforEmit.lEndereco.Add(rEndCliforEmit); if (lFornec.Count > 0) { cd_cliforOficina.Text = lFornec[0].Cd_clifor; nm_cliforOficina.Text = lFornec[0].Nm_clifor; } } #endregion if (!System.IO.Directory.Exists(Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp")) { System.IO.Directory.CreateDirectory(Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp"); } if (!System.IO.File.Exists(Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + path.Substring(path.LastIndexOf("\\"), path.Trim().Length - path.LastIndexOf("\\")))) { System.IO.File.Move(path, Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" + System.IO.Path.DirectorySeparatorChar.ToString() + path.Substring(path.LastIndexOf("\\"), path.Trim().Length - path.LastIndexOf("\\"))); } } }
public static CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor ConsultaCadClifor(string Cnpj, string Cpf, string Sigla_uf_consulta, CamadaDados.Faturamento.Cadastros.TRegistro_CfgNfe rCfgNfe) { if (((!string.IsNullOrEmpty(Cnpj)) || (!string.IsNullOrEmpty(Cpf))) && (!string.IsNullOrEmpty(Sigla_uf_consulta))) { StringBuilder xml = new StringBuilder(); xml.Append("<ConsCad xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"2.00\">"); xml.Append("<infCons>"); xml.Append("<xServ>CONS-CAD</xServ>"); xml.Append("<UF>"); xml.Append(Sigla_uf_consulta.Trim()); xml.Append("</UF>"); if (!string.IsNullOrEmpty(Cnpj)) { xml.Append("<CNPJ>"); xml.Append(Cnpj.SoNumero()); xml.Append("</CNPJ>"); } else if (!string.IsNullOrEmpty(Cpf)) { xml.Append("<CPF>"); xml.Append(Cpf.SoNumero()); xml.Append("</CPF>"); } xml.Append("</infCons>"); xml.Append("</ConsCad>"); //Validar Schema XML Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(), rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "consCad_v2.00.xsd", "NFE"); //Buscar CD.UF object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadUf().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.UF", vOperador = "=", vVL_Busca = "'" + Sigla_uf_consulta.Trim() + "'" } }, "a.cd_uf"); if (obj == null) { throw new Exception("Estado inexistente!"); } //Enviar consulta para a receita XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.ToString()); XmlNode retorno = ConectarWebService2(doc.DocumentElement, obj.ToString().Trim(), rCfgNfe); //Tratar retorno if (retorno != null) { if (retorno["infCons"]["cStat"].InnerText.Trim().Equals("111")) { CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rClifor = new CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor(); CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco rEnd = new CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco(); foreach (XmlNode no in retorno["infCons"]["infCad"].ChildNodes) { if (no.Name.Trim().Equals("ender")) { foreach (XmlNode n in no.ChildNodes) { if (n.Name.Trim().Equals("xLgr")) { rEnd.Ds_endereco = n.InnerText; } else if (n.Name.Trim().Equals("nro")) { rEnd.Numero = n.InnerText; } else if (n.Name.Trim().Equals("xCpl")) { rEnd.Ds_complemento = n.InnerText; } else if (n.Name.Trim().Equals("xBairro")) { rEnd.Bairro = n.InnerText; } else if (n.Name.Trim().Equals("cMun")) { rEnd.Cd_cidade = n.InnerText; } else if (n.Name.Trim().Equals("xMun")) { rEnd.DS_Cidade = n.InnerText; } else if (n.Name.Trim().Equals("CEP")) { rEnd.Cep = n.InnerText; } } } else if (no.Name.Trim().Equals("CNPJ")) { rClifor.Nr_cgc = no.InnerText.FormatStringEsquerda(14, '0'); rClifor.Tp_pessoa = "J"; } else if (no.Name.Trim().Equals("CPF")) { rClifor.Nr_cpf = no.InnerText.FormatStringEsquerda(11, '0'); rClifor.Tp_pessoa = "F"; } else if (no.Name.Trim().Equals("xNome")) { rClifor.Nm_clifor = no.InnerText; } else if (no.Name.Trim().Equals("xFant")) { rClifor.Nm_fantasia = no.InnerText; } else if (no.Name.Trim().Equals("IE")) { rEnd.Insc_estadual = no.InnerText; } } rClifor.lEndereco.Add(rEnd); rClifor.Tp_pessoa = !string.IsNullOrEmpty(rClifor.Nr_cgc) ? "J" : "F"; return(rClifor); } else { throw new Exception("Erro: " + retorno["infCons"]["cStat"].InnerText.Trim() + "-" + retorno["infCons"]["xMotivo"].InnerText.Trim()); } } else { throw new Exception("Erro consultar cadastro cliente."); } } else { return(null); } }