コード例 #1
0
ファイル: FConfiguracao.cs プロジェクト: nielson266/Nfe
        private void TmSemRetorno_Tick(object sender, EventArgs e)
        {
            EnviarConsultaNfe ConsultaNfe = new EnviarConsultaNfe();
            Model_NotaFiscal  mNotaFisca  = new Model_NotaFiscal();

            NFuncoes = new NegocioFuncoesGerais();

            mLog = new Model_LogNfe();

            try
            {
                TmSemRetorno.Enabled = false;
                var DtRet = mNotaFisca.ConsultarNotasFiscalSemRetornoOuDuplicadas();

                for (int i = 0; i < DtRet.Rows.Count; i++)
                {
                    eNf                = new Entidade_NotaFiscal();
                    eNf.Loja           = int.Parse(DtRet.Rows[i]["id_loja"].ToString());
                    eNf.TpNfe          = DtRet.Rows[i]["TpNfe"].ToString();
                    eNf.NotaFiscal     = int.Parse(DtRet.Rows[i]["NrNf"].ToString());
                    eNf.sSerieNf       = DtRet.Rows[i]["serienf"].ToString();
                    eNf.CdFornecedor   = Convert.ToInt32(DtRet.Rows[i]["CdFornec"].ToString());
                    eNf.ChaveAcessoNfe = DtRet.Rows[i]["TxChAcessoNfe"].ToString();
                    eNf.TpNfe          = DtRet.Rows[i]["TpNFe"].ToString();
                    eNf.cUf            = int.Parse(FuncoesGerais.UfIbgeEmpresa(int.Parse(DtRet.Rows[i]["id_loja"].ToString())));
                    eNf.TpAmbiente     = FuncoesGerais.TipoAmbiente();
                    ConsultaNfe.Enviar(eNf, out eNf);
                }
                TmSemRetorno.Enabled = true;
            }
            catch (Exception Ex)
            {
                TmSemRetorno.Enabled = true;
                mLog.InsertErroLog("Erro em consulta de nota fiscal. \nErro encontrado:" + NFuncoes.TiraCampos(Ex.Message.ToString()));
            }
        }
コード例 #2
0
        //public static int RetornoCodigoCFOP(string CFOP)
        //{
        //    int i = 0;
        //    foreach (var item in Enum.GetValues(typeof(nfe.TCfop)))
        //    {
        //        if (item.ToString().Substring(item.ToString().Count() - 4, 4) == CFOP.ToString())
        //        {
        //            break;
        //        }
        //        i += 1;
        //    }
        //    return i;
        //}
        public string GerarChaveAcessoNfe(int Loja, int CodFornecedor, string Uf, DateTime DtEmissao, string CnpjEmissor, string ModNfe, string Serie, string NumeroNf, string TpEmis, int Lote, out string cNF, out string cDV)
        {
            mNF   = new Model_NotaFiscal();
            mLote = new Model_Lote();

            Random rd           = new Random();
            string CodigoRandom = string.Format("{0:00000000}", rd.Next(99999999));

            List <int> arrayMult = new List <int>()
            {
                4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
            };
            string ChaveNfe = Uf + string.Format("{0:yyMM}", DtEmissao) + TiraCampos(CnpjEmissor) + ModNfe + Serie.PadLeft(3, '0') + NumeroNf.PadRight(9, '0') + TpEmis + CodigoRandom;

            int[] arryaCh = ChaveNfe.Select(x => Int32.Parse(x.ToString())).ToArray();
            int   soma    = 0;
            int   resto   = 0;
            int   DV      = 0;

            for (int i = 0; i < arryaCh.Length; i++)
            {
                soma += arrayMult[i] * Convert.ToInt32(arryaCh[i]);
            }

            resto = soma % 11;

            cNF = CodigoRandom;

            if (resto == 0 || resto == 1)
            {
                cDV = "0";

                if (CodFornecedor == 0)
                {
                    mNF.UpdateChavedeAcessocNfe(Convert.ToInt32(NumeroNf), Serie == "9" ? "D1" : Serie, Loja, 0, ChaveNfe + cDV.ToString(), CodigoRandom);
                    mLote.UpdateChAcessoItemLote(Loja, Convert.ToInt32(NumeroNf), Serie, Lote, ChaveNfe + cDV.ToString());
                }
                else
                {
                    mNF.UpdateChavedeAcessocNfe(Convert.ToInt32(NumeroNf), Serie == "9" ? "D1" : Serie, Loja, CodFornecedor, ChaveNfe + cDV.ToString(), CodigoRandom);
                    mLote.UpdateChAcessoItemLote(Loja, Convert.ToInt32(NumeroNf), Serie, Lote, ChaveNfe + cDV.ToString());
                }

                return(ChaveNfe += "0");
            }
            else
            {
                DV = 11 - resto;

                cDV = DV.ToString();

                if (CodFornecedor == 0)
                {
                    mNF.UpdateChavedeAcessocNfe(Convert.ToInt32(NumeroNf), Serie == "9" ? "D1" : Serie, Loja, 0, ChaveNfe + DV.ToString(), CodigoRandom);
                    mLote.UpdateChAcessoItemLote(Loja, Convert.ToInt32(NumeroNf), Serie == "9" ? "D1" : Serie, Lote, ChaveNfe + DV.ToString());
                }
                else
                {
                    mNF.UpdateChavedeAcessocNfe(Convert.ToInt32(NumeroNf), Serie == "9" ? "D1" : Serie, Loja, CodFornecedor, ChaveNfe + DV.ToString(), CodigoRandom);
                    mLote.UpdateChAcessoItemLote(Loja, Convert.ToInt32(NumeroNf), Serie == "9" ? "D1" : Serie, Lote, ChaveNfe + DV.ToString());
                }
                return(ChaveNfe += DV.ToString());
            }
        }
コード例 #3
0
        public void DeserilizarEvento(object obj, ref Entidade_NotaFiscal objDes)
        {
            fGeral      = new FuncoesGerais();
            mNotaFiscal = new Model_NotaFiscal();

            mCartaEletronica = new Model_CCe();

            object objRet = new object();

            retXmlNodeReader = new XmlNodeReader((XmlNode)obj);
            xmlDesSerializar = new XmlSerializer(typeof(retConsSitNFe.TRetConsSitNFe));

            objRet = xmlDesSerializar.Deserialize(retXmlNodeReader);

            var Ret = (retConsSitNFe.TRetConsSitNFe)objRet;

            if (Ret.protNFe != null)
            {
                if (Ret.protNFe.infProt.cStat == "100")
                {
                    if (objDes.TpNfe == "E")
                    {
                        mNotaFiscal.UpdateNfRetornoAutorizado(Convert.ToInt32(Ret.protNFe.infProt.cStat), Ret.protNFe.infProt.nProt, objDes.Loja, objDes.ChaveAcessoNfe, Model_NotaFiscal.NotaFiscal.Entrada);
                    }
                    else
                    {
                        mNotaFiscal.UpdateNfRetornoAutorizado(Convert.ToInt32(Ret.protNFe.infProt.cStat), Ret.protNFe.infProt.nProt, objDes.Loja, objDes.ChaveAcessoNfe, Model_NotaFiscal.NotaFiscal.Saida);
                    }

                    fGeral.TramitacaoNfe(FuncoesGerais.TipoTramitacao.AutorizacaoNFe, eNotaFiscal.Loja, eNotaFiscal.NotaFiscal, eNotaFiscal.sSerieNf, eNotaFiscal.CdFornecedor);
                }
                else if (Ret.protNFe.infProt.cStat == "101" || Ret.protNFe.infProt.cStat == "102")
                {
                    if (objDes.TpNfe == "E")
                    {
                        mNotaFiscal.UpdateNfInutilizacaoCancelamento(Convert.ToInt32(Ret.protNFe.infProt.cStat), Ret.protNFe.infProt.nProt, objDes.Loja, objDes.ChaveAcessoNfe, Model_NotaFiscal.NotaFiscal.Entrada);
                    }
                    else
                    {
                        mNotaFiscal.UpdateNfInutilizacaoCancelamento(Convert.ToInt32(Ret.protNFe.infProt.cStat), Ret.protNFe.infProt.nProt, objDes.Loja, objDes.ChaveAcessoNfe, Model_NotaFiscal.NotaFiscal.Saida);
                    }

                    fGeral.TramitacaoNfe(FuncoesGerais.TipoTramitacao.Inutilizacao, eNotaFiscal.Loja, eNotaFiscal.NotaFiscal, eNotaFiscal.sSerieNf, eNotaFiscal.CdFornecedor);
                }
                else
                {
                    if (objDes.TpNfe == "E")
                    {
                        mNotaFiscal.UpdateNfRetorno(Convert.ToInt32(Ret.protNFe.infProt.cStat), Ret.protNFe.infProt.nProt, objDes.Loja, objDes.ChaveAcessoNfe, Model_NotaFiscal.NotaFiscal.Entrada);
                    }
                    else
                    {
                        mNotaFiscal.UpdateNfRetorno(Convert.ToInt32(Ret.protNFe.infProt.cStat), Ret.protNFe.infProt.nProt, objDes.Loja, objDes.ChaveAcessoNfe, Model_NotaFiscal.NotaFiscal.Saida);
                    }

                    fGeral.TramitacaoNfe(FuncoesGerais.TipoTramitacao.Indefinido, eNotaFiscal.Loja, eNotaFiscal.NotaFiscal, eNotaFiscal.sSerieNf, eNotaFiscal.CdFornecedor);
                }

                int ddd = Ret.procEventoNFe.Count();
                if (Ret.procEventoNFe.Count() > 0)
                {
                    foreach (var EventoNfe in Ret.procEventoNFe)
                    {
                        mCartaEletronica.UpdateRetornoCCeConsSit(Convert.ToInt32(EventoNfe.evento.infEvento.nSeqEvento), Convert.ToInt32(EventoNfe.retEvento.infEvento.cStat), EventoNfe.retEvento.infEvento.chNFe);
                    }
                }
            }

            string cdret = Ret.cStat;
        }
