Exemple #1
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);
        }
Exemple #2
0
        /**
         * @fn  public int irAlMortor()
         *
         * @brief   Va al motor y extrae la pocicion en
         *          la que se encuentra dentro de inconsert
         *
         * @author  WINMACROS
         * @date    13/07/2017
         *
         * @return  La pocicion del motor.
         */
        public int irAlMortor()
        {
            Sistema s          = Sistema.Sis;
            bool    bandera    = true;
            int     posPosible = 2; //arranca de la pocicion dos (la 1 son los cabezales de la tabla)

            while (bandera)         //minetras no encuentre al motor que tiene el mismo nombre que this sigue buscando
            {
                s.ejecutarMacro(s.m_app, "nombreMotorC", Nombre);
                s.ejecutarMacro(s.m_app, "posC", posPosible.ToString());
                s.ejecutarMacro(s.m_app, s.direccion + "irAlMotor.iim", "Ir al motor", true);            //se pociciona sobre el motor
                string extract = s.ejecutarMacroExtract(s.m_app, 2, "Nombre del motor antes de entrar"); //extrae ek binvre dek nitir
                if (extract == this.Nombre)
                {
                    bandera = false;
                }
                else
                {
                    posPosible++;
                }
                if (s.S != iMacros.Status.sOk)
                {
                    posPosible = 2;
                }
            }
            return(posPosible);
        }
Exemple #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();
        }
Exemple #4
0
        /**
         * @fn  public void irAlMortor(int pPos)
         *
         * @brief   Va al motor ubicado en una pocicion
         *
         * @author  WINMACROS
         * @date    13/07/2017
         *
         * @param   pPos    La pocicion del motor.
         */
        public void irAlMortor(int pPos)
        {
            Sistema s = Sistema.Sis;

            s.ejecutarMacro(s.m_app, "nombreMotorC", Nombre);
            s.ejecutarMacro(s.m_app, "posC", pPos.ToString());
            s.ejecutarMacro(s.m_app, s.direccion + "irAlMotor.iim", "Ir al motor", true);
        }
Exemple #5
0
        /**
         * @fn  public void darlePLayMotor()
         *
         * @brief   Da play al motor.
         *
         * @author  WINMACROS
         * @date    17/07/2017
         */

        public void darlePLayMotor()
        {
            Sistema   s  = Sistema.Sis;
            baseDatos bd = baseDatos.Bd;

            s.ejecutarMacro(s.m_app, "Datos", Nombre);
            s.ejecutarMacro(s.m_app, s.direccion + "Cargar lote/PlayLote.iim", "Darle play al motor", true);
            Estado = estadoMotor.activo;
            bd.cambiarEstadoMotor(this);
        }
Exemple #6
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);
        }
Exemple #7
0
        /**
         * @fn  private void eliminarLoteMotor()
         *
         * @brief   Es el encargado de eliminar el lote que se
         *          encuentra primero dentro del motor.
         *
         * @author  WINMACROS
         * @date    14/07/2017
         */

        private void eliminarLoteMotor()
        {
            esperarQueElMotorCarge();
            Sistema s = Sistema.Sis;

            s.ejecutarMacro(s.m_app, s.direccion + "eliminar lote/VencerLotes.iim", "Vencer el lote del motor", true);
            esperarQueElMotorCarge();
            esperarQueElMotorCarge();
            s.ejecutarMacro(s.m_app, s.direccion + "eliminar lote/EliminarLoteMotor.iim", "Eliminar el lote del motor", true);
            esperarQueElMotorCarge();
            esperarQueElMotorCarge();
        }
Exemple #8
0
        /**
         * @fn  private int eliminarImporacionAux()
         *
         * @brief   El metodo que llama a las macros
         *          para eliminar la imporacion.
         *
         * @author  WINMACROS
         * @date    17/07/2017
         *
         * @return  El estado de la imporacion que
         *          intento eliminar.
         */

        private int eliminarImporacionAux()
        {
            int     ban = 0;
            Sistema s   = Sistema.Sis;

            s.ejecutarMacro(s.m_app, "Lote", Nombre);
            s.ejecutarMacro(s.m_app, s.direccion + "eliminar lote/EliminarLoteImportacion.iim", "Eliminar Importacion ", true);
            s.ejecutarMacro(s.m_app, "nombreLoteC", Nombre);
            s.ejecutarMacro(s.m_app, s.direccion + "Cargar lote/ComprobarEstadoLote.iim", "Comprobar estado importacion eliminada", true);
            String estaodLote = s.ejecutarMacroExtract(s.m_app, 0, "Estado del lote: " + Nombre);

            ban = Lote.estadoLoteParaEliminar(estaodLote);
            return(ban);
        }
