public void CambiarEstadoPedidoCancelar(Clases.Pedido pedido) { using (ModeloDeDatosContainer context = new ModeloDeDatosContainer()) { if (pedido.Estado != EstadoPedido.EnEspera || pedido.Estado != EstadoPedido.Completado || pedido.Estado != EstadoPedido.Realizado || pedido.Estado != EstadoPedido.Entregado) { AccesoADatos.Pedido pedidoDb = context.Pedidos.Find(pedido.Id); if (pedidoDb != null) { pedidoDb.Estado = 6; context.SaveChanges(); } else { throw new ArgumentException("Id no encontrada PedidoDAO.DarDeBaja"); } } else { throw new ArgumentException("El pedido ya se encuentra en un estado imposible de cancelar"); } } pedido.AumentarIngredientes(); }
public AccesoADatos.Pedido ConvertirPedidoLogicaADatos(Clases.Pedido pedidoLogica) { AccesoADatos.Pedido pedidoDatos = new AccesoADatos.Pedido { Id = pedidoLogica.Id, FechaDeCreacion = pedidoLogica.FechaDeCreacion, PrecioTotal = pedidoLogica.PrecioTotal, Iva = pedidoLogica.Iva, Estado = (short)pedidoLogica.Estado, }; return(pedidoDatos); }
public Clases.Pedido ConvertirPedidoDeDatosALogica(AccesoADatos.Pedido pedidoDatos) { Clases.Pedido pedidoLogica = new Clases.Pedido() { Id = pedidoDatos.Id, FechaDeCreacion = pedidoDatos.FechaDeCreacion, PrecioTotal = pedidoDatos.PrecioTotal, Iva = pedidoDatos.Iva, Estado = (EstadoPedido)pedidoDatos.Estado }; return(pedidoLogica); }
public Clases.Pedido ConvertirPedidoDeDatosALogicaConCuenta(AccesoADatos.Pedido pedidoDatos) { CuentaDAO cuentaDAO = new CuentaDAO(); Clases.Pedido pedidoLogica = new Clases.Pedido() { Id = pedidoDatos.Id, FechaDeCreacion = pedidoDatos.FechaDeCreacion, PrecioTotal = pedidoDatos.PrecioTotal, Iva = pedidoDatos.Iva, Estado = (EstadoPedido)pedidoDatos.Estado, Cuenta = cuentaDAO.ConvertirCuentaSinMesaDatosALogica(pedidoDatos.Cuenta) }; return(pedidoLogica); }
public void Guardar(Clases.Pedido pedido) { if (ValidarCuentaParaGuardado(pedido) && ValidarCantidadDeCantidadAlimentos(pedido.CantidadAlimentos)) { pedido.FechaDeCreacion = DateTime.Now; IvaDAO ivaDAO = new IvaDAO(); pedido.Iva = ivaDAO.CargarIvaActual().Valor; pedido.PrecioTotal = CalcularPrecioTotal(pedido); } else { throw new ArgumentException("Pedido no tiene contenido"); } AccesoADatos.Pedido pedidoAGuardar = ConvertirPedidoLogicaADatos(pedido); pedido.DescontarIngredientes(); using (ModeloDeDatosContainer context = new ModeloDeDatosContainer()) { foreach (CantidadAlimento cantidadAlimento in pedido.CantidadAlimentos) { if (cantidadAlimento is CantidadProducto cantidadProducto) { ProductoPedido productoPedido = new ProductoPedido(); productoPedido.Cantidad = cantidadProducto.Cantidad; productoPedido.Productos = context.Productos.Find(cantidadProducto.Alimento.Id); pedidoAGuardar.ProductoPedido.Add(productoPedido); } else if (cantidadAlimento is CantidadPlatillo cantidadPlatillo) { PlatilloPedido platilloPedido = new PlatilloPedido(); platilloPedido.Cantidad = cantidadPlatillo.Cantidad; platilloPedido.Platillo = context.Platillos.Find(cantidadPlatillo.Alimento.Id); pedidoAGuardar.PlatilloPedidos.Add(platilloPedido); } } pedidoAGuardar.Cuenta = context.Cuentas.Find(pedido.Cuenta.Id); context.Pedidos.Add(pedidoAGuardar); context.SaveChanges(); } }
public void CrearCuentaConPedidos(Clases.Cuenta cuenta) { var cuentaDb = new AccesoADatos.Cuenta() { Estado = (short)EstadoCuenta.Abierta }; using (ModeloDeDatosContainer context = new ModeloDeDatosContainer()) { cuentaDb.Empleado = context.Empleados.Find(cuenta.Empleado.Id); foreach (Clases.Cliente cliente in cuenta.Clientes) { if (cliente.Id > 0) { cuentaDb.Clientes.Add(context.Clientes.Find(cliente.Id)); } else { cuentaDb.Clientes.Add(new Cliente { Telefono = cliente.Telefono, Nombre = cliente.Nombre, FechaDeCreacion = DateTime.Now, FechaDeModicacion = DateTime.Now, NombreCreador = cliente.NombreDelCreador, Comentarios = cliente.Comentario, Activo = true }); } } foreach (Clases.Pedido pedido in cuenta.Pedidos) { PedidoDAO pedidoDAO = new PedidoDAO(); if (pedidoDAO.ValidarCuentaParaGuardado(pedido) && pedidoDAO.ValidarCantidadDeCantidadAlimentos(pedido.CantidadAlimentos)) { pedido.FechaDeCreacion = DateTime.Now; IvaDAO ivaDAO = new IvaDAO(); pedido.Iva = ivaDAO.CargarIvaActual().Valor; pedido.CalcularPrecioTotal(); pedido.Estado = EstadoPedido.EnEspera; } else { throw new ArgumentException("Pedido no tiene contenido o no "); } AccesoADatos.Pedido pedidoAGuardar = pedidoDAO.ConvertirPedidoLogicaADatos(pedido); foreach (CantidadAlimento cantidadAlimento in pedido.CantidadAlimentos) { if (cantidadAlimento is CantidadProducto cantidadProducto) { ProductoPedido productoPedido = new ProductoPedido(); productoPedido.Cantidad = cantidadProducto.Cantidad; productoPedido.Productos = context.Productos.Find(cantidadProducto.Alimento.Id); pedidoAGuardar.ProductoPedido.Add(productoPedido); } else if (cantidadAlimento is CantidadPlatillo cantidadPlatillo) { PlatilloPedido platilloPedido = new PlatilloPedido(); platilloPedido.Cantidad = cantidadPlatillo.Cantidad; platilloPedido.Platillo = context.Platillos.Find(cantidadPlatillo.Alimento.Id); pedidoAGuardar.PlatilloPedidos.Add(platilloPedido); } } pedidoAGuardar.Cuenta = context.Cuentas.Find(pedido.Cuenta.Id); cuentaDb.Pedidos.Add(pedidoAGuardar); } if (cuenta.Mesa != null) { cuentaDb.Mesa = context.Mesas.Find(cuenta.Mesa.NumeroDeMesa); cuentaDb.Mesa.Estado = (short)EstadoMesa.Ocupada; } cuentaDb.Empleado = context.Empleados.Find(cuenta.Empleado.Id); context.Cuentas.Add(cuentaDb); context.SaveChanges(); } }