Ejemplo n.º 1
0
        public static void AsignarTareas2(SqlTransaction tr, int iCodActividad, int iCodRecurso, DateTime?dtFip, DateTime?dtFfp,
                                          int iTarifa, string sIndicaciones, bool bNotifExceso,
                                          bool bAdmiteRecursoPST, int IdPsn, int IdNodo, int iUltCierreEco)
        {//Asigna recursos a todas las tareas de una fase que no lo tuvieran ya
            int    iCodTarea;
            int?   nIdTarif;
            string oRec;
            bool   bRecursoAsignado, bNotifProf;

            //try
            //{
            SqlParameter[] aParam = new SqlParameter[1];
            aParam[0] = new SqlParameter("@t335_idactividad", SqlDbType.Int, 4);

            aParam[0].Value = iCodActividad;
            //Recorro todas las tareas del Proyecto Técnico
            //SqlDataReader dr2 = SqlHelper.ExecuteSqlDataReader("SUP_TAREASUP_SByt335_idactividad", aParam);
            SqlDataReader dr2 = SqlHelper.ExecuteSqlDataReader("SUP_TAREA_S4", aParam);

            while (dr2.Read())
            {
                iCodTarea  = int.Parse(dr2["t332_idtarea"].ToString());
                bNotifProf = (bool)dr2["t332_notif_prof"];
                if (iTarifa == -1)
                {
                    nIdTarif = null;
                }
                else
                {
                    nIdTarif = iTarifa;
                }

                bRecursoAsignado = TareaRecurso.InsertarTEC(tr, iCodTarea, iCodRecurso, null, null, null, dtFip, dtFfp, nIdTarif, 1, "",
                                                            sIndicaciones, bNotifExceso, bAdmiteRecursoPST, IdPsn, IdNodo, iUltCierreEco);
                if (bRecursoAsignado && bNotifProf)
                {//SOLO ENVIAMOS CORREO SI EL RECURSO NO ESTABA ASOCIADO A LA TAREA
                    oRec  = "##" + iCodTarea.ToString() + "##" + iCodRecurso.ToString() + "################";
                    oRec += Utilidades.escape(dr2["t332_destarea"].ToString()) + "##";
                    oRec += dr2["num_proyecto"].ToString() + "##" + Utilidades.escape(dr2["nom_proyecto"].ToString()) + "##";
                    oRec += Utilidades.escape(dr2["t331_despt"].ToString()) + "##";
                    oRec += Utilidades.escape(dr2["t334_desfase"].ToString()) + "##" + Utilidades.escape(dr2["t335_desactividad"].ToString()) + "##";
                    oRec += Utilidades.escape(dr2["t346_codpst"].ToString()) + "##" + Utilidades.escape(dr2["t346_despst"].ToString()) + "##";
                    oRec += Utilidades.escape(dr2["t332_otl"].ToString()) + "##" + Utilidades.escape(dr2["t332_incidencia"].ToString()) + "##";

                    TareaRecurso.EnviarCorreoRecurso(tr, "I", oRec, null, dtFip.ToString(), dtFfp.ToString(),
                                                     sIndicaciones, Utilidades.escape(dr2["t332_mensaje"].ToString()));
                }
            }
            //}
            //catch (Exception ex)
            //{
            //    sResul = "Error@#@" + Errores.mostrarError("Error al asignar técnicos a tareas.", ex);
            //}
        }
