Beispiel #1
0
        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);
        }
Beispiel #2
0
        /// <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();
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        /// <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();
        }