/// <summary> /// Devuelve una Lista-entidad: LEAlertas /// </summary> /// <param name="p_dbcAccess">Conexion a la base de datos</param> /// <param name="p_bOnlyActive">Indica si solo se analizan los registros activos</param> /// <param name="p_smResult">Estado final de la operacion</param> /// <returns>Lista-entidad: LEAlertas</returns> internal static LEAlertas AleUpfl(DBConn p_dbcAccess, bool p_bOnlyActive, StatMsg p_smResult) { try { // Pedimos los registros de la tabla: Alertas DataSet l_dsTemp = new DataSet(); Dal.Alertas.Up(p_dbcAccess, p_bOnlyActive, ref l_dsTemp, "Temporal", p_smResult); if (p_smResult.NOk) { return(null); } // Fijamos los captions de la grilla Dal.Alertas.MakeGridCaptions(ref l_dsTemp, "Temporal", p_smResult); // Contruimos la lista-entidad y la devolvemos (si vino algun registro) LEAlertas l_lentRet = new LEAlertas(l_dsTemp.Tables["Temporal"]); l_dsTemp.Dispose(); return(l_lentRet); } catch (Exception l_expData) { // Error en la operacion Upfl p_smResult.BllError(l_expData); return(null); } }
public static void CheckForAlertsAndProcess(EMovil p_entMovil, StatMsg p_smResult, bool esProcesoBackgroundSinVentana = false) { Bll.Alertas.fCheckCreacionAlertas(p_entMovil, p_smResult); if (MsgRuts.AnalizeError(App.GetMainWindow(), p_smResult)) { return; } LEAlertas alertasAMostrar = Bll.Alertas.AleGetPendientesFromMov(p_entMovil.Patente, p_smResult); if (MsgRuts.AnalizeError(App.GetMainWindow(), p_smResult)) { return; } if (alertasAMostrar.Count == 0) { return; } List <EAlerta> listaAlertas = alertasAMostrar.ToList().Where(alerta => alerta.Repetirendias == 0 || pasaronDiasYDebeRepetirse(alerta)).ToList(); if (MsgRuts.AnalizeError(App.GetMainWindow(), p_smResult)) { return; } List <EAlerta> listaAlertasCopy = new List <EAlerta>(listaAlertas); if (listaAlertas.Count != 0) { if (!esProcesoBackgroundSinVentana) { ShowAlertas ventanaAlertas = new ShowAlertas(listaAlertasCopy, p_entMovil.Patente); ventanaAlertas.ShowDialog(App.GetMainWindow()); } listaAlertas.ForEach(alerta => mandarMailsSiCorresponde(alerta, p_entMovil, p_smResult)); if (MsgRuts.AnalizeError(App.GetMainWindow(), p_smResult)) { return; } } }
/// <summary> /// Ejecuta el SP definido por el usuario: GetPendientesFromMov /// </summary> /// <param name="p_dbcAccess">Conexion a la base de datos</param> /// <param name= p_strPatente>Patente</param> /// <param name="p_smResult">Estado final de la operacion</param> /// <returns>ListaEntidad con los datos solicitados</returns> internal static LEAlertas AleGetPendientesFromMov(DBConn p_dbcAccess, string p_strPatente, StatMsg p_smResult) { try { // Llamamos al metodo definido por el usuario DataSet l_dsTemp = new DataSet(); Dal.Alertas.GetPendientesFromMov(p_dbcAccess, p_strPatente, ref l_dsTemp, "Temporal", p_smResult); if (p_smResult.NOk) { return(null); } // Captionamos el resultado Dal.Alertas.MakeGridCaptions(ref l_dsTemp, "Temporal", p_smResult); if (p_smResult.NOk) { return(null); } // Creamos la ListaEntidad y la devolvemos LEAlertas l_lentRet = new LEAlertas(l_dsTemp.Tables["Temporal"]); l_dsTemp.Dispose(); return(l_lentRet); } catch (Exception l_expData) { // Error en la operacion p_smResult.BllError(l_expData); return(null); } finally { // Terminamos } }
//--------------------------------------------------------------- // Metodos públicos de la clase //--------------------------------------------------------------- #region Metodos publicos de la clase public static void fCheckCreacionAlertas(EMovil p_entMovil, StatMsg p_smResult) { DBConn l_dbcAccess = null; try{ // Obtenemos una conexion l_dbcAccess = DBRuts.GetConection(Connections.Dat); Bel.LEMovilesAlertas configAlertas = Moviles.MvalFSch(l_dbcAccess, p_entMovil.Patente, true, p_smResult); if (p_smResult.NOk) { return; } if (configAlertas.Count == 0) { return; } p_entMovil.MovilesKms = Moviles.MvkmFSch(l_dbcAccess, p_entMovil.Patente, true, p_smResult); if (p_smResult.NOk) { return; } LEAlertas alertasDelMovil = Alertas.AleGetAlertasFromMovil(p_entMovil.Patente, p_smResult); if (p_smResult.NOk) { return; } LEOTItems reparacionesDelMovil = OrdenesTrabajo.OtitGetRealizadosMvl(p_entMovil.Patente, p_smResult); if (p_smResult.NOk) { return; } DateTime fechaActual = BllRuts.GetDBNow(l_dbcAccess, p_smResult); if (p_smResult.NOk) { return; } // Iteramos por todas las config alertas y si alguna cumple condicion creamos la nueva alerta. foreach (EMovilAlerta configAlerta in configAlertas) { if (configAlerta.CumpleCondicion(p_entMovil, alertasDelMovil, reparacionesDelMovil, fechaActual)) { ETalonario nroAlerta = AppRuts.TaloGet(l_dbcAccess, "ConfAlerta", p_smResult); if (p_smResult.NOk) { return; } Bel.EAlerta nuevaAlerta = configAlerta.crearAlerta(nroAlerta.Valor, fechaActual); Alertas.AleSave(nuevaAlerta, p_smResult); if (p_smResult.NOk) { return; } } } } catch (Exception l_expData) { // Error en la operacion p_smResult.BllError(l_expData.ToString()); } finally{ // Si pude abrir la conexion -> la cierro if (l_dbcAccess != null) { l_dbcAccess.Close(); } } }