/// <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 // ********* }
//--------------------------------------------------------------- // 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 // ********* }
/// <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(); } } }
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; } } }
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; } } }
//--------------------------------------------------------------- // 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(); } } }
private static string getDetalleMail(EAlerta alerta, EMovil movil) { return($"Movil: {movil.Patente} <br /> <br /> Descripción: {alerta.Descripcion} <br /> <br /> Detalle: {alerta.Detalle}"); }