Ejemplo n.º 2
0
        public static void AsignarTareasProfesional(SqlTransaction tr, bool bSoloAsignadas, bool bSoloActivas, int iRecursoOrigen,
                                                    int iCodActividad, int iCodRecurso, DateTime?dtFip, DateTime?dtFfp,
                                                    int iTarifa, string sIndicaciones, bool bNotifExceso,
                                                    bool bAdmiteRecursoPST, int IdPsn, int IdNodo, int iUltCierreEco)
        {//Asigna recursos a todas las tareas de una fase que no lo tuvieran ya
            int    iCodTarea;
            int?   nIdTarif;
            string oRec;
            bool   bRecursoAsignado, bNotifProf;
            //try
            //{
            //Recorro todas las tareas del Proyecto Técnico
            List <SUPER.Capa_Negocio.TAREAPSP> oLista = SUPER.Capa_Negocio.ACTIVIDADPSP.GetTareasVivas(tr, iCodActividad, iRecursoOrigen, bSoloAsignadas, bSoloActivas);

            foreach (SUPER.Capa_Negocio.TAREAPSP oTarea in oLista)
            {
                iCodTarea  = oTarea.t332_idtarea;
                bNotifProf = oTarea.t332_notif_prof;
                if (iTarifa == -1)
                {
                    nIdTarif = null;
                }
                else
                {
                    nIdTarif = iTarifa;
                }

                bRecursoAsignado = TareaRecurso.InsertarTEC(tr, iCodTarea, iCodRecurso, null, null, null, dtFip, dtFfp, nIdTarif, 1, "",
                                                            sIndicaciones, bNotifExceso, bAdmiteRecursoPST, IdPsn, IdNodo, iUltCierreEco);
                if (bRecursoAsignado && bNotifProf)
                {//SOLO ENVIAMOS CORREO SI EL RECURSO NO ESTABA ASOCIADO A LA TAREA
                    oRec  = "##" + iCodTarea.ToString() + "##" + iCodRecurso.ToString() + "################";
                    oRec += oTarea.t332_destarea + "##";
                    oRec += oTarea.num_proyecto.ToString() + "##" + oTarea.nom_proyecto + "##";
                    oRec += oTarea.t331_despt + "##";
                    oRec += oTarea.t334_desfase + "##" + oTarea.t335_desactividad + "##";
                    oRec += oTarea.t346_codpst + "##" + oTarea.t346_despst + "##";
                    oRec += oTarea.t332_otl + "##" + oTarea.t332_incidencia + "##";

                    TareaRecurso.EnviarCorreoRecurso(tr, "I", oRec, null, dtFip.ToString(), dtFfp.ToString(),
                                                     sIndicaciones, Utilidades.escape(oTarea.t332_mensaje));
                }
            }
            //}
            //catch (Exception ex)
            //{
            //    sResul = "Error@#@" + Errores.mostrarError("Error al asignar técnicos a tareas.", ex);
            //}
        }
