Beispiel #1
0
        /**
         * @fn  public void eliminarImportacion(int pCantidad)
         *
         * @brief   Elimina la imporacion de inconsert.
         *
         * @author  WINMACROS
         * @date    17/07/2017
         *
         * @param   pCantidad   La cantidad de intentos que tomo
         *                      para eliminar la imporacion.
         */

        public void eliminarImportacion(int pCantidad)
        {
            Sistema s   = Sistema.Sis;
            int     ban = eliminarImporacionAux();

            s.accionesCodigo("Intento n." + pCantidad + " de eliminacion de lote:" + Nombre, ban.ToString());
            baseDatos bd = baseDatos.Bd;

            if (pCantidad < 2)
            {
                if (ban == 0)
                {
                    eliminarImportacion(pCantidad + 1);
                }
                else
                {
                    s.ejecutarMacro(s.m_app, "WAIT SECONDS=10", "Esperar 10s" + false);
                    Estado = Lote.tipoEstado.Eliminado;
                }
            }
            else
            {
                Estado = Lote.tipoEstado.ErrorEliminacion;
            }
            bd.cambiarEstadoLote(this);
        }
Beispiel #2
0
        /**
         * @fn  public void crearNuevaImportacion()
         *
         * @brief   Carga el lote a inconsert.
         *
         * @author  WINMACROS
         * @date    17/07/2017
         */

        public void crearNuevaImportacion()
        {
            Sistema s = Sistema.Sis;

            s.accionesCodigo("Inicio crear nueva importacion");
            int       ban = 0;
            baseDatos bd  = baseDatos.Bd;

            do
            {
                s.ejecutarMacro(s.m_app, "nombreLoteC", Nombre);
                s.ejecutarMacro(s.m_app, s.direccion + "Cargar lote/NuevaImportacion1.iim"
                                , "Crear nueva imporatcion1", true);

                s.ejecutarMacro(s.m_app, "urlLoteC", Exc.Direccion.ToString());

                s.ejecutarMacro(s.m_app, "TAG POS=1 TYPE=INPUT:FILE ATTR=ID:btnAddFile CONTENT= {{urlLoteC}}"
                                , "Poner la url en el inpur file", false);

                s.ejecutarMacro(s.m_app, s.direccion + "Cargar lote/NuevaImportacion2.iim"
                                , "Crear nueva imporatcion2", true);
                do
                {
                    ban = comprobarEstadoImportacion();
                } while (ban != 1 && ban != -1);
            } while (ban != 1);

            bd.cambiarEstadoLote(this);
        }
Beispiel #3
0
        /**
         * @fn  public void cargarLotesAlMarcador()
         *
         * @brief   Crea los lotes dentro del motor.
         *
         * @author  WINMACROS
         * @date    17/07/2017
         */

        public void cargarLotesAlMarcador()
        {
            Sistema   s   = Sistema.Sis;
            baseDatos bd  = baseDatos.Bd;
            int       pos = irAlMotorYDetener();

            entrarAlMotor(pos);
            LotesParaCargar.Sort();
            foreach (LoteMarcador lM in LotesParaCargar)
            {
                lM.cargarVariables();
                s.ejecutarMacro(s.m_app, s.direccion + "Cargar lote/CargarLoteAMotor.iim", "Cargar el lote: " + lM.Lot.Nombre + " Al motor", true);
                esperarQueElMotorCarge();
                lM.cargarVariables();
                s.ejecutarMacro(s.m_app, s.direccion + "Cargar lote/CrearLoteDentroMotor.iim", "Crear un nuevo lote dentro del motor", true);
                esperarQueElMotorCarge();
                s.ejecutarMacro(s.m_app, "TAG POS=1 TYPE=BUTTON:BUTTON ATTR=ID:btnSave CONTENT=Guardar", "Guardar cambios en el motor", false);
                esperarQueElMotorCarge();
                lM.Lot.Estado = Lote.tipoEstado.Activo;
                LotesActivos.Add(lM);
                bd.cambiarEstadoLote(lM.Lot);
                s.accionesCodigo("Cargar el lote: " + lM.Lot.Nombre + " En el motor", "Completo");
                bd.agregarLoteEnMarcador(lM);
            }
            LotesParaCargar = LotesParaCargar.Where(l => !LotesActivos.Contains(l)).ToList();
            darlePLayMotor();
        }
