/// <summary> /// Método encargado de Deshabilitar la Orden de Trabajo /// </summary> /// <param name="id_usuario">Usuario que Actualiza el Registro</param> /// <returns></returns> public RetornoOperacion DeshabilitaOrdenTrabajoActividad(int id_usuario) { //Declaramos objeto resultado RetornoOperacion resultado = new RetornoOperacion(); //Validamos que las asignaciones se encuentran como registradas if ((EstatusOrdenActividad)this._id_estatus == EstatusOrdenActividad.Registrada) { //Validamos Estatus de la Requisiciones resultado = OrdenTrabajoActividadRequisicion.ValidaRequisicionesPendientexDeshabilitarActividad(this._id_orden_actividad); //Validamos Resultado if (resultado.OperacionExitosa) { //Devolviendo Resultado Obtenido resultado = editaOrdenTrabajoActividad(this._id_actividad, this._id_orden, this._id_falla, (EstatusOrdenActividad)this._id_estatus, this._fecha_inicio, this._fecha_fin, this._duracion, id_usuario, false); } } else { resultado = new RetornoOperacion("El estatus de la actividad do permite su eliminación"); } //Devolvemos Resultado return(resultado); }
/// <summary> /// Realiza la deshabilitación de las requisiciónes y sus relaciones existentes con una actividad de Orden de Trabajo especifica. /// </summary> /// <param name="idOrdenActividad">Id de Actividad</param> /// <param name="idUsuario">Id de Usuario</param> /// <returns></returns> public static RetornoOperacion DeshabilitaRequisicionesActividadOrden(int idOrdenActividad, int idUsuario) { //Declarando objeto de retorno RetornoOperacion resultado = new RetornoOperacion(1); //Cargando las relaciones existentes con Requisiciones using (DataTable dt = CargaRequisicionesActividad(idOrdenActividad)) { //Validando el origen de datos if (TSDK.Datos.Validacion.ValidaOrigenDatos(dt)) { //Instanciando transacción using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Para cada registro relación devuelto foreach (DataRow f in dt.Rows) { //Instanciando la relación correspondiente using (OrdenTrabajoActividadRequisicion r = new OrdenTrabajoActividadRequisicion(f.Field <int>("IdOrdenActividadRequisicion"))) { //Si la relación existe if (r.id_orden_actividad_requisicion > 0) { //Realziando la deshabilitación resultado = r.DeshabilitaOrdenActividadRequisicion(idUsuario, true); //Si se produjo algún error if (!resultado.OperacionExitosa) { //Saliendo del ciclo de deshabilitación break; } } } } //Validando que la Operación fuese Exitosa if (resultado.OperacionExitosa) { //Completando Transacción trans.Complete(); } } } //Si no contiene el esquema requerido else { resultado = new RetornoOperacion("Error al consultar las requisiciones de la actividad."); } } //Devolvinedo el resultado obtenido return(resultado); }
/// <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); }