Exemple #1
0
        public Retorno RetornaPedido(int intCodigo, enNavegacao?enDirecao, enOrigemPedido enOrigem)
        {
            var objRetorno = new Retorno();

            try
            {
                var      strOrigem = ((char)enOrigem).ToString();
                tbPedido objPedido = null;
                if (enDirecao == null)
                {
                    objPedido = _objCtx.tbPedido.AsNoTracking().Include(ppr => ppr.tbPedidoProduto.Select(pro => pro.tbProduto))
                                .Include(cli => cli.tbCliente)
                                .Include(cen => cen.tbCliente.tbClienteEndereco.Select(bai => bai.tbBairro))
                                .Include(ctl => ctl.tbCliente.tbClienteTelefone)
                                .Include(fun => fun.tbFuncionarioEntregador)
                                .Include(fpg => fpg.tbFormaPagamento)
                                .FirstOrDefault(ped => ped.ped_codigo == intCodigo && ped.ped_origem == strOrigem);
                }
                if (enDirecao == enNavegacao.Proximo)
                {
                    objPedido = _objCtx.tbPedido.AsNoTracking().Include(ppr => ppr.tbPedidoProduto.Select(pro => pro.tbProduto))
                                .Include(cli => cli.tbCliente)
                                .Include(cen => cen.tbCliente.tbClienteEndereco.Select(bai => bai.tbBairro))
                                .Include(ctl => ctl.tbCliente.tbClienteTelefone)
                                .Include(fun => fun.tbFuncionarioEntregador)
                                .Include(fpg => fpg.tbFormaPagamento)
                                .Where(ped => ped.ped_codigo > intCodigo && ped.ped_origem == strOrigem)
                                .OrderBy(ped => ped.ped_codigo).FirstOrDefault();
                }
                if (enDirecao == enNavegacao.Anterior)
                {
                    objPedido = _objCtx.tbPedido.AsNoTracking().Include(ppr => ppr.tbPedidoProduto.Select(pro => pro.tbProduto))
                                .Include(cli => cli.tbCliente)
                                .Include(cen => cen.tbCliente.tbClienteEndereco.Select(bai => bai.tbBairro))
                                .Include(ctl => ctl.tbCliente.tbClienteTelefone)
                                .Include(fun => fun.tbFuncionarioEntregador)
                                .Include(fpg => fpg.tbFormaPagamento)
                                .Where(ped => ped.ped_codigo < intCodigo && ped.ped_origem == strOrigem)
                                .OrderByDescending(ped => ped.ped_codigo).FirstOrDefault();
                }
                if (objPedido != null)
                {
                    objRetorno.intCodigoErro = 0;
                    objRetorno.objRetorno    = objPedido;
                }
                else
                {
                    objRetorno.intCodigoErro = 48;
                    objRetorno.strMsgErro    = "Registro não encontrado";
                }
            }
            catch (Exception ex)
            {
                Util.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
Exemple #2
0
        private string ValidaPedido(tbPedido objPedido, enOrigemPedido enOrigem)
        {
            if (enOrigem == enOrigemPedido.Entrega)
            {
                if (objPedido.cli_codigo == 0)
                {
                    return("O cliente do Pedido deve ser informado.");
                }

                if (objPedido.tbPedidoProduto.Count == 0)
                {
                    return("Não foram informados nenhum produto.");
                }

                if (objPedido.fpg_codigo == 0)
                {
                    return("A forma de pagamento deve ser informada.");
                }
            }
            return(string.Empty);
        }
Exemple #3
0
        public Retorno SalvarPedido(tbPedido objPedido, enOrigemPedido enOrigem, int intFunCodigo)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaPedido(objPedido, enOrigem);

            try
            {
                if (strValidacao == string.Empty)
                {
                    objPedido.tbFuncionarioEntregador = null;
                    objPedido.tbCliente        = null;
                    objPedido.tbFormaPagamento = null;
                    foreach (var objPedidoProduto in objPedido.tbPedidoProduto)
                    {
                        objPedidoProduto.tbProduto = null;
                        objPedidoProduto.tbPedido  = null;
                    }
                    enOperacao enTipoOperacao;
                    if (objPedido.ped_codigo == 0)
                    {
                        objPedido.ped_data   = DateTime.Now;
                        objPedido.ped_origem = ((char)enOrigem).ToString(); //"E" = Entrega, "C" = Comanda
                        objPedido.ped_status = enStatusPedido.P.ToString(); //"P" = Produção, "E" = Entrega, "F" = Finalizado, "X" = Excluido
                        if (objPedido.fun_funcionarioEntregador != null)
                        {
                            objPedido.ped_status      = enStatusPedido.E.ToString();
                            objPedido.ped_dataEntrega = DateTime.Now;
                        }
                        objPedido.fun_codigo = Util.objConfigStorage.objFuncionario.fun_codigo;
                        objPedido.cai_codigo = Util.objConfigStorage.intCaiCodigo;
                        if (objPedido.ped_cobranca == enFormaCobranca.P.ToString())//"P"
                        {
                            objPedido.ped_observacao = (string.IsNullOrWhiteSpace(objPedido.ped_observacao) ? "" : Environment.NewLine) + "**PEDIDO CONVENIO - NAO COBRAR**";
                        }

                        if (enOrigem == enOrigemPedido.Entrega)
                        {
                            var objCaixaContexto = _objCtx.tbCaixa.FirstOrDefault(cai => cai.cai_codigo == objPedido.cai_codigo);
                            if (objCaixaContexto != null)
                            {
                                objCaixaContexto.cai_ordemPedido++;
                                objPedido.ped_ordem = objCaixaContexto.cai_ordemPedido;
                                _objCtx.Entry(objCaixaContexto).State = EntityState.Modified;
                            }
                        }

                        enTipoOperacao = enOperacao.Inclusao;
                        _objCtx.tbPedido.Add(objPedido);
                    }
                    else
                    {
                        enTipoOperacao = enOperacao.Alteracao;
                        var objPedidoContexto = _objCtx.tbPedido.Include(ppr => ppr.tbPedidoProduto).FirstOrDefault(ped => ped.ped_codigo == objPedido.ped_codigo);

                        if (objPedidoContexto != null && (objPedidoContexto.fun_funcionarioEntregador == null && objPedido.fun_funcionarioEntregador != null))
                        {
                            objPedido.ped_status      = enStatusPedido.E.ToString();//"E";
                            objPedido.ped_dataEntrega = DateTime.Now;
                        }

                        if (objPedidoContexto != null)
                        {
                            _objCtx.tbPedidoProduto.RemoveRange(objPedidoContexto.tbPedidoProduto);
                            _objCtx.Entry(objPedidoContexto).CurrentValues.SetValues(objPedido);
                        }

                        foreach (var objItemProduto in objPedido.tbPedidoProduto)
                        {
                            objItemProduto.ped_codigo = objPedido.ped_codigo;
                            _objCtx.tbPedidoProduto.Add(objItemProduto);
                        }
                    }
                    _objCtx.SaveChanges();
                    using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                        objBll.SalvarAuditoria(objPedido.ped_codigo, enTipoOperacao, objPedido, intFunCodigo);
                    objRetorno = RetornaPedido(objPedido.ped_codigo, null, enOrigem);
                }
                else
                {
                    objRetorno.intCodigoErro = 48;
                    objRetorno.strMsgErro    = strValidacao;
                }
            }
            catch (Exception ex)
            {
                Util.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }