예제 #1
0
 /// <summary>
 /// Agrega validacion de integridad a una entidad: Movil
 /// (Código Fijo)
 /// </summary>
 /// <param name="p_dbcAccess">Conexion a la base de datos</param>
 /// <param name="p_entMovil">Entidad con los datos a validar</param>
 /// <param name="p_smResult">Estado final de la operacion</param>
 internal static void TInt_f(DBConn p_dbcAccess,
                             EMovil p_entMovil,
                             ref StatMsg p_smResult)
 {
     // *********
     // Agregar acá las validaciones adicionales
     // *********
 }
예제 #2
0
        //---------------------------------------------------------------
        // Metodos públicos de la clase
        //---------------------------------------------------------------

        #region Metodos publicos de la clase
        #endregion

        //---------------------------------------------------------------
        // Metodos privados de la clase
        //---------------------------------------------------------------

        #region Metodos del Generador
        /// <summary>
        /// Agrega o modifica un registro de la tabla: Moviles
        /// (Código Fijo)
        /// </summary>
        /// <param name="p_dbcAccess">Conexion a la base de datos</param>
        /// <param name="p_entMovil">Entidad con los datos a procesar</param>
        /// <param name="p_smResult">Estado final de la operacion</param>
        internal static void Save_f(DBConn p_dbcAccess,
                                    ref EMovil p_entMovil,
                                    ref StatMsg p_smResult)
        {
            // *********
            // Agregar acá los procesos adicionales
            // *********
        }
예제 #3
0
파일: Moviles.cs 프로젝트: mattmoll/Merlin
        /// <summary>
        /// Permite Modificar el equipamiento de un movil
        /// </summary>
        /// <param name="p_entMovil">Movil poseedor de los equipamientos</param>
        /// <param name="p_leNuevosEquipamientos">Nuevos equipamientos que se quieren agregar o modificar</param>
        /// <param name="p_smResult">StatMsg</param>
        public static void CambiarEquipamientoYGrabarMovil(EMovil p_entMovil,
                                                           LEMovilesEquip p_leNuevosEquipamientos,
                                                           StatMsg p_smResult)
        {
            DBConn l_dbcAccess = null;

            try
            {
                // Obtenemos una conexion y abrimos una transaccion
                l_dbcAccess = DBRuts.GetConection(Connections.Dat);
                l_dbcAccess.BeginTransaction();

                // Borramos todo el equimamiento que tiene el movil
                MveqEliminarEquipamiento(l_dbcAccess, p_entMovil.Patente, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                // Le asignamos al movil los nuevo equipamientos
                p_entMovil.MovilesEquip = p_leNuevosEquipamientos;

                // Y grabamos los equipamientos
                foreach (Bel.EMovilEquip item in p_leNuevosEquipamientos)
                {
                    Moviles.MveqInsr(l_dbcAccess, item, p_smResult);
                    if (p_smResult.NOk)
                    {
                        return;
                    }
                }

                //grabamos el movil con sus modificaciones
                Moviles.Updt(l_dbcAccess, p_entMovil, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }
            }
            catch (Exception l_expData)
            {
                // Error
                p_smResult.BllError(l_expData.ToString());
            }
            finally
            {
                // Si pude abrir la conexion
                if (l_dbcAccess != null)
                {
                    // Finalizo la transacción y la cierro
                    l_dbcAccess.EndTransaction(p_smResult);
                    l_dbcAccess.Close();
                }
            }
        }
예제 #4
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;
                }
            }
        }
예제 #5
0
        private static void mandarMailsSiCorresponde(EAlerta alerta, EMovil movil, StatMsg p_smResult)
        {
            if (!alerta.MailsEnviados)
            {
                EMovilAlerta movilAlerta = Bll.Moviles.MvalGet(movil.Patente, alerta.Nroconfig, true, p_smResult);
                if (MsgRuts.AnalizeError(App.GetMainWindow(), p_smResult))
                {
                    return;
                }

                EDestinatariosMail destinatariosMail = Bll.Tablas.DemGet(movilAlerta.Coddestinatarios, true, p_smResult);
                if (MsgRuts.AnalizeError(App.GetMainWindow(), p_smResult))
                {
                    return;
                }

                List <string> destinatarios = destinatariosMail.Destinatarios.Split(',').ToList();

                destinatarios = destinatarios.Where(destinatario => destinatario.Trim() != "").ToList();

                MailSender.enviarMail(destinatarios, "Alerta Automatica Sistema Móviles", getDetalleMail(alerta, movil), p_smResult);
                if (MsgRuts.AnalizeError(App.GetMainWindow(), p_smResult))
                {
                    return;
                }

                EAlerta alertaToupdate = Bll.Alertas.AleGet(alerta.Nroconfig, alerta.Nroalerta, true, p_smResult);
                if (MsgRuts.AnalizeError(App.GetMainWindow(), p_smResult))
                {
                    return;
                }

                alertaToupdate.Mailsenviados = "S";
                Bll.Alertas.AleSave(alertaToupdate, p_smResult);
                if (MsgRuts.AnalizeError(App.GetMainWindow(), p_smResult))
                {
                    return;
                }
            }
        }
예제 #6
0
파일: Alertas.cs 프로젝트: mattmoll/Merlin
        //---------------------------------------------------------------
        // 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();
                }
            }
        }
예제 #7
0
 private static string getDetalleMail(EAlerta alerta, EMovil movil)
 {
     return($"Movil: {movil.Patente} <br /> <br /> Descripción: {alerta.Descripcion} <br /> <br /> Detalle: {alerta.Detalle}");
 }