/// <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); }
/// <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); }