コード例 #4
0
ファイル: EnviarEntrada.cs プロジェクト: nielson266/Nfe
        public DataTable PesquisaNotasFiscaisLoteNfe(int Loja, int Lote)
        {
            ObjModNfe = new Model_NotaFiscal();

            return(ObjModNfe.PesquisarLoteNotaFiscais(Loja, Lote));
        }
コード例 #5
0
ファイル: EnviarEntrada.cs プロジェクト: nielson266/Nfe
        public int GerarLoteNfe(int Loja)
        {
            ObjModNfe = new Model_NotaFiscal();

            return(ObjModNfe.IncluirLoteNfeSaida(Loja, Model_NotaFiscal.NotaFiscal.Entrada));
        }
コード例 #6
0
ファイル: EnviarEntrada.cs プロジェクト: nielson266/Nfe
        public void Enviar(Entidade_NotaFiscal ObjEnt, out Entidade_NotaFiscal objDados)
        {
            docTran   = new XmlDocument();
            ns        = new XmlSerializerNamespaces();
            xmlStatus = new XmlSerializer(typeof(nfe.TNFe));
            Settings  = new XmlWriterSettings();
            DataTable DtLoteNfe = new DataTable();

            mLog          = new Model_LogNfe();
            ObjLote       = new Model_Lote();
            ObjModNfe     = new Model_NotaFiscal();
            ObjNotaFiscal = ObjEnt;
            NFuncoes      = new NegocioFuncoesGerais();

            ObjNotaFiscal = new Entidade_NotaFiscal();

            var Lojas = FuncoesGerais.LojasEmitentes();

            for (int i = 0; i < Lojas.Rows.Count; i++)
            {
                int    Loja       = 0;
                int    Nota       = 0;
                int    Fornecedor = 0;
                string Serie      = "";
                int    TpEmis     = 0;
                var    Lote       = GerarLoteNfe(Convert.ToInt32(Lojas.Rows[i]["id_loja"].ToString()));
                docEnviNfe = new XmlDocument();
                if (Lote != 0)
                {
                    docEnviNfe.PreserveWhitespace = false;
                    docEnviNfe.LoadXml(CabecalhoEnvieNfe(Lote));

                    nodeListNfe = docEnviNfe.GetElementsByTagName("enviNFe");

                    DtLoteNfe = PesquisaNotasFiscaisLoteNfe(Convert.ToInt32(Lojas.Rows[i]["id_loja"].ToString()), Lote);

                    foreach (DataRow RowNFDt in DtLoteNfe.Rows)
                    {
                        try
                        {
                            docTran = new XmlDocument();

                            var RetEnt = CarregarDados(Convert.ToInt32(RowNFDt["id_loja"]), Convert.ToInt32(RowNFDt["NrNf"]), RowNFDt["serienf"].ToString(), Convert.ToInt32(RowNFDt["CdFornec"]), RowNFDt["TpNFe"].ToString());
                            if (RetEnt != null)
                            {
                                ObjNotaFiscal.cUf  = RetEnt.cUf; // Uf do Emitente
                                ObjNotaFiscal.Loja = RetEnt.Loja;
                                Loja               = RetEnt.Loja;
                                Nota               = RetEnt.NotaFiscal;
                                Fornecedor         = RetEnt.CdFornecedor;
                                Serie              = RetEnt.sSerieNf;
                                TpEmis             = RetEnt.TpEmis;
                                ObjNotaFiscal.Lote = Lote;

                                Nfe = new nfe.TNFe(RetEnt);
                            }
                            // E DEFINIDO O TIPO DE LEITURA DO XML
                            Settings.Encoding        = UTF8Encoding.UTF8;
                            Settings.NewLineHandling = NewLineHandling.None;
                            Settings.Indent          = true;
                            Settings.IndentChars     = "";

                            ns.Add(string.Empty, "http://www.portalfiscal.inf.br/nfe");

                            Sw = new UTF8StringWriter();
                            Wx = XmlWriter.Create(Sw, Settings);
                            xmlStatus.Serialize(Sw, Nfe, ns);
                            string xmlGer = Sw.ToString();

                            docTran.LoadXml(xmlGer);
                            docTran.PreserveWhitespace = false;

                            CertEmpresa = AssinaturaDigital.FindCertOnStore(Convert.ToInt32(RowNFDt["id_loja"]));

                            docTran = AssinaturaDigital.SignXml(docTran, CertEmpresa, "infNFe");

                            if (NFuncoes.ValidarEstruturaXml(docTran.OuterXml, "nfe_v3.10"))
                            {
                                Mensagem.MensagemErro(Mensagem.TipoMensagem.XmlLoteGerados, "Entrada", Lote.ToString() + "|" + "Nota :" + RetEnt.sSerieNf + "-" + RetEnt.NotaFiscal.ToString() + "|" + docTran.OuterXml);
                                nodeListCarregarNfe = docTran.GetElementsByTagName("NFe", "http://www.portalfiscal.inf.br/nfe");
                                nodeListNfe.Item(0).AppendChild(docEnviNfe.ImportNode(nodeListCarregarNfe.Item(0), true));
                                ObjLote.UpdateXmlTpSaida(RetEnt.Loja, RetEnt.NotaFiscal, RetEnt.sSerieNf, Lote, RetEnt.TpEmis.ToString(), docTran.OuterXml, RetEnt.CdFornecedor);
                                ObjModNfe.UpdateNfTpEmisVersaoNFe(RetEnt.TpEmis.ToString(), null, "3.10", Lote.ToString(), RetEnt.NotaFiscal.ToString(), RetEnt.Loja.ToString(), RetEnt.sSerieNf, RetEnt.CdFornecedor, Model_NotaFiscal.NotaFiscal.Entrada);
                            }
                        }
                        catch (Exception Ex)
                        {
                            Mensagem.MensagemErro(Mensagem.TipoMensagem.Nfe, "Entrada", Ex.Message.ToString());
                            ObjLote.UpdateXmlTpSaida(Loja, Nota, Serie, Lote, TpEmis.ToString(), docTran.OuterXml, Fornecedor);
                            ObjModNfe.UpdateNfErro(225, Loja, Serie, Nota, Fornecedor, Model_NotaFiscal.NotaFiscal.Entrada);
                            ObjLote.UpdateLoteErro(225, Loja, Serie, Nota, Fornecedor);
                            mLog.InsertErroLog("Erro Lote:" + Lote + ", Nota Fiscal Entrada:" + Serie + "-" + Nota + ". " + NFuncoes.TiraCampos(Ex.Message.ToString()));
                        }
                    }

                    if (CertEmpresa != null)
                    {
                        ObjNotaFiscal.TpAmbiente = FuncoesGerais.TipoAmbiente();
                        EnviarXml(docEnviNfe, CertEmpresa, ref ObjNotaFiscal);
                    }
                    objDados = null;
                }
                else
                {
                    objDados = null;
                }
            }

            objDados = null;
        }
