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())); } }
//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()); } }
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; }
public DataTable PesquisaNotasFiscaisLoteNfe(int Loja, int Lote) { ObjModNfe = new Model_NotaFiscal(); return(ObjModNfe.PesquisarLoteNotaFiscais(Loja, Lote)); }
public int GerarLoteNfe(int Loja) { ObjModNfe = new Model_NotaFiscal(); return(ObjModNfe.IncluirLoteNfeSaida(Loja, Model_NotaFiscal.NotaFiscal.Entrada)); }
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; }
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); }
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(); } }
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); }
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); } }