internal Models.TareaIAP SelectBitacora(Int32 idTarea)
        {
            Models.TareaIAP oTareaIAP = null;
            IDataReader     dr        = null;

            try
            {
                SqlParameter[] dbparams = new SqlParameter[1] {
                    Param(enumDBFields.t332_idtarea, idTarea)
                };

                dr = cDblib.DataReader("SUP_TAREAPSPS", dbparams);
                if (dr.Read())
                {
                    oTareaIAP = new Models.TareaIAP();
                    oTareaIAP.t332_idtarea  = idTarea;
                    oTareaIAP.t332_destarea = Convert.ToString(dr["t332_destarea"]);
                    oTareaIAP.t331_idpt     = Convert.ToInt32(dr["t331_idpt"]);
                    if (!Convert.IsDBNull(dr["t334_idfase"]))
                    {
                        oTareaIAP.t334_idfase = Convert.ToInt32(dr["t334_idfase"]);
                    }
                    if (!Convert.IsDBNull(dr["t335_idactividad"]))
                    {
                        oTareaIAP.t335_idactividad = Convert.ToInt32(dr["t335_idactividad"]);
                    }
                    oTareaIAP.t301_idproyecto   = Convert.ToInt32(dr["t301_idproyecto"]);
                    oTareaIAP.t301_denominacion = Convert.ToString(dr["t301_denominacion"]);
                    oTareaIAP.t331_despt        = Convert.ToString(dr["t331_despt"]);
                    oTareaIAP.t334_desfase      = Convert.ToString(dr["t334_desfase"]);
                    oTareaIAP.t335_desactividad = Convert.ToString(dr["t335_desactividad"]);
                    oTareaIAP.t305_seudonimo    = Convert.ToString(dr["t305_seudonimo"]);
                }
                return(oTareaIAP);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (dr != null)
                {
                    if (!dr.IsClosed)
                    {
                        dr.Close();
                    }
                    dr.Dispose();
                }
            }
        }
        //#region funciones publicas

        /// <summary>
        /// Obtiene un TareaIAP a partir del id
        /// </summary>
        internal Models.TareaIAP Select(Int32 idTarea, Int32 nUsuario)
        {
            Models.TareaIAP oTareaIAP = null;
            IDataReader     dr        = null;

            try
            {
                SqlParameter[] dbparams = new SqlParameter[2] {
                    Param(enumDBFields.nIdTarea, idTarea),
                    Param(enumDBFields.nUsuario, nUsuario)
                };

                dr = cDblib.DataReader("SUP_TAREAIAP_S", dbparams);
                if (dr.Read())
                {
                    oTareaIAP = new Models.TareaIAP();
                    oTareaIAP.t332_idtarea  = Convert.ToInt32(dr["t332_idtarea"]);
                    oTareaIAP.t332_destarea = Convert.ToString(dr["t332_destarea"]);
                    oTareaIAP.t331_idpt     = Convert.ToInt32(dr["t331_idpt"]);
                    if (!Convert.IsDBNull(dr["t335_idactividad"]))
                    {
                        oTareaIAP.t335_idactividad = Convert.ToInt32(dr["t335_idactividad"]);
                    }
                    oTareaIAP.t301_idproyecto   = Convert.ToInt32(dr["t301_idproyecto"]);
                    oTareaIAP.t305_seudonimo    = Convert.ToString(dr["t305_seudonimo"]);
                    oTareaIAP.t301_denominacion = Convert.ToString(dr["t301_denominacion"]);
                    oTareaIAP.t331_despt        = Convert.ToString(dr["t331_despt"]);
                    oTareaIAP.t332_destarealong = Convert.ToString(dr["t332_destarealong"]);
                    oTareaIAP.t332_notas1       = Convert.ToString(dr["t332_notas1"]);
                    oTareaIAP.t332_notas2       = Convert.ToString(dr["t332_notas2"]);
                    oTareaIAP.t332_notas3       = Convert.ToString(dr["t332_notas3"]);
                    oTareaIAP.t332_notas4       = Convert.ToString(dr["t332_notas4"]);
                    oTareaIAP.t332_mensaje      = Convert.ToString(dr["t332_mensaje"]);
                    oTareaIAP.t334_desfase      = Convert.ToString(dr["t334_desfase"]);
                    oTareaIAP.t335_desactividad = Convert.ToString(dr["t335_desactividad"]);

                    oTareaIAP.t336_etp = Convert.ToDouble(dr["t336_etp"]);
                    if (!Convert.IsDBNull(dr["t336_ffp"]))
                    {
                        oTareaIAP.t336_ffp = Convert.ToDateTime(dr["t336_ffp"]);
                    }
                    oTareaIAP.t336_ete = Convert.ToDouble(dr["t336_ete"]);
                    if (!Convert.IsDBNull(dr["t336_ffe"]))
                    {
                        oTareaIAP.t336_ffe = Convert.ToDateTime(dr["t336_ffe"]);
                    }
                    if (!Convert.IsDBNull(dr["t336_completado"]))
                    {
                        oTareaIAP.t336_completado = Convert.ToByte(dr["t336_completado"]);
                    }
                    oTareaIAP.t336_indicaciones = Convert.ToString(dr["t336_indicaciones"]);
                    oTareaIAP.t336_comentario   = Convert.ToString(dr["t336_comentario"]);

                    if (!Convert.IsDBNull(dr["dPrimerConsumo"]))
                    {
                        oTareaIAP.dPrimerConsumo = Convert.ToDateTime(dr["dPrimerConsumo"]);
                    }
                    if (!Convert.IsDBNull(dr["dUltimoConsumo"]))
                    {
                        oTareaIAP.dUltimoConsumo = Convert.ToDateTime(dr["dUltimoConsumo"]);
                    }
                    if (!Convert.IsDBNull(dr["esfuerzo"]))
                    {
                        oTareaIAP.esfuerzo = Convert.ToDouble(dr["esfuerzo"]);
                    }
                    if (!Convert.IsDBNull(dr["esfuerzoenjor"]))
                    {
                        oTareaIAP.esfuerzoenjor = Convert.ToDouble(dr["esfuerzoenjor"]);
                    }
                    oTareaIAP.nPendienteEstimado = Convert.ToDouble(dr["nPendienteEstimado"]);
                    if (!Convert.IsDBNull(dr["nAvanceTeorico"]))
                    {
                        oTareaIAP.nAvanceTeorico = Convert.ToDouble(dr["nAvanceTeorico"]);
                    }
                    oTareaIAP.t332_impiap   = Convert.ToBoolean(dr["t332_impiap"]);
                    oTareaIAP.t332_notasiap = Convert.ToBoolean(dr["t332_notasiap"]);
                    if (!Convert.IsDBNull(dr["t324_idmodofact"]))
                    {
                        oTareaIAP.t324_idmodofact = Convert.ToInt32(dr["t324_idmodofact"]);
                    }
                    oTareaIAP.t324_denominacion = Convert.ToString(dr["t324_denominacion"]);
                    oTareaIAP.t336_estado       = Convert.ToBoolean(dr["t336_estado"]);
                }
                return(oTareaIAP);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (dr != null)
                {
                    if (!dr.IsClosed)
                    {
                        dr.Close();
                    }
                    dr.Dispose();
                }
            }
        }