IEnumerable <OrdenPago> Obtener(IEnumerable <Datos.OrdenPago> ordenesPagoDAL) { List <OrdenPago> ordenesPago = new List <OrdenPago>(); foreach (Datos.OrdenPago ordenPagoDAL in ordenesPagoDAL) { OrdenPago ordenPago = Obtener(ordenPagoDAL); ordenesPago.Add(ordenPago); } return(ordenesPago); }
/// <summary> /// Crea una nueva orden de pago en el sistema, lo que implica que una determinada orden de compra ha sido finalizada /// </summary> /// <param name="ordenPago">Orden de pago a crear</param> public void Crear(OrdenPago ordenPago) { ValidarOrdenPago(ordenPago); Datos.ProveedoresDAL dalProveedores = dal.ObtenerProveedoresDAL(); Datos.Proveedor proveedorDAL = dalProveedores.Obtener(ordenPago.Proveedor.CUIT); if (proveedorDAL == null) { throw new OBMCateringException(string.Format(Resources.BL_Validaciones_ProveedorInvalido, ordenPago.Proveedor.CUIT)); } Datos.OrdenesCompraDAL dalOrdenesCompra = dal.ObtenerOrdenesCompraDAL(); List <Datos.ItemOrdenPago> itemsOrdenesPagoDAL = new List <Datos.ItemOrdenPago>(); foreach (ItemOrdenPago itemOrdenPago in ordenPago.Items) { Datos.ItemOrdenCompra itemOrdenCompraDAL = dalOrdenesCompra.ObtenerItem(itemOrdenPago.ItemOrdenCompra.Id); if (itemOrdenCompraDAL == null) { throw new OBMCateringException(Resources.OrdenesPagoBL_Validaciones_ItemOrdenCompraInvalido); } Datos.ItemOrdenPago itemOrdenPagoDAL = new Datos.ItemOrdenPago { ItemOrdenCompra = itemOrdenCompraDAL, Precio = itemOrdenPago.Precio }; itemsOrdenesPagoDAL.Add(itemOrdenPagoDAL); } Datos.OrdenPago ordenPagoDAL = new Datos.OrdenPago { Fecha = ordenPago.Fecha, Pagada = ordenPago.Pagada, Proveedor = proveedorDAL, ItemsOrdenesPago = itemsOrdenesPagoDAL }; Datos.OrdenesPagoDAL dalOrdenesPago = dal.ObtenerOrdenesPagoDAL(); dalOrdenesPago.Crear(ordenPagoDAL); dal.Guardar(); }
void ValidarOrdenPago(OrdenPago ordenPago) { if (ordenPago == null) { throw new OBMCateringException(Resources.BL_Validaciones_OrdenPagoNull); } if (ordenPago.Proveedor == null) { throw new OBMCateringException(Resources.BL_Validaciones_ProveedorNull); } if (ordenPago.Items == null || ordenPago.Items.Count == 0) { throw new OBMCateringException(Resources.OrdenesPagoBL_Validaciones_OrdenPagoSinItems); } }
/// <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(); }