Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        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;
                }
            }
        }
Beispiel #3
0
        /// <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
            }
        }
Beispiel #4
0
        //---------------------------------------------------------------
        // 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();
                }
            }
        }