private bool CumpleCondicionReparacionPeriodica(EMovil p_entMovil, LEAlertas alertasDeEstaConfiguracion, LEOTItems reparacionesDelMovil) { reparacionesDelMovil.Filter(String.Format("{0} = {1}", EOTItem.CodreparacionCmp, this.Codreparacion)); // Si ya hay tantas alertas de esta config creadas como reparaciones que indica la misma entonces no hay que crear nada. if (alertasDeEstaConfiguracion.Count == reparacionesDelMovil.Count) { return(false); } else { // Ordenamos las reparaciones para que quede la que pertenece a una OT mas nueva arriba de todo. reparacionesDelMovil.Sort(Bel.EOTItem.NrootCmp + " desc"); // Obtenemos el kilometraje al momento de realizada por ultima vez la reparacion en cuestion. int kilometrajeAlMomentoDeLaUltimaReparacion = reparacionesDelMovil[0].Oti_kilometraje; // Si se hicieron los kilometros indicados por la config desde la ultima reparacion -> cumple condicion. if (p_entMovil.KmsActuales >= kilometrajeAlMomentoDeLaUltimaReparacion + this.Kilometros) { return(true); } else { return(false); } } }
private bool CumpleCondicionKilometros(EMovil p_entMovil, LEAlertas alertasDeEstaConfiguracion) { // Si se superaron los kilometros indicados y aun no se creo alerta de esta config -> cumple la condicion de creacion de alerta. if ((p_entMovil.KmsActuales > this.Kilometros) && (alertasDeEstaConfiguracion.Count == 0)) { return(true); } else { return(false); } }
//--------------------------------------------------------------- // Metodos públicos de la clase //--------------------------------------------------------------- public bool CumpleCondicion(EMovil p_entMovil, LEAlertas alertasDelMovil, LEOTItems reparacionesDelMovil, DateTime fechaActual) { // TODO ASAP : Revisar esta logica de alertas del movil, aca las trato como todas las alertas // del movil dado pero en los cumple condicion las uso como alertas de esta config en particular. puede haber error de logica. // Filtramos las alertas para que sean del movil pero adeams solo de esta configuracion de alerta. alertasDelMovil.Filter(String.Format("{0} = {1}", EAlerta.NroconfigCmp, this.Nroconfigalerta)); // Si es alerta de tipo periodica post reparacion. if (this.esDeReparacion) { return(this.CumpleCondicionReparacionPeriodica(p_entMovil, alertasDelMovil, reparacionesDelMovil)); } else if (this.esDeFecha) { return(this.CumpleCondicionFecha(fechaActual, alertasDelMovil)); } else { return(this.CumpleCondicionKilometros(p_entMovil, alertasDelMovil)); } }