コード例 #7
0
ファイル: EnviarEntrada.cs プロジェクト: nielson266/Nfe
        public Entidade_NotaFiscal CarregarDados(int Loja, int NotaFiscal, string SerieNf, int Fornec, string tipoNf)
        {
            List <Entidade_Duplicatas>     ListDuplicatas     = new List <Entidade_Duplicatas>();
            List <Entidade_ItemNotaFiscal> ListItemNotaFiscal = new List <Entidade_ItemNotaFiscal>();

            ListObjNotaFiscalReferida = new List <Entidade_NotaFiscalReferida>();
            ObjTotais             = new Entidade_Totais();
            ObjEntEmit            = new Entidade_Emitente();
            ObjEntDest            = new Entidade_Destinatario();
            ObjNotaFiscal         = new Entidade_NotaFiscal();
            ObjModNfe             = new Model_NotaFiscal();
            ObjItemNotaFiscal     = new Entidade_ItemNotaFiscal();
            NFuncoes              = new NegocioFuncoesGerais();
            ObjNotaFiscalReferida = new Entidade_NotaFiscalReferida();

            string TipoAmbiente         = FuncoesGerais.TipoAmbiente();
            string TipoEmissao          = FuncoesGerais.TipoEmissao();
            var    DtNotaFiscal         = ObjModNfe.ConsultarNotasFiscais(Loja, NotaFiscal, SerieNf, Fornec, Model_NotaFiscal.NotaFiscal.Entrada);
            var    DtNotaFiscalItens    = ObjModNfe.ConsultarNotasFiscalItens(Loja, NotaFiscal, SerieNf, Fornec, Model_NotaFiscal.NotaFiscal.Entrada);
            var    DtNotaFiscalReferida = ObjModNfe.ConsultarNotasFiscalReferidaEntrada(Loja, NotaFiscal, SerieNf, Fornec);

            if (DtNotaFiscal.Rows.Count > 0)
            {
                #region Dados da NotaFiscal
                //Dados da Nota Fiscal
                ObjNotaFiscal.cUf              = int.Parse(DtNotaFiscal.Rows[0]["CdUfCidadeIbge_Emitente"].ToString().Substring(0, 2));
                ObjNotaFiscal.CdFornecedor     = int.Parse(DtNotaFiscal.Rows[0]["CdFornec"].ToString());
                ObjNotaFiscal.Loja             = int.Parse(DtNotaFiscal.Rows[0]["id_loja"].ToString());
                ObjNotaFiscal.NaturezaOperacao = DtNotaFiscal.Rows[0]["NmCfo"].ToString().Trim();
                ObjNotaFiscal.ModNfe           = int.Parse(DtNotaFiscal.Rows[0]["ModNfe"].ToString());
                ObjNotaFiscal.sSerieNf         = DtNotaFiscal.Rows[0]["serienf"].ToString().Trim();
                ObjNotaFiscal.NotaFiscal       = int.Parse(DtNotaFiscal.Rows[0]["NrNf"].ToString());
                ObjNotaFiscal.DtEmissao        = Convert.ToDateTime(DtNotaFiscal.Rows[0]["DtEmissao"].ToString());
                ObjNotaFiscal.DtEntrada        = Convert.ToDateTime(DtNotaFiscal.Rows[0]["DtEntrada"].ToString());
                ObjNotaFiscal.Observacao       = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["Observacao"].ToString().Trim());
                ObjNotaFiscal.ChaveAcessoNfe   = DtNotaFiscal.Rows[0]["TxChAcessoNFe"].ToString().Trim();
                ObjNotaFiscal.CdNfe            = string.IsNullOrEmpty(DtNotaFiscal.Rows[0]["cdNFe"].ToString()) ? 0 : int.Parse(DtNotaFiscal.Rows[0]["cdNFe"].ToString());
                if (tipoNf == "E")
                {
                    ObjNotaFiscal.TpNfe = "E";
                }
                else
                {
                    ObjNotaFiscal.TpNfe = "S";
                }
                if (DtNotaFiscal.Rows[0]["CdUf_Remetente"].ToString() == DtNotaFiscal.Rows[0]["CdUf_Emitente"].ToString())
                {
                    ObjNotaFiscal.TipoOperacao = 1;
                }
                else
                {
                    ObjNotaFiscal.TipoOperacao = 2;
                }

                if (TipoEmissao.Trim() == "1")
                {
                    ObjNotaFiscal.TpEmis = 1;
                }
                else
                {
                    ObjNotaFiscal.TpEmis = 2;
                }

                ObjNotaFiscal.TpAmbiente = TipoAmbiente;

                if (Convert.ToBoolean(DtNotaFiscal.Rows[0]["FlNfComplementar"].ToString()) == true)
                {
                    ObjNotaFiscal.TipoFInalidadeNfe = 2;
                }
                else if (Convert.ToBoolean(DtNotaFiscal.Rows[0]["FlNfAjuste"].ToString()) == true)
                {
                    ObjNotaFiscal.TipoFInalidadeNfe = 3;
                }
                else if (DtNotaFiscal.Rows[0]["CdTipoNf"].ToString() == "D")
                {
                    ObjNotaFiscal.TipoFInalidadeNfe = 4;
                }
                else
                {
                    ObjNotaFiscal.TipoFInalidadeNfe = 1;
                }
                #endregion

                #region Dados do Emitente
                //Emitente
                ObjEntEmit.Nome        = DtNotaFiscal.Rows[0]["NmRazaoSocial_Emitente"].ToString().Trim().Trim();
                ObjEntEmit.RazaoSocial = DtNotaFiscal.Rows[0]["NmRazaoSocial_Emitente"].ToString().Trim();
                ObjEntEmit.CpfCnpj     = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCpfCgc_Emitente"].ToString().Trim());
                ObjEntEmit.IE          = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["NrCgf_Emitente"].ToString().Trim());
                ObjEntEmit.Lagradouro  = DtNotaFiscal.Rows[0]["NmEnder_Emitente"].ToString().Trim();
                ObjEntEmit.Numero      = DtNotaFiscal.Rows[0]["NrEnder_Emitente"].ToString().Trim();
                ObjEntEmit.Bairro      = DtNotaFiscal.Rows[0]["NmBairro_Emitente"].ToString().Trim().Trim();
                ObjEntEmit.sCep        = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCep_Emitente"].ToString());
                ObjEntEmit.sUf         = DtNotaFiscal.Rows[0]["CdUf_Emitente"].ToString();
                ObjEntEmit.cMunicipio  = int.Parse(DtNotaFiscal.Rows[0]["CdUfCidadeIbge_Emitente"].ToString());
                ObjEntEmit.sMunicipio  = DtNotaFiscal.Rows[0]["NmCidadeIbge_Emitente"].ToString();
                #endregion

                #region Dados do Destinatario
                //Destinatario
                ObjEntDest.Nome       = DtNotaFiscal.Rows[0]["NmFornec_Remetente"].ToString().Trim();
                ObjEntDest.CpfCnpj    = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCpfCgc_Remetente"].ToString()).Trim();
                ObjEntDest.IE         = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["NrCgf_Remetente"].ToString()).Trim();
                ObjEntDest.Lagradouro = DtNotaFiscal.Rows[0]["NmEnder_Remetente"].ToString().Trim();
                ObjEntDest.Numero     = DtNotaFiscal.Rows[0]["NrEnder_Remetente"].ToString().Trim();
                ObjEntDest.FlIsento   = Convert.ToBoolean(DtNotaFiscal.Rows[0]["FlIsento_Remetente"]);
                ObjEntDest.Bairro     = DtNotaFiscal.Rows[0]["NmBairro_Remetente"].ToString().Trim();
                ObjEntDest.sCep       = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCep_Remetente"].ToString());
                ObjEntDest.sUf        = DtNotaFiscal.Rows[0]["CdUf_Remetente"].ToString().Trim();
                ObjEntDest.cMunicipio = int.Parse(DtNotaFiscal.Rows[0]["CdUfCidadeIbge_Remetente"].ToString());
                ObjEntDest.sMunicipio = DtNotaFiscal.Rows[0]["NmCidade_Remetente"].ToString().Trim();
                #endregion

                #region Totais
                //Totais
                ObjTotais.ValorBaseIcms      = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlBaseIcms"]);
                ObjTotais.ValorIcms          = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlIcms"]);
                ObjTotais.ValorIcmsBaseSub   = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlBaseIcmsSub"]);
                ObjTotais.ValorIcmsSub       = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlIcmsSub"]);
                ObjTotais.ValorFrete         = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlFrete"]);
                ObjTotais.ValorSeguro        = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlSeguro"]);
                ObjTotais.ValorOutrasDesp    = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlOutrasDesp"]);
                ObjTotais.ValorIpi           = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlIpi"]);
                ObjTotais.ValorTotalProdutos = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlProdutos"]);
                ObjTotais.ValorTotal         = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlNf"]);
                ObjTotais.ValorPis           = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlPis"]);
                ObjTotais.ValorCofins        = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlCofins"]);
                #endregion

                #region Local de Entrega
                //if (Convert.ToBoolean(DtNotaFiscal.Rows[0]["NrSeq"]) && DtNotaFiscal.Rows[0]["LocalEntrega_NmEnder"].ToString() != string.Empty && DtNotaFiscal.Rows[0]["LocalEntrega_CdUfCidadeIbge"].ToString() != string.Empty && NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCpfCgc_Destinatario"].ToString()).Trim().Length == 14)
                //{
                //    ObjLocalEntrega = new Entidade_LocalEntrega();
                //    ObjLocalEntrega.sMunicipio = DtNotaFiscal.Rows[0]["LocalEntrega_NmCidade"].ToString();
                //    ObjLocalEntrega.Bairro = DtNotaFiscal.Rows[0]["LocalEntrega_NmBairro"].ToString();
                //    ObjLocalEntrega.sUf = DtNotaFiscal.Rows[0]["LocalEntrega_CdUf"].ToString();
                //    ObjLocalEntrega.cMunicipio = DtNotaFiscal.Rows[0]["LocalEntrega_cdUfCidadeIbge"].ToString() == string.Empty ? 0 : int.Parse(DtNotaFiscal.Rows[0]["LocalEntrega_cdUfCidadeIbge"].ToString());
                //    ObjLocalEntrega.Lagradouro = DtNotaFiscal.Rows[0]["LocalEntrega_NmEnder"].ToString();
                //    ObjLocalEntrega.Numero = DtNotaFiscal.Rows[0]["LocalEntrega_NrEnder"].ToString();
                //    ObjLocalEntrega.Complemento = DtNotaFiscal.Rows[0]["LocalEntrega_NmComplEnder"].ToString();
                //}
                //else
                ObjLocalEntrega = null;

                #endregion

                #region Item das Notas Fiscais
                for (int i = 0; i < DtNotaFiscalItens.Rows.Count; i++)
                {
                    ObjItemNotaFiscal = new Entidade_ItemNotaFiscal();
                    ObjItemNotaFiscal.CodigoProduto     = DtNotaFiscalItens.Rows[i]["CodigoDoProduto"].ToString().Trim();
                    ObjItemNotaFiscal.NrSeqItem         = int.Parse(DtNotaFiscalItens.Rows[i]["NrSeqItem"].ToString());
                    ObjItemNotaFiscal.CFOP              = DtNotaFiscalItens.Rows[i]["CFOP"].ToString().Trim();
                    ObjItemNotaFiscal.DescricaoProdutos = DtNotaFiscalItens.Rows[i]["DescricaoDoProduto"].ToString().Trim();
                    ObjItemNotaFiscal.Unidade           = DtNotaFiscalItens.Rows[i]["UND"].ToString().Trim();
                    ObjItemNotaFiscal.Qtd            = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["Quantidade"].ToString());
                    ObjItemNotaFiscal.ValorUnitario  = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorUnitario"].ToString());
                    ObjItemNotaFiscal.ValorTotal     = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["VlTotal"].ToString());
                    ObjItemNotaFiscal.ValorTotalIcms = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorTotalIcms"].ToString());
                    ObjItemNotaFiscal.ValorIcms      = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorIcms"].ToString());
                    ObjItemNotaFiscal.AliqIcms       = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ICMS"].ToString());
                    ObjItemNotaFiscal.AliqIpi        = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["IPI"].ToString());
                    ObjItemNotaFiscal.ValorIpi       = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorIPI"].ToString());
                    ObjItemNotaFiscal.ValorBaseIpi   = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["VlTotal"].ToString()); // Base do IPI
                    ObjItemNotaFiscal.ValorPis       = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["VlPis"].ToString());
                    ObjItemNotaFiscal.ValorCofins    = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["VlCofins"].ToString());
                    ObjItemNotaFiscal.AliqPis        = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["VlAliqPis"].ToString());
                    ObjItemNotaFiscal.AliqCofins     = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["VlAliqCofins"].ToString());
                    ObjItemNotaFiscal.NCM            = DtNotaFiscalItens.Rows[i]["NCM"].ToString().Trim().Trim();
                    ObjItemNotaFiscal.CSTICMS        = DtNotaFiscalItens.Rows[i]["CstICMS"].ToString().Trim();
                    ObjItemNotaFiscal.CSTPI          = DtNotaFiscalItens.Rows[i]["CstIPI"].ToString().Trim();
                    ObjItemNotaFiscal.CSTPIS         = DtNotaFiscalItens.Rows[i]["CstPIS"].ToString().Trim();
                    ObjItemNotaFiscal.CSTCOFINS      = DtNotaFiscalItens.Rows[i]["CstCOFINS"].ToString().Trim();
                    ObjItemNotaFiscal.Desconto       = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["VlDescItem"].ToString());
                    ObjItemNotaFiscal.Origem         = DtNotaFiscalItens.Rows[i]["CdOrigemProduto"].ToString().Trim();

                    ListItemNotaFiscal.Add(ObjItemNotaFiscal);
                }
                #endregion


                if (DtNotaFiscalReferida.Rows.Count > 0)
                {
                    for (int i = 0; i < DtNotaFiscalReferida.Rows.Count; i++)
                    {
                        ObjNotaFiscalReferida = new Entidade_NotaFiscalReferida();
                        ObjNotaFiscalReferida.TxChAcessoNfeReferida = DtNotaFiscalReferida.Rows[0]["TxChAcessoNfe"].ToString();
                        ObjNotaFiscalReferida.COO        = 0;
                        ObjNotaFiscalReferida.SerieNfRef = DtNotaFiscalReferida.Rows[0]["serienfReferida"].ToString();
                    }
                    ListObjNotaFiscalReferida.Add(ObjNotaFiscalReferida);
                    ObjNotaFiscal.NotaFiscalReferida = ListObjNotaFiscalReferida;
                }
                else
                {
                    ObjNotaFiscal.NotaFiscalReferida = null;
                }
                ObjNotaFiscal.EntEmit = ObjEntEmit;
                ObjNotaFiscal.EntDest = ObjEntDest;

                ObjNotaFiscal.EntDuplicata      = null;
                ObjNotaFiscal.EntLocalEntrega   = ObjLocalEntrega;
                ObjNotaFiscal.EntTotais         = ObjTotais;
                ObjNotaFiscal.EntItemNotaFiscal = ListItemNotaFiscal;
            }
            return(ObjNotaFiscal);
        }
