public static GerenciadorProduto GetInstance() { if (gProduto == null) { gProduto = new GerenciadorProduto(); } return(gProduto); }
/// <summary> /// Baixar uma certa quantidade de produtos da entrada padrão que contém todos os produtos sem entradas associadas /// </summary> /// <param name="produtoPesquisa"></param> /// <param name="quantidade"></param> /// <returns></returns> private decimal BaixarItensVendidosEstoqueEntradaPadrao(SaidaProduto saidaProduto, decimal quantidade) { List <EntradaProduto> entradaProdutos = (List <EntradaProduto>)Obter(Global.ENTRADA_PADRAO, saidaProduto.CodProduto); Produto produto = GerenciadorProduto.GetInstance().Obter(new ProdutoPesquisa() { CodProduto = saidaProduto.CodProduto }); EntradaProduto entradaProduto = null; if (entradaProdutos.Count > 0) { entradaProduto = entradaProdutos[0]; } if (entradaProduto != null) { entradaProduto.QuantidadeDisponivel -= quantidade; Atualizar(entradaProduto); } else { entradaProduto = new EntradaProduto(); entradaProduto.CodEntrada = Global.ENTRADA_PADRAO; entradaProduto.CodProduto = produto.CodProduto; entradaProduto.UnidadeCompra = produto.Unidade; entradaProduto.Quantidade = 10000; entradaProduto.QuantidadeEmbalagem = produto.QuantidadeEmbalagem == 0 ? 1 : produto.QuantidadeEmbalagem; entradaProduto.QuantidadeDisponivel = (entradaProduto.Quantidade * entradaProduto.QuantidadeEmbalagem) - quantidade; entradaProduto.ValorUnitario = produto.UltimoPrecoCompra; //entradaProduto.ValorTotal = 0; entradaProduto.BaseCalculoICMS = 0; entradaProduto.BaseCalculoICMSST = 0; entradaProduto.DataValidade = DateTime.Now; // para não perder os dados do produto entradaProduto.LucroPrecoVendaAtacado = produto.LucroPrecoVendaAtacado; entradaProduto.LucroPrecoVendaVarejo = produto.LucroPrecoVendaVarejo; entradaProduto.PrecoVendaAtacado = produto.PrecoVendaAtacado; entradaProduto.PrecoVendaVarejo = produto.PrecoVendaVarejo; entradaProduto.Frete = produto.Frete; entradaProduto.Icms = 7; entradaProduto.IcmsSubstituto = 20; entradaProduto.Ipi = produto.Ipi; entradaProduto.Ncmsh = produto.Ncmsh; entradaProduto.QtdProdutoAtacado = produto.QtdProdutoAtacado; entradaProduto.DataEntrada = produto.DataUltimoPedido; entradaProduto.Desconto = produto.Desconto; entradaProduto.PrecoCusto = produto.PrecoCusto; entradaProduto.ValorDesconto = 0; entradaProduto.CodCST = produto.CodCST; entradaProduto.Cfop = 9999; Inserir(entradaProduto, Entrada.TIPO_ENTRADA); } return(0); }
/// <summary> /// Atualiza os preços dos produtos utilizandos os valores do dia. /// </summary> /// <param name="p"></param> public void AtualizarPrecosComValoresDia(Saida saida, bool podeBaixarPreco) { if (!saida.TipoSaida.Equals(Saida.TIPO_ORCAMENTO)) { throw new NegocioException("A atualização de preços com os preços do dia só pode ser realizada em ORÇAMENTOS."); } List <SaidaProduto> listaSaidaProdutos = ObterPorSaida(saida.CodSaida); GerenciadorProduto gProduto = GerenciadorProduto.GetInstance(); foreach (SaidaProduto _saidaProduto in listaSaidaProdutos) { ProdutoPesquisa produto = gProduto.Obter(_saidaProduto.CodProduto).ElementAtOrDefault(0); if ((_saidaProduto.ValorVendaAVista < produto.PrecoVendaVarejo) || ((_saidaProduto.ValorVendaAVista > produto.PrecoVendaVarejo) && podeBaixarPreco)) { _saidaProduto.ValorVendaAVista = produto.PrecoVendaVarejo; //_saidaProduto.ValorVenda = produto.PrecoVendaVarejoSemDesconto; Atualizar(_saidaProduto, saida); } } RecalcularTotais(saida); }
/// <summary> /// Insere uma novo produto na entrada public Int64 Inserir(EntradaProduto entradaProduto, int codTipoEntrada) { if (entradaProduto.Quantidade == 0) { throw new NegocioException("A quantidade do produto não pode ser igual a zero."); } else if (entradaProduto.PrecoVendaVarejo <= 0) { throw new NegocioException("O preço de venda deve ser maior que zero."); } else if (entradaProduto.QuantidadeEmbalagem <= 0) { throw new NegocioException("A quantidade de produtos em cada embalagem deve ser maior que zero."); } Produto produto = GerenciadorProduto.GetInstance().Obter(new ProdutoPesquisa() { CodProduto = entradaProduto.CodProduto }); Cst cstEntrada = new Cst() { CodCST = entradaProduto.CodCST }; bool ehTributacaoIntegral = cstEntrada.EhTributacaoIntegral; if (!produto.EhTributacaoIntegral && ehTributacaoIntegral) { throw new NegocioException("Esse produto não pode voltar a ser tributação Normal. Favor colocar CST com Substituição Tributária e CUIDADO no cálculo do preço. Verifique se o o DAE de encerramento de fase da nota já chegou."); } if (ehTributacaoIntegral && (entradaProduto.Icms <= 0)) { throw new NegocioException("O campo % CRED ICMS não pode ser menor ou igual a zero quando o produto possui tributação normal."); } else if ((ehTributacaoIntegral == false) && (entradaProduto.IcmsSubstituto <= 0) && (!entradaProduto.CodCST.Substring(1).Equals(Cst.ST_SUBSTITUICAO_ICMS_COBRADO)) && !cstEntrada.EhTributacaoSimples) { throw new NegocioException("O campo % ICMS ST não pode ser menor ou igual a zero quando o produto possui substituição tributária."); } //if (entradaProduto.CodCST.Length > 3) //{ // entradaProduto.CodCST = entradaProduto.CodCST.Substring(1); //} try { EntradaProdutoE _entradaProdutoE = new EntradaProdutoE(); Atribuir(entradaProduto, _entradaProdutoE); saceContext.AddToEntradaProdutoSet(_entradaProdutoE); saceContext.SaveChanges(); if ((codTipoEntrada == Entrada.TIPO_ENTRADA) || (codTipoEntrada == Entrada.TIPO_ENTRADA_AUX)) { // Incrementa o estoque na loja principal GerenciadorProdutoLoja.GetInstance(saceContext).AdicionaQuantidade((entradaProduto.Quantidade * entradaProduto.QuantidadeEmbalagem), 0, Global.LOJA_PADRAO, entradaProduto.CodProduto); Atribuir(entradaProduto, produto); produto.CodSituacaoProduto = SituacaoProduto.DISPONIVEL; produto.ExibeNaListagem = true; // Atualiza os dados do produto se não foi na entrada padrão if (entradaProduto.CodEntrada != Global.ENTRADA_PADRAO) { GerenciadorProduto.GetInstance().Atualizar(produto); } } return(_entradaProdutoE.codEntrada); } catch (Exception e) { throw new DadosException("EntradaProduto", e.Message, e); } }
/// <summary> /// Importa os produtos de uma Nfe /// </summary> /// <param name="nfe"></param> public List <EntradaProduto> Importar(TNfeProc nfe) { const string VERSAO2 = "2.00"; const string VERSAO3 = "3.10"; const string VERSAO4 = "4.00"; try { CultureInfo ci = new CultureInfo("en-US"); // usado para connversão dos números do xml string numeroNF = nfe.NFe.infNFe.ide.nNF; string versaoNF = nfe.NFe.infNFe.versao; string cpf_cnpjFornecedor = nfe.NFe.infNFe.emit.Item; IEnumerable <Entrada> entradas = GerenciadorEntrada.GetInstance().ObterPorNumeroNotaFiscalFornecedor(numeroNF, cpf_cnpjFornecedor); if (entradas.Count() == 0) { throw new NegocioException("A entrada não foi encontrada para realizar o cadastro de produtos"); } Entrada entrada = entradas.ElementAtOrDefault(0); List <EntradaProduto> listaProtutos = new List <EntradaProduto>(); foreach (TNFeInfNFeDet produto in nfe.NFe.infNFe.det) { EntradaProduto entradaProduto = new EntradaProduto(); entradaProduto.Cfop = Convert.ToInt32(produto.prod.CFOP); entradaProduto.CodEntrada = entrada.CodEntrada; entradaProduto.CodFornecedor = entrada.CodFornecedor; ProdutoPesquisa produtoPesquisa = null; if (!string.IsNullOrEmpty(produto.prod.cEAN)) { produtoPesquisa = GerenciadorProduto.GetInstance().ObterPorCodigoBarraExato(produto.prod.cEAN).ElementAtOrDefault(0); } entradaProduto.CodProduto = (produtoPesquisa != null) ? produtoPesquisa.CodProduto : 1; entradaProduto.DataEntrada = entrada.DataEntrada; entradaProduto.FornecedorEhFabricante = entrada.FornecedorEhFabricante; if (entrada.ValorFrete > 0) { entradaProduto.Frete = ((entrada.ValorFrete / entrada.TotalProdutos) * 100); } else { entradaProduto.Frete = 0; } entradaProduto.Ncmsh = produto.prod.NCM; entradaProduto.NomeProduto = produto.prod.xProd.Length > 50 ? produto.prod.xProd.Substring(0, 50).ToUpper() : produto.prod.xProd.ToUpper(); entradaProduto.Quantidade = Convert.ToDecimal(produto.prod.qCom, ci); entradaProduto.QuantidadeEmbalagem = (produtoPesquisa == null) ? 1 : produtoPesquisa.QuantidadeEmbalagem; entradaProduto.Simples = (produtoPesquisa == null) ? 8 : produtoPesquisa.Simples; entradaProduto.UnidadeCompra = produto.prod.uCom; entradaProduto.ValorDesconto = Convert.ToDecimal(produto.prod.vDesc, ci); entradaProduto.ValorUnitario = Convert.ToDecimal(produto.prod.vUnCom, ci); entradaProduto.Desconto = Convert.ToDecimal(produto.prod.vDesc, ci) / entradaProduto.ValorTotal * 100; entradaProduto.CodigoBarra = produto.prod.cEAN; entradaProduto.ReferenciaFabricante = produto.prod.cProd; for (int i = 0; i < produto.imposto.Items.Length; i++) { if (produto.imposto.Items[i] is TNFeInfNFeDetImpostoICMS) { var icms = ((TNFeInfNFeDetImpostoICMS)produto.imposto.Items[i]).Item; if (icms is TNFeInfNFeDetImpostoICMSICMS00) { TNFeInfNFeDetImpostoICMSICMS00 icms00 = ((TNFeInfNFeDetImpostoICMSICMS00)icms);; entradaProduto.BaseCalculoICMS = Convert.ToDecimal(icms00.vBC, ci); entradaProduto.BaseCalculoICMSST = 0; entradaProduto.CodCST = icms00.orig.ToString().Substring(4) + icms00.CST.ToString().Substring(4); entradaProduto.CodCSTNFe = icms00.orig.ToString().Substring(4) + icms00.CST.ToString().Substring(4); entradaProduto.Icms = Convert.ToDecimal(icms00.pICMS, ci); entradaProduto.IcmsSubstituto = 0; } else if (icms is TNFeInfNFeDetImpostoICMSICMS10) { TNFeInfNFeDetImpostoICMSICMS10 icms10 = ((TNFeInfNFeDetImpostoICMSICMS10)icms);; entradaProduto.BaseCalculoICMS = Convert.ToDecimal(icms10.vBC, ci); entradaProduto.BaseCalculoICMSST = Convert.ToDecimal(icms10.vBCST, ci); entradaProduto.CodCST = icms10.orig.ToString().Substring(4) + icms10.CST.ToString().Substring(4); entradaProduto.CodCSTNFe = icms10.orig.ToString().Substring(4) + icms10.CST.ToString().Substring(4); entradaProduto.Icms = Convert.ToDecimal(icms10.pICMS, ci); if (entrada.TotalProdutosST > 0) { entradaProduto.IcmsSubstituto = entrada.TotalSubstituicao / entrada.TotalProdutosST * 100; //Convert.ToDecimal(icms10.pICMSST, ci); } } else if (icms is TNFeInfNFeDetImpostoICMSICMS20) { TNFeInfNFeDetImpostoICMSICMS20 icms20 = ((TNFeInfNFeDetImpostoICMSICMS20)icms);; entradaProduto.BaseCalculoICMS = Convert.ToDecimal(icms20.vBC, ci); entradaProduto.BaseCalculoICMSST = 0; entradaProduto.CodCST = icms20.orig.ToString().Substring(4) + icms20.CST.ToString().Substring(4); entradaProduto.CodCSTNFe = icms20.orig.ToString().Substring(4) + icms20.CST.ToString().Substring(4); entradaProduto.Icms = Convert.ToDecimal(icms20.pICMS, ci); entradaProduto.IcmsSubstituto = 0; //Convert.ToDecimal(icms10.pICMSST, ci); } else if (icms is TNFeInfNFeDetImpostoICMSICMS30) { TNFeInfNFeDetImpostoICMSICMS30 icms30 = ((TNFeInfNFeDetImpostoICMSICMS30)icms);; entradaProduto.BaseCalculoICMS = 0; entradaProduto.BaseCalculoICMSST = Convert.ToDecimal(icms30.vBCST, ci); entradaProduto.CodCST = icms30.orig.ToString().Substring(4) + icms30.CST.ToString().Substring(4); entradaProduto.CodCSTNFe = icms30.orig.ToString().Substring(4) + icms30.CST.ToString().Substring(4); entradaProduto.Icms = 0; if (entrada.TotalProdutosST > 0) { entradaProduto.IcmsSubstituto = entrada.TotalSubstituicao / entrada.TotalProdutosST * 100; //Convert.ToDecimal(icms10.pICMSST, ci); } } else if (icms is TNFeInfNFeDetImpostoICMSICMS40) { TNFeInfNFeDetImpostoICMSICMS40 icms40 = ((TNFeInfNFeDetImpostoICMSICMS40)icms);; entradaProduto.BaseCalculoICMS = 0; entradaProduto.BaseCalculoICMSST = 0; entradaProduto.CodCST = icms40.orig.ToString().Substring(4) + icms40.CST.ToString().Substring(4); entradaProduto.CodCSTNFe = icms40.orig.ToString().Substring(4) + icms40.CST.ToString().Substring(4); entradaProduto.Icms = 0; if (entrada.TotalProdutosST > 0) { entradaProduto.IcmsSubstituto = entrada.TotalSubstituicao / entrada.TotalProdutosST * 100; //Convert.ToDecimal(icms10.pICMSST, ci); } } else if (icms is TNFeInfNFeDetImpostoICMSICMS60) { TNFeInfNFeDetImpostoICMSICMS60 icms60 = ((TNFeInfNFeDetImpostoICMSICMS60)icms);; entradaProduto.BaseCalculoICMS = 0; entradaProduto.BaseCalculoICMSST = Convert.ToDecimal(icms60.vBCSTRet, ci); entradaProduto.CodCST = icms60.orig.ToString().Substring(4) + icms60.CST.ToString().Substring(4); entradaProduto.CodCSTNFe = icms60.orig.ToString().Substring(4) + icms60.CST.ToString().Substring(4); entradaProduto.Icms = Convert.ToDecimal(icms60.vICMSSTRet, ci); if (entrada.TotalProdutosST > 0) { entradaProduto.IcmsSubstituto = entrada.TotalSubstituicao / entrada.TotalProdutosST * 100; //Convert.ToDecimal(icms10.pICMSST, ci); } } else if (icms is TNFeInfNFeDetImpostoICMSICMS70) { TNFeInfNFeDetImpostoICMSICMS70 icms70 = ((TNFeInfNFeDetImpostoICMSICMS70)icms);; entradaProduto.BaseCalculoICMS = Convert.ToDecimal(icms70.vBC, ci); entradaProduto.BaseCalculoICMSST = Convert.ToDecimal(icms70.vBCST, ci); entradaProduto.CodCST = icms70.orig.ToString().Substring(4) + icms70.CST.ToString().Substring(4); entradaProduto.CodCSTNFe = icms70.orig.ToString().Substring(4) + icms70.CST.ToString().Substring(4); entradaProduto.Icms = Convert.ToDecimal(icms70.pICMS, ci); if (entrada.TotalProdutosST > 0) { entradaProduto.IcmsSubstituto = entrada.TotalSubstituicao / entrada.TotalProdutosST * 100; //Convert.ToDecimal(icms10.pICMSST, ci); } } else if (icms is TNFeInfNFeDetImpostoICMSICMSSN101) { TNFeInfNFeDetImpostoICMSICMSSN101 icms101 = ((TNFeInfNFeDetImpostoICMSICMSSN101)icms);; entradaProduto.BaseCalculoICMS = 0; entradaProduto.BaseCalculoICMSST = 0; entradaProduto.CodCST = icms101.orig.ToString().Substring(4) + icms101.CSOSN.ToString().Substring(4); entradaProduto.CodCSTNFe = icms101.orig.ToString().Substring(4) + icms101.CSOSN.ToString().Substring(4); entradaProduto.Icms = Convert.ToDecimal(icms101.pCredSN, ci); entradaProduto.IcmsSubstituto = 0; } else if (icms is TNFeInfNFeDetImpostoICMSICMSSN102) { TNFeInfNFeDetImpostoICMSICMSSN102 icms102 = ((TNFeInfNFeDetImpostoICMSICMSSN102)icms);; entradaProduto.BaseCalculoICMS = 0; entradaProduto.BaseCalculoICMSST = 0; entradaProduto.CodCST = icms102.orig.ToString().Substring(4) + icms102.CSOSN.ToString().Substring(4); entradaProduto.CodCSTNFe = icms102.orig.ToString().Substring(4) + icms102.CSOSN.ToString().Substring(4); entradaProduto.Icms = 0; entradaProduto.IcmsSubstituto = 0; } else if (icms is TNFeInfNFeDetImpostoICMSICMSSN900) { TNFeInfNFeDetImpostoICMSICMSSN900 icms900 = ((TNFeInfNFeDetImpostoICMSICMSSN900)icms);; entradaProduto.BaseCalculoICMS = Convert.ToDecimal(icms900.vBC, ci); entradaProduto.BaseCalculoICMSST = Convert.ToDecimal(icms900.vBCST, ci); entradaProduto.CodCST = icms900.orig.ToString().Substring(4) + icms900.CSOSN.ToString().Substring(4); entradaProduto.CodCSTNFe = icms900.orig.ToString().Substring(4) + icms900.CSOSN.ToString().Substring(4); entradaProduto.Icms = Convert.ToDecimal(icms900.pICMS, ci); entradaProduto.IcmsSubstituto = 0; if (entrada.TotalProdutosST > 0) { entradaProduto.IcmsSubstituto = entrada.TotalSubstituicao / entrada.TotalProdutosST * 100; } } else if (icms is TNFeInfNFeDetImpostoICMSICMSSN201) { TNFeInfNFeDetImpostoICMSICMSSN201 icms201 = ((TNFeInfNFeDetImpostoICMSICMSSN201)icms);; entradaProduto.BaseCalculoICMS = 0; entradaProduto.BaseCalculoICMSST = Convert.ToDecimal(icms201.vBCST, ci); entradaProduto.CodCST = icms201.orig.ToString().Substring(4) + icms201.CSOSN.ToString().Substring(4); entradaProduto.CodCSTNFe = icms201.orig.ToString().Substring(4) + icms201.CSOSN.ToString().Substring(4); entradaProduto.Icms = 0; if (entrada.TotalProdutosST > 0) { entradaProduto.IcmsSubstituto = entrada.TotalSubstituicao / entrada.TotalProdutosST * 100; } } else if (icms is TNFeInfNFeDetImpostoICMSICMSSN202) { TNFeInfNFeDetImpostoICMSICMSSN202 icms202 = ((TNFeInfNFeDetImpostoICMSICMSSN202)icms);; entradaProduto.BaseCalculoICMS = 0; entradaProduto.BaseCalculoICMSST = Convert.ToDecimal(icms202.vBCST, ci); entradaProduto.CodCST = icms202.orig.ToString().Substring(4) + icms202.CSOSN.ToString().Substring(4); entradaProduto.CodCSTNFe = icms202.orig.ToString().Substring(4) + icms202.CSOSN.ToString().Substring(4); entradaProduto.Icms = 0; if (entrada.TotalProdutosST > 0) { entradaProduto.IcmsSubstituto = entrada.TotalSubstituicao / entrada.TotalProdutosST * 100; } } else if (icms is TNFeInfNFeDetImpostoICMSICMSSN500) { TNFeInfNFeDetImpostoICMSICMSSN500 icms500 = ((TNFeInfNFeDetImpostoICMSICMSSN500)icms);; entradaProduto.BaseCalculoICMS = 0; entradaProduto.BaseCalculoICMSST = Convert.ToDecimal(icms500.vBCSTRet, ci); entradaProduto.CodCST = icms500.orig.ToString().Substring(4) + icms500.CSOSN.ToString().Substring(4); entradaProduto.CodCSTNFe = icms500.orig.ToString().Substring(4) + icms500.CSOSN.ToString().Substring(4); entradaProduto.Icms = 0; if (entrada.TotalProdutosST > 0) { entradaProduto.IcmsSubstituto = entrada.TotalSubstituicao / entrada.TotalProdutosST * 100; } } else { throw new NegocioException("Existe um imposto ICMS não tratado pela importação. Avise ao administrador."); } } else if (versaoNF.Equals(VERSAO2)) { if (produto.imposto.Items[i] is Dominio.NFE2.TNFeInfNFeDetImpostoIPI) { Dominio.NFE2.TNFeInfNFeDetImpostoIPI impostoIPI = (Dominio.NFE2.TNFeInfNFeDetImpostoIPI)produto.imposto.Items[i]; if (impostoIPI.Item is Dominio.NFE2.TNFeInfNFeDetImpostoIPIIPITrib) { Dominio.NFE2.TNFeInfNFeDetImpostoIPIIPITrib ipiTrib = ((Dominio.NFE2.TNFeInfNFeDetImpostoIPIIPITrib)impostoIPI.Item); entradaProduto.Ipi = Convert.ToDecimal(ipiTrib.vIPI, ci) / entradaProduto.ValorTotal * 100; } } } else if (versaoNF.Equals(VERSAO3) || versaoNF.Equals(VERSAO4)) { if (produto.imposto.Items[i] is TIpi) { TIpi ipi = (TIpi)produto.imposto.Items[i]; if (ipi.Item is TIpiIPITrib) { TIpiIPITrib impostoIPI = (TIpiIPITrib)ipi.Item; entradaProduto.Ipi = Convert.ToDecimal(impostoIPI.vIPI, ci) / entradaProduto.ValorTotal * 100; } else { entradaProduto.Ipi = 0; } } } } Produto produtoCalculo = new Produto() { Desconto = entradaProduto.Desconto, Icms = entradaProduto.Icms, IcmsSubstituto = entradaProduto.IcmsSubstituto, Ipi = entradaProduto.Ipi, Frete = entradaProduto.Frete, Simples = entradaProduto.Simples, UltimoPrecoCompra = (entradaProduto.ValorUnitario / entradaProduto.QuantidadeEmbalagem) }; entradaProduto.PrecoCusto = produtoCalculo.PrecoCusto; if (produtoPesquisa == null) { entradaProduto.LucroPrecoRevenda = 15; entradaProduto.LucroPrecoVendaAtacado = 30; entradaProduto.LucroPrecoVendaVarejo = 35; entradaProduto.QtdProdutoAtacado = 0; } else { entradaProduto.LucroPrecoRevenda = produtoPesquisa.LucroPrecoRevenda; entradaProduto.LucroPrecoVendaAtacado = produtoPesquisa.LucroPrecoVendaAtacado; entradaProduto.LucroPrecoVendaVarejo = produtoPesquisa.LucroPrecoVendaVarejo; entradaProduto.QtdProdutoAtacado = produtoPesquisa.QtdProdutoAtacado; } produtoCalculo.LucroPrecoRevenda = entradaProduto.LucroPrecoRevenda; produtoCalculo.LucroPrecoVendaAtacado = entradaProduto.LucroPrecoVendaAtacado; produtoCalculo.LucroPrecoVendaVarejo = entradaProduto.LucroPrecoVendaVarejo; entradaProduto.PrecoRevendaSugestao = produtoCalculo.PrecoRevendaSugestao; entradaProduto.PrecoVendaAtacadoSugestao = produtoCalculo.PrecoVendaAtacadoSugestao; entradaProduto.PrecoVendaVarejoSugestao = produtoCalculo.PrecoVendaVarejoSugestao; if (produtoPesquisa == null) { entradaProduto.PrecoRevenda = entradaProduto.PrecoRevendaSugestao; entradaProduto.PrecoVendaAtacado = entradaProduto.PrecoVendaAtacadoSugestao; entradaProduto.PrecoVendaVarejo = entradaProduto.PrecoVendaVarejoSugestao; } else { entradaProduto.PrecoRevenda = produtoPesquisa.PrecoRevenda; entradaProduto.PrecoVendaAtacado = produtoPesquisa.PrecoVendaAtacado; entradaProduto.PrecoVendaVarejo = produtoPesquisa.PrecoVendaVarejo; } listaProtutos.Add(entradaProduto); } return(listaProtutos); } catch (Exception e) { throw new NegocioException("Problema durante a importação dos dados dos Produtos da NF-e. Favor contactar administrador.", e); } }