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); }
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); }
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); }