public BaseResponse EditarOrden(int ordenId, int usuarioId, ActualizarOrdenRequest request) { try { var db = new pedidoclick(); db.Database.Connection.Open(); var orden = db.t_Orden.Where(x => x.Id == ordenId).FirstOrDefault(); if (orden == null) { return(new BaseResponse { Mensaje = "No se pudo encontrar la orden", Resultado = false }); } foreach (var p in request.productos.Where(x => x.agregar == false).ToList()) { var producto = db.t_OrdenDetalle.Where(x => x.IdOrden == ordenId && x.IdProducto == p.productoId).FirstOrDefault(); if (producto != null) { producto.Cantidad = p.cantidad; if (p.borrado) { producto.Borrado = p.borrado; producto.IdUsuarioBorro = usuarioId; producto.FechaBorro = DateTime.Now; } } } var productosAgregar = new List <t_OrdenDetalle>(); foreach (var p in request.productos.Where(x => x.agregar == true).ToList()) { var prod = new t_OrdenDetalle(); prod.IdProducto = p.productoId; prod.Cantidad = p.cantidad; prod.FechaCreo = DateTime.Now; prod.IdOrden = ordenId; prod.Borrado = false; var productoDB = db.t_Producto.FirstOrDefault(x => x.Id == p.productoId); if (productoDB != null) { prod.Precio = productoDB.Precio; } productosAgregar.Add(prod); } if (productosAgregar.Count > 0) { db.t_OrdenDetalle.AddRange(productosAgregar); } db.SaveChanges(); db.Database.Connection.Close(); return(new BaseResponse { Mensaje = "Orden Actualizada", Resultado = true }); } catch (Exception ex) { return(new BaseResponse { Mensaje = "Sucedio un error al actualizar la orden", Resultado = false }); } }
public BaseResponse Crear(CrearOrdenRequest request, int clienteId) { try { var db = new pedidoclick(); db.Database.Connection.Open(); var orden = new t_Orden(); orden.IdOrdenEstado = 1; // Pendiente orden.Nombre = request.nombre; orden.Telefono = request.telefono; orden.CorreoElectronico = request.correo; orden.Identidad = request.identidad; orden.Calle = request.calle; orden.Avenida = request.avenida; orden.Colonia = request.colonia; orden.Ciudad = request.ciudad; orden.Comentario = request.comentario; orden.FechaCreo = DateTime.Now; orden.IdCliente = clienteId; db.t_Orden.Add(orden); db.SaveChanges(); if (orden.Id <= 0) { db.Database.Connection.Close(); return(new BaseResponse { Mensaje = "Sucedio un error al generar la orden", Resultado = false }); } var ordenDetalle = new List <t_OrdenDetalle>(); foreach (var d in request.productos) { var detalle = new t_OrdenDetalle(); detalle.IdProducto = d.productoId; detalle.Precio = d.precio; detalle.Cantidad = d.cantidad; detalle.IdOrden = orden.Id; detalle.FechaCreo = DateTime.Now; ordenDetalle.Add(detalle); } db.t_OrdenDetalle.AddRange(ordenDetalle); db.SaveChanges(); db.Database.Connection.Close(); return(new BaseResponse { Mensaje = "Orden Generada", Resultado = true }); } catch (Exception ex) { return(new BaseResponse { Mensaje = "Sucedio un error al generar la orden", Resultado = false }); } }