コード例 #1
0
    private string ObtenerRecursos(string sIdAccion, string sNodo)
    {
        StringBuilder sb = new StringBuilder();
        int           i  = 0;
        string        sDes;

        try
        {
            sb.Append("<table id='tblOpciones2' class='texto MM' style='width: 435px; ' mantenimiento='1'>");
            sb.Append("<colgroup><col style='width:10px;' /><col style='width:20px;' /><col style='width:385px;' /><col style='width:20px;' /></colgroup>");
            sb.Append("<tbody id='tbodyDestino'>");
            SqlDataReader dr = ACCIONRECURSOS_PT.SelectByt410_idaccion(tr, int.Parse(sIdAccion));
            while (dr.Read())
            {
                sb.Append("<tr id='");
                sb.Append(dr["t314_idusuario"].ToString());
                sb.Append("' mail='" + dr["mail"].ToString());
                sb.Append("' bd='' onclick='mm(event)' onmousedown='DD(event)' style='height:20px' ");
                sb.Append("sexo='" + dr["t001_sexo"].ToString() + "' ");
                sb.Append("baja='" + dr["baja"].ToString() + "' ");
                sb.Append("tipo='" + dr["tipo"].ToString() + "' ");
                //if (dr["t303_idnodo"].ToString() == "") sb.Append("tipo='E' ");
                //else if (dr["t303_idnodo"].ToString() == sNodo) sb.Append("tipo='P' ");
                //else sb.Append("tipo='N' ");

                sb.Append("><td></td><td></td>");
                sDes = dr["nomRecurso"].ToString();
                if (sDes.Length > 80)
                {
                    sb.Append("<td title='" + sDes + "'>");
                }
                else
                {
                    sb.Append("<td>");
                }
                sb.Append("<nobr class='NBR W380'>" + sDes + "</NOBR></label></td>");

                sb.Append("<td><input type='checkbox' style='width:15;' id='chkNot");
                sb.Append(i.ToString());
                sb.Append("' class='checkTabla' onclick='actualizarDatos(this);' ");
                if ((bool)dr["t414_notificar"])
                {
                    sb.Append("checked=true");
                }
                sb.Append("></td></tr>");
                i++;
            }
            dr.Close();
            dr.Dispose();

            sb.Append("</tbody></table>");
            this.strTablaHTMLIntegrantes = sb.ToString();
            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener las personas", ex));
        }
    }
コード例 #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);
    }