OrdenPago Obtener(Datos.OrdenPago ordenPagoDAL) { List <ItemOrdenPago> items = new List <ItemOrdenPago>(); foreach (Datos.ItemOrdenPago itemDAL in ordenPagoDAL.ItemsOrdenesPago) { ItemOrdenCompra itemOrdenCompra = ordenesCompraBL.ObtenerItem(itemDAL.ItemOrdenCompra); ItemOrdenPago item = new ItemOrdenPago { Id = itemDAL.ID, ItemOrdenCompra = itemOrdenCompra, Precio = itemDAL.Precio }; items.Add(item); } Proveedor proveedor = proveedoresBL.Obtener(ordenPagoDAL.Proveedor); return(new OrdenPago { Id = ordenPagoDAL.ID, Fecha = ordenPagoDAL.Fecha, Pagada = ordenPagoDAL.Pagada, Proveedor = proveedor, Items = items }); }
/// <summary> /// Actualiza los datos de una determinada orden de pago en el sistema /// Los datos que se permiten actualizar son los precios de los items y el estado de la orden, es decir si esta pagada o no /// </summary> /// <param name="ordenPago">Orden de pago a actualizar</param> public void Actualizar(OrdenPago ordenPago) { ValidarOrdenPago(ordenPago); Datos.OrdenesPagoDAL dalOrdenesPago = dal.ObtenerOrdenesPagoDAL(); Datos.OrdenPago ordenPagoDAL = dalOrdenesPago.Obtener(ordenPago.Id); if (ordenPagoDAL == null) { throw new OBMCateringException(Resources.BL_Validaciones_OrdenPagoInvalida); } foreach (Datos.ItemOrdenPago itemDAL in ordenPagoDAL.ItemsOrdenesPago) { ItemOrdenPago itemOrdenPago = null; foreach (ItemOrdenPago item in ordenPago.Items) { if (item.ItemOrdenCompra.Ingrediente.Nombre == itemDAL.ItemOrdenCompra.Ingrediente.Nombre) { itemOrdenPago = item; break; } } if (itemOrdenPago != null) { itemDAL.Precio = itemOrdenPago.Precio; } } ordenPagoDAL.Pagada = ordenPago.Pagada; dalOrdenesPago.Actualizar(ordenPagoDAL); dal.Guardar(); }