コード例 #8
0
        public void DeserilizarEvento(object obj, ref Entidade_Cancelamento objDes)
        {
            Entidade_Cancelamento EntCa  = new Entidade_Cancelamento();
            Model_NotaFiscal      mNf    = new Model_NotaFiscal();
            Model_Lote            mLote  = new Model_Lote();
            XmlDocument           docRet = new XmlDocument();

            RecebEnvento = new TRetEnvEvento();
            StreamWriter SW;
            string       xProtNFe = string.Empty;

            EntCa = objDes;


            object retCancelamentoSefaz = new object();

            mCancelamento = new Model_Cancelamento();

            TRetEnvEvento EventoRetCancalentoSefaz = new TRetEnvEvento();

            try
            {
                XmlNodeReader retXmlNodeReader = new XmlNodeReader((XmlNode)obj);
                XmlSerializer xmlDesSerializar = new XmlSerializer(typeof(retEnvEventoCancNFe.TRetEnvEvento));

                retCancelamentoSefaz = xmlDesSerializar.Deserialize(retXmlNodeReader);

                EventoRetCancalentoSefaz = (TRetEnvEvento)retCancelamentoSefaz;

                if (EventoRetCancalentoSefaz.cStat != "410")
                {
                    foreach (var item in EventoRetCancalentoSefaz.retEvento)
                    {
                        if (item.infEvento.cStat.Trim() == "135" || item.infEvento.cStat.Trim() == "136" || item.infEvento.cStat.Trim() == "155")
                        {
                            mCancelamento.UpdateCancelamentoNfe(101, Convert.ToDateTime(item.infEvento.dhRegEvento), EntCa.Loja, EntCa.NmSerie, EntCa.NrNf.ToString(), 0);

                            if (EntCa.TpNf == "S")
                            {
                                mCancelamento.UpdateNfSaidaCancelamento(101, item.infEvento.nProt, EntCa.Loja, EntCa.NmSerie.Trim(), EntCa.NrNf.ToString());
                            }
                            else
                            {
                                mCancelamento.UpdateNfEntradaCancelamento(101, item.infEvento.nProt, EntCa.Loja, EntCa.NmSerie.Trim(), EntCa.NrNf.ToString(), EntCa.CdFornec);
                            }

                            //mCancelamento.TramitacaoNfe(EntCa.Loja, EntCa.NmSerie.Trim(), EntCa.NrNf.ToString(), EntCa.CdFornec, 0, "Cancelamento autorizado");
                        }
                        else
                        {
                            mCancelamento.UpdateCancelamentoNfe(int.Parse(item.infEvento.cStat), Convert.ToDateTime(item.infEvento.dhRegEvento), EntCa.Loja, EntCa.NmSerie.Trim() == "9" ? "D1" : EntCa.NmSerie.Trim(), EntCa.NrNf.ToString(), EntCa.CdFornec);
                            mCancelamento.TramitacaoNfe(EntCa.Loja, EntCa.NmSerie.Trim() == "9" ? "D1" : EntCa.NmSerie.Trim(), EntCa.NrNf.ToString(), EntCa.CdFornec, 0, "Cancelamento não autorizado! Erro:" + int.Parse(item.infEvento.cStat));
                        }
                    }
                }
                else
                {
                    vWriter = new StreamWriter(@"c:\MensagensNFe\ServicoNotaFiscal.txt", true);
                    vWriter.WriteLine("=====================CANCELAMENTO - " + string.Format("{0:dd/MM/yyyy HH:mm:ss}", DateTime.Now) + "================================");
                    vWriter.WriteLine("OCORREU O SEGUINTE EERRO: " + EventoRetCancalentoSefaz.xMotivo);
                    vWriter.WriteLine("=====================================================");
                    vWriter.Flush();
                    vWriter.Close();
                }
            }
            catch (Exception ex)
            {
                vWriter = new StreamWriter(@"c:\MensagensNFe\ServicoNotaFiscal.txt", true);
                vWriter.WriteLine("=====================CANCELAMENTO - " + string.Format("{0:dd/MM/yyyy HH:mm:ss}", DateTime.Now) + "================================");
                vWriter.WriteLine("OCORREU O SEGUINTE EERRO: " + ex.Message.ToString());
                vWriter.WriteLine("=====================================================");
                vWriter.Flush();
                vWriter.Close();
            }
        }
