Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        //---------------------------------------------------------------
        // 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));
            }
        }
Esempio n. 4
0
        /// <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();
                }
            }
        }
Esempio n. 5
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();
                }
            }
        }
Esempio n. 6
0
        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);
                }
            }
        }