Ejemplo n.º 1
0
        //Danner - o.s. 23732 - 11/11/2009
        public static int retonarTpamb(string sEmp)
        {

            belGerarXML BuscaConexao = new belGerarXML();
            int tp_amb;
            try
            {
                StringBuilder sSql = new StringBuilder();

                sSql.Append("select ");
                sSql.Append("empresa.st_ambiente ");
                sSql.Append("uf.nr_ufnfe cd_ufnor, ");
                sSql.Append("from empresa ");
                sSql.Append("left join uf on (uf.cd_uf = empresa.cd_ufnor) ");
                sSql.Append("where ");
                sSql.Append("cd_empresa ='");
                sSql.Append(sEmp);
                sSql.Append("'");

                FbConnection Conn = BuscaConexao.Conn;

                Conn.Open();

                FbCommand cmdIde = new FbCommand(sSql.ToString(), Conn);
                cmdIde.ExecuteNonQuery();



                FbDataReader dr = cmdIde.ExecuteReader();
                dr.Read();

                tp_amb = Convert.ToInt16((dr["st_ambiente"].ToString() != "" ? dr["st_ambiente"].ToString() : "2"));

                Conn.Close();
            }
            catch (Exception x)
            {
                throw new Exception("Erro de " + x.Source + Environment.NewLine + x.Message);
            }

            return tp_amb;

        }
Ejemplo n.º 2
0
        //Fim - Danner - o.s. 23732 - 11/11/2009
        //Danner - o.s. 23732 - 13/11/2009
        public static string retornaCdfunor(string sEmp)
        {

            belGerarXML BuscaConexao = new belGerarXML();
            string cd_ufnor;
            try
            {
                StringBuilder sSql = new StringBuilder();

                sSql.Append("select ");

                sSql.Append("uf.nr_ufnfe cd_ufnor, ");
                sSql.Append("from empresa ");
                sSql.Append("left join uf on (uf.cd_uf = empresa.cd_ufnor) ");
                sSql.Append("where ");
                sSql.Append("cd_empresa ='");
                sSql.Append(sEmp);
                sSql.Append("'");

                FbConnection Conn = BuscaConexao.Conn;

                Conn.Open();

                FbCommand cmdIde = new FbCommand(sSql.ToString(), Conn);
                cmdIde.ExecuteNonQuery();



                FbDataReader dr = cmdIde.ExecuteReader();
                dr.Read();

                cd_ufnor = dr["cd_ufnor"].ToString();

                Conn.Close();
            }
            catch (Exception x)
            {
                throw new Exception("Erro de " + x.Source + Environment.NewLine + x.Message);
            }

            return cd_ufnor;

        }
Ejemplo n.º 3
0
        private decimal BuscaDescTotal(string sEmp, string sNF, FbConnection Conn)
        {
            decimal dvlTotProd = 0;
            decimal dvlTotItens = 0;
            decimal vl_Desconto = 0;
            decimal dQTItens = 0;

            StringBuilder SqlTotProd = new StringBuilder();
            SqlTotProd.Append("Select (vl_totprod + vl_servico) vl_totprod ");
            SqlTotProd.Append("from nf ");
            SqlTotProd.Append("where ");
            SqlTotProd.Append("(nf.cd_empresa ='");
            SqlTotProd.Append(sEmp);
            SqlTotProd.Append("') and ");
            SqlTotProd.Append("(nf.cd_nfseq = '");
            SqlTotProd.Append(sNF);
            SqlTotProd.Append("') ");

            using (FbCommand cmd = new FbCommand(SqlTotProd.ToString(), Conn))
            {
                dvlTotProd = Math.Round(Convert.ToDecimal(cmd.ExecuteScalar()), 2); //Claudinei - o.s. 24248 - 26/03/2010
            }

            StringBuilder SqlTotItens = new StringBuilder();
            SqlTotItens.Append("Select sum(vl_totbruto) ");
            SqlTotItens.Append("from movitem ");
            SqlTotItens.Append("where ");
            SqlTotItens.Append("(movitem.cd_empresa ='");
            SqlTotItens.Append(sEmp);
            SqlTotItens.Append("') and ");
            SqlTotItens.Append("(movitem.cd_nfseq = '");
            SqlTotItens.Append(sNF);
            SqlTotItens.Append("') ");

            using (FbCommand cmd = new FbCommand(SqlTotItens.ToString(), Conn))
            {
                dvlTotItens = Math.Round(Convert.ToDecimal(cmd.ExecuteScalar()), 2); //Claudinei - o.s. 24248 - 26/03/2010
            }

            StringBuilder SqlQtItens = new StringBuilder();
            SqlQtItens.Append("Select count(nr_lanc) ");
            SqlQtItens.Append("from movitem ");
            SqlQtItens.Append("where ");
            SqlQtItens.Append("(movitem.cd_empresa ='");
            SqlQtItens.Append(sEmp);
            SqlQtItens.Append("') and ");
            SqlQtItens.Append("(movitem.cd_nfseq = '");
            SqlQtItens.Append(sNF);
            SqlQtItens.Append("') ");

            using (FbCommand cmd = new FbCommand(SqlQtItens.ToString(), Conn))
            {
                dQTItens = Math.Round(Convert.ToDecimal(cmd.ExecuteScalar()), 2); //Claudinei - o.s. 24248 - 26/03/2010
            }

            if (dvlTotProd < dvlTotItens)
            {
                vl_Desconto = ((dvlTotItens - dvlTotProd) / dQTItens);

            }
            belGerarXML BuscaConexao = new belGerarXML();
            if (pbIndustri)
            {
                vl_Desconto = 0;
            }
            else if (BuscaConexao.nm_Cliente == "EMEB")
            {
                vl_Desconto = 0;
            }
            return vl_Desconto;
        }
