コード例 #1
0
    protected string ObtenerTareas(string sIdAccion)
    {
        //Relacion de tareas asignadas a la acción
        string sResul = "", sCad, sFecha, sCodTarea;
        double fPrev = 0, fCons = 0, fAvance = 0;
        bool   bAvanceAutomatico;

        StringBuilder sbuilder = new StringBuilder();

        try
        {
            sbuilder.Append("<table id='tblTareas' class='texto MANO' style='width: 920px; ' >");
            sbuilder.Append("<colgroup><col style='width:50px;' />");  //idTarea
            sbuilder.Append("<col style='width:370px;' />");           //Desc Tarea
            sbuilder.Append("<col style='width:75px;'/>");             //ETPL
            sbuilder.Append("<col style='width:75px;'/>");             //FIPL
            sbuilder.Append("<col style='width:75px;'/>");             //FFPL
            sbuilder.Append("<col style='width:75px;'/>");             //ETPR
            sbuilder.Append("<col style='width:75px;'/>");             //FFPR
            sbuilder.Append("<col style='width:75px;'/>");             //CONSUMO
            sbuilder.Append("<col style='width:50px;' /></colgroup>"); //AVANCE
            sbuilder.Append("<tbody>");
            SqlDataReader dr = ACCIONTAREAS_PT.SelectByt410_idaccion(tr, int.Parse(sIdAccion));
            while (dr.Read())
            {
                StringBuilder sbTitle = new StringBuilder();
                sbTitle.Append("<b>Proy. Eco.</b>: ");
                sbTitle.Append(dr["nom_proyecto"].ToString().Replace((char)34, (char)39));
                sbTitle.Append("<br><b>Proy. Téc.</b>: ");
                sbTitle.Append(dr["t331_despt"].ToString().Replace((char)34, (char)39));
                if (dr["t334_desfase"].ToString() != "")
                {
                    sbTitle.Append("<br><b>Fase</b>:          ");
                    sbTitle.Append(dr["t334_desfase"].ToString().Replace((char)34, (char)39));
                }
                if (dr["t335_desactividad"].ToString() != "")
                {
                    sbTitle.Append("<br><b>Actividad</b>:  ");
                    sbTitle.Append(dr["t335_desactividad"].ToString().Replace((char)34, (char)39));
                }

                sCodTarea = dr["t332_idtarea"].ToString();
                sbuilder.Append("<tr bd='N' id='" + sCodTarea);
                sbuilder.Append("' onclick='mm(event)' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../../images/info.gif' style='vertical-align:middle'>  Estructura] body=[");
                sbuilder.Append(sbTitle + "]\" style='height:16px'>");
                sbuilder.Append("<td style='text-align:right;'>" + int.Parse(sCodTarea).ToString("#,###") + "</td>");
                sbuilder.Append("<td><nobr class='NBR W370' style='padding-left:5px;'>" + dr["t332_destarea"].ToString() + "</nobr></td>");

                if (dr["t332_etpl"] != DBNull.Value)
                {
                    sbuilder.Append("<td style='text-align:right;'>");
                    sbuilder.Append(double.Parse(dr["t332_etpl"].ToString()).ToString("N"));
                    sbuilder.Append("</td>");
                }
                else
                {
                    sbuilder.Append("<td></td>");
                }


                sFecha = dr["t332_fipl"].ToString();
                if (sFecha != "")
                {
                    sFecha = DateTime.Parse(dr["t332_fipl"].ToString()).ToShortDateString();
                }
                sbuilder.Append("<td style='padding-left:5px;'>" + sFecha + "</td>");

                sFecha = dr["t332_ffpl"].ToString();
                if (sFecha != "")
                {
                    sFecha = DateTime.Parse(dr["t332_ffpl"].ToString()).ToShortDateString();
                }
                sbuilder.Append("<td>" + sFecha + "</td>");

                if (dr["t332_etpr"] != DBNull.Value)
                {
                    sbuilder.Append("<td style='text-align:right;'>");
                    sbuilder.Append(double.Parse(dr["t332_etpr"].ToString()).ToString("N"));
                    sbuilder.Append("</td>");
                }
                else
                {
                    sbuilder.Append("<td></td>");
                }


                sFecha = dr["t332_ffpr"].ToString();
                if (sFecha != "")
                {
                    sFecha = DateTime.Parse(dr["t332_ffpr"].ToString()).ToShortDateString();
                }
                sbuilder.Append("<td style='padding-left:5px;'>" + sFecha + "</td>");

                sbuilder.Append("<td style='text-align:right;'>" + double.Parse(dr["consumo"].ToString()).ToString("N") + "</td>");
                //%Avance
                bAvanceAutomatico = (bool)dr["t332_avanceauto"];
                if (!bAvanceAutomatico)
                {
                    fAvance = double.Parse(dr["t332_AVANCE"].ToString());
                }
                else
                {
                    fPrev = double.Parse(dr["t332_etpr"].ToString());
                    fCons = double.Parse(dr["Consumo"].ToString());
                    if (fPrev == 0)
                    {
                        fAvance = 0;
                    }
                    else
                    {
                        fAvance = (fCons * 100) / fPrev;
                    }
                }
                sCad = fAvance.ToString("N");
                sbuilder.Append("<td style='text-align:right; padding-right:5px;'>" + sCad);
                sbuilder.Append("</td></tr>");
                //i++;
            }
            dr.Close();
            dr.Dispose();
            sbuilder.Append("</tbody>");
            sbuilder.Append("</table>");
            sResul = "OK@#@" + sbuilder.ToString();;
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al obtener la relación de tareas.", ex);
        }

        return(sResul);
    }