コード例 #9
0
ファイル: EnviarSaida.cs プロジェクト: nielson266/Nfe
        public Entidade_NotaFiscal CarregarDados(int Loja, int NotaFiscal, string SerieNf, string tipoNf)
        {
            List <Entidade_Duplicatas>     ListDuplicatas     = new List <Entidade_Duplicatas>();
            List <Entidade_ItemNotaFiscal> ListItemNotaFiscal = new List <Entidade_ItemNotaFiscal>();

            ListObjNotaFiscalReferida = new List <Entidade_NotaFiscalReferida>();
            ObjTotais             = new Entidade_Totais();
            ObjEntEmit            = new Entidade_Emitente();
            ObjEntDest            = new Entidade_Destinatario();
            ObjNotaFiscal         = new Entidade_NotaFiscal();
            ObjModNfe             = new Model_NotaFiscal();
            ObjItemNotaFiscal     = new Entidade_ItemNotaFiscal();
            NFuncoes              = new NegocioFuncoesGerais();
            ObjNotaFiscalReferida = new Entidade_NotaFiscalReferida();
            mLog = new Model_LogNfe();
            string LocalErro = string.Empty;

            string TipoAmbiente      = FuncoesGerais.TipoAmbiente();
            string TipoEmissao       = FuncoesGerais.TipoEmissao();
            var    DtNotaFiscal      = ObjModNfe.ConsultarNotasFiscais(Loja, NotaFiscal, SerieNf, 0, Model_NotaFiscal.NotaFiscal.Saida);
            var    DtNotaFiscalItens = ObjModNfe.ConsultarNotasFiscalItens(Loja, NotaFiscal, SerieNf, 0, Model_NotaFiscal.NotaFiscal.Saida);

            //var DtDuplicatas = ObjModNfe.ConsultarNotasFiscalSaidaDuplicatas(Loja, NotaFiscal, SerieNf);
            //var DtNotaFiscalReferida = ObjModNfe.ConsultarNotasFiscalReferidaSaida(Loja, NotaFiscal, SerieNf);


            try
            {
                if (DtNotaFiscal.Rows.Count > 0)
                {
                    #region Dados da NotaFiscal
                    LocalErro = "Nota Fiscal";
                    //Dados da Nota Fiscal
                    ObjNotaFiscal.cUf              = int.Parse(DtNotaFiscal.Rows[0]["CdUfCidadeIbge_Emitente"].ToString().Substring(0, 2));
                    ObjNotaFiscal.CdFornecedor     = 0;
                    ObjNotaFiscal.Loja             = int.Parse(DtNotaFiscal.Rows[0]["cdloja"].ToString());
                    ObjNotaFiscal.NaturezaOperacao = DtNotaFiscal.Rows[0]["naturezaoperacao"].ToString().Trim();
                    ObjNotaFiscal.ModNfe           = int.Parse(DtNotaFiscal.Rows[0]["ModNfe"].ToString());
                    ObjNotaFiscal.sSerieNf         = DtNotaFiscal.Rows[0]["nmserienf"].ToString().Trim();
                    ObjNotaFiscal.NotaFiscal       = int.Parse(DtNotaFiscal.Rows[0]["NrNf"].ToString());
                    ObjNotaFiscal.DtEmissao        = Convert.ToDateTime(DtNotaFiscal.Rows[0]["DtSaida"].ToString());
                    //ObjNotaFiscal.Observacao = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["Observacao"].ToString().Trim() + ":" + DtNotaFiscal.Rows[0]["MensagemOrcamento"].ToString().Trim() + ":" + DtNotaFiscal.Rows[0]["MensagemComprovanteDeposito"].ToString().Trim() + " | " + DtNotaFiscal.Rows[0]["MensagemLocalEntrega"].ToString().Trim() + ":" + DtNotaFiscal.Rows[0]["MensagemParamVenda"].ToString().Trim() + "|" + DtNotaFiscal.Rows[0]["CdVendedor"].ToString().Trim() + " " + DtNotaFiscal.Rows[0]["NmVendedor"].ToString().Trim() + ". Prazo : " + DtNotaFiscal.Rows[0]["NmPrazo"].ToString().Trim() + ". Rota:" + DtNotaFiscal.Rows[0]["nrRotaGP"].ToString().Trim());
                    ObjNotaFiscal.Observacao             = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["Observacao"].ToString().Trim());
                    ObjNotaFiscal.ObservacaoFisco        = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["mensagemfisco"].ToString().Trim());
                    ObjNotaFiscal.ObservacaoContribuinte = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["mensagemcontribuinte"].ToString().Trim());
                    ObjNotaFiscal.ChaveAcessoNfe         = DtNotaFiscal.Rows[0]["TxChAcessoNFe"].ToString().Trim();
                    ObjNotaFiscal.CdNfe = string.IsNullOrEmpty(DtNotaFiscal.Rows[0]["cdNFe"].ToString()) ? 0 : int.Parse(DtNotaFiscal.Rows[0]["cdNFe"].ToString());
                    if (tipoNf == "E")
                    {
                        ObjNotaFiscal.TpNfe = "E";
                    }
                    else
                    {
                        ObjNotaFiscal.TpNfe = "S";
                    }
                    if (DtNotaFiscal.Rows[0]["CdUf_Destinatario"].ToString() == DtNotaFiscal.Rows[0]["CdUf_Emitente"].ToString())
                    {
                        ObjNotaFiscal.TipoOperacao = 1;
                    }
                    else
                    {
                        ObjNotaFiscal.TipoOperacao = 2;
                        // VALIDAÇÃO DE OPERAÇÃO INTERESTADUAL APENAS EMPRESA PRESUMIDO E REAL PARTICIPAM
                        if (FuncoesGerais.ParamatroTributacaoEmpresa() != "0")
                        {
                            if (NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCpfCgc_Destinatario"].ToString()).Trim().Length == 11)
                            {
                                ObjNotaFiscal.OpInterestadual = true;
                            }
                            else
                            {
                                ObjNotaFiscal.OpInterestadual = false;
                            }
                        }
                    }

                    if (TipoEmissao.Trim() == "1")
                    {
                        ObjNotaFiscal.TpEmis = 1;
                    }
                    else
                    {
                        ObjNotaFiscal.TpEmis = 2;
                    }

                    ObjNotaFiscal.TpAmbiente = TipoAmbiente;

                    if (Convert.ToBoolean(DtNotaFiscal.Rows[0]["FlCartao"].ToString()) == true)
                    {
                        ObjNotaFiscal.TipoPagamento = 1;
                    }
                    else if (Convert.ToBoolean(DtNotaFiscal.Rows[0]["FlAvista"]) == true)
                    {
                        ObjNotaFiscal.TipoPagamento = 0;
                    }
                    else
                    {
                        ObjNotaFiscal.TipoPagamento = 0;
                    }

                    if (Convert.ToInt32(DtNotaFiscal.Rows[0]["FlFinalidade"]) == 2)
                    {
                        ObjNotaFiscal.TipoFInalidadeNfe = 2;
                    }
                    else if (Convert.ToInt32(DtNotaFiscal.Rows[0]["FlFinalidade"]) == 3)
                    {
                        ObjNotaFiscal.TipoFInalidadeNfe = 3;
                    }
                    else if (Convert.ToInt32(DtNotaFiscal.Rows[0]["FlFinalidade"]) == 4)
                    {
                        ObjNotaFiscal.TipoFInalidadeNfe = 4;
                    }
                    else
                    {
                        ObjNotaFiscal.TipoFInalidadeNfe = 1;
                    }
                    #endregion

                    #region Dados do Emitente

                    LocalErro = "Dados do Emitente";
                    //Emitente
                    ObjEntEmit.Nome        = DtNotaFiscal.Rows[0]["NmRazaoSocial_Emitente"].ToString().Trim();
                    ObjEntEmit.RazaoSocial = DtNotaFiscal.Rows[0]["NmRazaoSocial_Emitente"].ToString().Trim();
                    ObjEntEmit.CpfCnpj     = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCpfCgc_Emitente"].ToString().Trim());
                    ObjEntEmit.IE          = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["NrCgf_Emitente"].ToString().Trim());
                    ObjEntEmit.Lagradouro  = DtNotaFiscal.Rows[0]["NmEnder_Emitente"].ToString().Trim();
                    ObjEntEmit.Numero      = DtNotaFiscal.Rows[0]["NrEnder_Emitente"].ToString().Trim();
                    ObjEntEmit.Bairro      = DtNotaFiscal.Rows[0]["NmBairro_Emitente"].ToString().Trim().Trim();
                    ObjEntEmit.sCep        = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCep_Emitente"].ToString());
                    ObjEntEmit.sUf         = DtNotaFiscal.Rows[0]["CdUf_Emitente"].ToString();
                    ObjEntEmit.cMunicipio  = DtNotaFiscal.Rows[0]["CdUfCidadeIbge_Emitente"].ToString().Trim() == string.Empty ? 0 : int.Parse(DtNotaFiscal.Rows[0]["CdUfCidadeIbge_Emitente"].ToString());
                    ObjEntEmit.sMunicipio  = DtNotaFiscal.Rows[0]["NmCidadeIbge_Emitente"].ToString();
                    #endregion

                    #region Dados do Destinatario

                    LocalErro = "Dados do Destinatario";
                    //Destinatario
                    ObjEntDest.Nome       = DtNotaFiscal.Rows[0]["NmCliente_Destinatario"].ToString().Trim();
                    ObjEntDest.CpfCnpj    = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCpfCgc_Destinatario"].ToString()).Trim();
                    ObjEntDest.IE         = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["NrCgf_Destinatario"].ToString()).Trim();
                    ObjEntDest.Lagradouro = DtNotaFiscal.Rows[0]["NmEnder_Destinatario"].ToString().Trim();
                    ObjEntDest.Numero     = DtNotaFiscal.Rows[0]["NrEnder_Destinatario"].ToString().Trim();
                    ObjEntDest.FlIsento   = Convert.ToBoolean(DtNotaFiscal.Rows[0]["Isento_Destinatario"]);
                    ObjEntDest.Bairro     = DtNotaFiscal.Rows[0]["NmBairro_Destinatario"].ToString().Trim();
                    ObjEntDest.sCep       = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCep_Destinatario"].ToString());
                    ObjEntDest.sUf        = DtNotaFiscal.Rows[0]["CdUf_Destinatario"].ToString().Trim();
                    ObjEntDest.cMunicipio = DtNotaFiscal.Rows[0]["CdUfCidadeIbge_Destinatario"].ToString().Trim() == string.Empty ? 0 : int.Parse(DtNotaFiscal.Rows[0]["CdUfCidadeIbge_Destinatario"].ToString());
                    ObjEntDest.sMunicipio = DtNotaFiscal.Rows[0]["NmCidade_Destinatario"].ToString().Trim();
                    #endregion

                    #region Totais

                    LocalErro = "Totais";
                    //Totais
                    ObjTotais.ValorBaseIcms      = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlBaseIcms"]);
                    ObjTotais.ValorIcms          = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlIcms"]);
                    ObjTotais.ValorIcmsBaseSub   = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlBaseIcmsSub"]);
                    ObjTotais.ValorIcmsSub       = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlIcmsSub"]);
                    ObjTotais.ValorFrete         = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlFrete"]);
                    ObjTotais.ValorSeguro        = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlSeguro"]);
                    ObjTotais.ValorDesconto      = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlDesconto"]);
                    ObjTotais.ValorOutrasDesp    = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlOutrasDesp"]);
                    ObjTotais.ValorIpi           = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlIpi"]);
                    ObjTotais.ValorTotalProdutos = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlProdutos"]);
                    ObjTotais.ValorTotal         = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlTotal"]);
                    ObjTotais.ValorPis           = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlPis"]);
                    ObjTotais.ValorCofins        = Convert.ToDecimal(DtNotaFiscal.Rows[0]["VlCofins"]);
                    #endregion

                    #region Local de Entrega
                    if (DtNotaFiscal.Rows[0]["LocalEntrega_NmEnder"].ToString() != string.Empty && DtNotaFiscal.Rows[0]["LocalEntrega_CdUfCidadeIbge"].ToString() != string.Empty && NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCpfCgc_Destinatario"].ToString()).Trim().Length == 14)
                    {
                        LocalErro                   = "Dados do Local de Entrega";
                        ObjLocalEntrega             = new Entidade_LocalEntrega();
                        ObjLocalEntrega.sMunicipio  = DtNotaFiscal.Rows[0]["LocalEntrega_NmCidade"].ToString();
                        ObjLocalEntrega.Bairro      = DtNotaFiscal.Rows[0]["LocalEntrega_NmBairro"].ToString();
                        ObjLocalEntrega.sUf         = DtNotaFiscal.Rows[0]["LocalEntrega_CdUf"].ToString();
                        ObjLocalEntrega.cMunicipio  = DtNotaFiscal.Rows[0]["LocalEntrega_cdUfCidadeIbge"].ToString() == string.Empty ? 0 : int.Parse(DtNotaFiscal.Rows[0]["LocalEntrega_cdUfCidadeIbge"].ToString());
                        ObjLocalEntrega.Lagradouro  = DtNotaFiscal.Rows[0]["LocalEntrega_NmEnder"].ToString();
                        ObjLocalEntrega.Numero      = DtNotaFiscal.Rows[0]["LocalEntrega_NrEnder"].ToString();
                        ObjLocalEntrega.Complemento = DtNotaFiscal.Rows[0]["LocalEntrega_NmComplEnder"].ToString();
                    }
                    else
                    {
                        ObjLocalEntrega = null;
                    }


                    if (DtNotaFiscal.Rows[0]["FretePorConta"].ToString().Trim() == "1")
                    {
                        ObjTrans = new Entidade_Transportador();
                        if (DtNotaFiscal.Rows[0]["CdCpfCgcTrans"].ToString().Trim() != string.Empty)
                        {
                            ObjTrans.CpfCnpj     = NFuncoes.TiraCampos(DtNotaFiscal.Rows[0]["CdCpfCgcTrans"].ToString().Trim());
                            ObjTrans.RazaoSocial = DtNotaFiscal.Rows[0]["NmTransportadora"].ToString().Trim();
                            ObjTrans.Lagradouro  = DtNotaFiscal.Rows[0]["NmEnderTrans"].ToString().Trim();
                            ObjTrans.sMunicipio  = DtNotaFiscal.Rows[0]["NmCidadeTrans"].ToString().Trim();
                            ObjTrans.IE          = DtNotaFiscal.Rows[0]["NrCgfTrans"].ToString().Trim();
                            ObjTrans.sUf         = DtNotaFiscal.Rows[0]["CdUfTrans"].ToString().Trim();
                        }
                        else
                        {
                            ObjTrans = null;
                        }
                    }

                    #endregion

                    #region Duplicatas
                    //Duplicatas
                    //if (DtDuplicatas.Rows.Count > 0)
                    //{
                    //    LocalErro = "Duplicatas";
                    //    for (int i = 0; i < DtDuplicatas.Rows.Count; i++)
                    //    {
                    //        ObjDuplicatas = new Entidade_Duplicatas();
                    //        if (SerieNf != "D1")
                    //        {
                    //            ObjDuplicatas.NumeroDup = DtDuplicatas.Rows[i]["nrDup"].ToString() + DtDuplicatas.Rows[i]["NmParcDup"].ToString().Trim();
                    //            ObjDuplicatas.DataVencimento = Convert.ToDateTime(DtDuplicatas.Rows[i]["dtVencto"].ToString());
                    //            ObjDuplicatas.ValorDup = decimal.Parse(DtDuplicatas.Rows[i]["VlDup"].ToString());
                    //        }
                    //        else
                    //        {
                    //            ObjDuplicatas.TipoPagamento = Convert.ToInt32(DtDuplicatas.Rows[i]["TipoPagto"]);
                    //            ObjDuplicatas.ValorDup = decimal.Parse(DtDuplicatas.Rows[i]["Total"].ToString());
                    //        }
                    //        ListDuplicatas.Add(ObjDuplicatas);
                    //    }
                    //}
                    //else
                    ListDuplicatas = null;

                    #endregion

                    #region Item das Notas Fiscais
                    for (int i = 0; i < DtNotaFiscalItens.Rows.Count; i++)
                    {
                        LocalErro         = "Dados dos Itens da Nota";
                        ObjItemNotaFiscal = new Entidade_ItemNotaFiscal();
                        ObjItemNotaFiscal.CodigoProduto = DtNotaFiscalItens.Rows[i]["CodigoDoProduto"].ToString().Trim();
                        //ObjItemNotaFiscal.NrSeqItem = int.Parse(DtNotaFiscalItens.Rows[i]["NrSeqItem"].ToString());
                        ObjItemNotaFiscal.NrSeqItem = i + 1;
                        ObjItemNotaFiscal.CFOP      = DtNotaFiscalItens.Rows[i]["CFOP"].ToString().Trim();
                        if (CfopDev.Contains(DtNotaFiscalItens.Rows[i]["CFOP"].ToString().Trim()) == true)
                        {
                            ObjNotaFiscal.TipoFInalidadeNfe = 4;
                        }
                        ObjItemNotaFiscal.DescricaoProdutos = DtNotaFiscalItens.Rows[i]["DescricaoDoProduto"].ToString().Trim();
                        ObjItemNotaFiscal.Unidade           = DtNotaFiscalItens.Rows[i]["UND"].ToString().Trim();
                        ObjItemNotaFiscal.Qtd              = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["Quantidade"].ToString());
                        ObjItemNotaFiscal.ValorUnitario    = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorUnitario"].ToString());
                        ObjItemNotaFiscal.ValorTotal       = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["VlTotal"].ToString());
                        ObjItemNotaFiscal.ValorTotalIcms   = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorTotalIcms"].ToString());
                        ObjItemNotaFiscal.ValorIcms        = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorIcms"].ToString());
                        ObjItemNotaFiscal.AliqIcms         = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ICMS"].ToString());
                        ObjItemNotaFiscal.AliqIpi          = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["IPI"].ToString());
                        ObjItemNotaFiscal.ValorIpi         = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorIPI"].ToString());
                        ObjItemNotaFiscal.ValorBaseIpi     = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorBaseIPI"].ToString());
                        ObjItemNotaFiscal.ValorPis         = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorPis"].ToString());
                        ObjItemNotaFiscal.ValorCofins      = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorCofins"].ToString());
                        ObjItemNotaFiscal.AliqPis          = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["VlAliqPis"].ToString());
                        ObjItemNotaFiscal.AliqCofins       = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["VlAliqCofins"].ToString());
                        ObjItemNotaFiscal.NCM              = DtNotaFiscalItens.Rows[i]["NCM"].ToString().Trim().Trim();
                        ObjItemNotaFiscal.PercMVA          = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["PercMVA"]);
                        ObjItemNotaFiscal.PercReducao      = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["PercReducao"]);
                        ObjItemNotaFiscal.ValorIcmsBaseSub = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorBaseIcmsSub"]);
                        ObjItemNotaFiscal.ValorIcmsSub     = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorBaseIcmsSub"]) * (Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ICMS"].ToString()) / 100) - Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["ValorIcms"].ToString());
                        ObjItemNotaFiscal.CSTICMS          = DtNotaFiscalItens.Rows[i]["CstICMS"].ToString().Trim();
                        ObjItemNotaFiscal.CSTPI            = DtNotaFiscalItens.Rows[i]["CstIPI"].ToString().Trim();
                        ObjItemNotaFiscal.CSTPIS           = DtNotaFiscalItens.Rows[i]["CstPIS"].ToString().Trim();
                        ObjItemNotaFiscal.CSTCOFINS        = DtNotaFiscalItens.Rows[i]["CstCOFINS"].ToString().Trim();
                        ObjItemNotaFiscal.Desconto         = Convert.ToDecimal(DtNotaFiscalItens.Rows[i]["VlDescItem"].ToString());
                        ObjItemNotaFiscal.Origem           = DtNotaFiscalItens.Rows[i]["CdOrigemProduto"].ToString().Trim();

                        ListItemNotaFiscal.Add(ObjItemNotaFiscal);
                    }
                    #endregion

                    #region Nota Fiscal Referida

                    //if (DtNotaFiscalReferida.Rows.Count > 0)
                    //{
                    //    LocalErro = "Dados do Nota Fiscal Referida";
                    //    for (int i = 0; i < DtNotaFiscalReferida.Rows.Count; i++)
                    //    {
                    //        ObjNotaFiscalReferida = new Entidade_NotaFiscalReferida();
                    //        ObjNotaFiscalReferida.TxChAcessoNfeReferida = DtNotaFiscalReferida.Rows[0]["TxChAcessoNfe"].ToString();
                    //        ObjNotaFiscalReferida.COO = 0;
                    //        ObjNotaFiscalReferida.SerieNfRef = DtNotaFiscalReferida.Rows[0]["serienfReferida"].ToString();
                    //    }
                    //    ListObjNotaFiscalReferida.Add(ObjNotaFiscalReferida);
                    //    ObjNotaFiscal.NotaFiscalReferida = ListObjNotaFiscalReferida;
                    //}
                    //else
                    ObjNotaFiscal.NotaFiscalReferida = null;

                    #endregion

                    ObjNotaFiscal.EntEmit           = ObjEntEmit;
                    ObjNotaFiscal.EntDest           = ObjEntDest;
                    ObjNotaFiscal.EntDuplicata      = ListDuplicatas;
                    ObjNotaFiscal.EntLocalEntrega   = ObjLocalEntrega;
                    ObjNotaFiscal.EntTotais         = ObjTotais;
                    ObjNotaFiscal.EntItemNotaFiscal = ListItemNotaFiscal;
                    ObjNotaFiscal.EntTransportador  = ObjTrans;
                }
            }
            catch (InvalidCastException Ice)
            {
                if (Ice.Source != null)
                {
                    mLog.InsertErroLog("Erro em consulta de nota fiscal. \nErro encontrado:" + Ice.Source + "." + Ice.Message.ToString() + "." + LocalErro);
                }
                else
                {
                    mLog.InsertErroLog("Erro em consulta de nota fiscal. \nErro encontrado:" + Ice.Message.ToString() + "." + LocalErro);
                }
                return(null);
            }
            catch (IOException e)
            {
                if (e.Source != null)
                {
                    mLog.InsertErroLog("Erro em consulta de nota fiscal. \nErro encontrado:" + e.Source + "." + e.Message.ToString() + "." + LocalErro);
                }
                else
                {
                    mLog.InsertErroLog("Erro em consulta de nota fiscal. \nErro encontrado:" + e.Message.ToString() + "." + LocalErro);
                }
                return(null);
            }
            catch (Exception ex)
            {
                if (ex.Source != null)
                {
                    mLog.InsertErroLog("Erro em consulta de nota fiscal. \nErro encontrado:" + ex.Source + "." + ex.Message.ToString() + "." + LocalErro);
                }
                else
                {
                    mLog.InsertErroLog("Erro em consulta de nota fiscal. \nErro encontrado:" + ex.Message.ToString() + "." + LocalErro);
                }
                return(null);
            }
            return(ObjNotaFiscal);
        }
