private void CambiarEstadoEnItemsChequeados(EOTItem.Estados estado) { LEOTItems itemsSinModificar = m_eOrdenACerrar.OTItems; bool hayUnItemChequeado = false; // Recorremos todas las entidades para ver cuales estan chequeadas y les cambiamos su estado. for (int index = 0; index < fgItems.Count; index++) { if (fgItems.GetCheckState(index)) { m_eOrdenACerrar.OTItems.InternalData[index][EOTItem.EstadoCmp] = estado.ToString(); hayUnItemChequeado = true; } } if (!hayUnItemChequeado) { MsgRuts.ShowMsg(this, "No hay ningun item seleccionado para modificar su estado"); return; } // Actualizamos la UI CargarItems(); }
private void gbVerItems_Click(object sender, EventArgs e) { if (noHayItemSeleccionado()) { return; } LEOTItems itemsOrdenSeleccionada = OrdenesTrabajo.OtitFGet(m_ibItemSeleccionado.Numero, true, m_smResult); if (MsgRuts.AnalizeError(this, m_smResult)) { return; } itemsOrdenSeleccionada.ChangeCaption(EOTItem.NroagrupadorCmp, ""); itemsOrdenSeleccionada.ChangeCaption(EOTItem.NroitemCmp, ""); itemsOrdenSeleccionada.ChangeCaption("deleted", ""); fgGrillaItemsOT.FillFromLEntidad(itemsOrdenSeleccionada); }
//--------------------------------------------------------------- // 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)); } }
/// <summary> /// Graba todos los OTItems que se encuentran en una lista entidad. /// </summary> /// <param name="p_lentOTItems"> Lista Entidad con los items a grabar </param> /// <param name="p_smResult">StatMsg</param> public static void GrabarOTItems(LEOTItems p_lentOTItems, StatMsg p_smResult) { DBConn l_dbcAccess = null; try { // Obtenemos una conexion y abrimos una transaccion l_dbcAccess = DBRuts.GetConection(Connections.Dat); l_dbcAccess.BeginTransaction(); // Por cada equipamiento de la lista lo grabamos, con la misma coneccion todos foreach (Bel.EOTItem item in p_lentOTItems) { // insertamos todas las entidades OtitInsr(l_dbcAccess, item, 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(); } } }
//--------------------------------------------------------------- // 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 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); } } }