/** * @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); }
/** * @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); }
/** * @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(); }
/** * @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); }
/** * @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); } } } }
/** * @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); } }