コード例 #10
0
        public void DeserilizarEvento(object obj, ref Entidade_Recibo objDes)
        {
            Entidade_Recibo  retRecibo = new Entidade_Recibo();
            Model_NotaFiscal mNf       = new Model_NotaFiscal();
            Model_Lote       mLote     = new Model_Lote();
            XmlDocument      docRet    = new XmlDocument();

            RetReciNFe = new TRetConsReciNFe();
            StreamWriter SW;
            string       xProtNFe = string.Empty;

            object objRet = new object();

            retXmlNodeReader = new XmlNodeReader((XmlNode)obj);
            xmlDesSerializar = new XmlSerializer(typeof(TRetConsReciNFe));

            objRet = xmlDesSerializar.Deserialize(retXmlNodeReader);

            var Retorno = (TRetConsReciNFe)objRet;


            XmlNodeList xNodList = ((XmlNode)obj).ChildNodes;

            try
            {
                if (Retorno.protNFe != null)
                {
                    foreach (var Prot in Retorno.protNFe)
                    {
                        if (objDes.TpNf.Trim() == "S")
                        {
                            mNf.AtualizaRetornoNfeSaida(Prot.infProt.cStat, Prot.infProt.nProt, objDes.Loja, Prot.infProt.chNFe, Model_NotaFiscal.NotaFiscal.Saida);
                        }
                        else
                        {
                            mNf.AtualizaRetornoNfeSaida(Prot.infProt.cStat, Prot.infProt.nProt, objDes.Loja, Prot.infProt.chNFe, Model_NotaFiscal.NotaFiscal.Entrada);
                        }

                        for (int i = 0; i < xNodList.Count; i++)
                        {
                            if (xNodList.Item(i).Name.Equals("protNFe"))
                            {
                                XmlNode     xNodListProc  = xNodList.Item(i).FirstChild;
                                XmlNodeList xNodListProc2 = xNodListProc.ChildNodes;

                                for (int j = 0; j < xNodListProc2.Count; j++)
                                {
                                    if (xNodListProc2.Item(j).Name.Equals("chNFe"))
                                    {
                                        xProtNFe = xNodList.Item(i).OuterXml;
                                        break;
                                    }
                                }
                            }
                        }
                        mLote.ItemLoteNfe(Prot.infProt.cStat, Prot.infProt.chNFe, xProtNFe);
                        mLote.LoteProcessado(Retorno.cStat, Convert.ToDateTime(Prot.infProt.dhRecbto), Retorno.nRec);
                    }
                }
                else
                {
                    mLote.LoteProcessado(Retorno.cStat, Convert.ToDateTime(Retorno.dhRecbto), Retorno.nRec);
                }

                if (!Directory.Exists(@"C:\NFe\Retorno_Proc_NFe\"))
                {
                    Directory.CreateDirectory(@"C:\NFe\Retorno_Proc_NFe\");
                }
                FileStream FS = new FileStream(@"C:\NFe\Retorno_Proc_NFe\" + string.Format("{0:MMddyyyy}", DateTime.Now.Date) + "_" + Retorno.nRec.Trim() + ".xml", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
                SW = new StreamWriter(FS);

                xmlDesSerializar.Serialize(SW, Retorno);
            }
            catch (Exception Ex)
            {
                Mensagem.MensagemErro(Mensagem.TipoMensagem.RetAutoriz, "Saida", Ex.Message.ToString());

                if (!Directory.Exists(@"C:\NFe\Retorno_Proc_NFe\"))
                {
                    Directory.CreateDirectory(@"C:\NFe\Retorno_Proc_NFe\");
                }
                FileStream FS = new FileStream(@"C:\NFe\Retorno_Proc_NFe\" + string.Format("{0:MMddyyyy}", DateTime.Now.Date) + "_" + Retorno.nRec.Trim() + ".xml", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
                SW = new StreamWriter(FS);

                xmlDesSerializar.Serialize(SW, Retorno);
            }
        }