public void RegistrarPedido() { try { var resultadoValidacao = PedidoCorrente.Validate(); resultadoValidacao.ForEach(item => { AdicionarMensagem(item.ErrorMessage, EnumStatusDoResultado.RegraDeNegocioInvalida); }); if (PedidoCorrente.Telefone.IsNullOrEmpty()) { AdicionarMensagem("Telefone Obrigatório.\r\n", EnumStatusDoResultado.RegraDeNegocioInvalida); } if (PedidoCorrente.Telefone.IsNullOrEmpty()) { AdicionarMensagem("Telefone Obrigatório.\r\n", EnumStatusDoResultado.RegraDeNegocioInvalida); } if (PedidoCorrente.DataEntrega < DateTime.Today) { AdicionarMensagem("A data de Entrega do Pedido deve ser Maior que a Atual.\r\n", EnumStatusDoResultado.RegraDeNegocioInvalida); } if (Status != EnumStatusDoResultado.MensagemDeSucesso) { return; } _pedidoProdutoRepositorio.ExcluirProdutosDoPedido(PedidoCorrente); _pedidoRepositorio.Excluir(PedidoCorrente); PedidoCorrente.CodigoPedido = GerarCodigoUnico(); _pedidoRepositorio.Inserir(PedidoCorrente); PedidoCorrente.PedidoProduto.ToList().ForEach(item => { if (item.IsVisible) { item.CodigoPedidoProduto = GerarCodigoUnico(); item.Pedido_CodigoPedido = PedidoCorrente.CodigoPedido; _pedidoProdutoRepositorio.Inserir(item); } }); AtualizarProducao(); AdicionarMensagem("Produtos Importados com Sucesso"); } catch (Exception ex) { _logger.Log().Error(ex); } }
public void RegistrarComanda(string codigoComanda) { try { ComandaCorrente.CodigoComanda = codigoComanda; ComandaCorrente.Situacao = SituacaoComanda.aberta.ToString(); ComandaCorrente.Sincronizado = false; _comandaRepositorio.Inserir(ComandaCorrente); ComandaCorrente.ComandaProdutoes.ToList().ForEach((item) => { item.CodigoComandaProduto = this.GerarCodigoUnico(); item.Comanda_CodigoComanda = ComandaCorrente.CodigoComanda; item.Sincronizado = false; _repositorio.Inserir(item); }); AdicionarMensagem("Comanda Registrada com Sucesso"); } catch (Exception ex) { _logger.Log().Error(ex); } }
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); } }