Exemple #9
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);
        }
Exemple #10
0
        /**
         * @fn  private void entrarAlMotor(int pPos)
         *
         * @brief   Entra al motor de una pocicion
         *
         * @author  WINMACROS
         * @date    13/07/2017
         *
         * @param   pPos    Pocicion del motor
         */
        private void entrarAlMotor(int pPos)
        {
            Sistema s = Sistema.Sis;

            s.ejecutarMacro(s.m_app, "TAG POS=" + pPos + " TYPE=td ATTR=IDX:10", "Entrar al motor", false);
            esperarQueElMotorCarge();
        }
Exemple #11
0
        /**
         * @fn  private void esperarQueElMotorCarge()
         *
         * @brief   Una vez dentor del motor esperar a que el motor carge todos los lotes
         *          o tambien cuando se importa un lote al motor para esperear que carge
         *          los contactos
         *
         * @author  WINMACROS
         * @date    13/07/2017
         */
        private void esperarQueElMotorCarge()
        {
            bool    bandera = false;
            Sistema s       = Sistema.Sis;

            do
            {
                s.ejecutarMacro(s.m_app, "TAG POS=1 TYPE=div ATTR=class:formWaitingMessage EXTRACT=HTM", "Fijarse en el div que tiene los mensajes si tiene algo", false);
                string ext = s.ejecutarMacroExtract(s.m_app, 0, "Mensajes del div de mensajes");
                if (ext.Contains("none") || ext.Contains("#EANF#") || ext.Contains("NODATA"))
                {
                    bandera = false;
                }
                else
                {
                    bandera = true;
                    s.ejecutarMacro(s.m_app, "WAIT SECONDS=2", "Esteperar 2 segundos", false);
                }
            } while (bandera);
        }
Exemple #12
0
        /**
         * @fn  private void detenerMotor(string pEstado, int pos)
         *
         * @brief   Detiene el motor en inconsert
         *
         * @author  WINMACROS
         * @date    17/07/2017
         *
         * @param   pEstado Estado actual del motor.
         * @param   pos     Pos del motor en la tabla.
         */

        private void detenerMotor(string pEstado, int pos)
        {
            baseDatos bd = baseDatos.Bd;
            Sistema   s  = Sistema.Sis;

            if (pEstado == "RUNNING")//si el estado acutal del motor es en andando se lo frena
            {
                s.ejecutarMacro(s.m_app, "TAG POS=" + pos + " TYPE=td ATTR=IDX:9", "Detener el motor si esta en running", false);
                irAlMortor();
            }
            Estado = estadoMotor.denenido;
            bd.cambiarEstadoMotor(this);
        }
Exemple #13
0
        /**
         * @fn  public void cargarVariables()
         *
         * @brief   Carga las variables dentor de imacros con
         *          los datos necesarios para cargarlo
         *          al motor
         *
         * @author  WINMACROS
         * @date    14/07/2017
         */

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

            s.ejecutarMacro(s.m_app, "nombreMotorC", Lot.Marc.Nombre);
            s.ejecutarMacro(s.m_app, "nombreLoteC", Lot.Nombre);
            s.ejecutarMacro(s.m_app, "fechaIniC", Desde.ToString("yyyy-MM-dd"));
            s.ejecutarMacro(s.m_app, "fechaFinC", Hasta.ToString("yyyy-MM-dd"));
            s.ejecutarMacro(s.m_app, "baseContC", Lot.Frec.BaseContactacion.ToString());
            s.ejecutarMacro(s.m_app, "prioLoteC", Lot.Frec.PrioridadLote.ToString());
            s.ejecutarMacro(s.m_app, "tiempoEsperaC", hallarTiempo());
        }
