/// <summary>
        ///  Método encargado de Terminar la Asignación
        /// </summary>
        /// <param name="fecha">fecha</param>
        /// <returns></returns>
        public RetornoOperacion TerminarAsignacion(DateTime fecha)
        {
            //Declarando Objeto de retorno
            RetornoOperacion result = new RetornoOperacion();

            //Instanciando Asignación
            using (ActividadAsignacion aa = new ActividadAsignacion(this._id_asignacion_actividad))
            {
                //Editando Asignación
                result = aa.TerminaAsignacion(fecha, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario);
            }

            //Validando que la Operación fuese Exitosa
            if (result.OperacionExitosa)
            {
                //Asignando Variables
                this._id_asignacion_actividad = result.IdRegistro;
            }

            //Inicializando Control
            inicializaControlUsuario(1);

            //Asignando Mensaje de Operación
            TSDK.ASP.ScriptServer.MuestraNotificacion(this, result, TSDK.ASP.ScriptServer.PosicionNotificacion.AbajoDerecha);

            //Devolviendo Resultado Obtenido
            return(result);
        }
Exemple #2
0
        /// <summary>
        /// Método encaragdo de Terminar la Actividad y sus Asignaciones Ligadas
        /// </summary>
        /// <param name="estatus">Estatus de la Actividad</param>
        /// <param name="id_usuario">Usuario que Actualiza el Registro</param>
        /// <returns></returns>
        public RetornoOperacion TerminaActividadAsignaciones(DateTime fecha_fin, int id_usuario)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();

            //Inicializando Bloque Transaccional
            using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Validando que la Actividad este Iniciada ó Pausada
                if ((EstatusOrdenActividad)this._id_estatus == EstatusOrdenActividad.Iniciada ||
                    (EstatusOrdenActividad)this._id_estatus == EstatusOrdenActividad.Pausada)
                {
                    //Obteniendo Asignaciones de la Actividad
                    using (DataTable dtAsignaciones = ActividadAsignacion.CargaAsignacionesActividadOT(this._id_orden_actividad))
                    {
                        //Validando que existan Asignaciones
                        if (Validacion.ValidaOrigenDatos(dtAsignaciones))
                        {
                            //Recorriendo Asignaciones
                            foreach (DataRow dr in dtAsignaciones.Rows)
                            {
                                //Instanciando Asignación
                                using (ActividadAsignacion asignacion = new ActividadAsignacion(Convert.ToInt32(dr["Id"])))
                                {
                                    //Validando que exista la Asignación
                                    if (asignacion.habilitar)
                                    {
                                        //Validando Estatus
                                        switch (asignacion.Estatus)
                                        {
                                        case ActividadAsignacion.EstatusAsignacionActividad.Iniciada:
                                        case ActividadAsignacion.EstatusAsignacionActividad.Pausada:
                                        {
                                            //Terminando Asignación
                                            result = asignacion.TerminaAsignacion(fecha_fin, id_usuario);
                                            break;
                                        }

                                        case ActividadAsignacion.EstatusAsignacionActividad.Terminada:
                                        case ActividadAsignacion.EstatusAsignacionActividad.Cancelada:
                                        {
                                            //Instanciando Retorno
                                            result = new RetornoOperacion(asignacion.id_asignacion_actividad);
                                            break;
                                        }

                                        case ActividadAsignacion.EstatusAsignacionActividad.Asignada:
                                        {
                                            //Instanciando Excepción
                                            result = new RetornoOperacion("La Asignación debe de estar Iniciada ó Pausada para poder Terminarla");
                                            break;
                                        }
                                        }

                                        //Validando Operación Exitosa
                                        if (!result.OperacionExitosa)
                                        {
                                            //Terminando Ciclo
                                            break;
                                        }
                                    }
                                    else
                                    {
                                        //Instanciando Excepción
                                        result = new RetornoOperacion("No se puede Acceder a la Asignación");

                                        //Terminando Ciclo
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
                //Si esta Registrada o Cancelada
                else if ((EstatusOrdenActividad)this._id_estatus == EstatusOrdenActividad.Registrada ||
                         (EstatusOrdenActividad)this._id_estatus == EstatusOrdenActividad.Cancelada)
                {
                    //Instanciando Excepción
                    result = new RetornoOperacion("La Actividad debe de estar Iniciada ó Pausada para poder Terminarla");
                }
                //Si esta Terminada
                else if ((EstatusOrdenActividad)this._id_estatus == EstatusOrdenActividad.Terminada)
                {
                    //Instanciando Asignación
                    result = new RetornoOperacion(this._id_orden_actividad);
                }

                //Validando Operación Exitosa
                if (result.OperacionExitosa)
                {
                    //Editamos el estatus asi como la fecha de inicio
                    result = this.editaOrdenTrabajoActividad(this.id_actividad, this.id_orden, this.id_falla, EstatusOrdenActividad.Terminada, this.fecha_inicio, fecha_fin, this._duracion, id_usuario, this.habilitar);

                    //Validando Operación Exitosa
                    if (result.OperacionExitosa)
                    {
                        //Instanciando Registro
                        result = new RetornoOperacion(this._id_orden_actividad);

                        //Completando Transacción
                        trans.Complete();
                    }
                }
            }

            //Devolviendo Resultado Obtenido
            return(result);
        }