Ejemplo n.º 4
0
        private static bool GravaNumeroChaveNota(string sEmp, string sNota, string sNFe)
        {
            StringBuilder sSql = new StringBuilder();
            sSql.Append("update nf set cd_chavenfe = '");
            sSql.Append(sNFe.Replace("NFe", ""));
            sSql.Append("'");
            sSql.Append(" Where nf.cd_empresa = '");
            sSql.Append(sEmp);
            sSql.Append("' and ");
            sSql.Append("nf.cd_nfseq = '");
            sSql.Append(sNota);
            sSql.Append("'");

            belGerarXML BuscaConexao = new belGerarXML();
            try
            {
                using (FbConnection Conn = BuscaConexao.Conn)
                {
                    using (FbCommand cmdUpdate = new FbCommand(sSql.ToString(), Conn))
                    {
                        Conn.Open();
                        cmdUpdate.ExecuteNonQuery();
                        Conn.Close();
                    }
                }
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
Ejemplo n.º 5
0
        public belInfAdic BuscaObs(string sEmp,
                           string sNF,
                           belDest objbeldest,
                           List<belDet> objbelDet, belGerarXML objbelGeraXml)
        {
            belInfAdic objinfadic = new belInfAdic();

            try
            {
                StringBuilder sSql = new StringBuilder();

                //Campos do Select
                sSql.Append("Select ");
                sSql.Append("nf.ds_anota ");

                if (((objbelGeraXml.nm_Cliente == "MOGPLAST") || (objbelGeraXml.nm_Cliente == "TSA")) && (sEmp == "003"))
                {
                    sSql.Append(", nf.cd_nfseq_fat_origem ");
                }
                if (objbelGeraXml.nm_Cliente == "MACROTEX")
                {
                    sSql.Append(", vendedor.nm_vend, ");
                    sSql.Append("nf.DS_DOCORIG ");
                }
                //Tabela
                sSql.Append("From NF ");
                //Relacionamentos
                sSql.Append("left join vendedor on (vendedor.cd_vend = nf.cd_vend1) ");
                //Where
                sSql.Append("Where ");
                sSql.Append("(NF.cd_empresa ='");
                sSql.Append(sEmp);
                sSql.Append("')");
                sSql.Append(" and ");
                sSql.Append("(nf.cd_nfseq = '");
                sSql.Append(sNF);
                sSql.Append("') ");
                string sObs = "";
                sObs = RetornaBlob(sSql, sEmp, Conn, objbelGeraXml);
                if (sObs.IndexOf("\\fs") != -1)// DIEGO - OS_24854 
                {
                    sObs = sObs.Substring((sObs.IndexOf("\\fs") + 6), sObs.Length - (sObs.IndexOf("\\fs") + 6));
                }
                if (objbelGeraXml.nm_Cliente == "MARPA")
                {
                    sObs += MontaObsAgrup(sEmp, sNF, Conn);
                }
                Globais LeRegWin = new Globais();
                string sBanco = LeRegWin.LeRegConfig("BancoDados");
                {
                    //Fim - Danner - o.s. 24383 - 22/04/2010
                    //belGerarXML BuscaConexao = new belGerarXML();
                    //FbConnection Conn = BuscaConexao.Conn;
                    #region OS_24245

                    try
                    {
                        if (sBanco.ToUpper().IndexOf("CERAMICAC0") == -1) //Claudinei - o.s. 24245 - 08/03/2010
                        {
                            StringBuilder sSuframa = new StringBuilder();
                            sSuframa.Append("Select First 1 ");
                            sSuframa.Append("nf.ds_anota, ");
                            sSuframa.Append("clifor.st_descsuframa, ");
                            sSuframa.Append("clifor.cd_suframa, ");
                            sSuframa.Append("clifor.ST_PISCOFINS_SUFRAMA, ");
                            sSuframa.Append("nf.vl_aliqcofins_suframa, ");
                            sSuframa.Append("nf.vl_aliqpis_suframa, ");
                            sSuframa.Append("nf.vl_cofins_suframa, ");
                            sSuframa.Append("NF.vl_pis_suframa, ");

                            //Claudinei - o.s. 23683 - 11/09/2009
                            sSuframa.Append("(select Sum(movitem.vl_descsuframa) from movitem where (movitem.cd_empresa = nf.cd_empresa) and (movitem.cd_nfseq = nf.cd_nfseq)) vl_suframa, ");
                            sSuframa.Append("icm.vl_aliquot vl_persuframa ");
                            //Fim - Claudinei - o.s. 23683 - 11/09/2009

                            //Claudinei - o.s. 23827 - 17/11/2009

                            sSuframa.Append(", ");
                            sSuframa.Append("case when empresa.vl_aliqfatcred > 0 then ");
                            sSuframa.Append("(nf.vl_totnf * empresa.vl_aliqfatcred)/100 ");
                            sSuframa.Append("else ");
                            sSuframa.Append("0 ");
                            sSuframa.Append("end aliq, ");
                            sSuframa.Append("empresa.vl_aliqfatcred, ");
                            sSuframa.Append("coalesce(tpdoc.st_hevenda,'N') st_hevenda ");

                            //Fim - Claudinei - o.s. 23827 - 17/11/2009

                            //Tabela
                            sSuframa.Append("From NF ");

                            //Relacionamentos
                            sSuframa.Append("left join clifor on (clifor.cd_clifor = nf.cd_clifor) ");
                            sSuframa.Append("left join icm on (icm.cd_ufnor = clifor.cd_ufnor) ");
                            sSuframa.Append("left join movitem on (movitem.cd_empresa = nf.cd_empresa) ");
                            sSuframa.Append("and ");
                            sSuframa.Append("(movitem.cd_nfseq = nf.cd_nfseq) ");

                            //Claudinei - o.s. 23827 - 17/11/2009
                            sSuframa.Append("Inner join ");
                            sSuframa.Append("Empresa on ");
                            sSuframa.Append("(Empresa.cd_empresa = nf.cd_empresa) ");

                            sSuframa.Append("Left join ");
                            sSuframa.Append("TPDoc on ");
                            sSuframa.Append("(TPDoc.cd_tipodoc = nf.cd_tipodoc) ");

                            //Fim - Claudinei - o.s. 23827 - 17/11/2009


                            //Where
                            sSuframa.Append("Where ");
                            sSuframa.Append("(NF.cd_empresa ='");
                            sSuframa.Append(sEmp);
                            sSuframa.Append("')");
                            sSuframa.Append(" and ");
                            sSuframa.Append("(nf.cd_nfseq = '");
                            sSuframa.Append(sNF);
                            sSuframa.Append("') ");

                            //Conn.Open();

                            FbCommand cmdSuframa = new FbCommand(sSuframa.ToString(), Conn);
                            cmdSuframa.ExecuteNonQuery();

                            FbDataReader drSuframa = cmdSuframa.ExecuteReader();
                            drSuframa.Read();

                            if (drSuframa["st_descsuframa"].ToString() == "S")
                            {
                                //Claudinei - o.s. 23683 - 11/09/2009
                                decimal dvlSuframa = Math.Round(Convert.ToDecimal(drSuframa["vl_suframa"].ToString()), 2); //Claudinei - o.s. 24248 - 26/03/2010
                                decimal dvlPerSuframa = Math.Round(Convert.ToDecimal(drSuframa["vl_persuframa"].ToString()), 2); //Claudinei - o.s. 24248 - 26/03/2010
                                //Fim - Claudinei - o.s. 23683 - 11/09/2009

                                if (sObs.Trim() != "")
                                {
                                    sObs += string.Format(" - DESCONTO DE {0:C2} REF. AO ICMS {1:f2}% CODIGO SUFRAMA: {2}",
                                                          dvlSuframa,
                                                          dvlPerSuframa,
                                                          drSuframa["cd_suframa"].ToString());
                                }
                                else
                                {
                                    sObs += string.Format("DESCONTO DE {0:C2} REF. AO ICMS 7.00% CODIGO SUFRAMA: {1}",
                                                          dvlSuframa,
                                                          drSuframa["cd_suframa"].ToString());
                                }
                            }

                            //Claudinei - o.s. sem - 01/09/2009

                            if (drSuframa["ST_PISCOFINS_SUFRAMA"].ToString() == "S")
                            {
                                decimal dvl_aliqcofins_suframa = Math.Round(Convert.ToDecimal(drSuframa["vl_aliqcofins_suframa"].ToString()), 2); //Claudinei - o.s. 24248 - 26/03/2010
                                decimal dvl_cofins_suframa = Math.Round(Convert.ToDecimal(drSuframa["vl_cofins_suframa"].ToString()), 2); //Claudinei - o.s. 24248 - 26/03/2010
                                decimal dvl_aliqpis_suframa = Math.Round(Convert.ToDecimal(drSuframa["vl_aliqpis_suframa"].ToString()), 2); //Claudinei - o.s. 24248 - 26/03/2010
                                decimal dvl_pis_suframa = Math.Round(Convert.ToDecimal(drSuframa["vl_pis_suframa"].ToString()), 2); //Claudinei - o.s. 24248 - 26/03/2010

                                if (sObs.Trim() != "")
                                {
                                    sObs += string.Format(" - ABATIMENTO COFINS ({0}%) - VALOR R$ {1} - ABATIMENTO PIS ({2}%) - VALOR R$ {3} ",
                                                          dvl_aliqcofins_suframa.ToString("#0.00").Replace(',', '.'),
                                                          dvl_cofins_suframa.ToString("#0.00").Replace(',', '.'),
                                                          dvl_aliqpis_suframa.ToString("#0.00").Replace(',', '.'),
                                                          dvl_pis_suframa.ToString("#0.00").Replace(',', '.'));
                                }
                                else
                                {
                                    sObs += string.Format("ABATIMENTO COFINS ({0}%) - VALOR R$ {1} - ABATIMENTO PIS ({2}%) - VALOR R$ {3} ",
                                                          dvl_aliqcofins_suframa.ToString("#0.0000").Replace(',', '.'),
                                                          dvl_cofins_suframa.ToString("#0.0000").Replace(',', '.'),
                                                          dvl_aliqpis_suframa.ToString("#0.0000").Replace(',', '.'),
                                                          dvl_pis_suframa.ToString("#0.0000").Replace(',', '.'));
                                }
                            }


                            decimal dvlnf = 0;
                            if (drSuframa["aliq"].ToString() != "")
                            {
                                dvlnf = Math.Round(Convert.ToDecimal(drSuframa["aliq"].ToString()), 2); //Claudinei - o.s. 24248 - 26/03/2010
                            }

                        }
                        StringBuilder sDevolucao = new StringBuilder();


                        //Tabela
                        sDevolucao.Append("Select ");
                        sDevolucao.Append("movitem.cd_doc, ");
                        sDevolucao.Append("nf.cd_clifor, ");
                        sDevolucao.Append("nf.dt_emi, ");
                        sDevolucao.Append("movensai.dt_emi EmissaoEntrada, ");
                        sDevolucao.Append("movitem.vl_totbruto ");
                        sDevolucao.Append("From Movitem ");
                        sDevolucao.Append("inner join NF on ");
                        sDevolucao.Append("(nf.cd_empresa = Movitem.cd_empresa) ");
                        sDevolucao.Append("and ");
                        sDevolucao.Append("(nf.cd_nfseq = movitem.cd_nfseq) ");
                        sDevolucao.Append("inner join opereve on ");
                        sDevolucao.Append("(opereve.cd_oper = movitem.cd_oper) ");
                        sDevolucao.Append("left join movensai on (movensai.cd_empresa = movitem.cd_empresa) ");
                        sDevolucao.Append("and ");
                        sDevolucao.Append("(movensai.cd_doc = movitem.cd_doc) ");
                        sDevolucao.Append("and ");
                        sDevolucao.Append("(movensai.cd_clifor = nf.cd_clifor) ");

                        //Where
                        sDevolucao.Append("Where ");
                        sDevolucao.Append("(Movitem.cd_empresa ='");
                        sDevolucao.Append(sEmp);
                        sDevolucao.Append("')");
                        sDevolucao.Append(" and ");
                        sDevolucao.Append("(Movitem.cd_nfseq = '");
                        sDevolucao.Append(sNF);
                        sDevolucao.Append("') ");
                        sDevolucao.Append("and ");
                        sDevolucao.Append("(opereve.ST_ESTTERC = 'S') ");
                        sDevolucao.Append("and ");
                        sDevolucao.Append("Movitem.cd_oper <> '202' ");
                        sDevolucao.Append("and ");
                        sDevolucao.Append("Movitem.cd_oper <> '227' ");//TESTE-DANI
                        sDevolucao.Append("Order by movitem.cd_doc");

                        //if (Conn.State != ConnectionState.Open)
                        {
                            //Conn.Open();
                        }
                        FbCommand cmdDevolucoes = new FbCommand(sDevolucao.ToString(), Conn);
                        cmdDevolucoes.ExecuteNonQuery();
                        FbDataReader drDevolucoes = cmdDevolucoes.ExecuteReader();
                        List<strucDevolucoes> Devolucoes = new List<strucDevolucoes>();
                        decimal dvlTotBruto = 0;
                        string scdDoc = string.Empty;
                        while (drDevolucoes.Read())
                        {
                            if (scdDoc != drDevolucoes["cd_doc"].ToString())
                            {
                                dvlTotBruto = 0;

                            }

                            dvlTotBruto += Math.Round(Convert.ToDecimal(drDevolucoes["vl_totbruto"].ToString()), 2); //Claudinei - o.s. 24248 - 26/03/2010

                            StringBuilder sStore = new StringBuilder();
                            sStore.Append("SELECT ");
                            sStore.Append("QT_SALDOEN ");
                            sStore.Append("FROM SP_SALDOTER('");
                            sStore.Append(sEmp);
                            sStore.Append("', '");
                            sStore.Append(drDevolucoes["cd_clifor"].ToString());
                            sStore.Append("', '");
                            sStore.Append("       "); //Claudinei - o.s. 24075 - 29/01/2010
                            sStore.Append("', '");
                            sStore.Append("|||||||"); //Claudinei - o.s. 24075 - 29/01/2010
                            sStore.Append("', '");
                            sStore.Append("X");
                            sStore.Append("', '");
                            sStore.Append("N");
                            sStore.Append("', '");
                            sStore.Append(sNF);
                            sStore.Append("', '");
                            sStore.Append(Convert.ToDateTime(drDevolucoes["dt_emi"]).ToString("dd.MM.yyyy"));
                            sStore.Append("') ");
                            sStore.Append("where SP_SALDOTER.cd_doc ='");
                            sStore.Append(drDevolucoes["cd_doc"].ToString().Trim());
                            sStore.Append("'");
                            sStore.Append(" and ");
                            sStore.Append("SP_SALDOTER.qt_saldoen > 0");

                            FbCommand cmd = new FbCommand();
                            cmd.Connection = Conn;
                            cmd.CommandText = sStore.ToString();
                            cmd.CommandType = CommandType.StoredProcedure;
                            cmd.Parameters.Clear();

                            //if (Conn.State != ConnectionState.Open)
                            {
                                //Conn.Open();
                            }

                            Int32 iSaldoTer = Convert.ToInt32(cmd.ExecuteScalar());
                            strucDevolucoes Devolucao = new strucDevolucoes();
                            if (drDevolucoes["cd_doc"].ToString() != "")
                            {
                                Devolucao.scdNotafis = drDevolucoes["cd_doc"].ToString();
                                if (drDevolucoes["EmissaoEntrada"] != System.DBNull.Value)
                                {
                                    Devolucao.dDtEmi = Convert.ToDateTime(drDevolucoes["EmissaoEntrada"]);
                                }
                                Devolucao.dValorNF = dvlTotBruto.ToString("#0.00");
                                Devolucao.sSaldo = (iSaldoTer > 0 ? "Parcial" : "Total");
                                if (!Devolucoes.Exists(c => c.scdNotafis == Devolucao.scdNotafis))
                                {
                                    Devolucoes.Add(Devolucao);
                                }
                                else
                                {
                                    for (int i = 0; i < Devolucoes.Count; i++)
                                    {
                                        if ((Devolucoes[i].scdNotafis == Devolucao.scdNotafis) && (Devolucoes[i].dDtEmi == Devolucao.dDtEmi)) //OS_25220
                                        {
                                            Devolucoes[i] = Devolucao;
                                            break;
                                        }
                                    }
                                }
                            }
                            scdDoc = drDevolucoes["cd_doc"].ToString();
                        }

                        for (int i = 0; i < Devolucoes.Count; i++)
                        {

                            if (sObs.Trim().Length > 0)
                            {
                                sObs += string.Format(" - Devolucao {0} ref. sua NF {1} de {2} de valor R$ {3}", //Claudinei - o.s. 24043 - 25/01/2010
                                                      Devolucoes[i].sSaldo,
                                                      Devolucoes[i].scdNotafis,
                                                      Devolucoes[i].dDtEmi.ToString("dd/MM/yyyy"),
                                                      Devolucoes[i].dValorNF); //Claudinei - o.s. 24043 - 25/01/2010
                            }
                            else
                            {
                                sObs += string.Format("Devolucao {0} ref. sua NF {1} de {2} de valor R$ {3}", //Claudinei - o.s. 24043 - 25/01/2010
                                                      Devolucoes[i].sSaldo,
                                                      Devolucoes[i].scdNotafis,
                                                      Devolucoes[i].dDtEmi.ToString("dd/MM/yyyy"),
                                                      Devolucoes[i].dValorNF); //Claudinei - o.s. 24043 - 25/01/2010

                            }
                        }

                        string sMensagemSuperSimples = MensagemSuperSimples(sEmp, sNF, Conn);
                        bool cfopsValidos = (objbelDet.Count(p => (p.belProd.Cfop.Equals("5101"))
                                                                   || (p.belProd.Cfop.Equals("6107"))
                                                                   || (p.belProd.Cfop.Equals("6101"))) > 0 ? true : false);

                        if (sMensagemSuperSimples != ""
                           && (objbeldest.Cnpj != null && objbeldest.Cnpj != "")
                           || (objbelGeraXml.nm_Cliente == "TERRAVIS")
                            && cfopsValidos) // OS_25182 
                        {

                            if (sObs.Trim().Length > 0)
                            {
                                sObs += " - " + sMensagemSuperSimples;
                            }
                            else
                            {
                                sObs += sMensagemSuperSimples;

                            }
                        }
                        //Claudinei - o.s. 24118 - 11/02/2010
                    }
                    catch (Exception Ex)
                    {
                        sExecao = " - Problemas ao Buscar Suframa";
                        throw new Exception(Ex.Message + sExecao);
                    }
                    finally
                    {
                        //Conn.Close();
                    }

                    #endregion
                }
                // Diego - 22/06/2010 - OS_24576
                //Monta Mensagem de PIS, COFINS
                try
                {
                    //belGerarXML BuscaConexao = new belGerarXML();
                    //FbConnection Conn = BuscaConexao.Conn;
                    //if (Conn.State != ConnectionState.Open)
                    {
                        //Conn.Open();
                    }
                    StringBuilder sQuery = new StringBuilder();
                    sQuery.Append("SELECT ");
                    sQuery.Append("NF.VL_COFINS, NF.VL_PIS, ");
                    sQuery.Append("empresa.vl_aliqpis_suframa,empresa.vl_aliqcofins_suframa, ");
                    sQuery.Append("CLIFOR.st_desc_piscofins_dupl ");
                    sQuery.Append("from nf inner join empresa ");
                    sQuery.Append("on (nf.cd_empresa = empresa.cd_empresa)");
                    sQuery.Append("inner join clifor ");
                    sQuery.Append("on (nf.cd_clifor = clifor.cd_clifor) ");
                    sQuery.Append("where (empresa.cd_empresa = '");
                    sQuery.Append(sEmp);
                    sQuery.Append("') ");
                    sQuery.Append("and ( nf.cd_nfseq = '");
                    sQuery.Append(sNF);
                    sQuery.Append("') ");


                    FbCommand cmd = new FbCommand(sQuery.ToString(), Conn);
                    FbDataReader drPisCofins = cmd.ExecuteReader();

                    while (drPisCofins.Read())
                    {
                        if ((drPisCofins["st_desc_piscofins_dupl"].ToString() == "S"))
                        {
                            if ((drPisCofins["vl_aliqpis_suframa"].ToString() != "") && (drPisCofins["vl_aliqcofins_suframa"].ToString() != ""))
                            {
                                string sMensagemPisCofins = "(PIS e COFINS retido conforme artigo 3º paragrafo 4º da lei 10.485/02, PIS "
                                                            + drPisCofins["vl_aliqpis_suframa"].ToString()
                                                            + "% R$" + drPisCofins["VL_PIS"].ToString()
                                                            + " , COFINS "
                                                            + drPisCofins["vl_aliqcofins_suframa"].ToString()
                                                            + "% R$"
                                                            + drPisCofins["VL_COFINS"].ToString()
                                                            + " Total R$" + ((Convert.ToDouble(drPisCofins["VL_PIS"].ToString())) + (Convert.ToDouble(drPisCofins["VL_COFINS"].ToString()))).ToString() + ")";
                                sObs += (sObs != "" ? " - " : "") + sMensagemPisCofins;
                            }
                        }
                    }
                }
                catch (Exception Ex)
                {
                    throw Ex;
                }// Diego - 22/06/2010 - OS_24576 - FIM


                // Diego - 15/07/2010 - OS_24665
                //Obs de ICMS Recolhido por Substituição
                try
                {
                    //belGerarXML BuscaConexao = new belGerarXML();
                    //FbConnection Conn = BuscaConexao.Conn;


                    StringBuilder sQuery = new StringBuilder();
                    sQuery.Append("SELECT ");
                    sQuery.Append("movitem.cd_sittrib, EMPRESA.ST_SUPERSIMPLES, EMPRESA.ST_IMP_SUPERSIMPLES ");
                    sQuery.Append("from empresa INNER JOIN movitem ON (EMPRESA.cd_empresa = movitem.cd_empresa)");
                    sQuery.Append("where (empresa.cd_empresa = '");
                    sQuery.Append(sEmp);
                    sQuery.Append("') ");
                    sQuery.Append("and ( movitem.cd_nfseq = '");
                    sQuery.Append(sNF);
                    sQuery.Append("') ");


                    FbCommand cmd = new FbCommand(sQuery.ToString(), Conn);
                    FbDataReader drIcmsRecolhido = cmd.ExecuteReader();
                    string sMensagemIcmsRecolhido = "";

                    while (drIcmsRecolhido.Read())
                    {
                        if ((drIcmsRecolhido["ST_SUPERSIMPLES"].ToString() == "S") && (drIcmsRecolhido["ST_IMP_SUPERSIMPLES"].ToString() == "S"))
                        {
                            if ((drIcmsRecolhido["cd_sittrib"].ToString().Equals("010")) ||
                                        (drIcmsRecolhido["cd_sittrib"].ToString().Equals("030")) ||
                                        (drIcmsRecolhido["cd_sittrib"].ToString().Equals("060")) ||
                                        (drIcmsRecolhido["cd_sittrib"].ToString().Equals("070")))
                            {
                                sMensagemIcmsRecolhido = "ICMS RECOLHIDO POR SUBSTITUICAO TRIBUTARIA CONFORME DECRETO 54251/09 ART 313 RICMS/2000";
                                break;
                            }
                        }
                    }
                    if (sMensagemIcmsRecolhido != "")
                    {
                        sObs += (sObs.Trim() != "" ? " - " : "") + sMensagemIcmsRecolhido;
                    }
                }
                catch (Exception Ex)
                {
                    throw Ex;
                }
                // Diego - 15/07/2010 - OS_24665 - FIM
                //OS_25201 - DIEGO
                if (LeRegWin.LeRegConfig("TotalizaCFOP").Equals("True"))
                {
                    sObs += " " + MessagemTotalizaCFOP(sEmp, sNF, Conn);
                }//OS_25201 - FIM

                //OS_25224 - INICIO

                string sCNPJdest = (objbeldest.Cnpj != null ? Util.Util.RetiraCaracterCNPJ(objbeldest.Cnpj) : "");

                try
                {
                    //belGerarXML BuscaConexao = new belGerarXML();
                    //FbConnection Conn = BuscaConexao.Conn;

                    if (objbelGeraXml.Equals("JAMAICA"))
                    {
                        StringBuilder sQuery = new StringBuilder();
                        sQuery.Append("select coalesce(clifor.cd_alter2,'') cd_alter2 from clifor ");
                        sQuery.Append("where clifor.cd_cgc ='" + sCNPJdest + "'");
                        FbCommand cmd = new FbCommand(sQuery.ToString(), Conn);
                        FbDataReader dr = cmd.ExecuteReader();
                        string sMesgCodDest = "";
                        while (dr.Read())
                        {
                            sMesgCodDest = dr["cd_alter2"].ToString();
                        }
                        if (sMesgCodDest != "")
                        {
                            sObs = "<<COD FORNECEDOR " + sMesgCodDest + ">> " + sObs;
                        }
                    }
                    if (objbelGeraXml.nm_Cliente.Equals("LORENZON"))
                    {
                        StringBuilder sQuery = new StringBuilder();
                        sQuery.Append("select prazos.ds_prazo, vendedor.nm_vend , clifor.cd_clifor from nf ");
                        sQuery.Append("inner join clifor on nf.cd_clifor = clifor.cd_clifor ");
                        sQuery.Append("inner join prazos on nf.cd_prazo = prazos.cd_prazo ");
                        sQuery.Append(" inner join vendedor  on nf.cd_vendint = vendedor.cd_vend ");
                        sQuery.Append("where nf.cd_nfseq = '" + sNF + "' ");
                        sQuery.Append("and nf.cd_empresa = '" + sEmp + "' ");
                        FbCommand cmd = new FbCommand(sQuery.ToString(), Conn);
                        FbDataReader dr = cmd.ExecuteReader();
                        string sMsgLorenzon = "";


                        while (dr.Read())
                        {
                            sMsgLorenzon = "COND.PGTO = " + dr["ds_prazo"].ToString() + " | VENDEDOR = " + dr["nm_vend"].ToString() + " | COD. CLIENTE = " + dr["cd_clifor"].ToString();
                        }
                        if (sMsgLorenzon != "")
                        {
                            sObs = "<< " + sMsgLorenzon + " >> " + sObs;
                        }
                    }



                }
                catch (Exception ex)
                {
                    throw ex;
                }

                //OS_25224 - FIM
                if (sObs.Trim() != "")
                {
                    objinfadic.Infcpl = sObs.Trim();
                }
                //Fim - Montagem do XML
            }
            catch (Exception Ex)
            {
                sExecao = " - Problemas nas Obs´s da Nota";
                throw new Exception(Ex.Message + sExecao);
            }

            return objinfadic; //Danner - o.s. sem - 16/11/2009


        }
Ejemplo n.º 6
0
        /// <summary>
        /// Gera a Estrutura do XML da NF-e
        /// </summary>
        /// <param name="sNF"></param>
        /// <param name="cert"></param>
        /// <param name="sEmp"></param>
        /// <param name="sNomeArq"></param>
        /// <param name="iStatusAtualSistema"</param>
        public void geraArquivoNFE(List<string> sNF, X509Certificate2 cert, string sEmp, string sNomeArq)
        {
            objbelGeraXml = new belGerarXML();
            Conn = objbelGeraXml.Conn;
            Conn.Open();
            try
            {
                string sPath = "";
                sPath = (sFormaEmiNFe.Equals("2") ? CarregarDadosXml("PastaContingencia").ToString() + @sNomeArq : CarregarDadosXml("PastaXmlEnvio").ToString() + @sNomeArq);
                Globais glob = new Globais();
                int iCount = 0;

                if (File.Exists(sPath))
                {
                    File.Delete(sPath);
                }


                foreach (var i in lTotNota)
                {
                    string sNota = sNF[iCount];
                    string sNFe = "NFe" + GeraChave(sEmp, sNota, Conn);
                    XDocument xdoc = new XDocument();

                    #region XML_Principal
                    XNamespace pf = "http://www.portalfiscal.inf.br/nfe";
                    XContainer conenv = new XElement(pf + "enviNFe", new XAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe"),
                                                               new XAttribute("versao", "2.00"),
                                                               new XElement(pf + "idLote", sNomeArq.Substring(7, 15)));
                    #endregion

                    #region XML_Cabeçalho


                    XContainer concabec = (new XElement(pf + "NFe", new XAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe")));
                    XContainer coninfnfe = (new XElement(pf + "infNFe", new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance"), new XAttribute("Id", sNFe),
                                                                        new XAttribute("versao", "2.00")));


                    #endregion

                    #region Ide
                    XContainer conide;
                    try
                    {
                        belIde objide = i[0] as belIde;
                        #region XML_ide
                        conide = (new XElement(pf + "ide", new XElement(pf + "cUF", objide.Cuf.ToString()),
                                                                    new XElement(pf + "cNF", objide.Cnf.ToString()),
                                                                    new XElement(pf + "natOp", objide.Natop.ToString()),
                                                                    new XElement(pf + "indPag", objide.Indpag.ToString()),
                                                                    new XElement(pf + "mod", objide.Mod.ToString()),
                                                                    new XElement(pf + "serie", objide.Serie.ToString()),
                                                                    new XElement(pf + "nNF", objide.Nnf.ToString()),
                                                                    new XElement(pf + "dEmi", objide.Demi.ToString("yyyy-MM-dd")),
                                                                    new XElement(pf + "dSaiEnt", objide.Dsaient.ToString("yyyy-MM-dd")),
                                                                    new XElement(pf + "hSaiEnt", objide.HSaiEnt.ToString("HH:mm:ss")), // NFe_2.0
                                                                    new XElement(pf + "tpNF", objide.Tpnf.ToString()),
                                                                    new XElement(pf + "cMunFG", objide.Cmunfg.ToString()),
                                                                    (objide.belNFref != null ?
                                                                    (from c in objide.belNFref
                                                                     select new XElement(pf + "NFref",
                                                                                (c.RefNFe != null ? new XElement(pf + "refNFe", c.RefNFe) : null),
                                                                               (c.cUF != null ? (new XElement(pf + "refNF",
                                                                                (c.cUF != null ? new XElement(pf + "cUF", c.cUF) : null),
                                                                                 (c.AAMM != null ? new XElement(pf + "AAMM", c.AAMM) : null),
                                                                                 (c.CNPJ != null ? new XElement(pf + "CNPJ", c.CNPJ) : null),
                                                                                 (c.mod != null ? new XElement(pf + "mod", c.mod) : null),
                                                                                 (c.serie != null ? new XElement(pf + "serie", c.serie) : null),
                                                                                 (c.nNF != null ? new XElement(pf + "nNF", c.nNF) : null))) : null))) : null),//NFe_2.0_Verificar ID B14 - B20a - B20i - 
                                                                    new XElement(pf + "tpImp", objide.Tpimp.ToString()),
                                                                    new XElement(pf + "tpEmis", objide.Tpemis.ToString()),
                                                                    new XElement(pf + "cDV", objide.Cdv.ToString()),
                                                                    new XElement(pf + "tpAmb", objide.Tpamb.ToString()),
                                                                    new XElement(pf + "finNFe", objide.Finnfe.ToString()),
                                                                    new XElement(pf + "procEmi", objide.Procemi.ToString()),
                                                                    new XElement(pf + "verProc", objide.Verproc.ToString()),

                                                                    ((objide.Tpemis.Equals("2")) || (objide.Tpemis.Equals("3")) ?
                                                                                          new XElement(pf + "dhCont", DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss")) : null), // NFe_2.0
                                                                    ((objide.Tpemis.Equals("2")) || (objide.Tpemis.Equals("3")) ?
                                                                                          new XElement(pf + "xJust", (iStatusAtualSistema == 2 ? "FALHA DE CONEXÃO COM INTERNET" : "FALHA COM WEB SERVICE DO ESTADO")) : null)));// NFe_2.0
                        #endregion
                    }
                    catch (Exception x)
                    {
                        throw new Exception("Nota de Sequência - " + sNota + "Erro na geração do XML, Regiao XML_ide - " + x.Message);
                    }
                    #endregion

                    #region Emit

                    XContainer conemit;
                    try
                    {
                        belEmit objemit = i[1] as belEmit;
                        #region XML_Emit

                        conemit = (new XElement(pf + "emit", (new XElement(pf + "CNPJ", objemit.Cnpj.ToString())),
                                                  new XElement(pf + "xNome", objemit.Xnome.ToString()),
                                                  new XElement(pf + "xFant", objemit.Xfant.ToString()),
                                                          new XElement(pf + "enderEmit",
                                                                  new XElement(pf + "xLgr", objemit.Xlgr.ToString()),
                                                                  new XElement(pf + "nro", objemit.Nro.ToString()),
                                                                  (objemit.Xcpl != null ? new XElement(pf + "xCpl", objemit.Xcpl.ToString()) : null),
                                                                  new XElement(pf + "xBairro", objemit.Xbairro.ToString()),
                                                                  new XElement(pf + "cMun", objemit.Cmun.ToString()),
                                                                  new XElement(pf + "xMun", objemit.Xmun.ToString()),
                                                                  new XElement(pf + "UF", objemit.Uf.ToString()),
                                                                  new XElement(pf + "CEP", objemit.Cep.ToString()),
                                                                  new XElement(pf + "cPais", objemit.Cpais.ToString()),
                                                                  new XElement(pf + "xPais", objemit.Xpais.ToString()),
                                                                  (objemit.Fone != null ? new XElement(pf + "fone", objemit.Fone.ToString()) : null)),
                                                  (objemit.Ie != null ? new XElement(pf + "IE", objemit.Ie.ToString()) : null),
                                                  (objemit.Iest != null ? new XElement(pf + "IEST", objemit.Iest.ToString()) : null),
                                                  (objemit.Im != null ? new XElement(pf + "IM", objemit.Im.ToString()) : null),
                                                  (objemit.Cnae != null ? new XElement(pf + "CNAE", objemit.Cnae.ToString()) : null),
                                                  new XElement(pf + "CRT", objemit.CRT.ToString()))); // NFe_2.0

                        #endregion
                    }
                    catch (Exception x)
                    {
                        throw new Exception("Nota de Sequência - " + sNota + "Erro na geração do XML, Regiao XML_Emit - " + x.Message);
                    }
                    #endregion

                    #region Dest
                    XContainer condest;
                    try
                    {
                        belDest objdest = i[2] as belDest;
                        #region XML_Dest
                        objdest.Ie = (objdest.Ie == null ? "" : objdest.Ie);

                        condest = (new XElement(pf + "dest",
                                                  (objdest.Cnpj == "EXTERIOR" ? new XElement(pf + "CNPJ") :
                                                     (objdest.Cnpj != null ? new XElement(pf + "CNPJ", objdest.Cnpj) :
                                                                            new XElement(pf + "CPF", objdest.Cpf))),
                                                  new XElement(pf + "xNome", objdest.Xnome.ToString()),
                                                  new XElement(pf + "enderDest",
                                                      new XElement(pf + "xLgr", objdest.Xlgr.ToString()),
                                                      new XElement(pf + "nro", (objdest.Nro != null ? objdest.Nro.ToString() : "0")),
                                                      (objdest.Xcpl != null ? new XElement(pf + "xCpl", objdest.Xcpl.ToString()) : null),
                                                      new XElement(pf + "xBairro", objdest.Xbairro.ToString()),
                                                      new XElement(pf + "cMun", objdest.Cmun.ToString()),
                                                      new XElement(pf + "xMun", objdest.Xmun.ToString()),
                                                      new XElement(pf + "UF", objdest.Uf.ToString()),
                                                      (objdest.Cep != null ? new XElement(pf + "CEP", objdest.Cep.ToString()) : null),
                                                      new XElement(pf + "cPais", objdest.Cpais.ToString()),
                                                      (objdest.Xpais != null ? new XElement(pf + "xPais", objdest.Xpais.ToString()) : null),
                                                     (objdest.Fone != null ? new XElement(pf + "fone", objdest.Fone.ToString()) : null)),
                                                  ((objdest.Ie != null) ? (objdest.Ie != "EXTERIOR" ? new XElement(pf + "IE", objdest.Ie.ToString()) : new XElement(pf + "IE")) : null), //Claudinei - o.s. sem - 11/02/2010
                                                  (objdest.Isuf != null ? new XElement(pf + "ISUF", objdest.Isuf.ToString()) : null)));


                        #endregion
                    }
                    catch (Exception x)
                    {
                        throw new Exception("Nota de Sequência - " + sNota + "Erro na geração do XML, Regiao XML_Dest - " + x.Message);
                    }

                    #endregion

                    #region Det
                    List<XElement> lcondet = new List<XElement>();
                    try
                    {
                        List<belDet> objdet = new List<belDet>();
                        objdet = i[4] as List<belDet>;
                        #region XML_Detalhes

                        foreach (var det in objdet)
                        {
                            XElement condet = (new XElement(pf + "det", new XAttribute("nItem", det.Nitem),
                                               new XElement(pf + "prod",
                                                   (det.belProd.Cprod != null ? new XElement(pf + "cProd", det.belProd.Cprod.ToString()) : null),
                                                   (det.belProd.Cean != null ? new XElement(pf + "cEAN", det.belProd.Cean.ToString()) : null),
                                                   (det.belProd.Xprod != null ? new XElement(pf + "xProd", det.belProd.Xprod.ToString()) : null),
                                                   (det.belProd.Ncm != null ? new XElement(pf + "NCM", det.belProd.Ncm.ToString()) : new XElement(pf + "NCM", det.belProd.Ncm = "00000000")), //Claudinei - o.s. 24200 - 01/03/2010
                                                   (det.belProd.Extipi != null ? new XElement(pf + "EXTIPI", det.belProd.Extipi.ToString()) : null),
                                                   (det.belProd.Genero != null ? new XElement(pf + "genero", det.belProd.Genero.ToString()) : null),
                                                   (det.belProd.Cfop != null ? new XElement(pf + "CFOP", det.belProd.Cfop.ToString()) : null),
                                                   (det.belProd.Ucom != null ? new XElement(pf + "uCom", det.belProd.Ucom.ToString()) : null),
                                                   (det.belProd.Qcom != null ? new XElement(pf + "qCom", det.belProd.Qcom.ToString("#0.0000").Replace(",", ".")) : null),
                                                   (det.belProd.Vuncom != null ? new XElement(pf + "vUnCom", det.belProd.Vuncom.ToString("#0.0000").Replace(",", ".")) : null),
                                                   (det.belProd.Vprod != null ? new XElement(pf + "vProd", det.belProd.Vprod.ToString("#0.00").Replace(",", ".")) : null),
                                                   (det.belProd.Ceantrib != null ? new XElement(pf + "cEANTrib", det.belProd.Ceantrib.ToString().PadLeft(8, '0')) : null),
                                                   (det.belProd.Utrib != null ? new XElement(pf + "uTrib", det.belProd.Utrib.ToString()) : null),
                                                   (det.belProd.Qtrib != null ? new XElement(pf + "qTrib", det.belProd.Qtrib.ToString("#0.0000").Replace(",", ".")) : null),
                                                   (det.belProd.Vuntrib != null ? new XElement(pf + "vUnTrib", det.belProd.Vuntrib.ToString("#0.0000").Replace(",", ".")) : null),
                                                   ((det.belProd.Vfrete != null) && (det.belProd.Vfrete != 0) ? new XElement(pf + "vFrete", det.belProd.Vfrete.ToString("#0.00").Replace(",", ".")) : null),
                                                   ((det.belProd.Vseg != null) && (det.belProd.Vseg != 0) ? new XElement(pf + "vSeg", det.belProd.Vseg.ToString("#0.00").Replace(",", ".")) : null),
                                                   (((det.belProd.Vdesc != null) && (det.belProd.Vdesc != 0)) ? new XElement(pf + "vDesc", det.belProd.Vdesc.ToString("#0.00").Replace(",", ".")) : null),
                                                   ((det.belProd.VOutro != null) && (det.belProd.VOutro != 0) ? new XElement(pf + "vOutro", det.belProd.VOutro.ToString("#0.00").Replace(",", ".")) : null), //NFe_2.0 
                                                   (det.belProd.IndTot != null) ? new XElement(pf + "indTot", det.belProd.IndTot.ToString()) : null), //NFe_2.0

                                               new XElement(pf + "imposto",

                                                   //---------------ICMS-----------------//

                                                   new XElement(pf + "ICMS",

                                                       //-------------ICMS00-------------//

                                                       (det.belImposto.belIcms.belIcms00 != null ?
                                                       new XElement(pf + "ICMS00",
                                                            (det.belImposto.belIcms.belIcms00.Orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belIcms00.Orig.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms00.Cst != null ? new XElement(pf + "CST", det.belImposto.belIcms.belIcms00.Cst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms00.Modbc != null ? new XElement(pf + "modBC", det.belImposto.belIcms.belIcms00.Modbc.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms00.Vbc != null ? new XElement(pf + "vBC", det.belImposto.belIcms.belIcms00.Vbc.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms00.Picms != null ? new XElement(pf + "pICMS", det.belImposto.belIcms.belIcms00.Picms.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms00.Vicms != null ? new XElement(pf + "vICMS", det.belImposto.belIcms.belIcms00.Vicms.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                                        //-------------ICMS10-------------//

                                                        (det.belImposto.belIcms.belIcms10 != null ?
                                                        new XElement(pf + "ICMS10",
                                                            (det.belImposto.belIcms.belIcms10.Orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belIcms10.Orig.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms10.Cst != null ? new XElement(pf + "CST", det.belImposto.belIcms.belIcms10.Cst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms10.Modbc != null ? new XElement(pf + "modBC", det.belImposto.belIcms.belIcms10.Modbc.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms10.Vbc != null ? new XElement(pf + "vBC", det.belImposto.belIcms.belIcms10.Vbc.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms10.Picms != null ? new XElement(pf + "pICMS", det.belImposto.belIcms.belIcms10.Picms.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms10.Vicms != null ? new XElement(pf + "vICMS", det.belImposto.belIcms.belIcms10.Vicms.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms10.Modbcst != null ? new XElement(pf + "modBCST", det.belImposto.belIcms.belIcms10.Modbcst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms10.Pmvast != 0 ? new XElement(pf + "pMVAST", det.belImposto.belIcms.belIcms10.Pmvast.ToString("#0.00").Replace(",", ".")) : null), //Claudinei - o.s. sem - 11/03/2010
                                                            (det.belImposto.belIcms.belIcms10.Predbcst.ToString() != "0" ? new XElement(pf + "pRedBCST", det.belImposto.belIcms.belIcms10.Predbcst.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms10.Vbcst != null ? new XElement(pf + "vBCST", det.belImposto.belIcms.belIcms10.Vbcst.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms10.Picmsst != null ? new XElement(pf + "pICMSST", det.belImposto.belIcms.belIcms10.Picmsst.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms10.Vicmsst != null ? new XElement(pf + "vICMSST", det.belImposto.belIcms.belIcms10.Vicmsst.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                                        //-------------ICMS20-------------//

                                                        (det.belImposto.belIcms.belIcms20 != null ?
                                                        new XElement(pf + "ICMS20",
                                                            (det.belImposto.belIcms.belIcms20.Orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belIcms20.Orig.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms20.Cst != null ? new XElement(pf + "CST", det.belImposto.belIcms.belIcms20.Cst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms20.Modbc != null ? new XElement(pf + "modBC", det.belImposto.belIcms.belIcms20.Modbc.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms20.Predbc != null ? new XElement(pf + "pRedBC", det.belImposto.belIcms.belIcms20.Predbc.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms20.Vbc != null ? new XElement(pf + "vBC", det.belImposto.belIcms.belIcms20.Vbc.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms20.Picms != null ? new XElement(pf + "pICMS", det.belImposto.belIcms.belIcms20.Picms.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms20.Vicms != null ? new XElement(pf + "vICMS", det.belImposto.belIcms.belIcms20.Vicms.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                                        //-------------ICMS30-------------//

                                                        (det.belImposto.belIcms.belIcms30 != null ?
                                                        new XElement(pf + "ICMS30",
                                                            (det.belImposto.belIcms.belIcms30.Orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belIcms30.Orig.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms30.Cst != null ? new XElement(pf + "CST", det.belImposto.belIcms.belIcms30.Cst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms30.Modbcst != null ? new XElement(pf + "modBCST", det.belImposto.belIcms.belIcms30.Modbcst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms30.Pmvast != 0 ? new XElement(pf + "pMVAST", det.belImposto.belIcms.belIcms30.Pmvast.ToString("#0.00").Replace(",", ".")) : null), //Claudinei - o.s. sem - 12/03/2010
                                                            (det.belImposto.belIcms.belIcms30.Predbcst.ToString() != "0" ? new XElement(pf + "pRedBCST", det.belImposto.belIcms.belIcms30.Predbcst.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms30.Vbcst != null ? new XElement(pf + "vBCST", det.belImposto.belIcms.belIcms30.Vbcst.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms30.Picmsst != null ? new XElement(pf + "pICMSST", det.belImposto.belIcms.belIcms30.Picmsst.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms30.Vicmsst != null ? new XElement(pf + "vICMSST", det.belImposto.belIcms.belIcms30.Vicmsst.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                                        //-------------ICMS40-------------//

                                                        (det.belImposto.belIcms.belIcms40 != null ?
                                                        new XElement(pf + "ICMS40",
                                                            (det.belImposto.belIcms.belIcms40.Orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belIcms40.Orig.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms40.Cst != null ? new XElement(pf + "CST", det.belImposto.belIcms.belIcms40.Cst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms40.Vicms != null ? new XElement(pf + "vICMS", det.belImposto.belIcms.belIcms40.Vicms.ToString()) : null), //NFe_2.0
                                                            (det.belImposto.belIcms.belIcms40.motDesICMS != null ? new XElement(pf + "motDesICMS", det.belImposto.belIcms.belIcms40.motDesICMS.ToString()) : null)) : null),//NFe_2.0

                                                        //-------------ICMS41-------------//

                                                        (det.belImposto.belIcms.belIcms41 != null ?
                                                        new XElement(pf + "ICMS41",
                                                            (det.belImposto.belIcms.belIcms41.Orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belIcms41.Orig.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms41.Cst != null ? new XElement(pf + "CST", det.belImposto.belIcms.belIcms41.Cst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms41.Vicms != null ? new XElement(pf + "vICMS", det.belImposto.belIcms.belIcms41.Vicms.ToString()) : null),//NFe_2.0
                                                            (det.belImposto.belIcms.belIcms41.motDesICMS != null ? new XElement(pf + "motDesICMS", det.belImposto.belIcms.belIcms41.motDesICMS.ToString()) : null)) : null),//NFe_2.0

                                                        //-------------ICMS50-------------//

                                                        (det.belImposto.belIcms.belIcms50 != null ?
                                                        new XElement(pf + "ICMS50",
                                                            (det.belImposto.belIcms.belIcms50.Orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belIcms50.Orig.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms50.Cst != null ? new XElement(pf + "CST", det.belImposto.belIcms.belIcms50.Cst.ToString()) : null),
                                                                (det.belImposto.belIcms.belIcms50.Vicms != null ? new XElement(pf + "vICMS", det.belImposto.belIcms.belIcms50.Vicms.ToString()) : null),//NFe_2.0
                                                            (det.belImposto.belIcms.belIcms50.motDesICMS != null ? new XElement(pf + "motDesICMS", det.belImposto.belIcms.belIcms50.motDesICMS.ToString()) : null)) : null),//NFe_2.0

                                                        //-------------ICMS51-------------//

                                                        (det.belImposto.belIcms.belIcms51 != null ?
                                                        new XElement(pf + "ICMS51",
                                                            (det.belImposto.belIcms.belIcms51.Orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belIcms51.Orig.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms51.Cst != null ? new XElement(pf + "CST", det.belImposto.belIcms.belIcms51.Cst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms51.Modbc != null ? new XElement(pf + "modBC", det.belImposto.belIcms.belIcms51.Modbc.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms51.Predbc != null ? new XElement(pf + "pRedBC", det.belImposto.belIcms.belIcms51.Predbc.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms51.Vbc != null ? new XElement(pf + "vBC", det.belImposto.belIcms.belIcms51.Vbc.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms51.Picms != null ? new XElement(pf + "pICMS", det.belImposto.belIcms.belIcms51.Picms.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms51.Vicms != null ? new XElement(pf + "vICMS", det.belImposto.belIcms.belIcms51.Vicms.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                                        //-------------ICMS60-------------//

                                                        (det.belImposto.belIcms.belIcms60 != null ?
                                                        new XElement(pf + "ICMS60",//Danner - o.s. sem - 12/03/2010
                                                            (det.belImposto.belIcms.belIcms60.Orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belIcms60.Orig.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms60.Cst != null ? new XElement(pf + "CST", det.belImposto.belIcms.belIcms60.Cst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms60.Vbcst != null ? new XElement(pf + "vBCSTRet", det.belImposto.belIcms.belIcms60.Vbcst.ToString("#0.00").Replace(",", ".")) : null),//NFe_2.0 - Mudança de nome de Tag
                                                            (det.belImposto.belIcms.belIcms60.Vicmsst != null ? new XElement(pf + "vICMSSTRet", det.belImposto.belIcms.belIcms60.Vicmsst.ToString("#0.00").Replace(",", ".")) : null)) : null),//NFe_2.0 Mudança de nome de Tag

                                                        //-------------ICMS70-------------//

                                                        (det.belImposto.belIcms.belIcms70 != null ?
                                                        new XElement(pf + "ICMS70",
                                                            (det.belImposto.belIcms.belIcms70.Orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belIcms70.Orig.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms70.Cst != null ? new XElement(pf + "CST", det.belImposto.belIcms.belIcms70.Cst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms70.Modbc != null ? new XElement(pf + "modBC", det.belImposto.belIcms.belIcms70.Modbc.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms70.Predbc != null ? new XElement(pf + "pRedBC", det.belImposto.belIcms.belIcms70.Predbc.ToString("#0.00").Replace(',', '.')) : null), //Danner - o.s. 24091 - 06/02/2010
                                                            (det.belImposto.belIcms.belIcms70.Vbc != null ? new XElement(pf + "vBC", det.belImposto.belIcms.belIcms70.Vbc.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms70.Picms != null ? new XElement(pf + "pICMS", det.belImposto.belIcms.belIcms70.Picms.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms70.Vicms != null ? new XElement(pf + "vICMS", det.belImposto.belIcms.belIcms70.Vicms.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms70.Modbcst != null ? new XElement(pf + "modBCST", det.belImposto.belIcms.belIcms70.Modbcst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms70.Pmvast != 0 ? new XElement(pf + "pMVAST", det.belImposto.belIcms.belIcms70.Pmvast.ToString("#0.00").Replace(",", ".")) : null), //Claudinei - o.s. sem - 12/03/2010
                                                            (det.belImposto.belIcms.belIcms70.Predbcst.ToString() != "0" ? new XElement(pf + "pRedBCST", det.belImposto.belIcms.belIcms70.Predbcst.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms70.Vbcst != null ? new XElement(pf + "vBCST", det.belImposto.belIcms.belIcms70.Vbcst.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms70.Picmsst != null ? new XElement(pf + "pICMSST", det.belImposto.belIcms.belIcms70.Picmsst.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms70.Vicmsst != null ? new XElement(pf + "vICMSST", det.belImposto.belIcms.belIcms70.Vicmsst.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                                        //-------------ICMS90-------------//

                                                        (det.belImposto.belIcms.belIcms90 != null ?
                                                        new XElement(pf + "ICMS90",
                                                            (det.belImposto.belIcms.belIcms90.Orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belIcms90.Orig.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms90.Cst != null ? new XElement(pf + "CST", det.belImposto.belIcms.belIcms90.Cst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms90.Modbc != null ? new XElement(pf + "modBC", det.belImposto.belIcms.belIcms90.Modbc.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms90.Vbc != null ? new XElement(pf + "vBC", det.belImposto.belIcms.belIcms90.Vbc.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms90.Predbc != 0 ? new XElement(pf + "pRedBC", det.belImposto.belIcms.belIcms90.Predbc.ToString("#0.00").Replace(',', '.')) : null), //Danner - o.s. 24091 - 06/02/2010 //Claudinei - o.s. sem - 24/02/2010
                                                            (det.belImposto.belIcms.belIcms90.Picms != null ? new XElement(pf + "pICMS", det.belImposto.belIcms.belIcms90.Picms.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms90.Vicms != null ? new XElement(pf + "vICMS", det.belImposto.belIcms.belIcms90.Vicms.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms90.Modbcst != null ? new XElement(pf + "modBCST", det.belImposto.belIcms.belIcms90.Modbcst.ToString()) : null),
                                                            (det.belImposto.belIcms.belIcms90.Pmvast != 0 ? new XElement(pf + "pMVAST", det.belImposto.belIcms.belIcms90.Pmvast.ToString("#0.00").Replace(",", ".")) : null), //Claudinei - o.s. 24076 - 01/02/2010
                                                            (det.belImposto.belIcms.belIcms90.Predbcst.ToString() != "0" ? new XElement(pf + "pRedBCST", det.belImposto.belIcms.belIcms90.Predbcst.ToString("#0.00").Replace(",", ".")) : null), //Claudinei - o.s. 24076 - 01/02/2010
                                                            (det.belImposto.belIcms.belIcms90.Vbcst != null ? new XElement(pf + "vBCST", det.belImposto.belIcms.belIcms90.Vbcst.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms90.Picmsst != null ? new XElement(pf + "pICMSST", det.belImposto.belIcms.belIcms90.Picmsst.ToString("#0.00").Replace(",", ".")) : null),
                                                            (det.belImposto.belIcms.belIcms90.Vicmsst != null ? new XElement(pf + "vICMSST", det.belImposto.belIcms.belIcms90.Vicmsst.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                                       //-------------ICMSSN101--------------//
                                                       (det.belImposto.belIcms.belICMSSN101 != null ?
                                                            new XElement(pf + "ICMSSN101",
                                                               (det.belImposto.belIcms.belICMSSN101.orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belICMSSN101.orig.ToString()) : null),
                                                               new XElement(pf + "CSOSN", det.belImposto.belIcms.belICMSSN101.CSOSN.ToString()),
                                                               (det.belImposto.belIcms.belICMSSN101.pCredSN != null ? new XElement(pf + "pCredSN", det.belImposto.belIcms.belICMSSN101.pCredSN.ToString("#0.00").Replace(",", ".")) : null),
                                                               (det.belImposto.belIcms.belICMSSN101.vCredICMSSN != null ? new XElement(pf + "vCredICMSSN", det.belImposto.belIcms.belICMSSN101.vCredICMSSN.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                                      //-------------ICMSSN102--------------//
                                                       (det.belImposto.belIcms.belICMSSN102 != null ?
                                                            new XElement(pf + "ICMSSN102",
                                                               (det.belImposto.belIcms.belICMSSN102.orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belICMSSN102.orig.ToString()) : null),
                                                               new XElement(pf + "CSOSN", det.belImposto.belIcms.belICMSSN102.CSOSN.ToString())) : null),

                                                      //-------------ICMSSN201--------------//
                                                       (det.belImposto.belIcms.belICMSSN201 != null ?
                                                            new XElement(pf + "ICMSSN201",
                                                               (det.belImposto.belIcms.belICMSSN201.orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belICMSSN201.orig.ToString()) : null),
                                                               new XElement(pf + "CSOSN", det.belImposto.belIcms.belICMSSN201.CSOSN.ToString()),
                                                               (det.belImposto.belIcms.belICMSSN201.modBCST != null ? new XElement(pf + "modBCST", det.belImposto.belIcms.belICMSSN201.modBCST.ToString()) : null),
                                                               (det.belImposto.belIcms.belICMSSN201.pMVAST != null ? new XElement(pf + "pMVAST", det.belImposto.belIcms.belICMSSN201.pMVAST.ToString("#0.00").Replace(",", ".")) : null),
                                                               (det.belImposto.belIcms.belICMSSN201.pRedBCST != null ? new XElement(pf + "pRedBCST", det.belImposto.belIcms.belICMSSN201.pRedBCST.ToString("#0.00").Replace(",", ".")) : null),
                                                               (det.belImposto.belIcms.belICMSSN201.vBCST != null ? new XElement(pf + "vBCST", det.belImposto.belIcms.belICMSSN201.vBCST.ToString("#0.00").Replace(",", ".")) : null),
                                                               (det.belImposto.belIcms.belICMSSN201.pICMSST != null ? new XElement(pf + "pICMSST", det.belImposto.belIcms.belICMSSN201.pICMSST.ToString("#0.00").Replace(",", ".")) : null),
                                                               (det.belImposto.belIcms.belICMSSN201.vICMSST != null ? new XElement(pf + "vICMSST", det.belImposto.belIcms.belICMSSN201.vICMSST.ToString("#0.00").Replace(",", ".")) : null),
                                                               (det.belImposto.belIcms.belICMSSN201.pCredSN != null ? new XElement(pf + "pCredSN", det.belImposto.belIcms.belICMSSN201.pCredSN.ToString("#0.00").Replace(",", ".")) : null),
                                                               (det.belImposto.belIcms.belICMSSN201.vCredICMSSN != null ? new XElement(pf + "vCredICMSSN", det.belImposto.belIcms.belICMSSN201.vCredICMSSN.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                                      //-------------ICMSSN500--------------//
                                                       (det.belImposto.belIcms.belICMSSN500 != null ?
                                                            new XElement(pf + "ICMSSN500",
                                                               (det.belImposto.belIcms.belICMSSN500.orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belICMSSN500.orig.ToString()) : null),
                                                               new XElement(pf + "CSOSN", det.belImposto.belIcms.belICMSSN500.CSOSN.ToString()),
                                                               (det.belImposto.belIcms.belICMSSN500.vBCSTRet != null ? new XElement(pf + "vBCSTRet", det.belImposto.belIcms.belICMSSN500.vBCSTRet.ToString("#0.00").Replace(",", ".")) : null),
                                                               (det.belImposto.belIcms.belICMSSN500.vICMSSTRet != null ? new XElement(pf + "vICMSSTRet", det.belImposto.belIcms.belICMSSN500.vICMSSTRet.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                                      //-------------ICMSSN900--------------//
                                                       (det.belImposto.belIcms.belICMSSN900 != null ?
                                                            new XElement(pf + "ICMSSN900",
                                                               (det.belImposto.belIcms.belICMSSN900.orig != null ? new XElement(pf + "orig", det.belImposto.belIcms.belICMSSN900.orig.ToString()) : null),
                                                               new XElement(pf + "CSOSN", det.belImposto.belIcms.belICMSSN900.CSOSN.ToString())) : null)),
                                //(det.belImposto.belIcms.belICMSSN900.modBC != null ? new XElement(pf + "modBC", det.belImposto.belIcms.belICMSSN900.modBC.ToString()) : null),
                                //(det.belImposto.belIcms.belICMSSN900.vBC != null ? new XElement(pf + "vBC", det.belImposto.belIcms.belICMSSN900.vBC.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.pRedBC != null ? new XElement(pf + "pRedBC", det.belImposto.belIcms.belICMSSN900.pRedBC.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.pICMS != null ? new XElement(pf + "pICMS", det.belImposto.belIcms.belICMSSN900.pICMS.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.vICMS != null ? new XElement(pf + "vICMS", det.belImposto.belIcms.belICMSSN900.vICMS.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.modBCST != null ? new XElement(pf + "modBCST", det.belImposto.belIcms.belICMSSN900.modBCST.ToString()) : null),
                                //(det.belImposto.belIcms.belICMSSN900.pMVAST != null ? new XElement(pf + "pMVAST", det.belImposto.belIcms.belICMSSN900.pMVAST.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.pRedBCST != null ? new XElement(pf + "pRedBCST", det.belImposto.belIcms.belICMSSN900.pRedBCST.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.vBCST != null ? new XElement(pf + "vBCST", det.belImposto.belIcms.belICMSSN900.vBCST.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.pICMSST != null ? new XElement(pf + "pICMSST", det.belImposto.belIcms.belICMSSN900.pICMSST.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.vICMSST != null ? new XElement(pf + "vICMSST", det.belImposto.belIcms.belICMSSN900.vICMSST.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.vBCSTRet != null ? new XElement(pf + "vBCSTRet", det.belImposto.belIcms.belICMSSN900.vBCSTRet.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.vICMSSTRet != null ? new XElement(pf + "vICMSSTRet", det.belImposto.belIcms.belICMSSN900.vICMSSTRet.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.pCredSN != null ? new XElement(pf + "pCredSN", det.belImposto.belIcms.belICMSSN900.pCredSN.ToString("#0.00").Replace(",", ".")) : null),
                                //(det.belImposto.belIcms.belICMSSN900.vCredICMSSN != null ? new XElement(pf + "vCredICMSSN", det.belImposto.belIcms.belICMSSN900.vCredICMSSN.ToString("#0.00").Replace(",", ".")) : null)) : null)),

                                        //---------------IPI-------------//
                                            (det.belImposto.belIpi != null ?
                                            new XElement(pf + "IPI",
                                                (det.belImposto.belIpi.Clenq != null ?
                                                    new XElement(pf + "clEnq", det.belImposto.belIpi.Clenq.ToString()) : null),
                                                (det.belImposto.belIpi.Cnpjprod != null ?
                                                    new XElement(pf + "CNPJProd", det.belImposto.belIpi.Cnpjprod.ToString()) : null),
                                                (det.belImposto.belIpi.Cselo != null ?
                                                    new XElement(pf + "cSelo", det.belImposto.belIpi.Cselo.ToString()) : null),
                                                (det.belImposto.belIpi.Qselo != null ?
                                                    new XElement(pf + "qSelo", det.belImposto.belIpi.Qselo.ToString()) : null),
                                                (det.belImposto.belIpi.Cenq != null ?
                                                    new XElement(pf + "cEnq", det.belImposto.belIpi.Cenq.ToString()) : null),

                                                //-----------IPITrib-----------//    

                                                (det.belImposto.belIpi.belIpitrib != null ?
                                                new XElement(pf + "IPITrib",
                                                    (det.belImposto.belIpi.belIpitrib.Cst != null ? new XElement(pf + "CST", det.belImposto.belIpi.belIpitrib.Cst.ToString()) : null),
                                                    (det.belImposto.belIpi.belIpitrib.Vbc != null ? new XElement(pf + "vBC", det.belImposto.belIpi.belIpitrib.Vbc.ToString("#0.00").Replace(",", ".")) : null),
                                                    (det.belImposto.belIpi.belIpitrib.Qunid != null ? new XElement(pf + "qUnid", det.belImposto.belIpi.belIpitrib.Qunid.ToString()) : null),
                                                    (det.belImposto.belIpi.belIpitrib.Vunid != 0 ? new XElement(pf + "vUnid", det.belImposto.belIpi.belIpitrib.Vunid.ToString("#0.0000").Replace(",", ".")) : null),
                                                    (det.belImposto.belIpi.belIpitrib.Pipi != null ? new XElement(pf + "pIPI", det.belImposto.belIpi.belIpitrib.Pipi.ToString("#0.00").Replace(",", ".")) : null),
                                                    (det.belImposto.belIpi.belIpitrib.Vipi != null ? new XElement(pf + "vIPI", det.belImposto.belIpi.belIpitrib.Vipi.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                                //-----------IPINT-----------//

                                                (det.belImposto.belIpi.belIpint != null ?
                                                new XElement(pf + "IPINT",
                                                    (det.belImposto.belIpi.belIpint != null ? new XElement(pf + "CST", det.belImposto.belIpi.belIpint.Cst.ToString()) : null)) : null)) : null),




                                       //--------------II--------------//             
                                       (det.belImposto.belIi != null ?
                                       new XElement(pf + "II",
                                           (det.belImposto.belIi.Vbc != null ? new XElement(pf + "vBC", det.belImposto.belIi.Vbc.ToString("#0.00").Replace(',', '.')) : null),
                                           (det.belImposto.belIi.Vdespadu != null ? new XElement(pf + "vDespAdu", det.belImposto.belIi.Vdespadu.ToString()) : null),
                                           (det.belImposto.belIi.Vii != null ? new XElement(pf + "vII", det.belImposto.belIi.Vii.ToString("0.00").Replace(',', '.')) : null),
                                           (det.belImposto.belIi.Viof != null ? new XElement(pf + "vIOF", det.belImposto.belIi.Viof.ToString("#0.00").Replace(',', '.')) : null)) : null),



                               //----------------PIS------------//

                                 (det.belImposto.belPis != null ?
                                 new XElement(pf + "PIS",

                                     //-----------PISAliq----------//

                                     (det.belImposto.belPis.belPisaliq != null ?
                                     new XElement(pf + "PISAliq",
                                         (det.belImposto.belPis.belPisaliq.Cst != null ? new XElement(pf + "CST", det.belImposto.belPis.belPisaliq.Cst.ToString()) : null),
                                         (det.belImposto.belPis.belPisaliq.Vbc != null ? new XElement(pf + "vBC", det.belImposto.belPis.belPisaliq.Vbc.ToString("#0.00").Replace(",", ".")) : null),
                                         (det.belImposto.belPis.belPisaliq.Ppis != null ? new XElement(pf + "pPIS", det.belImposto.belPis.belPisaliq.Ppis.ToString("#0.00").Replace(",", ".")) : null),
                                         (det.belImposto.belPis.belPisaliq.Vpis != null ? new XElement(pf + "vPIS", det.belImposto.belPis.belPisaliq.Vpis.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                    //-----------PISQtde-----------//                               
                                     (det.belImposto.belPis.belPisqtde != null ?
                                     new XElement(pf + "PISQtde",
                                         (det.belImposto.belPis.belPisqtde.Cst != null ? new XElement(pf + "CST", det.belImposto.belPis.belPisqtde.Cst.ToString()) : null),
                                         (det.belImposto.belPis.belPisqtde.Qbcprod != 0 ? new XElement(pf + "qBCProd", det.belImposto.belPis.belPisqtde.Qbcprod.ToString()) : null),
                                         (det.belImposto.belPis.belPisqtde.Valiqprod != null ? new XElement(pf + "vAliqProd", det.belImposto.belPis.belPisqtde.Valiqprod.ToString("#0.00").Replace(",", ".")) : null),
                                         (det.belImposto.belPis.belPisqtde.Vpis != null ? new XElement(pf + "vPIS", det.belImposto.belPis.belPisqtde.Vpis.ToString("#0.00").Replace(",", ".")) : null)) : null),

                                     //----------PISNT------------//

                                     (det.belImposto.belPis.belPisnt != null ?
                                     new XElement(pf + "PISNT",
                                         (det.belImposto.belPis.belPisnt.Cst != null ? new XElement(pf + "CST", det.belImposto.belPis.belPisnt.Cst.ToString()) : null)) : null),

                                     //----------PISOutr-----------//

                                     (det.belImposto.belPis.belPisoutr != null ?
                                     new XElement(pf + "PISOutr",
                                         (det.belImposto.belPis.belPisoutr.Cst != null ? new XElement(pf + "CST", det.belImposto.belPis.belPisoutr.Cst.ToString()) : null),
                                         (det.belImposto.belPis.belPisoutr.Vbc != null ? new XElement(pf + "vBC", det.belImposto.belPis.belPisoutr.Vbc.ToString("#0.00").Replace(",", ".")) : null),
                                         (det.belImposto.belPis.belPisoutr.Ppis != null ? new XElement(pf + "pPIS", det.belImposto.belPis.belPisoutr.Ppis.ToString("#0.00").Replace(",", ".")) : null),
                                         (det.belImposto.belPis.belPisoutr.Qbcprod != 0 ? new XElement(pf + "qBCProd", det.belImposto.belPis.belPisoutr.Qbcprod.ToString()) : null),
                                         (det.belImposto.belPis.belPisoutr.Valiqprod != 0 ? new XElement(pf + "vAliqProd", det.belImposto.belPis.belPisoutr.Valiqprod.ToString("#0.0000").Replace(",", ".")) : null),
                                         (det.belImposto.belPis.belPisoutr.Vpis != null ? new XElement(pf + "vPIS", det.belImposto.belPis.belPisoutr.Vpis.ToString("#0.00").Replace(",", ".")) : null)) : null)) : null),







                                 //---------------COFINS---------------//
                                 (det.belImposto.belCofins != null ?
                                 new XElement(pf + "COFINS",

                                     //-----------COFINSAliq------------//

                                     (det.belImposto.belCofins.belCofinsaliq != null ?
                                     new XElement(pf + "COFINSAliq",
                                         new XElement(pf + "CST", det.belImposto.belCofins.belCofinsaliq.Cst.ToString()),
                                         new XElement(pf + "vBC", det.belImposto.belCofins.belCofinsaliq.Vbc.ToString("#0.00").Replace(",", ".")),
                                         new XElement(pf + "pCOFINS", det.belImposto.belCofins.belCofinsaliq.Pcofins.ToString("#0.00").Replace(",", ".")),
                                         new XElement(pf + "vCOFINS", det.belImposto.belCofins.belCofinsaliq.Vcofins.ToString("#0.00").Replace(",", "."))) : null),

                                     //------------COFINSQtde------------//

                                     (det.belImposto.belCofins.belCofinsqtde != null ?
                                     new XElement(pf + "COFINSQtde",
                                         new XElement(pf + "CST", det.belImposto.belCofins.belCofinsqtde.Cst.ToString()),
                                         new XElement(pf + "pBCProd", det.belImposto.belCofins.belCofinsqtde.Qbcprod.ToString()),
                                         new XElement(pf + "vAliqProd", det.belImposto.belCofins.belCofinsqtde.Valiqprod.ToString("#0.00").Replace(",", ".")),
                                         new XElement(pf + "vCOFINS", det.belImposto.belCofins.belCofinsqtde.Vcofins.ToString("#0.00").Replace(",", "."))) : null),

                                     //------------COFINSNT--------------//

                                     (det.belImposto.belCofins.belCofinsnt != null ?
                                     new XElement(pf + "COFINSNT",
                                         (det.belImposto.belCofins.belCofinsnt.Cst != null ? new XElement(pf + "CST", det.belImposto.belCofins.belCofinsnt.Cst.ToString()) : null)) : null),

                                     //------------COFINSOutr--------------//

                                     (det.belImposto.belCofins.belCofinsoutr != null ?
                                     new XElement(pf + "COFINSOutr",
                                         new XElement(pf + "CST", det.belImposto.belCofins.belCofinsoutr.Cst.ToString()),
                                         new XElement(pf + "vBC", det.belImposto.belCofins.belCofinsoutr.Vbc.ToString("#0.00").Replace(",", ".")),
                                         new XElement(pf + "pCOFINS", det.belImposto.belCofins.belCofinsoutr.Pcofins.ToString("#0.00").Replace(",", ".")),
                                         new XElement(pf + "vCOFINS", det.belImposto.belCofins.belCofinsoutr.Vcofins.ToString("#0.00").Replace(",", "."))) : null)) : null),


                                 //----------------ISSQN-----------------//

                                 (det.belImposto.belIss != null ?
                                 new XElement(pf + "ISSQN",
                                     (det.belImposto.belIss.Vbc != null ? new XElement(pf + "vBC", det.belImposto.belIss.Vbc.ToString("#0.00").Replace(",", ".")) : null),
                                     (det.belImposto.belIss.Valiq != null ? new XElement(pf + "vAliq", det.belImposto.belIss.Valiq.ToString("#0.00").Replace(",", ".")) : null),
                                     (det.belImposto.belIss.Vissqn != null ? new XElement(pf + "vISSQN", det.belImposto.belIss.Vissqn.ToString("#0.00").Replace(",", ".")) : null),
                                     (det.belImposto.belIss.Cmunfg != null ? new XElement(pf + "cMunFG", det.belImposto.belIss.Cmunfg.ToString()) : null),
                                     (det.belImposto.belIss.Clistserv != null ? new XElement(pf + "cListServ", det.belImposto.belIss.Clistserv.ToString()) : null),
                                     (det.belImposto.belIss.cSitTrib != null ? new XElement(pf + "cSitTrib", det.belImposto.belIss.cSitTrib.ToString()) : null)) : null)), // NFe_2.0 Tratar item


                                 //-----------INFADPROD-------------//

                                 (det.belInfadprod != null ?
                                 (det.belInfadprod.Infadprid != null ? new XElement(pf + "infAdProd", det.belInfadprod.Infadprid.ToString()) : null) : null))); //Danner - o.s. sem -21/12/2009

                            lcondet.Add(condet);
                        }
                        #endregion
                    }
                    catch (Exception x)
                    {
                        throw new Exception("Nota de Sequência - " + sNota + "Erro na geração do XML, Regiao XML_Detalhes - " + x.Message);
                    }
                    #endregion

                    //Total
                    XContainer contotal;

                    try
                    {
                        belTotal objtotal = i[5] as belTotal;
                        #region XML_Total

                        contotal = (new XElement(pf + "total",
                                                (objtotal.belIcmstot != null ? new XElement(pf + "ICMSTot",
                                                      new XElement(pf + "vBC", objtotal.belIcmstot.Vbc.ToString("#0.00").Replace(",", ".")),//Danner - o.s. 24271 - 15/03/2010
                                                      new XElement(pf + "vICMS", objtotal.belIcmstot.Vicms.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vBCST", objtotal.belIcmstot.Vbcst.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vST", objtotal.belIcmstot.Vst.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vProd", objtotal.belIcmstot.Vprod.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vFrete", objtotal.belIcmstot.Vfrete.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vSeg", objtotal.belIcmstot.Vseg.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vDesc", objtotal.belIcmstot.Vdesc.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vII", objtotal.belIcmstot.Vii.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vIPI", objtotal.belIcmstot.Vipi.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vPIS", objtotal.belIcmstot.Vpis.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vCOFINS", objtotal.belIcmstot.Vcofins.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vOutro", objtotal.belIcmstot.Voutro.ToString("#0.00").Replace(",", ".")),
                                                      new XElement(pf + "vNF", objtotal.belIcmstot.Vnf.ToString("#0.00").Replace(",", "."))) : null),



                                                (objtotal.belIssqntot != null ? new XElement(pf + "ISSQNtot",
                                                    new XElement(pf + "vServ", objtotal.belIssqntot.Vserv.ToString("#0.00").Replace(",", ".")),
                                                    new XElement(pf + "vBC", objtotal.belIssqntot.Vbc.ToString("#0.00").Replace(",", ".")),
                                                    new XElement(pf + "vISS", objtotal.belIssqntot.Viss.ToString("#0.00").Replace(",", ".")),
                                                    (objtotal.belIssqntot.Vpis != 0 ? new XElement(pf + "vPIS", objtotal.belIssqntot.Vpis.ToString("#0.00").Replace(",", ".")) : null),
                                                    (objtotal.belIssqntot.Vcofins != 0 ? new XElement(pf + "vCOFINS", objtotal.belIssqntot.Vcofins.ToString("#0.00").Replace(",", ".")) : null)) : null)));
                        //(objtotal.belRetTrib != null ? new XElement(pf + "retTrib",
                        //                                   new XElement(pf + "vRetPIS", objtotal.belRetTrib.Vretpis.ToString("#0.00").Replace(",", ".")),
                        //                                   new XElement(pf + "vRetCOFINS", objtotal.belRetTrib.Vretcofins.ToString("#0.00").Replace(",", ".")),
                        //                                   new XElement(pf + "vRetCSLL", objtotal.belRetTrib.Vretcsll.ToString("#0.00").Replace(",", ".")),
                        //                                   new XElement(pf + "vBCIRRF", objtotal.belRetTrib.Vbcirrf.ToString("#0.00"),
                        //                                   new XElement(pf + "vIRRF", objtotal.belRetTrib.Virrf.ToString("#0.00").Replace(",", ".")),
                        //                                   new XElement(pf + "vBCRetPrev", objtotal.belRetTrib.Vbcretprev.ToString("#0.00").Replace(",", ".")),
                        //                                   new XElement(pf + "vRetPrev", objtotal.belRetTrib.Vretprev.ToString("#0.00").Replace(",", "."))) : null)));

                        #endregion
                    }
                    catch (Exception x)
                    {
                        throw new Exception("Nota de Sequência - " + sNota + "Erro na geração do XML, Regiao XML_Total - " + x.Message);
                    }
                    //Fim - Total

                    //Frete
                    XContainer contransp;
                    belTransp objtransp;
                    try
                    {
                        objtransp = i[6] as belTransp;
                        #region XML_Transporte

                        contransp = (new XElement(pf + "transp",
                                                   new XElement(pf + "modFrete", objtransp.Modfrete.ToString()),
                                                   new XElement(pf + "transporta",
                                                       (objtransp.belTransportadora.Cnpj != null ? new XElement(pf + "CNPJ", objtransp.belTransportadora.Cnpj.ToString()) :
                                                                                                   (objtransp.belTransportadora.Cpf != null ? new XElement(pf + "CPF", objtransp.belTransportadora.Cpf.ToString()) : null)),
                                                       (objtransp.belTransportadora.Xnome != null ? new XElement(pf + "xNome", objtransp.belTransportadora.Xnome.ToString()) : null),
                                                       (objtransp.belTransportadora.Ie != null ? new XElement(pf + "IE", objtransp.belTransportadora.Ie.ToString()) : null),
                                                       (objtransp.belTransportadora.Xender != null ? new XElement(pf + "xEnder", objtransp.belTransportadora.Xender.ToString()) : null),
                                                       (objtransp.belTransportadora.Xmun != null ? new XElement(pf + "xMun", objtransp.belTransportadora.Xmun.ToString()) : null),
                                                       (objtransp.belTransportadora.Uf != null ? new XElement(pf + "UF", objtransp.belTransportadora.Uf.ToString()) : null)),
                (objtransp.belRetTransp != null ? (new XElement(pf + "retTransp",
                                                       new XElement(pf + "vServ", objtransp.belRetTransp.Vserv.ToString("#0.00").Replace(',', '.')),
                                                       new XElement(pf + "vBCRet", objtransp.belRetTransp.Vbvret.ToString("#0.00").Replace(',', '.')),
                                                       new XElement(pf + "pICMSRet", objtransp.belRetTransp.Picmsret.ToString()),
                                                       new XElement(pf + "vICMSRet", objtransp.belRetTransp.Vicmsret.ToString("#0.00").Replace(',', '.')),
                                                       new XElement(pf + "CFOP", objtransp.belRetTransp.Cfop.ToString()),
                                                       new XElement(pf + "cMunFG", objtransp.belRetTransp.Cmunfg.ToString()))) : null),
                (objtransp.belVeicTransp != null ? (new XElement(pf + "veicTransp",
                                                       (objtransp.belVeicTransp.Placa != null ? new XElement(pf + "placa", objtransp.belVeicTransp.Placa.ToString()) : null),
                                                       (objtransp.belVeicTransp.Uf != null ? new XElement(pf + "UF", objtransp.belVeicTransp.Uf.ToString()) : null),
                                                       (objtransp.belVeicTransp.Rntc != null ? new XElement(pf + "RNTC", objtransp.belVeicTransp.Rntc.ToString()) : null))) : null),
                   (objtransp.belReboque != null ? new XElement(pf + "reboque",
                                                       (objtransp.belReboque.Placa != null ? new XElement(pf + "placa", objtransp.belReboque.Placa.ToString()) : null),
                                                       (objtransp.belReboque.Uf != null ? new XElement(pf + "UF", objtransp.belReboque.Uf.ToString()) : null),
                                                       (objtransp.belReboque.Rntc != null ? new XElement(pf + "RNTC", objtransp.belReboque.Rntc.ToString()) : null)) : null),
                       (objtransp.belVol != null ? new XElement(pf + "vol",
                                                       new XElement(pf + "qVol", objtransp.belVol.Qvol.ToString("#")),
                                                       new XElement(pf + "esp", objtransp.belVol.Esp.ToString()),
                                                       new XElement(pf + "marca", objtransp.belVol.Marca.ToString()),
                                                       (objtransp.belVol.Nvol != null ? new XElement(pf + "nVol", objtransp.belVol.Nvol.ToString()) : null),//Danner - o.s. 24385 - 26/04/2010
                                                       new XElement(pf + "pesoL", objtransp.belVol.PesoL.ToString("#0.000").Replace(",", ".")),
                                                       new XElement(pf + "pesoB", objtransp.belVol.PesoB.ToString("#0.000").Replace(",", "."))) : null),
                   (objtransp.belLacres != null ? new XElement(pf + "lacres",
                                                       new XElement(pf + "nLacre", "")) : null)));



                        #endregion
                    }
                    catch (Exception x)
                    {
                        throw new Exception("Nota de Sequência - " + sNota + "Erro na geração do XML, Regiao XML_Transporte - " + x.Message);
                    }
                    //Fim - Frete

                    //Duplicata
                    XContainer concobr;
                    belCobr objcob;
                    try
                    {
                        objcob = i[7] as belCobr;
                        belGerarXML BuscaConexao = new belGerarXML();
                        #region XML_Cobrança
                        concobr = (new XElement(pf + "cobr",
                                                  new XElement(pf + "fat",
                                                      new XElement(pf + "nFat", objcob.belFat.Nfat.ToString()),
                                                      (objcob.belFat.Vorig != 0 ? new XElement(pf + "vOrig", objcob.belFat.Vorig.ToString("#0.00").Replace(",", ".")) : null),
                                                      (objcob.belFat.Vdesc != null && objcob.belFat.Vdesc != 0 ? new XElement(pf + "vDesc", objcob.belFat.Vdesc.ToString("#0.00").Replace(",", ".")) : null),
                                                      (objcob.belFat.Vliq != 0 ? new XElement(pf + "vLiq", objcob.belFat.Vliq.ToString("#0.00").Replace(",", ".")) : null)),
                                                      (objcob.belFat.belDup != null ? from dup in objcob.belFat.belDup
                                                                                      select new XElement(pf + "dup", new XElement(pf + "nDup", dup.Ndup.ToString()),
                                                                                             new XElement(pf + "dVenc", dup.Dvenc.ToString("yyyy-MM-dd")),
                                                                                             (BuscaConexao.nm_Cliente != "LORENZON" ? new XElement(pf + "vDup", dup.Vdup.ToString("#0.00").Replace(",", ".")) : null)) : null)));

                        #endregion
                    }
                    catch (Exception x)
                    {
                        throw new Exception("Nota de Sequência - " + sNota + "Erro na geração do XML, Region XML_Cobrança - " + x.Message);
                    }
                    //Fim - Duplicata

                    //Obs
                    XContainer conobs;
                    belInfAdic objobs;
                    try
                    {
                        objobs = i[8] as belInfAdic;
                        #region XML_Obs
                        conobs = new XElement(pf + "infAdic",
                                                    (objobs.Infcpl != null ?
                                                    new XElement(pf + "infCpl", objobs.Infcpl.ToString()) : null));
                        #endregion
                    }
                    catch (Exception x)
                    {
                        throw new Exception("Nota de Sequência - " + sNota + "Erro na geração do XML,Regiao XML_Obs - " + x.Message);
                    }
                    //Fim - Obs

                    //Uniao dos Containers
                    try
                    {
                        concabec.Add(coninfnfe);
                        coninfnfe.Add(conide);
                        conide.AddAfterSelf(conemit);
                        conemit.AddAfterSelf(condest);
                        condest.AddAfterSelf(contotal);
                        contotal.AddAfterSelf(contransp);

                        if (concobr != null)
                        {
                            contransp.AddAfterSelf(concobr);
                            if (objobs.Infcpl != null)
                                concobr.AddAfterSelf(conobs);
                        }
                        else
                        {
                            if (objobs.Infcpl != null)
                                contransp.AddAfterSelf(conobs);
                        }

                        foreach (XElement x in lcondet)
                        {
                            contotal.AddBeforeSelf(x);
                        }
                    }
                    catch (Exception x)
                    {
                        throw new Exception("Nota de Sequência - " + sNota + "Erro na montagem do XML, União dos Containers - " + x.Message);
                    }
                    try
                    {
                        AssinaNFeXml Assinatura = new AssinaNFeXml();
                        string nfe = Assinatura.ConfigurarArquivo(concabec.ToString(), "infNFe", cert);
                        nfes.Add(nfe);
                        XElement xnfe = XElement.Parse(nfe);
                        XDocument xdocsalvanfesemlot = new XDocument(xnfe);

                        DirectoryInfo dPastaData = new DirectoryInfo(glob.LeRegConfig("PastaXmlEnvio").ToString() + "\\" + sNFe.Substring(5, 4));
                        if (!dPastaData.Exists) { dPastaData.Create(); }
                        if (sFormaEmiNFe.Equals("2"))
                        {
                            xdocsalvanfesemlot.Save(glob.LeRegConfig("PastaContingencia").ToString() + "\\" + sNFe.Replace("NFe", "") + "-nfe.xml");
                        }
                        else
                        {
                            xdocsalvanfesemlot.Save(glob.LeRegConfig("PastaXmlEnvio").ToString() + "\\" + sNFe.Substring(5, 4) + "\\" + sNFe.Replace("NFe", "") + "-nfe.xml"); // OS_25024
                        }
                        //StreamWriter swnfe = new StreamWriter(glob.LeRegWin("PastaXmlEnvio").ToString() + "\\" + sNFe.Replace("NFe", "") + "-nfe.xml");
                        //swnfe.Write(nfe);
                        //swnfe.Close();
                    }
                    catch (Exception x)
                    {
                        throw new Exception("Nota de Sequência - " + sNota + "Erro ao assinar a nfe de sequencia " + sNota + x.Message);
                    }

                    iCount++;
                }

                //Concatenando as NFes.
                string sXmlComp = "";
                //Junta todos os XML's em texto 
                foreach (var i in nfes)
                {
                    sXmlComp = sXmlComp + i;
                }
                //Estou inserindo o enviNFe pois se eu transformar o arquivo xml assinado em xml e depois em testo usando um toString,
                //a assinatura se torna invalida. Então depois de assinado do trabalho em forma de testo como xml ateh envia-lo pra fazenda.                        
                sXmlfull = "<?xml version=\"1.0\" encoding=\"utf-8\"?><enviNFe xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"2.00\"><idLote>" +
                            sNomeArq.Substring(7, 15) + "</idLote>" + sXmlComp + "</enviNFe>";

                //Grava
                StreamWriter sw = new StreamWriter(sPath);
                sw.Write(sXmlfull);
                sw.Close();

                #region Valida_Xml

                Globais getschema = new Globais();

                //string sXml = File.OpenText(sPath).ReadToEnd();

                XmlSchemaCollection myschema = new XmlSchemaCollection();

                XmlValidatingReader reader;

                //Danner - o.s. 23732 - 06/11/2009

                try
                {
                    XmlParserContext context = new XmlParserContext(null, null, "", XmlSpace.None);

                    reader = new XmlValidatingReader(sXmlfull, XmlNodeType.Element, context);

                    myschema.Add("http://www.portalfiscal.inf.br/nfe", getschema.LeRegConfig("PastaSchema") + "\\enviNFe_v2.00.xsd");

                    reader.ValidationType = ValidationType.Schema;

                    reader.Schemas.Add(myschema);

                    while (reader.Read())
                    {

                    }

                }
                catch (XmlException x)
                {
                    File.Delete(sPath);
                    throw new Exception(x.Message);
                }
                catch (XmlSchemaException x)
                {
                    File.Delete(sPath);
                    throw new Exception(x.Message);
                }

                //Fim - Danner - o.s. 23732 - 06/11/2009

                #endregion

            }
            catch (Exception ex)
            {
                Conn.Close();
                throw ex;
            }
            finally { Conn.Close(); }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Popula as Classes da NF-e.
        /// </summary>
        /// <param name="sEmp"></param>
        /// <param name="sNF"></param>
        /// <param name="sNomeArq"></param>
        /// <param name="sFormaEmissao"></param>
        /// <param name="sForDanfe"></param>
        /// <param name="tp_amb"></param>
        /// <param name="cd_ufnro"></param>
        /// <param name="cert"></param>
        public void NFe(string sEmp, List<string> sNF, string sNomeArq, string sFormaEmissao, string sForDanfe, int tp_amb, string cd_ufnro, X509Certificate2 cert, bool bModoSCAN, int iSerieSCAN, string sFormaEmiNFe, Version versao)
        {
            objbelGeraXml = new belGerarXML();
            Conn = objbelGeraXml.Conn;
            Conn.Open();
            this.sFormaEmiNFe = sFormaEmiNFe;
            this.bModoSCAN = bModoSCAN;
            this.iSerieSCAN = iSerieSCAN;

            string sPath = "";
            sPath = CarregarDadosXml("PastaXmlEnvio").ToString() + @sNomeArq;
            sTipoIndustrializacao = CarregarDadosXml("Industrializacao")[0].ToString();
            if (File.Exists(sPath))
            {
                File.Delete(sPath);
            }

            XDocument xdoc = new XDocument();
            #region XML_Principal
            XNamespace pf = "http://www.portalfiscal.inf.br/nfe";
            XContainer conenv = new XElement(pf + "enviNFe", new XAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe"),
                                                     new XAttribute("versao", "1.10"),
                                                     new XElement(pf + "idLote", sNomeArq.Substring(7, 15)));
            #endregion


            Globais glob = new Globais();
            int notaindex = 0;

            try
            {
                foreach (string sNota in sNF)
                {
                    List<object> lObjNotas = new List<object>();
                    notaindex++;
                    string sNFe = "NFe" + GeraChave(sEmp, sNota, Conn);


                    // infNFE                
                    // Começa a Popular as Classes
                    //Ide               
                    belIde objide;
                    objide = BuscaIde(sEmp, sNota, sForDanfe, sFormaEmissao, versao);
                    lObjNotas.Add(objide);//Danner - o.s. 24092 - 03/02/2010
                    //Fim - Ide

                    //Emit
                    belEmit objemit;
                    objemit = BuscaEmit(sEmp, sForDanfe, sForDanfe, sNota); //Claudinei - o.s. 24222 - 08/03/2010
                    lObjNotas.Add(objemit);//Danner - o.s. 24092 - 03/02/2010
                    //Fim - Emit

                    //dest
                    belDest objdest;
                    objdest = BuscaDest(sEmp, sNota);
                    lObjNotas.Add(objdest);//Danner - o.s. 24092 - 03/02/2010
                    //Fim - dest

                    //Endereço de entrega
                    belEndEnt objendent;
                    objendent = BuscaEndEnt(sEmp, sNota);
                    lObjNotas.Add(objendent);
                    //Fim - Endereço de entrega

                    //Itens da NFe
                    List<belDet> objdet = new List<belDet>();
                    objdet = BuscaItem(sEmp, sNota, objdest);
                    lObjNotas.Add(objdet);

                    //Totais               
                    belTotal objtotal;
                    objtotal = BuscaTotais(sEmp, sNota, objdest);
                    lObjNotas.Add(objtotal);
                    //Fim - Totais

                    //Frete
                    belTransp objtransp;
                    objtransp = BuscaFrete(sEmp, sNota);
                    lObjNotas.Add(objtransp);

                    //Fim - Frete

                    //Duplicatas                
                    belCobr objcob;
                    objcob = BuscaFat(sEmp, sNota);
                    lObjNotas.Add(objcob);
                    //Fim - Duplicatas


                    //OBS
                    belInfAdic objobs;
                    objobs = BuscaObs(sEmp, sNota, objdest, objdet, objbelGeraXml);
                    lObjNotas.Add(objobs);
                    //Fim - OBS

                    lTotNota.Add(lObjNotas);

                    // Update para Gravar o numero da Chave no banco da nota corrente.
                    for (int i = 0; i < 4; i++)
                    {
                        if (GravaNumeroChaveNota(sEmp, sNota, sNFe))
                        {
                            break;
                        }
                    }
                }
                Conn.Close();
            }
            catch (Exception ex)
            {
                Conn.Close();
                throw ex;
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Método Responsavel por gravar os campos cd_chavenferet e cd_nprotnfe. Responsavel tambem montar o TAG procNFe no xml e
        /// grava-lo na pasta de xml enviados.
        /// </summary>
        /// <param name="sEmp"></param>
        /// <param name="sSeq"></param>
        /// <param name="sNFe"></param>
        /// <param name="sChNfe"></param>
        /// <param name="sNProt"></param>
        /// <param name="xret"></param>
        /// <param name="glob"></param>
        /// <param name="pf"></param>
        public void geraProcNFe(string sEmp, string sSeq, string sNFe, string sChNfe, string sNProt,
                                XmlNode xret, Globais glob, XNamespace pf)//Danner - o.s. 24435 - 05/05/2010
        {
            XDocument retcab = new XDocument();
             
            try
            {
                //String sql que dará o update no campos: cd_recibonfe, cd_chavenferet, cd_nprotnfe.
                StringBuilder sSql = new StringBuilder();

                sSql.Append("update nf set cd_chavenferet ='");
                sSql.Append(sChNfe);
                sSql.Append("', ");
                sSql.Append("cd_nprotnfe ='");
                sSql.Append(sNProt);
                sSql.Append("' ");
                sSql.Append("Where nf.cd_empresa = '");
                sSql.Append(sEmp);
                sSql.Append("' and ");
                sSql.Append("nf.cd_nfseq ='");
                sSql.Append(sSeq);
                sSql.Append("'");


                belGerarXML BuscaConexao = new belGerarXML();

                using (FbConnection Conn = BuscaConexao.Conn)
                {
                    using (FbCommand cmdUpdate = new FbCommand(sSql.ToString(), Conn))
                    {
                        Conn.Open();
                        cmdUpdate.ExecuteNonQuery();
                    }
                }
                //Geração do Xml da nfe Autorizado, incluindo a TAG infProc onde consta as informaçoes de retorno da nfe.
                XContainer retproc = new XElement(pf + "nfeProc", new XAttribute("versao", "2.00"),
                                                                     new XAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe"));
                XElement retxml = XElement.Parse(sNFe);
                string sCodificacao = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
                string sRetProc = "<nfeProc versao=\"2.00\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">";
                XmlDocument xmldocteste = new XmlDocument();
                xmldocteste.LoadXml(sNFe);                
                DirectoryInfo dPastaData = new DirectoryInfo(glob.LeRegConfig("PastaXmlEnviado") + "\\" + sChNfe.Substring(2, 4));
                if (!dPastaData.Exists) { dPastaData.Create(); }


                StreamWriter sw = new StreamWriter(glob.LeRegConfig("PastaXmlEnviado") +"\\"+ sChNfe.Substring(2,4)+ "\\" + sChNfe + "-nfe.xml"); //OS_25024
       
                if (@xmldocteste.FirstChild.Name.Equals("xml"))
                {
                    sw.Write(@sRetProc + @xmldocteste.OuterXml.Remove(0, 38) + @xret.OuterXml.ToString() + @"</nfeProc>");
                }
                else
                {
                    sw.Write(@sCodificacao + @sRetProc + @xmldocteste.OuterXml + @xret.OuterXml.ToString() + @"</nfeProc>");
                }                
                sw.Close();

                //Geração do Xml da nfe Autorizado, incluindo a TAG infProc onde consta as informaçoes de retorno da nfe.
            }
            catch (Exception x)
            {
                throw new Exception("Erro na geração do XML Protocolado, infProt - " + x.Message);
            }

        }
Ejemplo n.º 9
0
        private string retEmailTransportador(string sSeq, string sEmp)
        {
            StringBuilder sSql = new StringBuilder();
            string email = "";

            try
            {
                sSql.Append("select ");
                sSql.Append("transpor.cd_email ");
                sSql.Append("from ");
                sSql.Append("transpor inner join nf ");
                sSql.Append("on transpor.cd_trans = nf.cd_trans ");
                sSql.Append("where ");
                sSql.Append("nf.cd_empresa = '");
                sSql.Append(sEmp);
                sSql.Append("' ");
                sSql.Append("and ");
                sSql.Append("nf.cd_nfseq = '");
                sSql.Append(sSeq);
                sSql.Append("'");

                belGerarXML BuscaConexao = new belGerarXML();

                FbConnection Conn = BuscaConexao.Conn;

                Conn.Open();

                FbCommand sqlConsulta = new FbCommand(sSql.ToString(), Conn);
                sqlConsulta.ExecuteNonQuery();

                FbDataReader drDest = sqlConsulta.ExecuteReader();
                drDest.Read();

                string[] split = drDest["cd_email"].ToString().Split(';');

                foreach (var i in split)
                {
                    email = i;
                    break;
                }


                Conn.Close();

            }
            catch (Exception x)
            {

                throw new Exception(x.Message);
            }

            return email;
        }
Ejemplo n.º 10
0
        private string geraChaveCanc(string sEmp, string sSeq)
        {
            StringBuilder sSql = new StringBuilder();
            sSql.Append("Select ");
            sSql.Append("uf.nr_ufnfe, ");
            sSql.Append("coalesce(nf.cd_serie, 1) serie, ");
            sSql.Append("nf.cd_notafis nNF, ");
            sSql.Append("nf.dt_emi dEmi, ");
            sSql.Append("empresa.cd_cgc CNPJ, ");
            sSql.Append("nf.cd_nfseq cNF ");
            sSql.Append(" From ");
            sSql.Append("NF ");
            sSql.Append("inner join empresa on (empresa.cd_empresa = nf.cd_empresa) ");
            sSql.Append("left join uf on (uf.cd_uf = empresa.cd_ufnor) ");
            sSql.Append("where ");
            sSql.Append("(nf.cd_empresa ='");
            sSql.Append(sEmp);
            sSql.Append("')");
            sSql.Append(" and ");
            sSql.Append("(nf.cd_nfseq = '");
            sSql.Append(sSeq);
            sSql.Append("')");

            belGerarXML BuscaConexao = new belGerarXML();

            FbConnection Conn = BuscaConexao.Conn;

            Conn.Open();

            FbCommand sqlConsulta = new FbCommand(sSql.ToString(), Conn);
            sqlConsulta.ExecuteNonQuery();



            FbDataReader drChave = sqlConsulta.ExecuteReader();
            drChave.Read();

            GeraXMLExp objgeraxmlexp = new GeraXMLExp();

            string scUF, sAAmM, sCNPJ, sMod, sSerie, snNF, scNF;
            scUF = drChave["nr_ufnfe"].ToString().PadLeft(2, '0');
            sAAmM = drChave["demi"].ToString().Replace("/", "").Substring(6, 2).ToString() +
                    drChave["demi"].ToString().Replace("/", "").Substring(2, 2).ToString();
            sCNPJ = objgeraxmlexp.TiraSimbolo(drChave["cnpj"].ToString(), "");
            sCNPJ = sCNPJ.PadLeft(14, '0');
            sMod = "55";

            if (IsNumeric(drChave["serie"].ToString()))
            {
                sSerie = drChave["serie"].ToString().PadLeft(3, '0');
            }
            else
            {
                sSerie = "001";
            }
            snNF = drChave["nNF"].ToString().PadLeft(9, '0');
            scNF = drChave["cNF"].ToString().PadLeft(9, '0');

            string sChaveantDig = "";
            string sChave = "";
            string sDig = "";

            sChaveantDig = scUF.Trim() + sAAmM.Trim() + sCNPJ.Trim() + sMod.Trim() + sSerie.Trim() + snNF.Trim() + scNF.Trim();
            sDig = objgeraxmlexp.CalculaDig11(sChaveantDig).ToString();

            sChave = sChaveantDig + sDig;

            Conn.Close();


            return sChave;
        }
Ejemplo n.º 11
0
        private void NfeDadosMsg()
        {
            XmlSchemaCollection myschema = new XmlSchemaCollection();
            XmlValidatingReader reader;
            Globais sPath = new Globais();
            try
            {
                StringBuilder sSql = new StringBuilder();
                sSql.Append("select ");
                sSql.Append("cd_chavenferet, ");
                sSql.Append("cd_nprotnfe ");
                sSql.Append("from nf ");
                sSql.Append("where ");
                sSql.Append("(cd_empresa = '");
                sSql.Append(_emp);
                sSql.Append("') ");
                sSql.Append("and ");
                sSql.Append("(cd_nfseq = '");
                sSql.Append(_seq);
                sSql.Append("')");

                belGerarXML BuscaConexao = new belGerarXML();

                FbConnection Conn = BuscaConexao.Conn;

                Conn.Open();

                FbCommand cmdcanc = new FbCommand(sSql.ToString(), Conn);
                cmdcanc.ExecuteNonQuery();



                FbDataReader drCanc = cmdcanc.ExecuteReader();
                drCanc.Read();

                _chnfe = drCanc["cd_chavenferet"].ToString();
                _nprot = drCanc["cd_nprotnfe"].ToString();
                _id = "ID" + _chnfe;

                XNamespace xname = "http://www.portalfiscal.inf.br/nfe";
                XDocument xdoc = new XDocument(new XElement(xname + "cancNFe", new XAttribute("versao", _versaodados),
                                                   new XElement(xname + "infCanc", new XAttribute("Id", _id),
                                                       new XElement(xname + "tpAmb", _tpamb),
                                                       new XElement(xname + "xServ", _xserv),
                                                       new XElement(xname + "chNFe", _chnfe),
                                                       new XElement(xname + "nProt", _nprot),
                                                       new XElement(xname + "xJust", _xjust))));
                xdoc.Save(_spath + "\\" + _seq + "_ped-can.xml");

                AssinaNFeCancXml assinaCanc = new AssinaNFeCancXml();
                assinaCanc.ConfigurarArquivo(_spath + "\\" + _seq + "_ped-can.xml", "infCanc", _cert);

                StreamReader ler;

                ler = File.OpenText(_spath + "\\" + _seq + "_ped-can.xml");



                XmlParserContext context = new XmlParserContext(null, null, "", XmlSpace.None);

                reader = new XmlValidatingReader(ler.ReadToEnd().ToString(), XmlNodeType.Element, context);

                myschema.Add("http://www.portalfiscal.inf.br/nfe", _sschema + "\\cancNFe_v2.00.xsd");

                reader.ValidationType = ValidationType.Schema;

                reader.Schemas.Add(myschema);

                while (reader.Read())
                { }

            }
            catch (Exception x)
            {

                throw new Exception(x.Message);
            }
        }
Ejemplo n.º 12
0
        public belTransp BuscaFrete(string sEmp,
                                    string sNF)
        {
            belGerarXML objbelGeraXml = new belGerarXML();
            belTransp objtransp = new belTransp();

            string snm_Cliente = objbelGeraXml.nm_Cliente;

            try
            {
                //Conn.Open();
                StringBuilder sSql = new StringBuilder();

                //Campos do Select
                sSql.Append("Select ");
                sSql.Append("coalesce(nf.st_frete, 1) modFrete, ");
                //Clauidnei - o.s. 23507 - 10-07-2009
                sSql.Append("transpor.st_pessoaj, ");
                sSql.Append("transpor.cd_cpf, ");
                //Fim - Clauidnei - o.s. 23507 - 10-07-2009
                sSql.Append("transpor.cd_cgc CNPJ, ");
                sSql.Append("transpor.nm_trans xNome, ");
                sSql.Append("transpor.cd_insest IE, ");
                sSql.Append("transpor.ds_endnor xEnder, ");
                sSql.Append("transpor.nm_cidnor xMun, ");
                sSql.Append("transpor.cd_ufnor UF, ");
                sSql.Append("coalesce(nf.qt_volumes, 0) qVol, ");
                sSql.Append((snm_Cliente == "ZINCOBRIL" ? "coalesce(nf.ds_especie, '') esp, " : "coalesce(nf.ds_especie, 'VOLUME') esp, "));//os_25207
                sSql.Append("COALESCE(nf.vl_pesoliq, 0) pesoL, ");
                sSql.Append("COALESCE(nf.vl_pesobru,0) pesoB, ");
                sSql.Append((snm_Cliente == "ZINCOBRIL" ? "COALESCE(nf.ds_marca, '') marca, " : "COALESCE(nf.ds_marca, 'MARCA') marca, "));//os_25207

                //Claudinei - o.s. 23674 - 10/09/2009

                //Danner - o.s. 24322 - 31/03/2010
                //sSql.Append(", transpor.cd_placa placa, ");
                sSql.Append("CASE WHEN COALESCE (NF.cd_placa, '') <> '' then NF.cd_placa ELSE TRANSPOR.cd_placa END placa,");
                sSql.Append("transpor.cd_ufvei UF, ");
                sSql.Append("transpor.ds_rntc RNTC ");

                //Fim - Claudinei - o.s. 23674 - 10/09/2009

                //Danner - o.s. 24385 - 26/04/2010

                sSql.Append(", coalesce(nf.ds_numero,'') nVol ");

                //Fim - Danner - o.s. 24385 - 26/04/2010

                //Tabela
                sSql.Append("From NF ");

                //Relacionamentos
                sSql.Append("inner join transpor on (transpor.cd_trans = nf.cd_trans) ");

                //Where
                sSql.Append("Where ");
                sSql.Append("(NF.cd_empresa ='");
                sSql.Append(sEmp);
                sSql.Append("')");
                sSql.Append(" and ");
                sSql.Append("(nf.cd_nfseq = '");
                sSql.Append(sNF);
                sSql.Append("') ");
                //Claudinei - o.s 23507 - 25/05/2009

                FbCommand cmdTranspor = new FbCommand(sSql.ToString(), Conn);
                cmdTranspor.ExecuteNonQuery();



                FbDataReader drTranspor = cmdTranspor.ExecuteReader();

                if (drTranspor.Read()) //Claudinei - o.s. 24210 - 03/03/2010
                {
                    StringBuilder sSql2 = new StringBuilder();
                    sSql2.Append("Select ");

                    sSql2.Append("transpor.nm_trans xNome ");




                    //Tabela
                    sSql2.Append("From NF ");

                    //Relacionamentos
                    sSql2.Append("inner join transpor on (transpor.cd_trans = nf.cd_trans) ");

                    //Where
                    sSql2.Append("Where ");
                    sSql2.Append("(NF.cd_empresa ='");
                    sSql2.Append(sEmp);
                    sSql2.Append("')");
                    sSql2.Append(" and ");
                    sSql2.Append("(nf.cd_nfseq = '");
                    sSql2.Append(sNF);
                    sSql2.Append("') ");
                    string razao_transp = string.Empty;
                    using (FbCommand cmd = new FbCommand(sSql2.ToString(), Conn))
                    {

                        razao_transp = Convert.ToString(cmd.ExecuteScalar()).Trim();

                    }
                    if (drTranspor["modFrete"].ToString() == "1") // Remetnete(Emitente)
                    {
                        objtransp.Modfrete = "0";
                    }
                    else if (drTranspor["modFrete"].ToString() == "2") // destinatario
                    {
                        objtransp.Modfrete = "1";
                    }
                    else if (drTranspor["modFrete"].ToString() == "3")
                    {
                        objtransp.Modfrete = "2";
                    }
                    else
                    {
                        objtransp.Modfrete = "9";
                    }
                    belTransportadora objtransportadora = new belTransportadora();

                    if (drTranspor["st_pessoaj"].ToString() == "S")
                    {
                        if (drTranspor["CNPJ"].ToString() != "")
                        {
                            objtransportadora.Cnpj = belUtil.TiraSimbolo(drTranspor["CNPJ"].ToString().PadLeft(14, '0'), "");
                        }
                    }
                    else
                    {
                        if (drTranspor["CD_CPF"].ToString() != "")
                        {
                            objtransportadora.Cpf = belUtil.TiraSimbolo(drTranspor["CD_CPF"].ToString().PadLeft(11, '0'), "");
                        }

                    }

                    if (drTranspor["xnome"] != null)
                    {
                        razao_transp = drTranspor["xNome"].ToString();
                    }
                    if (razao_transp != "")
                    {
                        int iTamanho = razao_transp.Length - 1;
                        if (iTamanho > 59)
                        {
                            iTamanho = 59;
                            // Diego - 0S 24039 - 26-01-10
                            objtransportadora.Xnome = belUtil.TiraSimbolo(razao_transp.ToString().Substring(0, iTamanho), "");
                        }
                        else
                        {
                            objtransportadora.Xnome = belUtil.TiraSimbolo(razao_transp.ToString().Substring(0, razao_transp.Length), "");
                        }
                        // Diego - 0S 24039 - 26-01-10 - FIM

                    }


                    if (drTranspor["IE"].ToString() != "")
                    {
                        objtransportadora.Ie = belUtil.TiraSimbolo(drTranspor["IE"].ToString(), "");
                    }

                    if (drTranspor["xEnder"].ToString() != "")
                    {
                        objtransportadora.Xender = belUtil.TiraSimbolo(drTranspor["xEnder"].ToString(), "");

                    }


                    if (drTranspor["xMun"].ToString() != "")
                    {
                        objtransportadora.Xmun = belUtil.TiraSimbolo(drTranspor["xMun"].ToString(), "");
                    }

                    if (drTranspor["UF"].ToString() != "")
                    {
                        objtransportadora.Uf = drTranspor["UF"].ToString();
                    }
                    objtransp.belTransportadora = objtransportadora;

                    //Claudinei - o.s. 23674 - 10/09/2009
                    if ((drTranspor["placa"].ToString() != "") && (drTranspor["placa"].ToString() != null))
                    {
                        belVeicTransp objveictransp = new belVeicTransp();
                        objveictransp.Placa = belUtil.TiraSimbolo(drTranspor["placa"].ToString().Replace(" ", "").Trim(), "");//Danner - o.s. sem - 30/03/2010
                        if (drTranspor["UF"].ToString() != "")
                        {
                            objveictransp.Uf = drTranspor["UF"].ToString().Trim();
                        }

                        if (drTranspor["RNTC"].ToString() != "")//Tag não Obrigatoria
                        {
                            objveictransp.Rntc = drTranspor["RNTC"].ToString().Trim();
                        }
                        else
                        {
                            objveictransp.Rntc = "00";
                        }
                        objtransp.belVeicTransp = objveictransp;
                    }

                    belVol objvol = new belVol();

                    if (drTranspor["qVol"].ToString() != "")
                    {
                        try
                        {
                            decimal dqVol = Convert.ToDecimal(drTranspor["qVol"].ToString());
                            //Claudinei - o.s. 24276 - 26/03/2010
                            if ((drTranspor["qVol"].ToString() == "") || (drTranspor["qVol"].ToString() == "0"))
                            {
                                if (snm_Cliente != "ZINCOBRIL")
                                {
                                    dqVol = 1;
                                }
                                else
                                {
                                    dqVol = 0;
                                }

                            }
                            //Fim - Claudinei - o.s. 24276 - 26/03/2010

                            objvol.Qvol = dqVol;

                        }
                        catch (Exception ex)
                        {

                            throw new Exception(string.Format("{0} - Campo de Quantidade de Volumes na tela de Montar NF",
                                                ex.Message));
                        }
                        //Fim - Claudinei - o.s. 23776 - 22/10/2009

                    }

                    if (drTranspor["nVol"].ToString() != "")
                    {
                        objvol.Nvol = drTranspor["nVol"].ToString();//Danner - o.s. 24432 - 04/05/2010
                    }



                    if (drTranspor["esp"].ToString() != "")
                    {
                        objvol.Esp = belUtil.TiraSimbolo(drTranspor["esp"].ToString(), "");
                    }

                    if (drTranspor["marca"].ToString() != "")
                    {
                        objvol.Marca = drTranspor["marca"].ToString();
                    }


                    if (drTranspor["pesoL"].ToString() != "")
                    {
                        try
                        {
                            decimal dpesoL = Math.Round(Convert.ToDecimal(drTranspor["pesoL"].ToString()), 3); //Claudinei - o.s. 24248 - 26/03/2010
                            objvol.PesoL = dpesoL;
                        }
                        catch (Exception ex)
                        {

                            throw new Exception(string.Format("{0} - Campo Peso Liquido",
                                                              ex.Message));
                        }
                    }
                    if (drTranspor["pesoB"].ToString() != "")
                    {
                        try
                        {
                            decimal dpesoB = Math.Round(Convert.ToDecimal(drTranspor["pesoB"].ToString()), 3); //Claudinei - o.s. 24248 - 26/03/2010
                            objvol.PesoB = dpesoB;
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(string.Format("{0} - Campo Peso Bruto",
                                                             ex.Message));
                        }
                    }
                    objtransp.belVol = objvol;

                }
                //Claudinei - o.s. 24210 - 03/03/2010
                else
                {
                    throw new Exception("Transportadora não selecionada na nota!");
                }
            }
            catch (Exception Ex)
            {
                sExecao = " - Problemas no Frete da Nota";
                throw new Exception(Ex.Message + sExecao);
            }
            finally
            {
                //Conn.Close();
            }

            return objtransp;


        }
Ejemplo n.º 13
0
        /// <summary>
        /// Popula as Classes da NF-e.
        /// </summary>
        /// <param name="sEmp"></param>
        /// <param name="sNF"></param>
        /// <param name="sNomeArq"></param>
        /// <param name="sFormaEmissao"></param>
        /// <param name="sForDanfe"></param>
        /// <param name="tp_amb"></param>
        /// <param name="cd_ufnro"></param>
        /// <param name="cert"></param>
        public void NFe(string sEmp, List<string> sNF, string sNomeArq, string sFormaEmissao, string sForDanfe, string cd_ufnro, X509Certificate2 cert, bool bModoSCAN, int iSerieSCAN, string sFormaEmiNFe, Version versao)
        {
            objbelGeraXml = new belGerarXML();
            Conn = objbelGeraXml.Conn;
            Conn.Open();
            this.sFormaEmiNFe = sFormaEmiNFe;
            this.bModoSCAN = bModoSCAN;
            this.iSerieSCAN = iSerieSCAN;

            string sPath = "";
            sPath = belStaticPastas.ENVIO + @sNomeArq;
            sTipoIndustrializacao = CarregarDadosXml("Industrializacao")[0].ToString();
            if (File.Exists(sPath))
            {
                File.Delete(sPath);
            }

            XDocument xdoc = new XDocument();
            #region XML_Principal
            XNamespace pf = "http://www.portalfiscal.inf.br/nfe";
            //XContainer conenv = new XElement(pf + "enviNFe", new XAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe"),
            //                                         new XAttribute("versao", "1.10"),
            //                                         new XElement(pf + "idLote", sNomeArq.Substring(7, 15)));
            #endregion


            Globais glob = new Globais();
            int notaindex = 0;

            try
            {
                foreach (string sNota in sNF)
                {
                    List<object> lObjNotas = new List<object>();
                    notaindex++;
                    string sNFe = "NFe" + GeraChave(sEmp, sNota, Conn);


                    // infNFE                
                    // Começa a Popular as Classes
                    //Ide               
                    belIde objide;
                    objide = BuscaIde(sEmp, sNota, sForDanfe, sFormaEmissao, versao);
                    lObjNotas.Add(objide);//Danner - o.s. 24092 - 03/02/2010
                    //Fim - Ide

                    //Emit
                    belEmit objemit;
                    objemit = BuscaEmit(sEmp, sForDanfe, sForDanfe, sNota); //Claudinei - o.s. 24222 - 08/03/2010
                    lObjNotas.Add(objemit);//Danner - o.s. 24092 - 03/02/2010
                    //Fim - Emit

                    //dest
                    belDest objdest;
                    objdest = BuscaDest(sEmp, sNota);
                    lObjNotas.Add(objdest);//Danner - o.s. 24092 - 03/02/2010
                    //Fim - dest

                    //Endereço de entrega
                    belEndEnt objendent;
                    objendent = BuscaEndEnt(sEmp, sNota);
                    lObjNotas.Add(objendent);
                    //Fim - Endereço de entrega

                    //Itens da NFe
                    List<belDet> objdet = new List<belDet>();
                    objdet = BuscaItem(sEmp, sNota, objdest);
                    //RetiraValorBCICMSret dos Totais;
                    decimal dVbcIcmsRt = objdet.Where(p => p.belImposto.belIcms.belICMSSN500 != null).Select(p => p.belImposto.belIcms.belICMSSN500.vBCSTRet).Sum();
                    decimal dVIcmsRt = objdet.Where(p => p.belImposto.belIcms.belICMSSN500 != null).Select(p => p.belImposto.belIcms.belICMSSN500.vICMSSTRet).Sum();
                    lObjNotas.Add(objdet);

                    //Totais               
                    belTotal objtotal;
                    objtotal = BuscaTotais(sEmp, sNota, objdest);
                    objtotal.belIcmstot.Vbcst = objtotal.belIcmstot.Vbcst - dVbcIcmsRt; //25695
                    objtotal.belIcmstot.Vst = objtotal.belIcmstot.Vst - dVIcmsRt;//25695
                    lObjNotas.Add(objtotal);
                    //Fim - Totais

                    //Frete
                    belTransp objtransp;
                    objtransp = BuscaFrete(sEmp, sNota);
                    lObjNotas.Add(objtransp);

                    //Fim - Frete

                    //Duplicatas                
                    belCobr objcob;
                    objcob = BuscaFat(sEmp, sNota);
                    lObjNotas.Add(objcob);
                    //Fim - Duplicatas


                    //OBS
                    belInfAdic objobs;
                    objobs = BuscaObs(sEmp, sNota, objdest, objdet, objbelGeraXml);
                    string sIcmsRet = ""; //25695
                    if ((dVbcIcmsRt > 0) && (dVIcmsRt > 0))
                    {
                        sIcmsRet = "VbcIcmsRetido: " + dVbcIcmsRt.ToString("#0.00") + " | VIcmsRetido: " + dVIcmsRt.ToString("#0.00") + " ;";
                    }
                    string msgInsumos = "";

                    if (objbelGeraXml.nm_Cliente.Equals("ZINCOBRIL")) // OS_25787
                    {
                        decimal dmaoObra = objdet.Where(p => p.tp_industrializacao.Equals("M")).Sum(P => P.belProd.Vprod);
                        decimal dinsumos = objdet.Where(p => p.tp_industrializacao.Equals("I")).Sum(P => P.belProd.Vprod);

                        if (dmaoObra > 0)
                        {
                            msgInsumos += "VALOR DA MÃO DE OBRA = R$" + dmaoObra.ToString() + ";";
                        }
                        if (dinsumos > 0)
                        {
                            msgInsumos += "VALOR DOS INSUMOS = R$" + dinsumos.ToString() + ";";
                        }
                    }


                    objobs.Infcpl = msgInsumos + sIcmsRet + objobs.Infcpl;
                    lObjNotas.Add(objobs);
                    //Fim - OBS

                    belExporta objExporta = new belExporta();
                    //objExporta = buscaExporta
                    lObjNotas.Add(objExporta);

                    lTotNota.Add(lObjNotas);

                    //os_25923 Carrega Declaração de Importação    


                    // Update para Gravar o numero da Chave no banco da nota corrente.
                    for (int i = 0; i < 4; i++)
                    {
                        if (GravaNumeroChaveNota(sEmp, sNota, sNFe))
                        {
                            break;
                        }
                    }
                }
                Conn.Close();
            }
            catch (Exception ex)
            {
                Conn.Close();
                throw ex;
            }
        }
Ejemplo n.º 14
0
        public void BuscaVencto()
        {
            //cLAUDINEI - O.S. SEM - 11/03/2010
            //DataGeneric AcessoDados = new DataGeneric();
            string ssGravarCdDupli = string.Empty;
            using (FbCommand cmd = new FbCommand("Select control.cd_conteud from control where cd_nivel = '1355'", Conn))
            {

                if (ConnectionState.Open != Conn.State)
                {
                    Conn.Open();
                }

                ssGravarCdDupli = cmd.ExecuteScalar().ToString();
                Conn.Close();
            }

            string ssGravardteminf = string.Empty;
            using (FbCommand cmd = new FbCommand("Select control.cd_conteud from control where cd_nivel = '1363'", Conn))
            {

                if (ConnectionState.Open != Conn.State)
                {
                    Conn.Open();
                }
                ssGravardteminf = cmd.ExecuteScalar().ToString();
                Conn.Close();
            }


            //string ssGravarCdDupli = AcessoDados.ExecuteScalar(AcessoDados.GetCommand("Select control.cd_conteud from control where cd_nivel = '1355'", CommandType.Text));
            //string ssGravardteminf = AcessoDados.ExecuteScalar(AcessoDados.GetCommand("Select control.cd_conteud from control where cd_nivel = '1363'", CommandType.Text));
            //cLAUDINEI - O.S. SEM - 11/03/2010
            //Claudinei - o.s. 23801 - 04/11/2009
            belGerarXML objGerarXML = new belGerarXML();
            string sNMCliente = objGerarXML.nm_Cliente;
            //Fim - Claudinei - o.s. 23801 - 04/11/2009


            if (ssGravarCdDupli == "S")
            {
                StringBuilder sSqlTeste = new StringBuilder();

                //Campos do Select
                sSqlTeste.Append("Select ");
                sSqlTeste.Append("doc_ctr.nr_doc, ");
                sSqlTeste.Append("doc_ctr.cd_documento, ");
                sSqlTeste.Append("doc_ctr.cd_dupli, ");
                sSqlTeste.Append("'S' Nota ");
                //Tabela
                sSqlTeste.Append("From Doc_ctr ");


                //Where
                sSqlTeste.Append("Where ");
                sSqlTeste.Append("(doc_ctr.cd_empresa ='");
                sSqlTeste.Append(_empresa);
                sSqlTeste.Append("') ");
                sSqlTeste.Append("and ");
                sSqlTeste.Append("(doc_ctr.cd_nfseq = '");
                sSqlTeste.Append(_nrseq);
                sSqlTeste.Append("') ");

                //Clauidnei - o.s. 23801 - 04/11/2009
                if (sNMCliente == "MASTERFEW")
                {
                    StringBuilder sPedseq = new StringBuilder();
                    sPedseq.Append("Select ");
                    sPedseq.Append("pedseq.cd_pedido, ");
                    sPedseq.Append("pedseq.cd_seqped ");
                    sPedseq.Append("from pedseq ");
                    sPedseq.Append("where ");
                    sPedseq.Append("(pedseq.cd_empresa = '");
                    sPedseq.Append(_empresa);
                    sPedseq.Append("') ");
                    sPedseq.Append("and ");
                    sPedseq.Append("(pedseq.cd_nfseq = '");
                    sPedseq.Append(_nrseq);
                    sPedseq.Append("') ");
                    //Claudinei - o.s. sem - 15/03/2010
                    if (ConnectionState.Open != Conn.State)
                    {
                        Conn.Open();
                    }
                    //Fim - Claudinei - o.s. sem - 15/03/2010
                    FbCommand cmdPedseq = new FbCommand(sPedseq.ToString(), Conn);
                    cmdPedseq.ExecuteNonQuery();

                    FbDataReader drPedseq = cmdPedseq.ExecuteReader();

                    drPedseq.Read();
                    int iSeq = Convert.ToInt16(drPedseq["cd_seqped"]);
                    iSeq++;

                    //União
                    sSqlTeste.Append("Union ");
                    //Campos do Select
                    sSqlTeste.Append("Select ");
                    sSqlTeste.Append("doc_ctr.nr_doc, ");
                    sSqlTeste.Append("doc_ctr.cd_documento, ");
                    sSqlTeste.Append("doc_ctr.cd_dupli, ");
                    sSqlTeste.Append("'N' Nota ");
                    //Tabela
                    sSqlTeste.Append("From Doc_ctr ");
                    //Where
                    sSqlTeste.Append("Where ");
                    sSqlTeste.Append("(doc_ctr.cd_empresa ='");
                    sSqlTeste.Append(_empresa);
                    sSqlTeste.Append("') ");
                    sSqlTeste.Append("and ");
                    sSqlTeste.Append("(doc_ctr.CD_PEDIDO = '");
                    sSqlTeste.Append(drPedseq["cd_pedido"].ToString());
                    sSqlTeste.Append("') ");
                    sSqlTeste.Append("and ");
                    sSqlTeste.Append("(doc_ctr.CD_SEQPED = '");
                    sSqlTeste.Append(iSeq.ToString().PadLeft(2, '0'));
                    sSqlTeste.Append("') ");
                }

                sSqlTeste.Append("order by 1 ");
                //Clauidnei - o.s. 23801 - 04/11/2009

                if (ConnectionState.Open != Conn.State)
                {
                    Conn.Open();
                }
                FbCommand cmdEmit = new FbCommand(sSqlTeste.ToString(), Conn);
                cmdEmit.ExecuteNonQuery();

                FbDataReader drEmit = cmdEmit.ExecuteReader();
                int iParcela = 0;
                int iSemNota = 0;
                List<NotasDuplicatas> objListNfs = new List<NotasDuplicatas>();
                NotasDuplicatas objNFs = new NotasDuplicatas();
                while (drEmit.Read())
                {
                    objNFs = new NotasDuplicatas();
                    
                    if (!(objGerarXML.nm_Cliente.Equals("LORENZON")))
                    {
                        if (drEmit["NOTA"].ToString() == "S")
                        {
                            iParcela++;
                            objNFs.sNF = string.Format("{0}{1}",
                                                _cdnotafis.Trim(),
                                                Convert.ToChar((64 + iParcela)));
                            objNFs.sNrDoc = drEmit["NR_DOC"].ToString();
                        }
                        else
                        {
                            iSemNota++;
                            objNFs.sNF = string.Format("{0}/{1}",
                                                Convert.ToInt64(_cdnotafis).ToString().PadLeft(5, '0'),
                                                iSemNota.ToString().Trim());
                            objNFs.sNrDoc = drEmit["NR_DOC"].ToString();

                        }
                        objListNfs.Add(objNFs);
                    }
                    else
                    {
                        if (drEmit["cd_dupli"].ToString().Equals("S/NUMER"))
                        {
                            if (drEmit["NOTA"].ToString() == "S")
                            {
                                iParcela++;
                                objNFs.sNF = string.Format("{0}{1}",
                                                    _cdnotafis.Trim(),
                                                    Convert.ToChar((64 + iParcela)));
                                objNFs.sNrDoc = drEmit["NR_DOC"].ToString();
                            }
                            else
                            {
                                iSemNota++;
                                objNFs.sNF = string.Format("{0}/{1}",
                                                    Convert.ToInt64(_cdnotafis).ToString().PadLeft(5, '0'),
                                                    iSemNota.ToString().Trim());
                                objNFs.sNrDoc = drEmit["NR_DOC"].ToString();

                            }
                            objListNfs.Add(objNFs);
                        }
                    }
                }

                if (objListNfs.Count == 1)
                {
                    objNFs = objListNfs[0];
                    objNFs.sNF = objListNfs[0].sNF.Replace("A", "").PadLeft(7, '0'); //Claudinei - o.s. 24103 - 05/02/2010
                    objListNfs = new List<NotasDuplicatas>();
                    objListNfs.Add(objNFs);
                }

                for (int i = 0; i < objListNfs.Count; i++)
                {

                    StringBuilder sSql = new StringBuilder();

                    sSql.Append("update ");
                    sSql.Append("doc_ctr ");
                    sSql.Append("set cd_dupli = '");
                    sSql.Append(objListNfs[i].sNF);
                    sSql.Append("' Where ");
                    sSql.Append("(cd_empresa = '");
                    sSql.Append(_empresa);
                    sSql.Append("')");
                    sSql.Append(" and ");
                    sSql.Append("(nr_doc = '");
                    sSql.Append(objListNfs[i].sNrDoc);
                    sSql.Append("')");

                    using (FbCommand cmd = new FbCommand(sSql.ToString(), Conn))
                    {
                        if (Conn.State != ConnectionState.Open)
                        {
                            Conn.Open();
                        }

                        cmd.ExecuteNonQuery();
                    }

                }
            }

        }
Ejemplo n.º 15
0
        /// <summary>
        /// Gera o numero do Lote.
        /// </summary>
        /// <param name="sEmp"></param>
        /// <returns></returns>
        public string NomeArqNFe(string sEmp)
        {
            string sNomeArqNfe = "";

            belGerarXML BuscaGen = new belGerarXML();
            sNomeArqNfe = "Nfe_" + sEmp + BuscaGen.RetornaGenString("SP_CHAVEPRI", 15) + ".xml";


            return sNomeArqNfe;
        }
Ejemplo n.º 16
0
        public void LimpaCampoRecibo(string sEmp, string sSeq)
        {
            belGerarXML BuscaConexao = new belGerarXML();
            StringBuilder sSql = new StringBuilder();
            try
            {

                sSql.Append("update nf ");
                sSql.Append("set cd_recibonfe = null ");
                sSql.Append("where ");
                sSql.Append("cd_empresa ='");
                sSql.Append(sEmp);
                sSql.Append("' ");
                sSql.Append("and ");
                sSql.Append("cd_nfseq ='");
                sSql.Append(sSeq);
                sSql.Append("'");
                //sSql.Append(" and cd_recibonfe is null");



                using (FbConnection Conn = BuscaConexao.Conn)
                {
                    using (FbCommand cmdUpdate = new FbCommand(sSql.ToString(), Conn))
                    {
                        if (Conn.State != ConnectionState.Open)
                        {
                            Conn.Open();
                        }
                        cmdUpdate.ExecuteNonQuery();
                        Conn.Close();
                    }
                }
            }
            catch (Exception)
            {

                throw;
            }
        }
Ejemplo n.º 17
0
        public string RetornaBlob(StringBuilder sComando, string sEmp, FbConnection Conn, belGerarXML objbelGeraXml)
        {
            string texto = "";
            FbCommand comando = new FbCommand(sComando.ToString(), Conn);
            FbDataReader Reader = comando.ExecuteReader();
            Byte[] blob = null;
            MemoryStream ms = new MemoryStream();
            while (Reader.Read())
            {
                blob = new Byte[(Reader.GetBytes(0, 0, null, 0, int.MaxValue))];
                try
                {
                    Reader.GetBytes(0, 0, blob, 0, blob.Length);
                }
                catch
                {
                    texto = "";
                    //return texto;
                }


                ms = new MemoryStream(blob);

            }

            StreamReader Ler = new StreamReader(ms);
            Ler.ReadLine();
            while (Ler.Peek() != -1)
            {
                texto += Ler.ReadLine();
            }


            //Claudinei - o.s. 24078 - 04/03/2010
            if (objbelGeraXml.nm_Cliente == "MACROTEX")
            {
                string sVendedor = string.Empty;
                string sPedidoCliente = string.Empty;

                if (Conn.State != ConnectionState.Open)
                {
                    Conn.Open();
                }
                FbCommand cmd = new FbCommand(sComando.ToString().Replace("nf.ds_anota ,", ""), Conn);
                cmd.ExecuteNonQuery();
                FbDataReader dr = cmd.ExecuteReader();
                dr.Read();

                sVendedor = dr["nm_vend"].ToString();
                sPedidoCliente = dr["DS_DOCORIG"].ToString();



                if (texto == "")
                {
                    texto += string.Format("Vendedor.: {0} Pedido N.: {1}",
                                           sVendedor,
                                           sPedidoCliente);

                }
                else
                {
                    texto += string.Format(" Vendedor.: {0} Pedido N.: {1}",
                                           sVendedor,
                                           sPedidoCliente);
                }
            }
            if (((objbelGeraXml.nm_Cliente == "MOGPLAST") || (objbelGeraXml.nm_Cliente == "TSA")) && (sEmp == "003"))
            {
                string sNFOrigem = string.Empty;
                string sEmiOrigem = string.Empty;


                if (Conn.State != ConnectionState.Open)
                {
                    Conn.Open();
                }
                FbCommand cmd = new FbCommand(sComando.ToString().Replace("nf.ds_anota ,", ""), Conn);
                cmd.ExecuteNonQuery();
                FbDataReader dr = cmd.ExecuteReader();
                dr.Read();

                //Claudinei - o.s. sem - 02/03/2010
                if (dr["cd_nfseq_fat_origem"].ToString() != "")
                {
                    //Fim - Claudinei - o.s. sem - 02/03/2010
                    StringBuilder sSqlNFOrigem = new StringBuilder();
                    sSqlNFOrigem.Append("Select ");
                    sSqlNFOrigem.Append("cd_notafis, ");
                    sSqlNFOrigem.Append("dt_emi ");
                    sSqlNFOrigem.Append("From NF ");
                    sSqlNFOrigem.Append("Where nf.cd_empresa = '");
                    sSqlNFOrigem.Append("001");
                    sSqlNFOrigem.Append("'");
                    sSqlNFOrigem.Append(" and ");
                    sSqlNFOrigem.Append("cd_nfseq = '");
                    sSqlNFOrigem.Append(dr["cd_nfseq_fat_origem"].ToString());
                    sSqlNFOrigem.Append("'");

                    FbCommand cmdNFOrigem = new FbCommand(sSqlNFOrigem.ToString(), Conn);
                    cmdNFOrigem.ExecuteNonQuery();

                    FbDataReader drNFOrigem = cmdNFOrigem.ExecuteReader();

                    drNFOrigem.Read();

                    sNFOrigem = drNFOrigem["cd_notafis"].ToString();
                    sEmiOrigem = System.DateTime.Parse(drNFOrigem["dt_emi"].ToString()).ToString("dd/MM/yyyy");

                    if (texto == "")
                    {
                        texto += string.Format("DEV TOTAL REF A NF {0} DE {1}",
                                               sNFOrigem,
                                               sEmiOrigem);

                    }
                    else
                    {
                        texto += string.Format(" DEV TOTAL REF A NF {0} DE {1}",
                                               sNFOrigem,
                                               sEmiOrigem);
                    }
                }
            }
            return Util.Util.TiraCaracterEstranho(texto);
        }
Ejemplo n.º 18
0
        public List<belNumeroNF> GeraNumeroNF(List<string> lsNFSEq, string sProximaNF, string sEmpresa)
        {
            StringBuilder sSql = new StringBuilder();

            sSql.Append("select ");
            sSql.Append("nf.cd_nfseq ");
            sSql.Append("From nf ");
            sSql.Append("where ");
            sSql.Append("((nf.cd_notafis is null) or (nf.cd_notafis = '')) and (");
            sSql.Append("nf.cd_empresa ='");
            sSql.Append(sEmpresa);
            sSql.Append("') and (");
            sSql.Append("nf.cd_nfseq in('");
            int iCont = 0;
            foreach (var sNfseq in lsNFSEq)
            {
                iCont++;
                sSql.Append(sNfseq);
                if (lsNFSEq.Count > iCont)
                {
                    sSql.Append("','");
                }

                
            }
            sSql.Append("')) ");
            sSql.Append("Order by nf.cd_empresa, nf.cd_nfseq ");

            //Claudinei - o.s. sem - 11/03/2010
            belGerarXML BuscaConexao = new belGerarXML();

            FbConnection Conn = BuscaConexao.Conn;

            if (Conn.State != ConnectionState.Open)
            {
                Conn.Open();
            }
            //Fim - Claudinei - o.s. sem - 11/03/2010
            FbCommand cmd = new FbCommand(sSql.ToString(), Conn);
            cmd.ExecuteNonQuery();

            FbDataReader dr = cmd.ExecuteReader();


            Int32 iNumeroNF = Convert.ToInt32(sProximaNF);

            List<belNumeroNF> objNumeroNFs = new List<belNumeroNF>();
            //dr = AcessoDados.ExecuteReader(sSql.ToString(), CommandType.Text);                  
            

            while (dr.Read())
            {
                
                belNumeroNF objNumeroNF = new belNumeroNF();
                objNumeroNF._nfseq = dr["cd_nfseq"].ToString();
                objNumeroNF.Cdnotafis = iNumeroNF.ToString().PadLeft(6, '0');
                objNumeroNFs.Add(objNumeroNF);

                iNumeroNF++;

            }

            return objNumeroNFs;
            
        }