Created
November 26, 2019 00:43
-
-
Save facilita-tecnologia/249a0ffe32711007cad4a84f7753badd to your computer and use it in GitHub Desktop.
LER XML NFE 4.0 ZEUS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public int Importar_XML_Arquivo() | |
{ | |
int Retorno = 0; | |
var arquivoXml = Funcoes.BuscarArquivoXml(); | |
if (!string.IsNullOrWhiteSpace(arquivoXml)) | |
{ | |
_nfe = new NFe.Classes.NFe().CarregarDeArquivoXml(arquivoXml); | |
#region Verificação & Cadastramento de Fornecedor | |
Fornecedor_Repository _Fornecedor_Repository = new Fornecedor_Repository(context); | |
bool ForExiste = _Fornecedor_Repository.Verificar_Existencia(_nfe.infNFe.emit.CNPJ); | |
if (ForExiste != true) | |
{ | |
_Ui_Manifestar_NFe.Processando("Fornecedor"); | |
// 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; | |
if (_nfe.infNFe.emit.CRT == CRT.SimplesNacional) | |
{ | |
_Fornecedor.CRT = "1"; | |
} | |
if (_nfe.infNFe.emit.CRT == CRT.SimplesNacionalExcessoSublimite) | |
{ | |
_Fornecedor.CRT = "2"; | |
} | |
if (_nfe.infNFe.emit.CRT == CRT.RegimeNormal) | |
{ | |
_Fornecedor.CRT = "3"; | |
} | |
_Fornecedor.BAIRRO = _nfe.infNFe.emit.enderEmit.xBairro; | |
context.Set<Fornecedor>().Add(_Fornecedor); | |
context.SaveChanges(); | |
} | |
else | |
{ | |
_Fornecedor = _Fornecedor_Repository.Localizar_Por_CNPJ(_nfe.infNFe.emit.CNPJ); | |
} | |
#endregion | |
#region Crir o Cabeçalho da Nota de Compra | |
_NF_Entrada.indFinal = Helper.Generico<ConsumidorFinal>(_nfe.infNFe.ide.indFinal.Value); | |
_NF_Entrada.idDest = _EnumParaInteger.Generic<DestinoOperacao>(_nfe.infNFe.ide.idDest.Value); | |
_NF_Entrada.indPres = _EnumParaInteger.Generic<PresencaComprador>(_nfe.infNFe.ide.indPres.Value); | |
// Se for versão 4.0 da NFe | |
if (_nfe.infNFe.versao == "4.00") | |
{ | |
foreach (var item_pag in _nfe.infNFe.pag) | |
{ | |
// MessageBox.Show(item_pag.tPag.Value.ToString()); | |
} | |
} | |
else | |
{ | |
_NF_Entrada.indPag = _EnumParaInteger.Generic<IndicadorPagamento>(_nfe.infNFe.ide.indPag.Value); | |
} | |
_NF_Entrada.tpAmb = Helper.Generico<TipoAmbiente>(_nfe.infNFe.ide.tpAmb); | |
_NF_Entrada.Path_XML = Path.GetFileName(arquivoXml); | |
if (_nfe.infNFe.emit.CRT == CRT.SimplesNacional) | |
{ | |
_NF_Entrada.CRT = "1"; | |
} | |
if (_nfe.infNFe.emit.CRT == CRT.SimplesNacionalExcessoSublimite) | |
{ | |
_NF_Entrada.CRT = "2"; | |
} | |
if (_nfe.infNFe.emit.CRT == CRT.RegimeNormal) | |
{ | |
_NF_Entrada.CRT = "3"; | |
} | |
_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 = _nfe.infNFe.ide.dhEmi.LocalDateTime; | |
_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; | |
_NF_Entrada.infCpl = _nfe.infNFe.infAdic.infCpl; | |
_NF_Entrada.infAdFisco = _nfe.infNFe.infAdic.infAdFisco; | |
// 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; | |
if (Verificar_Existencia_Nota(_NF_Entrada.nNF, _Fornecedor.ID_FORNECEDOR) == true) | |
{ | |
Mensagens.Alerta("Sistema Integrado de Autmação", "Já existe uma NF-e Lançada no sistema."); | |
} | |
else | |
{ | |
context.Set<NF_Entrada>().Add(_NF_Entrada); | |
context.SaveChanges(); | |
if (_NF_Entrada != null) | |
{ | |
Retorno = _NF_Entrada.ID_COMPRA; | |
} | |
#endregion | |
#region Salvar Itens da NF | |
List<Produto> _List_Produtos = new List<Produto>(); | |
ProdutoRepository _ProdutoRepository = new ProdutoRepository(context); | |
_List_Produtos = _ProdutoRepository.Todos_Produtos(); | |
foreach (var item in _nfe.infNFe.det) | |
{ | |
NF_Entrada_Item _Produto = new NF_Entrada_Item(); | |
Produto _Produto_Single = new Produto(); | |
int Cod = 0; | |
decimal FatorX = 1.000m; | |
if (!string.IsNullOrEmpty(item.prod.cEAN)) | |
{ | |
if (item.prod.cEAN != "SEM GTIN") | |
{ | |
_Produto_Single = _List_Produtos.FirstOrDefault(s => s.EAN2 == item.prod.cEAN); | |
if (_Produto_Single != null) | |
{ | |
Cod = _Produto_Single.Codigo; | |
FatorX = _Produto_Single.Fator; | |
} | |
} | |
} | |
_Ui_Manifestar_NFe.Processando(item.prod.cProd + " - " + item.prod.xProd); | |
_Produto.ID_COMPRA = _NF_Entrada.ID_COMPRA; | |
_Produto.Produto_Id = Cod; | |
_Produto.nItem = item.nItem; | |
_Produto.cProd = item.prod.cProd; | |
_Produto.cEAN = item.prod.cEAN; | |
_Produto.xProd = item.prod.xProd; | |
_Produto.Desc_Complementar = item.infAdProd; | |
_Produto.NCM = item.prod.NCM; | |
_Produto.CEST = item.prod.CEST; | |
_Produto.CFOP = Convert.ToString(item.prod.CFOP); | |
_Produto.uCom = item.prod.uCom; | |
_Produto.qCom = item.prod.qCom; | |
_Produto.vUnCom = item.prod.vUnCom; | |
_Produto.vProd = item.prod.vProd; | |
_Produto.vDesc = Convert.ToDecimal(item.prod.vDesc); | |
_Produto.vFrete = Convert.ToDecimal(item.prod.vFrete); | |
_Produto.vSeg = Convert.ToDecimal(item.prod.vSeg); | |
_Produto.vSeg = Convert.ToDecimal(item.prod.vSeg); | |
_Produto.vOutro = Convert.ToDecimal(item.prod.vOutro); | |
decimal SutTotal = item.prod.qCom * item.prod.vProd; | |
_Produto.SubTotal = SutTotal; | |
_Produto.indTot = _EnumParaInteger.Generic<NFe.Classes.Informacoes.Detalhe.IndicadorTotal>(item.prod.indTot); | |
_Produto.xPed = item.prod.xPed; | |
_Produto.nItemPed = Convert.ToString(item.prod.nItemPed); | |
_Produto.Fator = FatorX; | |
// ICMS | |
// Verificações p/ Simples Nacional | |
if (_NF_Entrada.CRT == "1") | |
{ | |
var CSOSN_101 = item.imposto.ICMS.TipoICMS as ICMSSN101; | |
var CSOSN_102 = item.imposto.ICMS.TipoICMS as ICMSSN102; | |
var CSOSN_103 = item.imposto.ICMS.TipoICMS as ICMSSN103; | |
var CSOSN_300 = item.imposto.ICMS.TipoICMS as ICMSSN300; | |
var CSOSN_400 = item.imposto.ICMS.TipoICMS as ICMSSN400; | |
var CSOSN_201 = item.imposto.ICMS.TipoICMS as ICMSSN201; | |
var CSOSN_202 = item.imposto.ICMS.TipoICMS as ICMSSN202; | |
var CSOSN_203 = item.imposto.ICMS.TipoICMS as ICMSSN203; | |
var CSOSN_500 = item.imposto.ICMS.TipoICMS as ICMSSN500; | |
var CSOSN_900 = item.imposto.ICMS.TipoICMS as ICMSSN900; | |
if (CSOSN_101 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CSOSN_101.orig); | |
_Produto.CST_CSOSN = "101"; | |
_Produto.pCredSN = CSOSN_101.pCredSN; | |
_Produto.vCredICMSSN = CSOSN_101.vCredICMSSN; | |
} | |
if (CSOSN_102 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CSOSN_102.orig); | |
_Produto.CST_CSOSN = "102"; | |
} | |
if (CSOSN_300 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CSOSN_300.orig); | |
_Produto.CST_CSOSN = "300"; | |
} | |
if (CSOSN_400 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CSOSN_400.orig); | |
_Produto.CST_CSOSN = "400"; | |
} | |
if (CSOSN_201 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CSOSN_201.orig); | |
_Produto.CST_CSOSN = "201"; | |
_Produto.modBCST = Convert.ToInt32(CSOSN_201.modBCST); | |
_Produto.pMVAST = CSOSN_201.pMVAST; | |
_Produto.pRedBCST = CSOSN_201.pRedBCST; | |
_Produto.vBCST = CSOSN_201.vBCST; | |
_Produto.pICMSST = CSOSN_201.pICMSST; | |
_Produto.vICMSST = CSOSN_201.vICMSST; | |
_Produto.pCredSN = CSOSN_201.pCredSN; | |
_Produto.vCredICMSSN = CSOSN_201.vCredICMSSN; | |
} | |
if (CSOSN_202 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CSOSN_202.orig); | |
_Produto.CST_CSOSN = "202"; | |
_Produto.modBCST = Convert.ToInt32(CSOSN_202.modBCST); | |
_Produto.pMVAST = CSOSN_202.pMVAST; | |
_Produto.pRedBCST = CSOSN_202.pRedBCST; | |
_Produto.vBCST = CSOSN_202.vBCST; | |
_Produto.pICMSST = CSOSN_202.pICMSST; | |
_Produto.vICMSST = CSOSN_202.vICMSST; | |
} | |
if (CSOSN_203 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CSOSN_203.orig); | |
_Produto.CST_CSOSN = "203"; | |
_Produto.modBCST = Convert.ToInt32(CSOSN_203.modBCST); | |
_Produto.pMVAST = CSOSN_203.pMVAST; | |
_Produto.pRedBCST = CSOSN_203.pRedBCST; | |
_Produto.vBCST = CSOSN_203.vBCST; | |
_Produto.pICMSST = CSOSN_203.pICMSST; | |
_Produto.vICMSST = CSOSN_203.vICMSST; | |
} | |
if (CSOSN_500 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CSOSN_500.orig); | |
_Produto.CST_CSOSN = "500"; | |
_Produto.vBCSTRet = CSOSN_500.vBCSTRet; | |
_Produto.vICMSSTRet = CSOSN_500.vICMSSTRet; | |
} | |
if (CSOSN_900 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CSOSN_900.orig); | |
_Produto.CST_CSOSN = "900"; | |
_Produto.modBC = Convert.ToInt32(CSOSN_900.modBC); | |
_Produto.vBC = CSOSN_900.vBC; | |
_Produto.pRedBC = CSOSN_900.pRedBC; | |
_Produto.pICMS = Convert.ToDecimal(CSOSN_900.pICMS); | |
_Produto.vICMS = Convert.ToDecimal(CSOSN_900.vICMS); | |
_Produto.modBCST = Convert.ToInt32(CSOSN_900.modBCST); | |
_Produto.pMVAST = CSOSN_900.pMVAST; | |
_Produto.pRedBCST = CSOSN_900.pRedBCST; | |
_Produto.vBCST = Convert.ToDecimal(CSOSN_900.vBCST); | |
_Produto.pICMSST = Convert.ToDecimal(CSOSN_900.vBCST); | |
_Produto.vICMSST = Convert.ToDecimal(CSOSN_900.vICMSST); | |
_Produto.pCredSN = Convert.ToDecimal(CSOSN_900.pCredSN); | |
_Produto.vCredICMSSN = Convert.ToDecimal(CSOSN_900.vCredICMSSN); | |
} | |
} | |
// Verificações p/ Outros Regimes | |
if (_NF_Entrada.CRT != "1") | |
{ | |
var CST_00 = item.imposto.ICMS.TipoICMS as ICMS00; | |
var CST_10 = item.imposto.ICMS.TipoICMS as ICMS10; | |
var CST_20 = item.imposto.ICMS.TipoICMS as ICMS20; | |
var CST_30 = item.imposto.ICMS.TipoICMS as ICMS30; | |
var CST_40 = item.imposto.ICMS.TipoICMS as ICMS40; | |
var CST_41 = item.imposto.ICMS.TipoICMS as ICMS41; | |
var CST_50 = item.imposto.ICMS.TipoICMS as ICMS50; | |
var CST_51 = item.imposto.ICMS.TipoICMS as ICMS51; | |
var CST_60 = item.imposto.ICMS.TipoICMS as ICMS60; | |
var CST_70 = item.imposto.ICMS.TipoICMS as ICMS70; | |
var CST_90 = item.imposto.ICMS.TipoICMS as ICMS90; | |
if (CST_00 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CST_00.orig); | |
_Produto.CST_CSOSN = "00"; | |
_Produto.modBC = Convert.ToInt32(CST_00.modBC); | |
_Produto.vBC = Convert.ToDecimal(CST_00.vBC); | |
_Produto.pICMS = Convert.ToDecimal(CST_00.pICMS); | |
_Produto.vICMS = Convert.ToDecimal(CST_00.vICMS); | |
} | |
if (CST_10 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CST_10.orig); | |
_Produto.CST_CSOSN = "10"; | |
_Produto.modBC = Convert.ToInt32(CST_10.modBC); | |
_Produto.vBC = Convert.ToDecimal(CST_10.vBC); | |
_Produto.pICMS = Convert.ToDecimal(CST_10.pICMS); | |
_Produto.vICMS = Convert.ToDecimal(CST_10.vICMS); | |
_Produto.modBCST = Convert.ToInt32(CST_10.modBCST); | |
_Produto.pMVAST = Convert.ToDecimal(CST_10.pMVAST); | |
_Produto.pRedBCST = Convert.ToDecimal(CST_10.pRedBCST); | |
_Produto.pICMSST = Convert.ToDecimal(CST_10.pICMSST); | |
_Produto.vICMSST = Convert.ToDecimal(CST_10.vICMS); | |
} | |
if (CST_20 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CST_20.orig); | |
_Produto.CST_CSOSN = "20"; | |
_Produto.modBC = Convert.ToInt32(CST_20.modBC); | |
_Produto.pRedBC = Convert.ToDecimal(CST_20.pRedBC); | |
_Produto.vBC = Convert.ToDecimal(CST_20.vBC); | |
_Produto.pICMS = Convert.ToDecimal(CST_20.pICMS); | |
_Produto.vICMS = Convert.ToDecimal(CST_20.vICMS); | |
_Produto.vICMSDeson = Convert.ToDecimal(CST_20.vICMSDeson); | |
_Produto.motDesICMS = Convert.ToInt32(CST_20.motDesICMS); | |
} | |
if (CST_30 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CST_30.orig); | |
_Produto.CST_CSOSN = "30"; | |
_Produto.modBCST = Convert.ToInt32(CST_30.modBCST); | |
_Produto.pMVAST = Convert.ToDecimal(CST_30.pMVAST); | |
_Produto.pRedBCST = Convert.ToDecimal(CST_30.pRedBCST); | |
_Produto.vBCST = Convert.ToDecimal(CST_30.vBCST); | |
_Produto.pICMSST = Convert.ToDecimal(CST_30.pICMSST); | |
_Produto.vICMSST = Convert.ToDecimal(CST_30.vICMSST); | |
_Produto.vICMSDeson = Convert.ToDecimal(CST_30.vICMSDeson); | |
_Produto.motDesICMS = Convert.ToInt32(CST_30.motDesICMS); | |
} | |
if (CST_40 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CST_40.orig); | |
_Produto.CST_CSOSN = "40"; | |
_Produto.vICMSDeson = Convert.ToDecimal(CST_40.vICMSDeson); | |
_Produto.motDesICMS = Convert.ToInt32(CST_40.motDesICMS); | |
} | |
if (CST_41 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CST_41.orig); | |
_Produto.CST_CSOSN = "41"; | |
_Produto.vICMSDeson = Convert.ToDecimal(CST_41.vICMSDeson); | |
_Produto.motDesICMS = Convert.ToInt32(CST_41.motDesICMS); | |
} | |
if (CST_50 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CST_50.orig); | |
_Produto.CST_CSOSN = "51"; | |
_Produto.vICMSDeson = Convert.ToDecimal(CST_50.vICMSDeson); | |
_Produto.motDesICMS = Convert.ToInt32(CST_50.motDesICMS); | |
} | |
if (CST_60 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CST_60.orig); | |
_Produto.CST_CSOSN = "60"; | |
_Produto.vBCSTRet = Convert.ToDecimal(CST_60.vBCSTRet); | |
_Produto.vICMSSTRet = Convert.ToInt32(CST_60.vICMSSTRet); | |
} | |
if (CST_70 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CST_70.orig); | |
_Produto.CST_CSOSN = "70"; | |
_Produto.modBC = Convert.ToInt32(CST_70.modBC); | |
_Produto.pRedBC = Convert.ToInt32(CST_70.pRedBC); | |
_Produto.vBC = Convert.ToDecimal(CST_70.vBC); | |
_Produto.pICMS = Convert.ToInt32(CST_70.pICMS); | |
_Produto.vICMS = Convert.ToDecimal(CST_70.vICMS); | |
_Produto.modBCST = Convert.ToInt32(CST_70.modBCST); | |
_Produto.pMVAST = Convert.ToDecimal(CST_70.pMVAST); | |
_Produto.pRedBCST = Convert.ToInt32(CST_70.pRedBCST); | |
_Produto.vBCST = Convert.ToDecimal(CST_70.vBCST); | |
_Produto.pICMSST = Convert.ToInt32(CST_70.pICMSST); | |
_Produto.vICMSST = Convert.ToDecimal(CST_70.vICMSST); | |
_Produto.vICMSDeson = Convert.ToDecimal(CST_70.vICMSDeson); | |
_Produto.motDesICMS = Convert.ToInt32(CST_70.motDesICMS); | |
} | |
if (CST_90 != null) | |
{ | |
_Produto.orig = Convert.ToInt32(CST_90.orig); | |
_Produto.CST_CSOSN = "90"; | |
_Produto.modBC = Convert.ToInt32(CST_90.modBC); | |
_Produto.vBC = Convert.ToInt32(CST_90.vBC); | |
_Produto.pRedBC = Convert.ToDecimal(CST_90.pRedBC); | |
_Produto.pICMS = Convert.ToInt32(CST_90.pICMS); | |
_Produto.vICMS = Convert.ToDecimal(CST_90.vICMS); | |
_Produto.modBCST = Convert.ToInt32(CST_90.modBCST); | |
_Produto.pMVAST = Convert.ToDecimal(CST_90.pMVAST); | |
_Produto.pRedBCST = Convert.ToInt32(CST_90.pRedBCST); | |
_Produto.vBCST = Convert.ToDecimal(CST_90.vBCST); | |
_Produto.pICMSST = Convert.ToInt32(CST_90.pICMSST); | |
_Produto.vICMSST = Convert.ToDecimal(CST_90.vICMSST); | |
_Produto.vICMSDeson = Convert.ToDecimal(CST_90.vICMSDeson); | |
_Produto.motDesICMS = Convert.ToInt32(CST_90.motDesICMS); | |
} | |
} | |
context.Set<NF_Entrada_Item>().Add(_Produto); | |
} | |
context.SaveChanges(); | |
#endregion | |
// Salvar Contas a Pagar | |
var cob = _nfe.infNFe.cobr as cobr; | |
if (cob != null) | |
{ | |
int Contador_Parcelas = 1; | |
foreach (var item in _nfe.infNFe.cobr.dup) | |
{ | |
using (var context_dup = new RD2_Context()) | |
{ | |
Pagar_C Pagar = new Pagar_C(); | |
Pagar.Id_Pessoa = _NF_Entrada.Fornecedor_Id; | |
Pagar.Empresa_Id = Program.Sessao_Empresa.EmpresaId; | |
Pagar.Tipo_Pessoa = 1; | |
Pagar.Portador_Id = Program._SisConfig.PORTADOR_COMPRA; | |
DateTime Vencimento = Convert.ToDateTime(item.dVenc); | |
Pagar.Conta_Corrente_Id = Program._SisConfig.CONTA_CORRENTE_PADRAO; | |
Pagar.Emissao = DateTime.Now; | |
Pagar.Vencimento = Vencimento; | |
Pagar.Parcela = Convert.ToString(Contador_Parcelas); | |
Pagar.Documento = item.nDup; | |
Pagar.Valor = item.vDup; | |
Pagar.Usuario_Lanc = Program.Sessao_Usuario.UsuarioId; | |
Pagar.Status = 1; | |
Pagar.Obs = "CADASTRADO VIA XML DA NF-E"; | |
Pagar.Competencia = Convert.ToString(Vencimento.Month) + "/" + Convert.ToString(Vencimento.Year); | |
Pagar.Linha_Digitavel = ""; | |
Pagar.Compra_Id = _NF_Entrada.ID_COMPRA; | |
context_dup.Pagar_C.Add(Pagar); | |
context_dup.SaveChanges(); | |
Contador_Parcelas = Contador_Parcelas + 1; | |
} | |
} | |
} | |
} | |
} | |
else | |
{ | |
Mensagens.Alerta("Sistema Integrado de Automação", "Importação de Arquivo XML Abortada pelo Usuário."); | |
} | |
return Retorno; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment