Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
            }
        }