예제 #1
0
파일: Moviles.cs 프로젝트: mattmoll/Merlin
        /// <summary>
        /// Ejecuta el SP definido por el usuario: getMovilEstadoActual
        /// </summary>
        /// <param name= p_strPatente>Patente</param>
        /// <param name="p_smResult">Estado final de la operacion</param>
        /// <returns>ListaEntidad con los datos solicitados</returns>
        public static EMovilEstado fGetMovilEstadoActual(DBConn conexion,
                                                         string p_strPatente,
                                                         StatMsg p_smResult)
        {
            try
            {
                // Pedimos los registros de la tabla
                ListaEntidades ultimos5Estados = Bll.Moviles.MvesgetLastFiveMvlEstads(conexion, p_strPatente, p_smResult);
                if (p_smResult.NOk)
                {
                    return(null);
                }

                EMovilEstado estadoActual = Bll.Moviles.MvesSrch(conexion, p_strPatente, Convert.ToDateTime(ultimos5Estados.InternalData[0][Bel.EMovilEstado.FechaCmp]), true, p_smResult);
                if (p_smResult.NOk)
                {
                    return(null);
                }

                return(estadoActual);
            }
            catch (Exception l_expData)
            {
                // Error en la operacion
                p_smResult.BllError(l_expData);
                return(null);
            }
        }
예제 #2
0
 /// <summary>
 /// Agrega validacion de integridad a una entidad: MovilEstado
 /// (Código Fijo)
 /// </summary>
 /// <param name="p_dbcAccess">Conexion a la base de datos</param>
 /// <param name="p_entMovilEstado">Entidad con los datos a validar</param>
 /// <param name="p_smResult">Estado final de la operacion</param>
 internal static void MvesTInt_f(DBConn p_dbcAccess,
                                 EMovilEstado p_entMovilEstado,
                                 ref StatMsg p_smResult)
 {
     // *********
     // Agregar acá las validaciones adicionales
     // *********
 }
예제 #3
0
 /// <summary>
 /// Agrega o modifica un registro de la tabla: MvlEstados
 /// (Código Fijo)
 /// </summary>
 /// <param name="p_dbcAccess">Conexion a la base de datos</param>
 /// <param name="p_entMovilEstado">Entidad con los datos a procesar</param>
 /// <param name="p_smResult">Estado final de la operacion</param>
 internal static void MvesSave_f(DBConn p_dbcAccess,
                                 ref EMovilEstado p_entMovilEstado,
                                 ref StatMsg p_smResult)
 {
     // *********
     // Agregar acá los procesos adicionales
     // *********
 }
예제 #4
0
        private string GetEstado(EMovilEstado eMovilEstado)
        {
            EEstado l_eEstado = Bll.Tablas.EdsGet(eMovilEstado.Codestado, true, m_smResult);

            if (MsgRuts.AnalizeError(App.GetMainWindow(), m_smResult))
            {
                return(null);
            }
            string l_strEstado = l_eEstado.Des;

            return(l_strEstado);
        }
예제 #5
0
파일: Moviles.cs 프로젝트: mattmoll/Merlin
        public static void fOrdenRealizandose(int numeroOrden, StatMsg p_smResult)
        {
            DBConn l_dbcAccess = null;

            try
            {
                // Obtenemos una conexion
                l_dbcAccess = DBRuts.GetConection(Connections.Dat);
                l_dbcAccess.BeginTransaction();

                Bel.EOrdenTrabajo orden = Bll.OrdenesTrabajo.Get(numeroOrden, true, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                orden.Estado = Bel.EOrdenTrabajo.Estados.EnProgreso.ToString();

                Bll.OrdenesTrabajo.SSav(l_dbcAccess, orden, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                EMovilEstado estadoActual = fGetMovilEstadoActual(l_dbcAccess, orden.Patente, p_smResult);

                // Si el estado actual no es en mantenimiento debemos pasarlo a dicho estado.
                if (!estadoActual.EstaEnEstadoMantenimiento)
                {
                    fGrabarEstadoMovil(l_dbcAccess, orden.Patente, EMovilEstado.EstadoEnMantenimiento, 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.EndTransaction(p_smResult);
                    l_dbcAccess.Close();
                }
            }
        }
예제 #6
0
파일: Moviles.cs 프로젝트: mattmoll/Merlin
        public static void fCerrarOrden(EOrdenTrabajo p_eOrdenACerrar, StatMsg p_smResult)
        {
            DBConn l_dbcAccess = null;

            try
            {
                // Obtenemos una conexion
                l_dbcAccess = DBRuts.GetConection(Connections.Dat);
                l_dbcAccess.BeginTransaction();

                int kilometrajeActualMovil = Bll.Moviles.fGetKilometrajeActualWithConn(l_dbcAccess, p_eOrdenACerrar.Patente, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                // Conseguimos la fecha de hoy
                DateTime l_dtToday = BllRuts.GetDBNow(l_dbcAccess, false, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                p_eOrdenACerrar.Kmsactuales = kilometrajeActualMovil;
                p_eOrdenACerrar.Feccierre   = l_dtToday;
                p_eOrdenACerrar.Finalizada();

                Bll.OrdenesTrabajo.SSav(l_dbcAccess, p_eOrdenACerrar, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }


                // Pedimos los registros de la tabla
                EMovilEstado estadoActual = Bll.Moviles.fGetMovilEstadoActual(l_dbcAccess, p_eOrdenACerrar.Patente, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }

                LEOrdenesTrabajo ordenesPendientes = OrdenesTrabajo.getPendByPatente(l_dbcAccess, p_eOrdenACerrar.Patente, p_smResult);
                if (p_smResult.NOk)
                {
                    return;
                }


                // Si el movil esta en mantenimiento y acabamos de cerrar la ultima orden en progreso, pasamos el movil a disponible.
                if (estadoActual.EstaEnEstadoMantenimiento && !ordenesPendientes.ToList().Exists(ordenPend => ordenPend.EstaEnProgreso))
                {
                    fGrabarEstadoMovil(l_dbcAccess, p_eOrdenACerrar.Patente, EMovilEstado.EstadoDisponible, 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.EndTransaction(p_smResult);
                    l_dbcAccess.Close();
                }
            }
        }