Beispiel #4
0
        /**
         * @fn  private int comprobarEstadoImportacion(int pPos)
         *
         * @brief   Una vez importado se comprueba
         *          si el lote se esta cargado, esta
         *          completo o fue abortado.
         *
         * @author  WINMACROS
         * @date    17/07/2017
         *
         * @return  Estado del lote.
         */

        private int comprobarEstadoImportacion()
        {
            String  nombreLote;
            String  estaodLote;
            Sistema s   = Sistema.Sis;
            int     ban = 0;
            int     pos;

            do
            {
                nombreLote = "";
                estaodLote = "";
                pos        = 2;
                do
                {
                    s.ejecutarMacro(s.m_app, "nombreLoteC", Nombre);
                    s.ejecutarMacro(s.m_app, "posC", pos.ToString());
                    s.ejecutarMacro(s.m_app, s.direccion + "Cargar lote/ComprobarEstadoLote.iim"
                                    , "Comprobar estado lote", true); //extrae el nombre y el estado del
                                                                      //lote
                    estaodLote = s.ejecutarMacroExtract(s.m_app, 2, "Estado del lote: " + Nombre);
                    nombreLote = s.ejecutarMacroExtract(s.m_app, 1, "Nomre del lote en la pocicion"
                                                        + pos.ToString());
                    if (nombreLote == "#EANF#" || nombreLote == "NODATA") //si el nombrre no dio nada
                    {
                        return(-1);                                       //retorna -1 se importa denuevo
                    }
                    pos++;
                    if (pos > 10)
                    {
                        pos = 0;
                    }
                } while (nombreLote != Nombre);               //prueba hasta qe los nombres sean iguales
                                                              //(nombre del lote igual lombre de la imporacion)

                ban = Lote.estadoLoteImportacion(estaodLote); //es un numero que denomina el estado
                                                              //de la imporacion
                s.accionesCodigo("Estado lote importacion: ", ban.ToString());

                if (ban == -2) // si el lote no esta que lo importe de nuevo
                {
                    return(-1);
                }
                else if (ban == -1)         //si lo aborto
                {
                    eliminarImportacion(0); //elimina la imporacion
                    return(-1);
                }
                else if (ban == 1)
                {
                    Estado = Lote.tipoEstado.Importado; //Imporado
                }
            } while (ban == 2);                         //2 es en ejecucuin
            return(ban);
        }
Beispiel #5
0
        /**
         * @fn  public static void cargarLoteAMotor()
         *
         * @brief   Carga los lotes que hay en sistema
         *          y los que son del motor se los asigna
         *          a la lista loter para cargar.
         *
         * @author  WINMACROS
         * @date    17/07/2017
         */

        public static void cargarLoteAMotor()
        {
            Sistema s = Sistema.Sis;
            tolls   t = tolls.T;

            s.accionesCodigo("Carga de lotes a los motores");
            List <Lote> lot       = t.lotesPara(Lote.tipoEstado.ParaCargar);
            DateTime    loteDesde = DateTime.Today;

            foreach (Marcador m in t.campanasDistintaslotes(lot))
            {
                s.accionesCodigo("Para la campaña: " + m.Nombre + " Estan los lotes: ");
                m.LotesParaCargar = new List <LoteMarcador>();//cuidadod aca reseteo lista cada ves que cargo nuevos lotes por si las deudas
                foreach (Lote l in lot)
                {
                    if (l.Marc.Equals(m))
                    {
                        s.accionesCodigo(l.ToString());
                        LoteMarcador lotMarc = new LoteMarcador(l, loteDesde, LoteMarcador.fechaHastaLote(loteDesde, l));
                        m.LotesParaCargar.Add(lotMarc);
                    }
                }
            }
        }
Beispiel #6
0
        /**
         * @fn  public void asignarFrec()
         *
         * @brief   Es el encargado de agarrar todos los lotes que se van a cargar
         *          y crear en base a la frecuencia de cada lote su base de
         *          contactavilidad y la frecuencia.
         *          Busca el minimo comuin multiplo entre los n frecuencias distintas que agrege
         *          y en base a eso calgula la frecuencia
         *
         * @author  WINMACROS
         * @date    14/07/2017
         */

        public void asignarFrec()
        {
            baseDatos bd = baseDatos.Bd;

            if (LotesParaCargar.Count > 1)
            {
                Sistema s = Sistema.Sis;
                s.accionesCodigo("Asignar frecuencia");

                int[] numeros = new int[LotesParaCargar.Count];

                for (int i = 0; i < LotesParaCargar.Count; i++)
                {
                    numeros[i] = LotesParaCargar.ElementAt(i).Lot.Frec.Id;
                }

                int numMultiplo = minimoComunMultiplo(numeros);
                s.accionesCodigo("El minimo comun multiplo de las frecuencias ingresadas es=" + numMultiplo);

                int numMax = 50000 * numMultiplo;

                int aux = 0;

                s.accionesCodigo("Numero maximo", numMax.ToString());

                foreach (loteMarcador lM in LotesParaCargar)
                {
                    aux = numMultiplo / lM.Lot.Frec.Id;
                    s.accionesCodigo("Prioridad de lote = " + aux);
                    lM.Lot.Frec.PrioridadLote = aux;

                    lM.Lot.Frec.BaseContactacion = (numMax / aux) - lM.Lot.Exc.leerExcel().Count;

                    s.accionesCodigo("Base de contactacion = " + lM.Lot.Frec.BaseContactacion);

                    s.accionesCodigo("Asignar frecuencia al lote = " + lM.Lot.Nombre, lM.Lot.Frec.ToString());
                }
            }
            else
            {
                LotesParaCargar.ElementAt(0).Lot.Frec = new Frecuencia(100, 10, 1);
            }
        }