示例#1
0
 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); }
         }
     }
 }
示例#2
0
 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;
     }
 }
示例#3
0
        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);
        }
示例#4
0
        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
        }
示例#5
0
        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);
        }
示例#6
0
        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();
        }
示例#7
0
        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;
                }
            }
        }
示例#8
0
        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); }
                        }
                    }
                }
            }
        }
示例#9
0
 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); }
 }
示例#10
0
        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("\\")));
                        }
                    }
                }
            }
        }
示例#11
0
        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("\\")));
                }
            }
        }
示例#12
0
        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);
            }
        }