Exemple #14
0
        /**
         * @fn  private int lotesParaEliminar()
         *
         * @brief   Cuenta cuantos lotes estan incluidos en el motor.
         *          Si el motor es de recursos guarda los nombre de los
         *          lotes en una lista para sacar reporte
         *
         * @author  WINMACROS
         * @date    14/07/2017
         *
         * @return  Cantidad de lotes dentro del motor (Int).
         */

        private int lotesParaEliminar()
        {
            Sistema   s       = Sistema.Sis;
            baseDatos bd      = baseDatos.Bd;
            bool      bandera = false;

            int pos = 2; // Arranca de la pocicion 2 ya que la primera es el cabezal de la tabla

            do
            {
                Status sta = s.ejecutarMacro(s.m_app, "TAG SELECTOR=HTML>BODY>DIV:nth-of-type(4)>DIV>DIV:nth-of-type(2)>DIV:nth-of-type(2)>DIV:nth-of-type(2)>DIV>FORM>DIV:nth-of-type(2)>FIELDSET:nth-of-type(3)>DIV:nth-of-type(2)>DIV>TABLE>TBODY>TR:nth-of-type(2)>TD>DIV>DIV>TABLE>TBODY>TR:nth-of-type(" + pos.ToString() + ")>TD:nth-of-type(2) EXTRACT=TXT", "Reccore todos los lotes del motor", false);
                if (sta != iMacros.Status.sOk)
                {
                    bandera = false; //si el statis de imacros no es ok es porque llego al final de los lotes del motor
                }
                else
                {
                    string extract = s.ejecutarMacroExtract(s.m_app, 0, "Nombre del lote dentro del motor");
                    if (!extract.Contains("#EANF#"))//si no contiene vasura el extract
                    {
                        bandera = true;
                        if (this.Tipo == tipoMarcador.mvp || this.Tipo == tipoMarcador.vb)
                        {
                            LotesParaSacarReporte.Add(extract);// agrega a lotes para sacar reporte
                        }
                        if (!eliminarLoteAnterior(extract))
                        {
                            s.Lotes.Add(elLoteNoExiste(extract));
                        }
                        //si no encuentra el lote dentro de la lista de lotes
                        //activos crea un nevo lote solo con el nombre y el estado
                        //para eliminar
                        pos++;
                    }
                    else
                    {
                        return(pos - 2);
                    }
                }
            } while (bandera);
            return(pos - 2);
        }
Exemple #15
0
        /**
         * @fn  public void eliminarLotes()
         *
         * @brief   Elimina todos los lotes dentro del
         *          marcador.
         *
         * @author  WINMACROS
         * @date    14/07/2017
         */
        public void eliminarLotes()
        {
            Sistema s   = Sistema.Sis;
            int     pos = irAlMotorYDetener();

            s.ejecutarMacro(s.m_app, "TAG POS=" + pos + " TYPE=TD ATTR=idx:4 EXTRACT=TXT", "Extrae campaña asociada al proceso", false);
            string campana = s.ejecutarMacroExtract(s.m_app, 0, "Campaña del motor");

            s.m_app.iimClose();                                      // cierro el firefox
            s.iniciarYLogear(Sistema.navegadores.silent.ToString()); // abre el imacros con el navegador nativo
            irAlMortor(pos);
            entrarAlMotor(pos);
            int lotes = lotesParaEliminar();                                         //cantidad de lotes dentor del motor

            if (LotesParaSacarReporte.Count >= 1)                                    // si la lista de reportes no esta vacia saca los reportes
            {
                tolls.T.obtenerReporteLote(LotesParaSacarReporte, campana);          // que se encuentran dentor de la lista
            }
            string rutaReportes = @"E:\reportes\";                                   //Direccion donde se guarda los reportes

            string[] archivos = System.IO.Directory.GetFiles(rutaReportes, "*.bak"); // se borran todos los archivos .bak
            foreach (string arch in archivos)                                        //son descargados junto a los pdf
            {
                System.IO.File.Delete(arch);
            }

            s.m_app.iimClose();                                  //se cierra el imacros
            s.iniciarYLogear(Sistema.navegadores.fx.ToString()); //Se abre el firefox
            irAlMortor(pos);
            entrarAlMotor(pos);
            if (lotes > 0)
            {
                for (int i = 0; i < lotes; i++)
                {
                    eliminarLoteMotor(); //elimina la x cantidad de lotes que recolecto anteriormente
                }
            }
        }