/// <summary>
        /// Inserta una operación.
        /// </summary>
        /// <param name="poOperacion">cls_asignacionOperacion a insertar</param>
        /// <returns>valor del resultado de la ejecución de la sentencia</returns>
        public static int insertRegistroOperacion(cls_registroOperacion poRegistro)
        {
            int vi_resultado;

            try
            {
                String vs_comando = "PA_cont_operacionRegistroInsert";

                cls_parameter[] vu_parametros =
                    {
                        new cls_parameter("@paramPK_codigo", poRegistro.pFK_Asignacion.pFK_Operacion.pPK_Codigo),
                        new cls_parameter("@paramComentario", poRegistro.pComentario),
                        new cls_parameter("@paramUsuario", poRegistro.pFK_Asignacion.pFK_Usuario),
                        new cls_parameter("@paramFecha", poRegistro.pFecha),
                        new cls_parameter("@paramHoras", poRegistro.pHoras)
                    };

                cls_sqlDatabase.beginTransaction();

                vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros);

                poRegistro.pPK_registro = Convert.ToInt32(cls_gestorUtil.selectMax(cls_constantes.OPERACION_REGISTRO, "PK_registro"));

                cls_interface.insertarTransacccionBitacora(cls_constantes.INSERTAR, cls_constantes.OPERACION_REGISTRO, poRegistro.pPK_registro + "/" + poRegistro.pFK_Asignacion.pFK_Operacion.pPK_Codigo + "/" + poRegistro.pFK_Asignacion.pFK_Usuario);

                cls_sqlDatabase.commitTransaction();

                return vi_resultado;

            }
            catch (Exception po_exception)
            {
                cls_sqlDatabase.rollbackTransaction();
                throw new Exception("Ocurrió un error al insertar la operación.", po_exception);
            }
        }
        /// <summary>
        /// Método que actualiza un 
        /// registro de la tabla t_cont_operacion_registro
        /// </summary>
        /// <param name="poOperacion"></param>
        /// <returns></returns>
        public static int updateRegistroOperacion(cls_registroOperacion poRegistro)
        {
            int vi_resultado;

            try
            {
                String vs_comando = "PA_cont_operacionRegistroUpdate";
                cls_parameter[] vu_parametros =
                    {
                 		     new cls_parameter("@paramPK_registro", poRegistro.pPK_registro),
                             new cls_parameter("@paramPK_codigo", poRegistro.pFK_Asignacion.pFK_Operacion.pPK_Codigo),
                             new cls_parameter("@paramUsuario", poRegistro.pFK_Asignacion.pFK_Usuario),
                             new cls_parameter("@paramHoras", poRegistro.pHoras),
                             new cls_parameter("@comentario", poRegistro.pComentario)
                    };

                cls_sqlDatabase.beginTransaction();

                vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros);

                cls_interface.insertarTransacccionBitacora(cls_constantes.MODIFICAR, cls_constantes.OPERACION_REGISTRO, poRegistro.pPK_registro + "/" + poRegistro.pFK_Asignacion.pFK_Operacion.pPK_Codigo + "/" + poRegistro.pFK_Asignacion.pFK_Usuario);

                cls_sqlDatabase.commitTransaction();

                return vi_resultado;

            }
            catch (Exception po_exception)
            {
                cls_sqlDatabase.rollbackTransaction();
                throw new Exception("Ocurrió un error al modificar la operación.", po_exception);
            }
        }
        /// <summary>
        /// Carga un registro de tipo operación.
        /// </summary>
        /// <param name="ps_actividad">String código</param>
        /// <param name="ps_proyecto">String proyecto.</param>
        /// <param name="ps_registro">String registro</param>
        /// <param name="ps_fecha">String fecha.</param>
        private void cargarOperacion(string ps_actividad, string ps_proyecto, string ps_registro, string ps_fecha)
        {
            cls_registroOperacion vo_registro;
            cls_operacion vo_operacion;
            cls_asignacionOperacion vo_asignacion;

            try
            {
                vo_registro = new cls_registroOperacion();

                vo_operacion = new cls_operacion();
                vo_operacion.pPK_Codigo = ps_actividad;
                vo_operacion = cls_gestorOperacion.seleccionarOperacion(vo_operacion);
                vo_operacion.pFK_Proyecto = Convert.ToInt32(ps_proyecto);

                vo_asignacion = new cls_asignacionOperacion();
                vo_asignacion.pFK_Operacion = vo_operacion;
                vo_asignacion.pFK_Usuario = cls_interface.vs_usuarioActual;

                vo_registro = new cls_registroOperacion();
                vo_registro.pFK_Asignacion = vo_asignacion;
                vo_registro.pFecha = Convert.ToDateTime(ps_fecha);

                if (String.IsNullOrEmpty(ps_registro))
                {
                    vo_registro.pHoras = 0;
                    vo_registro.pComentario = String.Empty;
                }
                else
                {
                    vo_registro.pPK_registro = Convert.ToDecimal(ps_registro);
                    cls_gestorRegistroOperacion.seleccionarRegistroOperacion(vo_registro);
                }

                cls_variablesSistema.obj = vo_registro;

            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// Método que obtiene la información de un
        /// registro de operación
        /// </summary>
        /// <param name="poOperacion">cls_registroOperacion operación</param>
        /// <returns></returns>
        public static cls_registroOperacion seleccionarRegistroOperacion(cls_registroOperacion poRegistro)
        {
            try
            {
                String vs_comando = "PA_cont_operacionRegistroSelectOne";
                cls_parameter[] vu_parametros = {
                                                       new cls_parameter("@paramPK_registro", poRegistro.pPK_registro),
                                                       new cls_parameter("@paramPK_codigo", poRegistro.pFK_Asignacion.pFK_Operacion.pPK_Codigo),
                                                       new cls_parameter("@paramUsuario", poRegistro.pFK_Asignacion.pFK_Usuario)
                                                   };

                DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros);

                poRegistro.pHoras = Convert.ToDecimal( vu_dataSet.Tables[0].Rows[0]["horas"].ToString());

                poRegistro.pComentario = vu_dataSet.Tables[0].Rows[0]["comentario"].ToString();

                return poRegistro;

            }
            catch (Exception po_exception)
            {
                cls_sqlDatabase.rollbackTransaction();
                throw new Exception("Ocurrió un error al obtener un registro de operación específico.", po_exception);
            }
        }
        /// <summary>
        /// Carga un registro de tipo operación.
        /// </summary>
        /// <param name="ps_actividad">String código</param>
        /// <param name="ps_proyecto">String proyecto.</param>
        /// <param name="ps_registro">String registro</param>
        /// <param name="ps_fecha">String fecha.</param>
        private void cargarOperacion(string ps_actividad, string ps_proyecto, string ps_registro, string ps_fecha)
        {
            cls_registroOperacion vo_registro;
            cls_operacion vo_operacion;
            cls_asignacionOperacion vo_asignacion;

            try
            {
                vo_registro = new cls_registroOperacion();

                vo_operacion = new cls_operacion();
                vo_operacion.pPK_Codigo = ps_actividad;
                vo_operacion = cls_gestorOperacion.seleccionarOperacion(vo_operacion, ((cls_usuario)Session["cls_usuario"]).pPK_usuario);
                vo_operacion.pFK_Proyecto = Convert.ToInt32(ps_proyecto);

                vo_asignacion = new cls_asignacionOperacion();
                vo_asignacion.pFK_Operacion = vo_operacion;
                vo_asignacion.pFK_Usuario = ((COSEVI.CSLA.lib.accesoDatos.App_InterfaceComunes.cls_interface)this.Session[CSLA.web.App_Constantes.cls_constantes.INTERFACES]).vs_usuarioActual;

                vo_registro = new cls_registroOperacion();
                vo_registro.pFK_Asignacion = vo_asignacion;
                vo_registro.pFecha = Convert.ToDateTime(ps_fecha);

                if (String.IsNullOrEmpty(ps_registro))
                {
                    vo_registro.pHoras = 0;
                    vo_registro.pComentario = String.Empty;
                }
                else
                {
                    vo_registro.pPK_registro = Convert.ToDecimal(ps_registro);
                    cls_gestorRegistroOperacion.seleccionarRegistroOperacion(vo_registro);
                }

                ((CSLA.web.App_Variables.cls_variablesSistema)this.Session[CSLA.web.App_Constantes.cls_constantes.VARIABLES]).obj = vo_registro;

            }
            catch (Exception)
            {
                throw;
            }
        }