Esempio n. 1
0
 public TRegistro_AbastVeiculo()
 {
     this.id_abastecimento    = null;
     this.id_abastecimentostr = string.Empty;
     this.id_veiculo          = null;
     this.id_veiculostr       = string.Empty;
     this.Ds_veiculo          = string.Empty;
     this.Placa               = string.Empty;
     this.id_viagem           = null;
     this.id_viagemstr        = string.Empty;
     this.Ds_viagem           = string.Empty;
     this.Cd_empresa          = string.Empty;
     this.Nm_empresa          = string.Empty;
     this.id_despesa          = null;
     this.id_despesastr       = string.Empty;
     this.Ds_despesa          = string.Empty;
     this.LoginRequisicao     = string.Empty;
     this.LoginAbastecida     = string.Empty;
     this.Cd_produto          = string.Empty;
     this.Ds_produto          = string.Empty;
     this.Id_lanctoestoque    = null;
     this.dt_requisicao       = null;
     this.dt_requisicaostr    = string.Empty;
     this.Volume_requisicao   = decimal.Zero;
     this.dt_abastecimento    = null;
     this.dt_abastecimentostr = string.Empty;
     this.Volume              = decimal.Zero;
     this.Vl_unitario         = decimal.Zero;
     this.Vl_subtotal         = decimal.Zero;
     this.tp_abastecimento    = "T";
     this.tipo_abastecimento  = "TERCEIRO";
     this.tp_pagamento        = "E";
     this.tipo_pagamento      = "EMPRESA";
     this.Km_atual            = decimal.Zero;
     this.Media               = decimal.Zero;
     this.tp_captura          = string.Empty;
     this.tipo_captura        = string.Empty;
     this.Nr_notafiscal       = string.Empty;
     this.Cd_fornecedor       = string.Empty;
     this.Nm_fornecedor       = string.Empty;
     this.tp_registro         = string.Empty;
     this.tipo_registro       = string.Empty;
     this.Ds_observacao       = string.Empty;
     this.St_processar        = false;
     this.rAbast              = null;
     this.rDup      = null;
     this.lDup      = new CamadaDados.Financeiro.Duplicata.TList_RegLanDuplicata();
     this.lCCusto   = new CamadaDados.Financeiro.CCustoLan.TList_LanCCustoLancto();
     this.rProdForn = null;
 }
Esempio n. 2
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("\\")));
                        }
                    }
                }
            }
        }