예제 #1
0
        /// <summary>
        /// Terminamos Actividad
        /// </summary>
        /// <param name="fecha">fecha</param>
        /// <param name="id_usuario">Id Usuario</param>
        /// <returns></returns>
        public RetornoOperacion TerminaActividad(DateTime fecha, int id_usuario)
        {
            //Establecemos resultado
            RetornoOperacion res = new RetornoOperacion();

            //Validamos Estatus de la Actividad
            if ((EstatusOrdenActividad)this._id_estatus == EstatusOrdenActividad.Iniciada)
            {
                //Validamos que todas las asignaciones se encuentren Terminadas
                if (!Validacion.ValidaOrigenDatos(ActividadAsignacion.CargaAsignacionesPendientesTermino(this._id_orden_actividad)))
                {
                    //Validamos Fecha de la Actividad vs fecha de termino de la última Asignación
                    using (ActividadAsignacion objAsignacion = new ActividadAsignacion(ActividadAsignacion.ObtieneUltimaAsignacionTerminada(this._id_orden_actividad)))
                    {
                        if (fecha >= objAsignacion.fin_asignacion)
                        {
                            //Validamos Requisiciones Pendientes
                            res = OrdenTrabajoActividadRequisicion.ValidaRequisicionesPendientexTerminarActividad(this._id_orden_actividad);

                            //Validamos Resultado
                            if (res.OperacionExitosa)
                            {
                                //Terminamos Actividad
                                res = editaOrdenTrabajoActividad(this._id_actividad, this._id_orden, this._id_falla, EstatusOrdenActividad.Terminada, this._fecha_inicio, fecha, ActividadAsignacion.ObtieneDuracionAsignacion(this._id_orden_actividad), id_usuario, this.habilitar);
                            }
                        }
                        else
                        {
                            //Establecemos Mesaje Error
                            res = new RetornoOperacion("La fecha de termino de la actividad " + fecha.ToString("dd/MM/yyyy HH:mm") + " debe ser mayor a la fecha de termino de la última asignación " + objAsignacion.fin_asignacion.ToString("dd/MM/yyyy HH:mm") + ".");
                        }
                    }
                }
                else
                //Mostramos mensaje Resultado
                {
                    res = new RetornoOperacion("Las asignaciones deben estar en estatus Terminada.");
                }
            }
            else
            {
                res = new RetornoOperacion("El estatus de la actividad no permite su edición.");
            }
            //Devolvemos resultado
            return(res);
        }
예제 #2
0
        /// <summary>
        /// Cancelamos Actividad
        /// </summary>
        /// <param name="id_usuario">Id Usuario</param>
        /// <returns></returns>
        public RetornoOperacion CancelaOrdenTrabajoActividad(int id_usuario)
        {
            //Establecemos resultado
            RetornoOperacion res = new RetornoOperacion();

            //Validamos que el estatus de la Actividad
            if ((EstatusOrdenActividad)this._id_estatus == EstatusOrdenActividad.Terminada)
            {
                //Validamos que todas las asignaciones se encuentren Canceladas
                if (!Validacion.ValidaOrigenDatos(ActividadAsignacion.CargaAsignacionesDifEstatus(this._id_orden_actividad, ActividadAsignacion.EstatusAsignacionActividad.Cancelada)))
                {
                    //Validamos Requisiciones Pendientes
                    res = OrdenTrabajoActividadRequisicion.ValidaRequisicionesPendientexTerminarActividad(this._id_orden_actividad);
                    //Validamos Resultado
                    if (res.OperacionExitosa)
                    {
                        //Cancelamos la Actividad
                        res = editaOrdenTrabajoActividad(this._id_actividad, this._id_orden, this._id_falla, EstatusOrdenActividad.Cancelada, this._fecha_inicio, this._fecha_fin, this._duracion, id_usuario, this.habilitar);
                    }
                }
                else
                //Mostramos mensaje Resultado
                {
                    res = new RetornoOperacion("Las asignaciones deben estar en estatus Cancelada.");
                }
            }
            //Establecemos Mesaje Error
            else
            {
                //Mostramos  Mensaje Error
                res = new RetornoOperacion("El estatus de la Actividad no permite su edición. ");
            }

            //Devolvemos resultado
            return(res);
        }