Ejemplo n.º 3
0
        public static void AsignarTareas(SqlTransaction tr, int iCodActividad, int iCodRecurso, DateTime?dtFip, DateTime?dtFfp,
                                         int iTarifa, string sIndicaciones, bool bNotifExceso)
        {//Asigna recursos a todas las tareas de una fase
            int    iCodTarea, iNumAsig;
            string oRec;

            //try
            //{
            SqlParameter[] aParam = new SqlParameter[1];
            aParam[0]       = new SqlParameter("@t335_idactividad", SqlDbType.Int, 4);
            aParam[0].Value = iCodActividad;
            //Recorro todas las tareas de la fase
            //SqlDataReader dr2 = SqlHelper.ExecuteSqlDataReader("SUP_TAREASUP_SByt335_idactividad", aParam);
            SqlDataReader dr2 = SqlHelper.ExecuteSqlDataReader("SUP_TAREA_S4", aParam);

            while (dr2.Read())
            {
                iCodTarea = int.Parse(dr2["t332_idtarea"].ToString());
                if (iTarifa == -1)
                {
                    iNumAsig = TareaRecurso.InsertarSNE(tr, iCodTarea, iCodRecurso, null, null, null, dtFip, dtFfp, null, 1, "", sIndicaciones, bNotifExceso);
                }
                else
                {
                    iNumAsig = TareaRecurso.InsertarSNE(tr, iCodTarea, iCodRecurso, null, null, null, dtFip, dtFfp, iTarifa, 1, "", sIndicaciones, bNotifExceso);
                }
                if (iNumAsig != 0)
                {//SOLO ENVIAMOS CORREO SI EL RECURSO NO ESTABA ASOCIADO A LA TAREA
                    oRec  = "##" + iCodTarea.ToString() + "##" + iCodRecurso.ToString() + "################";
                    oRec += Utilidades.escape(dr2["t332_destarea"].ToString()) + "##";
                    oRec += dr2["num_proyecto"].ToString() + "##" + Utilidades.escape(dr2["nom_proyecto"].ToString()) + "##";
                    oRec += Utilidades.escape(dr2["t331_despt"].ToString()) + "##";
                    oRec += Utilidades.escape(dr2["t334_desfase"].ToString()) + "##" + Utilidades.escape(dr2["t335_desactividad"].ToString()) + "##";
                    oRec += Utilidades.escape(dr2["t346_codpst"].ToString()) + "##" + Utilidades.escape(dr2["t346_despst"].ToString()) + "##";
                    oRec += Utilidades.escape(dr2["t332_otl"].ToString()) + "##" + Utilidades.escape(dr2["t332_incidencia"].ToString()) + "##";

                    TareaRecurso.EnviarCorreoRecurso(tr, "I", oRec, null, dtFip.ToString(), dtFfp.ToString(), sIndicaciones, dr2["t332_mensaje"].ToString());
                }
            }
            //}
            //catch (Exception ex)
            //{
            //    sResul = "Error@#@" + Errores.mostrarError("Error al asignar técnicos a tareas.", ex);
            //}
        }
        /// <summary>
        /// Si el proyecto economico permite asignación de recursos desde la parte técnica,
        ///     Graba los datos básicos de la relación Tarea/Recurso, correspondientes a la tabla t336_TAREAPSPRECURSO,
        ///     dentro de la transacción que se pasa como parámetro solo si el registro no existe ya.
        ///     Y asocia el recurso al proyecto económico
        /// Si el proyecto economico NO permite asignación de recursos desde la parte técnica,
        ///     Si el usuario ya está asignado al proyecto economico
        ///         Graba los datos básicos de la relación Tarea/Recurso, correspondientes a la tabla t336_TAREAPSPRECURSO,
        ///         dentro de la transacción que se pasa como parámetro solo si el registro no existe ya
        /// Devuelve true si se ha insertado el recurso a la tarea
        /// </summary>
        public static bool InsertarTEC(SqlTransaction tr, int nIdTarea, int nIdRecurso, Nullable <double> nEte, Nullable <DateTime> dFfe,
                                       Nullable <double> nEtp, Nullable <DateTime> dFip, Nullable <DateTime> dFfp, Nullable <int> nIdTarifa,
                                       int nEstado, string sComentario, string sIndicaciones, bool bNotifExceso,
                                       bool bAdmiteRecursosPST, int IdPsn, int IdNodo, int iUltCierreEco)
        {
            int  iRes = 0;
            bool bRes = false;

            if (bAdmiteRecursosPST)
            {
                iRes = InsertarSNE(tr, nIdTarea, nIdRecurso, nEte, dFfe, nEtp, dFip, dFfp, nIdTarifa, nEstado, sComentario, sIndicaciones, bNotifExceso);
                if (iRes != 0)
                {
                    bRes = true;
                }
                //La asignación a recurso se hace ahora por trigger desde la T336_TAREAPSPUSUARIO
                //if (!TareaRecurso.AsociadoAProyecto(tr, IdPsn, nIdRecurso))
                //{//lA FECHA DE alta en el proyecto será la siguiente al último mes cerrado del nodo
                //    DateTime dtFechaAlta = Fechas.AnnomesAFecha(Fechas.AddAnnomes(iUltCierreEco, 1));
                //    TareaRecurso.AsociarAProyecto(tr, IdNodo, nIdRecurso, IdPsn, null, dtFechaAlta, null);
                //}
                //else
                //    TareaRecurso.ReAsociarAProyecto(tr, nIdRecurso, IdPsn);
            }
            else//El PE no admite recursos desde PST
            {
                if (TareaRecurso.AsociadoAProyecto(tr, IdPsn, nIdRecurso))
                {
                    iRes = InsertarSNE(tr, nIdTarea, nIdRecurso, nEte, dFfe, nEtp, dFip, dFfp, nIdTarifa, nEstado, sComentario, sIndicaciones, bNotifExceso);
                    if (iRes != 0)
                    {
                        bRes = true;
                    }
                    //TareaRecurso.ReAsociarAProyecto(tr, nIdRecurso, IdPsn);
                }
            }

            return(bRes);
        }
        /// <summary>
        /// Obtiene los datos generales de una relación tarea/recurso,
        /// correspondientes a la tabla t336_TAREAPSPRECURSO, y devuelve una
        /// instancia u objeto del tipo TareaRecurso
        /// </summary>
        public static TareaRecurso Obtener(int nIdTarea, int nIdRecruso)
        {
            TareaRecurso o = new TareaRecurso();

            SqlParameter[] aParam = new SqlParameter[2];
            aParam[0]       = new SqlParameter("@nIdTarea", SqlDbType.Int, 4);
            aParam[1]       = new SqlParameter("@nIdRecurso", SqlDbType.Int, 4);
            aParam[0].Value = nIdTarea;
            aParam[1].Value = nIdRecruso;

            SqlDataReader dr = SqlHelper.ExecuteSqlDataReader("SUP_TAREARECURSOS", aParam);

            if (dr.Read())
            {
                if (dr["t332_idtarea"] != DBNull.Value)
                {
                    o.nIdTarea = (int)dr["t332_idtarea"];
                }
                if (dr["t314_idusuario"] != DBNull.Value)
                {
                    o.nIdRecurso = (int)dr["t314_idusuario"];
                }
                if (dr["t336_ete"] != DBNull.Value)
                {
                    o.nEte = double.Parse(dr["t336_ete"].ToString());
                }
                if (dr["t336_ffe"] != DBNull.Value)
                {
                    o.dFfe = (DateTime)dr["t336_ffe"];
                }
                if (dr["t336_etp"] != DBNull.Value)
                {
                    o.nEtp = double.Parse(dr["t336_etp"].ToString());
                }
                if (dr["t336_fip"] != DBNull.Value)
                {
                    o.dFip = (DateTime)dr["t336_fip"];
                }
                if (dr["t336_ffp"] != DBNull.Value)
                {
                    o.dFfp = (DateTime)dr["t336_ffp"];
                }
                if (dr["t333_idperfilproy"] != DBNull.Value)
                {
                    o.nIdTarifa = (int)dr["t333_idperfilproy"];
                }
                if (dr["t336_estado"] != DBNull.Value)
                {
                    o.nEstado = (int)dr["t336_estado"];
                }
                if (dr["t336_comentario"] != DBNull.Value)
                {
                    o.sComentario = (string)dr["t336_comentario"];
                }
                if (dr["t336_indicaciones"] != DBNull.Value)
                {
                    o.sIndicaciones = (string)dr["t336_indicaciones"];
                }
                if (dr["nombreCompleto"] != DBNull.Value)
                {
                    o.sNombreCompleto = (string)dr["nombreCompleto"];
                }
                if (dr["Pendiente"] != DBNull.Value)
                {
                    o.nPendiente = double.Parse(dr["Pendiente"].ToString());
                }
                if (dr["t336_completado"] != DBNull.Value)
                {
                    o.nCompletado = (int)dr["t336_completado"];
                }
                if (dr["Acumulado"] != DBNull.Value)
                {
                    o.nAcumulado = double.Parse(dr["Acumulado"].ToString());
                }
                if (dr["PrimerConsumo"] != DBNull.Value)
                {
                    o.dPrimerConsumo = (DateTime)dr["PrimerConsumo"];
                }
                if (dr["UltimoConsumo"] != DBNull.Value)
                {
                    o.dUltimoConsumo = (DateTime)dr["UltimoConsumo"];
                }
                if (dr["t336_notif_exceso"] != DBNull.Value)
                {
                    o.bNotifExceso = (bool)dr["t336_notif_exceso"];
                }
            }
            else
            {
                throw (new NullReferenceException("No se ha obtenido ningún dato de la tarea / profesional"));
            }

            dr.Close();
            dr.Dispose();

            return(o);
        }