示例#1
0
        private void grabarConfigAlerta(int kilometros, string codReparacion, string codControl, DateTime?fecha = null)
        {
            ETalonario taloConfigAlerta = App.TaloGet("ConfAlerta", m_smResult);

            if (MsgRuts.AnalizeError(App.GetMainWindow(), m_smResult))
            {
                return;
            }

            Bel.EMovilAlerta alertaNueva = Bel.EMovilAlerta.NewEmpty();
            alertaNueva.Patente          = cdcMoviles.SelectedStrCode;
            alertaNueva.Nroconfigalerta  = taloConfigAlerta.Valor;
            alertaNueva.Kilometros       = kilometros;
            alertaNueva.Codreparacion    = codReparacion;
            alertaNueva.Codcontrol       = codControl;
            alertaNueva.Coddestinatarios = cdcGruposDestinatarios.SelectedStrCode;
            alertaNueva.Fecha            = fecha ?? new DateTime(1900, 1, 1);
            Bll.Moviles.MvalSave(alertaNueva, m_smResult);
            if (MsgRuts.AnalizeError(App.GetMainWindow(), m_smResult))
            {
                return;
            }

            cargarGrillaAlertas();
        }
示例#2
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();
                }
            }
        }