Exemplo n.º 1
0
        public object salidaMultiple(Movimientos salida, int cantidad)
        {
            int rs = minPosicion(salida);

            if (rs == (this.posiciones + 1))
            {
                return("El tunel seleccionado está vacio.");
            }
            else if (rs == -1)
            {
                return("No existe el tunel seleccionado.");
            }
            else if (rs + cantidad > (this.posiciones + 1))
            {
                return("No se puede realizar una salida multiple de " + cantidad + " elementos.");
            }
            else
            {
                List <Movimientos> lMovimientos = new List <Movimientos> {
                };

                for (int i = 0; i < cantidad; i++)
                {
                    salida.Posicion = rs + i;
                    int paqueteId = getInPosicion(salida);
                    if (paqueteId != -1)
                    {
                        salida.PaquetesId = paqueteId;
                        salida.Fecha      = DateTime.Now;
                        salida.Sentido    = -1;
                        lMovimientos.Add((Movimientos)salida.Clone());
                    }
                    else
                    {
                        return("La posición seleccionada no está ocupada.");
                    }
                }
                return(lMovimientos);
            }
        }
Exemplo n.º 2
0
        public object[] salidaParcial(Movimientos salida, int bultosSalen)
        {
            object oSalida = this.salida(salida);

            if (oSalida is string)
            {
                return(new[] { oSalida });
            }

            Movimientos mSalida  = (Movimientos)oSalida;
            Movimientos mIngreso = (Movimientos)mSalida.Clone();

            Paquetes paqueteActual = _context.Paquetes.Find(mIngreso.PaquetesId);

            mIngreso.Paquetes            = new Paquetes();
            mIngreso.Paquetes.ProductoId = paqueteActual.ProductoId;
            mIngreso.Paquetes.ClienteId  = paqueteActual.ClienteId;
            mIngreso.Paquetes.Lote       = paqueteActual.Lote;
            mIngreso.Sentido             = 1;

            mIngreso.Paquetes.Bultos = paqueteActual.Bultos - bultosSalen;

            if (mIngreso.Paquetes.Bultos == 0)
            {
                return(new[] {
                    "Acción inválida: Si requiere realizar esta operación, por favor haga una salida completa"
                });
            }
            else if (mIngreso.Paquetes.Bultos < 0)
            {
                return(new[] {
                    "Imposible hacer salida por " + bultosSalen + " bultos, solo hay " + paqueteActual.Bultos + " disponibles"
                });
            }
            return(new[] { mSalida, mIngreso });
        }