Skip to content

Instantly share code, notes, and snippets.

@facilita-tecnologia
Created April 23, 2018 23:39
Show Gist options
  • Save facilita-tecnologia/eefab3cec71da4e1718f93d698e0973a to your computer and use it in GitHub Desktop.
Save facilita-tecnologia/eefab3cec71da4e1718f93d698e0973a to your computer and use it in GitHub Desktop.
var arquivoXml = Funcoes.BuscarArquivoXml();
if (!string.IsNullOrWhiteSpace(arquivoXml))
{
_nfe = new NFe.Classes.NFe().CarregarDeArquivoXml(arquivoXml);
// Informações
_Fornecedor.NOME = _nfe.infNFe.emit.xNome;
_Fornecedor.FANTASIA = _nfe.infNFe.emit.xFant;
_Fornecedor.CPF_CNPJ = _nfe.infNFe.emit.CNPJ;
_Fornecedor.DTCAD = DateTime.Now;
_Fornecedor.EMPRESA_ID = Program.Sessao_Empresa.EmpresaId;
_Fornecedor.IE_RG = _nfe.infNFe.emit.IE;
// Endereço
_Fornecedor.IBGE = Convert.ToInt32(_nfe.infNFe.emit.enderEmit.cMun);
_Fornecedor.TELEFONE = Convert.ToString(_nfe.infNFe.emit.enderEmit.fone);
_Fornecedor.ENDERECO = _nfe.infNFe.emit.enderEmit.xLgr;
_Fornecedor.COMPLEMENTO = _nfe.infNFe.emit.enderEmit.xCpl;
_Fornecedor.CEP = _nfe.infNFe.emit.enderEmit.CEP;
_Fornecedor.NUMERO = _nfe.infNFe.emit.enderEmit.nro;
_NF_Entrada.Fornecedor_Id = _Fornecedor.ID_FORNECEDOR;
_NF_Entrada.Transportadora_Id = 0;
_NF_Entrada.procEmi = _EnumParaInteger.Generic<ProcessoEmissao>(_nfe.infNFe.ide.procEmi);
_NF_Entrada.Mod = _EnumParaInteger.Generic<DFe.Classes.Flags.ModeloDocumento>(_nfe.infNFe.ide.mod);
_NF_Entrada.cStat = "100";
_NF_Entrada.Status = 2; // Em Digitação
_NF_Entrada.Serie = Convert.ToString(_nfe.infNFe.ide.serie);
_NF_Entrada.nNF = Convert.ToString(_nfe.infNFe.ide.nNF);
_NF_Entrada.cNF = Convert.ToString(_nfe.infNFe.ide.cNF);
_NF_Entrada.natOp = _nfe.infNFe.ide.natOp;
_NF_Entrada.Chave = _nfe.infNFe.Id.Substring(3);
_NF_Entrada.dhEmi = Convert.ToDateTime(_nfe.infNFe.ide.dhEmi);
_NF_Entrada.dtEntrada = DateTime.Now;
_NF_Entrada.Usuario_Id = Convert.ToInt16(Program.Sessao_Usuario.UsuarioId);
_NF_Entrada.Empresa_Id = Convert.ToInt16(Program.Sessao_Empresa.EmpresaId);
_NF_Entrada.modFrete = _EnumParaInteger.Generic<NFe.Classes.Informacoes.Transporte.ModalidadeFrete>(_nfe.infNFe.transp.modFrete.Value);
// Totais
_NF_Entrada.vProd = _nfe.infNFe.total.ICMSTot.vProd;
_NF_Entrada.vFrete = _nfe.infNFe.total.ICMSTot.vFrete;
_NF_Entrada.vSeg = _nfe.infNFe.total.ICMSTot.vSeg;
_NF_Entrada.vDesc = _nfe.infNFe.total.ICMSTot.vDesc;
_NF_Entrada.vOutro = _nfe.infNFe.total.ICMSTot.vOutro;
_NF_Entrada.vNF = _nfe.infNFe.total.ICMSTot.vNF;
// Impostos
_NF_Entrada.vBC = _nfe.infNFe.total.ICMSTot.vBC;
_NF_Entrada.vICMS = _nfe.infNFe.total.ICMSTot.vICMS;
_NF_Entrada.vICMSDeson = Convert.ToDecimal(_nfe.infNFe.total.ICMSTot.vICMSDeson);
_NF_Entrada.vBCST = _nfe.infNFe.total.ICMSTot.vBCST;
_NF_Entrada.vST = _nfe.infNFe.total.ICMSTot.vST;
_NF_Entrada.vII = _nfe.infNFe.total.ICMSTot.vII;
_NF_Entrada.vIPI = _nfe.infNFe.total.ICMSTot.vIPI;
_NF_Entrada.vPIS = _nfe.infNFe.total.ICMSTot.vPIS;
_NF_Entrada.vCOFINS = _nfe.infNFe.total.ICMSTot.vCOFINS;
// Outros
_NF_Entrada.Status_Precificacao = 0;
_NF_Entrada.Usuario_Precificacao = 0;
_NF_Entrada.XML = true;
// Fundo de Combate a Pobresa
_NF_Entrada.vICMSUFDest = Convert.ToDecimal(_nfe.infNFe.total.ICMSTot.vICMSUFDest);
_NF_Entrada.vICMSUFRemet = Convert.ToDecimal(_nfe.infNFe.total.ICMSTot.vICMSUFRemet);
// Tributos Aproximados
_NF_Entrada.vTotTrib = _nfe.infNFe.total.ICMSTot.vTotTrib;
context.Set<NF_Entrada>().Add(_NF_Entrada);
context.SaveChanges();
// Salvar os Itens
foreach (var item in _nfe.infNFe.det)
{
_Produto.nItem = item.nItem;
_Produto.cProd = item.prod.cProd;
_Produto.cEAN = item.prod.cEAN;
_Produto.xProd = item.prod.xProd;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment