private void AtribuirDescontarInsumoNaVendaETemProducao(Produto produto) { var categoriaConfiguracao = _listaCategoriaConfiguracao.FirstOrDefault(x => x.Categoria == produto.Categoria); if (categoriaConfiguracao != null) { produto.TemProducao = categoriaConfiguracao.TemProducao; produto.DescontarInsumoNaVenda = categoriaConfiguracao.TemProducao; } }
public void AdicionarVendaProduto(Produto produto, decimal quantidade) { VendaCorrente.AdicionarProdutoNaVenda(produto, quantidade, produto.PrecoVenda); ListaDeVendaProdutos = VendaCorrente.VendaCorrente.VendaProdutoes.Reverse().ToList(); }
public void ImportarProdutos() { try { _logger.Log().Debug("importação iniciada..."); _listaCategoriaConfiguracao = _repositorio.RecuperarTodos <ConfiguracaoCategoriaProduto>(); _logger.Log().Debug("lista de categosrias carregada..."); EtapaHandler?.Invoke("Lista de categorias de carregada..."); var caminhoFisicoDaPlanilha = "CaminhoFisicoDaPlanilhaDeProdutos".GetConfigValue(); var connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0; data source={caminhoFisicoDaPlanilha}; Extended Properties=Excel 8.0;"; var adapter = new OleDbDataAdapter("SELECT * FROM [temp$]", connectionString); var ds = new DataSet(); adapter.Fill(ds, "produtos"); var data = ds.Tables["produtos"].AsEnumerable(); _logger.Log().Debug("planilha dos produtos carregada..."); EtapaHandler?.Invoke("Planilha dos produtos carregada..."); EtapaHandler?.Invoke("Importando produtos..."); var produtosDaPlanilha = data.Select(x => { var produto = new Produto(); produto.CodigoParaCupom = CodigoDoCupom; produto.Ativo = x.Field <string>("ATIVO").Trim().SimNaoToBool(); produto.CodigoDeBarra = x.IsNull("CÓDIGO DE BARRAS") ? null : x.Field <string>("CÓDIGO DE BARRAS").Trim(); produto.CodigoNCM = x.IsNull("NCM") ? null : x.Field <string>("NCM").Trim(); produto.Descricao = x.Field <string>("DESCRIÇÃO").Trim(); produto.DigitoCST = x.Field <string>("DÍGITO CST").Trim(); produto.EstoqueMinimo = x.IsNull("ESTOQUE MÍNIMO") ? null : x.Field <double>("ESTOQUE MÍNIMO").ToLong(); produto.ExibirNoPdv = x.Field <string>("PDV").Trim().SimNaoToBool(); produto.Marca = x.Field <string>("MARCA").Trim(); produto.Modelo = x.Field <string>("MODELO").Trim(); produto.PrecoCusto = x.Field <double>("PREÇO DE CUSTO").ToDecimal(); produto.PrecoVenda = x.Field <double>("PREÇO DE VENDA").ToDecimal(); produto.PrecoVenda2 = x.Field <double>("PREÇO DE VENDA 2").ToDecimal(); produto.TipoFiscal = x.Field <string>("TIPO1").Trim(); produto.TipoProduto = x.Field <string>("TIPO").Trim(); produto.TipoUnidade = x.Field <string>("UNIDADE").Trim(); produto.ControlarEstoque = produto.EstoqueMinimo != null; produto.Categoria = x.Field <string>("CATEGORIA").Trim(); produto.SubCategoria = x.Field <string>("SUBCATEGORIA").Trim(); produto.DescricaoBusca = string.Concat(produto.CodigoDeBarra, produto.Descricao).ToComparableString(); AtribuirDescontarInsumoNaVendaETemProducao(produto); return(produto); }).ToList(); var count = 1; produtosDaPlanilha.ForEach(produto => { if (string.IsNullOrEmpty(produto.CodigoDeBarra)) { AdicionarMensagem( $"O produto {produto.Descricao} não foi importado, pois não possui código de barras.", EnumStatusDoResultado.RegraDeNegocioInvalida); } else { try { var prodDb = _produtoRepositorio.Recuperar(new Produto() { CodigoDeBarra = produto.CodigoDeBarra }); if (prodDb == null) { _produtoRepositorio.Inserir(produto); } else { _produtoRepositorio.Atualizar(produto); } } catch (Exception ex) { _logger.Log().Error(ex); } } ProdutoImportadoHandler?.Invoke(count, produtosDaPlanilha.Count, produto.Descricao); _logger.Log().Debug($"{count}/{produtosDaPlanilha.Count} - {produto.Descricao}"); count++; }); AdicionarMensagem("Produtos Importados com Sucesso"); _logger.Log().Debug("####### Produtos Importados com Sucesso #######"); ImportacaoConcluidaHandler?.Invoke(null); } catch (Exception ex) { _logger.Log().Error(ex); ImportacaoConcluidaHandler?.Invoke(ex); } }