예제 #1
0
    protected string ObtenerHistorial(string sIdAsunto)
    {
        //Cronología del asunto
        string sFecha = "";

        StringBuilder sb = new StringBuilder();

        try
        {
            sb.Append("<table id='tblTareas' style='width:700px; text-align:left;'>");
            //............................ estado........... Fecha................Profesional
            sb.Append("<colgroup><col style='width:135px;' /><col style='width:75px;' /><col style='width:490px;' /></colgroup>");
            //sb.Append("<tbody>");
            SqlDataReader dr = ASUNTOESTADO.SelectByt382_idasunto(tr, int.Parse(sIdAsunto));

            while (dr.Read())
            {
                sb.Append("<tr style='height:16px;'>");
                sb.Append("<td style='padding-left:5px;'>" + dr["Estado"].ToString() + "</td>");

                sFecha = dr["t385_fecha"].ToString();
                if (sFecha != "")
                {
                    sFecha = DateTime.Parse(dr["t385_fecha"].ToString()).ToShortDateString();
                }

                sb.Append("<td>" + sFecha + "</td>");
                sb.Append("<td>" + dr["nomRecurso"].ToString() + "</td>");
                sb.Append("</tr>");
            }
            dr.Close();
            dr.Dispose();
            //sb.Append("</tbody>");
            sb.Append("</table>");
            return("OK@#@" + sb.ToString());;
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener la cronología del asunto.", ex));
        }
    }
예제 #2
0
    protected string Grabar(string strDatosTarea, string slIntegrantes)
    {
        string sResul = "", sAccionBD, sIdRecurso;
        int    iCodAsunto;
        byte   iEstadoAnt, iEstadoAct;
        double dEtp, dEtr;

        bool bNotificable = false, bEnviarAlerta = true, 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 asunto
            string[] aDatosTarea = Regex.Split(strDatosTarea, "##");
            // 0 -> id asunto (si -1 es un alta)
            // 1 -> descripcion corta
            // 2 -> descripcion larga
            // 3 -> referencia externa
            // 4 -> f/notificación
            // 5 -> f/fin
            // 6 -> f/limite
            // 7 -> alerta
            // 8 -> departamento
            // 9 -> tipo
            // 10-> estado
            // 11-> severidad
            // 12-> prioridad
            // 13-> sistema
            // 14-> esfuerzo planificado
            // 15-> esfuerzo real
            // 16 -> observaciones
            // 17 -> cod une (vacío)
            // 18 -> nº proyecto
            // 19 -> notificador
            // 20 -> responsable
            // 21 -> estado anterior
            // 22 -> desc Responsable
            // 23 -> desc Tipo
            // 24 -> desc Estado
            // 25 -> desc Severidad
            // 26 -> desc Prioridad
            // 27 -> Des PE
            // 28 -> t305_idproyectosubnodo
            if (aDatosTarea[0] == "")
            {
                iCodAsunto = -1;
            }
            else
            {
                iCodAsunto = int.Parse(aDatosTarea[0]);
            }
            //if (aDatosTarea[4] != "") dFno = DateTime.Parse(aDatosTarea[4]);
            //if (aDatosTarea[5] != "") dFfp = DateTime.Parse(aDatosTarea[5]);
            //if (aDatosTarea[6] != "") dFLi = DateTime.Parse(aDatosTarea[6]);
            DateTime dFno = DateTime.Parse(aDatosTarea[4]);
            DateTime dFfp = DateTime.Parse((aDatosTarea[5] == "") ? "01/01/1900" : aDatosTarea[5]);
            DateTime dFLi = DateTime.Parse((aDatosTarea[6] == "") ? "01/01/1900" : aDatosTarea[6]);
            if (aDatosTarea[21] == "")
            {
                iEstadoAnt = byte.Parse(aDatosTarea[10]);
            }
            else
            {
                iEstadoAnt = byte.Parse(aDatosTarea[21]);
            }
            iEstadoAct = byte.Parse(aDatosTarea[10]);
            if (aDatosTarea[14] != "")
            {
                dEtp = double.Parse(aDatosTarea[14]);
            }
            else
            {
                dEtp = 0;
            }
            if (aDatosTarea[15] != "")
            {
                dEtr = double.Parse(aDatosTarea[15]);
            }
            else
            {
                dEtr = 0;
            }
            if (iCodAsunto == -1)
            {
                bAlta      = true;
                iCodAsunto = ASUNTO.Insert(tr, int.Parse(aDatosTarea[28]),
                                           Utilidades.unescape(aDatosTarea[7]), Utilidades.unescape(aDatosTarea[1]),
                                           Utilidades.unescape(aDatosTarea[2]), Utilidades.unescape(aDatosTarea[8]),
                                           iEstadoAct, dEtp, dEtr, dFfp, dFLi, dFno,
                                           Utilidades.unescape(aDatosTarea[19]), Utilidades.unescape(aDatosTarea[16]),
                                           byte.Parse(aDatosTarea[12]), Utilidades.unescape(aDatosTarea[3]),
                                           int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()),
                                           int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()),
                                           byte.Parse(aDatosTarea[11]), Utilidades.unescape(aDatosTarea[13]),
                                           int.Parse(aDatosTarea[9]));
                ASUNTOESTADO.Insert(tr, iCodAsunto, iEstadoAct, int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()));
            }
            else
            {
                bAlta = false;
                ASUNTO.Update(tr, Utilidades.unescape(aDatosTarea[7]),
                              Utilidades.unescape(aDatosTarea[1]), Utilidades.unescape(aDatosTarea[2]),
                              Utilidades.unescape(aDatosTarea[8]), iEstadoAct, dEtp, dEtr, dFfp, dFLi, dFno,
                              iCodAsunto, Utilidades.unescape(aDatosTarea[19]), Utilidades.unescape(aDatosTarea[16]),
                              byte.Parse(aDatosTarea[12]), Utilidades.unescape(aDatosTarea[3]),
                              int.Parse(aDatosTarea[20]), byte.Parse(aDatosTarea[11]), Utilidades.unescape(aDatosTarea[13]),
                              int.Parse(aDatosTarea[9]));
                if (iEstadoAnt != iEstadoAct)
                {
                    ASUNTOESTADO.Insert(tr, iCodAsunto, iEstadoAct, int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()));
                }
            }
            #endregion
            #region Datos integrantes
            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;
                        }
                        switch (sAccionBD)
                        {
                        case "I":
                            ASUNTORECURSOS.Insert(tr, int.Parse(sIdRecurso), iCodAsunto, bNotificable);
                            break;

                        case "D":
                            //delete
                            ASUNTORECURSOS.Delete(tr, iCodAsunto, int.Parse(sIdRecurso));
                            break;

                        case "U":
                            //update
                            ASUNTORECURSOS.Update(tr, int.Parse(sIdRecurso), iCodAsunto, bNotificable);
                            break;
                        }
                    }
                }//for
            }
            #endregion
            #region Enviar correos
            if (bEnviarAlerta)
            {
                //if (bAlta) sCad = "I";
                //else sCad = "U";
                EnviarCorreoAlerta(iCodAsunto.ToString(), strDatosTarea, slIntegrantes, bAlta);
            }
            #endregion
            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@" + iCodAsunto.ToString();
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos del asunto", ex);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }