Esempio n. 1
0
        /// <summary>
        /// Asignamos el Operador a la Unidad
        /// </summary>
        /// <param name="id_operador">Id Operador</param>
        /// <param name="id_unidad">Id Unidad</param>
        /// <param name="fecha_inicio"> Fecha de Inicio</param>
        /// <param name="id_usuario">Id Usuario</param>
        /// <returns></returns>
        public static RetornoOperacion InsertaAsignacionOperadorAUnidad(int id_operador, int id_unidad, DateTime fecha_inicio, int id_usuario)
        {   //Declaramos Objeto Resultado
            RetornoOperacion resultado = new RetornoOperacion();

            //Editamos Id Operador de la Unidad
            using (Unidad objUnidad = new Unidad(id_unidad))
                //Editamos Id Operador de la Unidad
                resultado = objUnidad.ActualizaOperadorAsignado(id_operador, fecha_inicio, id_usuario);

            //Si se actualizó correctamente
            if (resultado.OperacionExitosa)
            {
                //Armando Objeto de Parametros
                object[] param = { 1, 0, id_operador, id_unidad, Fecha.ConvierteDateTimeObjeto(fecha_inicio), null, id_usuario, true, "", "" };

                //Realizando la actualización
                resultado = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nombre_stored_procedure, param);

                //Si hay algún error
                if (!resultado.OperacionExitosa)
                {
                    resultado = new RetornoOperacion("La fecha de Inicio de la nueva asignación se traslapa con alguna asignación previa o existe una asignación inconclusa.");
                }
            }
            //Devolvemos Resultado
            return(resultado);
        }
Esempio n. 2
0
        /// <summary>
        /// Finaliza la asignación en la fecha indicada
        /// </summary>
        /// <param name="fecha_fin">Fecha de Fin de asignación</param>
        /// <param name="id_usuario">Id de Usuario que actualiza</param>
        /// <returns></returns>
        public RetornoOperacion TerminaAsignacionOperadorUnidad(DateTime fecha_fin, int id_usuario)
        {
            //Declaramos Objeto Resultado sin errores
            RetornoOperacion resultado = new RetornoOperacion(this._id_asignacion_operador_unidad);

            //Validando que ambos recursos estén disponibles (tractor y operador)
            using (Operador o = new Operador(this._id_operador))
            {
                using (Unidad u = new Unidad(this._id_unidad))
                {
                    //Si ambos elementos fueron encontrados
                    if (o.habilitar && u.habilitar)
                    {
                        //Validando que su estatus sea disponible
                        if ((o.estatus != Operador.Estatus.Disponible && o.estatus != Operador.Estatus.Registrado) || u.EstatusUnidad != Unidad.Estatus.ParadaDisponible)
                        {
                            resultado = new RetornoOperacion(string.Format("La unidad '{0}' y el operador '{1}' deben tener estatus disponible para terminar su asignación.", u.numero_unidad, o.nombre));
                        }

                        //Si no hay problemas con su estatus
                        if (resultado.OperacionExitosa)
                        {
                            //validando que la fecha de fin sea menor a la fecha de inicio de la asignación
                            if (fecha_fin.CompareTo(this._fecha_inicio) >= 0)
                            {
                                //Se actualiza el Id de Operador asignado a la unidad
                                resultado = u.ActualizaOperadorAsignado(0, fecha_fin, id_usuario);
                                //Si se actualizó la unidad
                                if (resultado.OperacionExitosa)
                                {
                                    //Se termina la asignación actual
                                    resultado = editaAsignacionOperadorUnidad(this._id_operador, this._id_unidad, this._fecha_inicio, fecha_fin, id_usuario, this._habilitar);

                                    //Si hay algún error
                                    if (!resultado.OperacionExitosa)
                                    {
                                        resultado = new RetornoOperacion("La fecha de Fin de asignación se traslapa con alguna asignación previa.");
                                    }
                                }
                            }
                            //De lo contrario
                            else
                            {
                                resultado = new RetornoOperacion(string.Format("La fecha de fin '{0:dd/MM/yyyy HH:mm}' debe ser mayor a la fecha de inicio '{1:dd/MM/yyyy HH:mm}' de la asignación.", fecha_fin, this._fecha_inicio));
                            }
                        }
                    }
                    else
                    {
                        resultado = new RetornoOperacion("La unidad o el operador no fueron localizados.");
                    }
                }
            }

            //Devolvemos Resultado
            return(resultado);
        }