Example #1
0
        /// <summary>
        /// Agrega productos a la lista mientras el stock lo permita.
        /// </summary>
        /// <param name="cs"></param>
        /// <param name="p"></param>
        /// <returns></returns>
        public static ControlStock <T> operator +(ControlStock <T> cs, T p)
        {
            if (cs.lista.Count == 0)
            {
                cs.lista = new List <T>();
            }

            if (cs.lista.Count < cs.capacidad)
            {
                //Si el producto ya existe, agrego cantidad.
                if (cs == p)
                {
                    //Agregar la cantidad a cs[indice que es igual]
                    int indice = ControlStock <T> .ObtenerIndice(cs, p);

                    cs.lista[indice].Cantidad += p.Cantidad;
                }
                else
                {
                    //sino lo agrego a la lista
                    cs.lista.Add(p);
                }
            }
            else
            {
                throw new StockMaximoException("No hay mas espacio en los estantes. Venda algo!!");
            }
            return(cs);
        }
Example #2
0
        /// <summary>
        /// Obtiene el índice del elemento pasado como parámetro.
        /// </summary>
        /// <param name="cs"></param>
        /// <param name="p"></param>
        /// <returns></returns>

        private static int ObtenerIndice(ControlStock <T> cs, T p)
        {
            int retorno = -1;
            int indice  = 0;

            foreach (T aux in cs.lista)
            {
                if (aux.Equals(p))
                {
                    retorno = indice;
                    break;
                }
                indice++;
            }
            return(retorno);
        }
Example #3
0
 /// <summary>
 /// Baja la cantidad de productos en stock segun la cantidad de productos que se deseen comprar.
 /// </summary>
 /// <param name="cs"></param>
 /// <param name="p"></param>
 /// <param name="cantidadCompra"></param>
 public void BajarCantidad(ControlStock <T> cs, T p, int cantidadCompra)
 {
     //Si la cantidad de productos en stock es igual o mayor a la cantidad que se
     //desea comprar, bajo la cantidad de productos en stock teniendo en cuenta la cantidad
     //que el cliente quiere comprar.
     if (cs == p && p.Cantidad >= cantidadCompra)
     {
         p.Cantidad -= cantidadCompra;
         //Si me quedo sin productos, elimino de la lista.
         if (p.Cantidad == 0)
         {
             cs -= p;
         }
     }
     else
     {
         throw new CantidadInexistenteException("La cantidad de productos en stock es insuficiente");
     }
 }