コード例 #2
0
    protected string Grabar(string strDatosTarea, string slIntegrantes, string sTareas)
    {
        string   sResul = "", sAccionBD, sIdRecurso, sCad, sTipoLinea, sCodTarea, oRec, sIdResponsable;
        int      iCodAccion, iCodAsunto;
        byte     iAvance;
        DateTime?dFfp = null;
        DateTime?dFLi = null;
        bool     bNotificable = false, bEnviarAlerta = false, bAlta = false;

        try
        {
            oConn = Conexion.Abrir();
            tr    = Conexion.AbrirTransaccionSerializable(oConn);
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex);
            return(sResul);
        }
        try
        {
            #region Datos accion
            string[] aDatosTarea = Regex.Split(strDatosTarea, "##");
            // 0 -> id accion (si -1 es un alta)
            // 1 -> avance
            // 2 -> descripcion corta
            // 3 -> descripcion larga
            // 4 -> departamento
            // 5 -> f/fin
            // 6 -> f/limite
            // 7 -> alerta
            // 8 -> observaciones
            // 9 -> asunto
            // 10 -> des asunto
            // 11 -> num PE
            // 12 -> des PE
            // 13 -> enviar alerta (S/N)
            // 14 -> Id responsable del asunto
            // 15 -> num PT
            // 16 -> des PT
            //if (aDatosTarea[13] == "S") bEnviarAlerta = true;
            bEnviarAlerta = true;
            if (aDatosTarea[0] == "")
            {
                iCodAccion = -1;
            }
            else
            {
                iCodAccion = int.Parse(aDatosTarea[0]);
            }
            iCodAsunto = int.Parse(aDatosTarea[9]);
            if (aDatosTarea[1] == "")
            {
                iAvance = 0;
            }
            else
            {
                iAvance = byte.Parse(aDatosTarea[1]);
            }
            if (aDatosTarea[5] != "")
            {
                dFfp = DateTime.Parse(aDatosTarea[5]);
            }
            if (aDatosTarea[6] != "")
            {
                dFLi = DateTime.Parse(aDatosTarea[6]);
            }

            if (iCodAccion == -1)
            {
                bAlta = true;
            }
            if (bAlta)
            {
                DateTime dtNow = System.DateTime.Now;
                iCodAccion = ACCION_PT.Insert(tr, dtNow, iCodAsunto, Utilidades.unescape(aDatosTarea[7]),
                                              iAvance, Utilidades.unescape(aDatosTarea[2]),
                                              Utilidades.unescape(aDatosTarea[3]),
                                              Utilidades.unescape(aDatosTarea[4]),
                                              dFfp, dFLi, Utilidades.unescape(aDatosTarea[8]));
            }
            else
            {
                ACCION_PT.Update(tr, Utilidades.unescape(aDatosTarea[7]),
                                 iAvance,
                                 Utilidades.unescape(aDatosTarea[2]),
                                 Utilidades.unescape(aDatosTarea[3]),
                                 Utilidades.unescape(aDatosTarea[4]),
                                 dFfp, dFLi, iCodAccion,
                                 Utilidades.unescape(aDatosTarea[8]));
            }
            #endregion
            #region Datos integrantes
            //OfiTec.BorrarIntegrantes(iCodCR);
            if (slIntegrantes == "")
            {//Tenemos lista vacía. No hacemos nada
            }
            else
            {//Con la cadena generamos una lista y la recorremos para grabar cada elemento
                string[] aPersonas = Regex.Split(slIntegrantes, @"///");

                for (int i = 0; i < aPersonas.Length - 1; i++)
                {
                    if (aPersonas[i] != "")
                    {
                        string[] aIntegrante = Regex.Split(aPersonas[i], @"##");
                        sAccionBD  = aIntegrante[0];
                        sIdRecurso = aIntegrante[1];
                        if (aIntegrante[2] == "1")
                        {
                            bNotificable = true;
                        }
                        else
                        {
                            bNotificable = false;
                        }

                        oRec  = iCodAccion.ToString() + "##" + sIdRecurso + "##";
                        oRec += Utilidades.unescape(aDatosTarea[2]) + "##";                           //descripcion corta
                        oRec += aDatosTarea[11] + "##" + Utilidades.unescape(aDatosTarea[12]) + "##"; //cod y des PE
                        oRec += aDatosTarea[9] + "##" + Utilidades.unescape(aDatosTarea[10]) + "##";  //cod y des Asunto
                        oRec += dFLi.ToString() + "##" + dFfp.ToString() + "##";

                        switch (sAccionBD)
                        {
                        case "I":
                            ACCIONRECURSOS_PT.Insert(tr, int.Parse(sIdRecurso), iCodAccion, bNotificable);
                            //if (bNotificable) EnviarCorreoRecurso("I", oRec);
                            break;

                        case "D":
                            //delete
                            ACCIONRECURSOS_PT.Delete(tr, iCodAccion, int.Parse(sIdRecurso));
                            //if (bNotificable) EnviarCorreoRecurso("D", oRec);
                            break;

                        case "U":
                            //update
                            ACCIONRECURSOS_PT.Update(tr, int.Parse(sIdRecurso), iCodAccion, bNotificable);
                            //if (bNotificable) EnviarCorreoRecurso("U", oRec);
                            break;
                        }
                    }
                }//for
            }
            #endregion
            #region tareas
            //Grabamos las tareas asociadas a la acción
            if (sTareas != "")
            {
                string[] aTareas = Regex.Split(sTareas, @"##");

                for (int i = 0; i < aTareas.Length - 1; i++)
                {
                    sCad       = aTareas[i];
                    sTipoLinea = sCad.Substring(0, 1);
                    sCodTarea  = quitaPuntos(sCad.Substring(1));
                    if (sTipoLinea == "D")
                    {//Borrar accion-tarea
                        ACCIONTAREAS_PT.Delete(tr, iCodAccion, int.Parse(sCodTarea));
                    }
                    else
                    {
                        if (sTipoLinea == "I")
                        {//Insertar accion-tarea
                            ACCIONTAREAS_PT.Insert(tr, int.Parse(sCodTarea), iCodAccion);
                        }
                    }
                }
            }
            #endregion
            #region Enviar correos
            if (bEnviarAlerta)
            {
                oRec  = iCodAccion.ToString() + "##";
                oRec += Utilidades.unescape(aDatosTarea[2]) + "##";                           //descripcion corta
                oRec += aDatosTarea[11] + "##" + Utilidades.unescape(aDatosTarea[12]) + "##"; //cod y des PE
                oRec += aDatosTarea[9] + "##" + Utilidades.unescape(aDatosTarea[10]) + "##";  //cod y des Asunto
                oRec += dFLi.ToString() + "##" + dFfp.ToString() + "##";
                oRec += aDatosTarea[1] + "##";                                                //avance
                oRec += Utilidades.unescape(aDatosTarea[3]) + "##";                           //descripcion larga accion
                oRec += Utilidades.unescape(aDatosTarea[8]) + "##";                           //observaciones
                oRec += Utilidades.unescape(aDatosTarea[4]) + "##";                           //Dpto
                oRec += aDatosTarea[15] + "##" + Utilidades.unescape(aDatosTarea[16]) + "##"; //cod y des PT
                if (bAlta)
                {
                    sCad = "I";
                }
                else
                {
                    sCad = "U";
                }
                sIdResponsable = aDatosTarea[14];
                EnviarCorreoAlerta(sCad, oRec, Utilidades.unescape(aDatosTarea[7]), slIntegrantes, sIdResponsable, bAlta);
            }
            #endregion
            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@" + iCodAccion.ToString();
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos de la acción", ex);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }