Beispiel #1
0
    private string Procesar(string strDatos)
    {
        string sResul = "";

        int idPSN = 0, responsable_origen = 0, responsable_destino = 0, subnodo_origen = 0, subnodo_destino = 0;

        try
        {
            REASIGNACIONPSN.DeleteAll(null, (int)Session["UsuarioActual"]);

            string[] aDatos = Regex.Split(strDatos, "///");
            foreach (string oProyecto in aDatos)
            {
                try
                {
                    if (oProyecto == "")
                    {
                        continue;
                    }
                    string[] aProyecto = Regex.Split(oProyecto, "##");
                    ///aProyecto[0] = idPSN
                    ///aProyecto[1] = responsable_origen
                    ///aProyecto[2] = responsable_destino
                    ///aProyecto[3] = subnodo_origen
                    ///aProyecto[4] = subnodo_destino
                    ///aProyecto[5] = procesado

                    idPSN = int.Parse(aProyecto[0]);
                    responsable_origen  = int.Parse(aProyecto[1]);
                    responsable_destino = int.Parse(aProyecto[2]);
                    subnodo_origen      = int.Parse(aProyecto[3]);
                    subnodo_destino     = int.Parse(aProyecto[4]);

                    REASIGNACIONPSN.Insertar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, subnodo_destino, false, "");

                    if (aProyecto[5] == "1" || (aProyecto[1] == aProyecto[2] && aProyecto[3] == aProyecto[4]))
                    {
                        REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, subnodo_destino, true, "");
                        continue;
                    }

                    #region abrir conexión y transacción
                    try
                    {
                        oConn = Conexion.Abrir();
                        tr    = Conexion.AbrirTransaccionSerializable(oConn);
                    }
                    catch (Exception ex)
                    {
                        if (oConn.State == ConnectionState.Open)
                        {
                            Conexion.Cerrar(oConn);
                        }
                        sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex);
                        return(sResul);
                    }
                    #endregion

                    PROYECTOSUBNODO oPSN     = PROYECTOSUBNODO.Obtener(tr, int.Parse(aProyecto[0]));
                    SUBNODO         oSubnodo = SUBNODO.Obtener(tr, int.Parse(aProyecto[4]));

                    if (oPSN.t303_idnodo != oSubnodo.t303_idnodo)
                    {
                        throw (new NullReferenceException("El " + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + " del proyecto y el " + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + " del " + Estructura.getDefLarga(Estructura.sTipoElem.SUBNODO) + " destino no coinciden, por lo que no se puede realizar la reasignación."));
                    }

                    PROYECTOSUBNODO.UpdateReasignacion(tr, idPSN, responsable_destino, subnodo_destino);

                    //update proceso OK
                    REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, subnodo_destino, true, "");

                    Conexion.CommitTransaccion(tr);
                }
                catch (Exception ex)
                {
                    Conexion.CerrarTransaccion(tr);
                    //update proceso KO
                    REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, subnodo_destino, false, ex.Message);
                    sResul = "Error@#@" + Errores.mostrarError("Error al procesar la reasignación.", ex);
                }
                finally
                {
                    Conexion.Cerrar(oConn);
                }
            }// fin foreach
            sResul = "OK";
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al procesar la reasignación.", ex);
        }
        return(sResul);
    }
Beispiel #2
0
    protected string Recuperar()
    {
        string        sResul = "";
        StringBuilder sb     = new StringBuilder();

        try
        {
            SqlDataReader dr = REASIGNACIONPSN.CatalogoDestino(null, (int)Session["UsuarioActual"]);

            sb.Append("<table id='tblDatos2' class='texto MM' style='WIDTH: 560px;'>");
            sb.Append("<colgroup>");
            sb.Append("    <col style='width:20px;' />");
            sb.Append("    <col style='width:20px;' />");
            sb.Append("    <col style='width:20px;' />");
            sb.Append("    <col style='width:157px;' />");
            sb.Append("    <col style='width:160px;' />");
            sb.Append("    <col style='width:160px;' />");
            sb.Append("    <col style='width: 20px;' />");
            sb.Append("</colgroup>");
            sb.Append("<tbody>");
            while (dr.Read())
            {
                sb.Append("<tr idPSN='" + dr["t305_idproyectosubnodo"].ToString() + "' ");
                sb.Append("idProy='" + dr["t301_idproyecto"].ToString() + "' ");
                sb.Append("categoria='" + dr["t301_categoria"].ToString() + "' ");
                sb.Append("cualidad='" + dr["t305_cualidad"].ToString() + "' ");
                sb.Append("estado='" + dr["t301_estado"].ToString() + "' ");
                sb.Append("responsable_origen='" + dr["t314_idusuario_responsable_origen"].ToString() + "' ");
                sb.Append("responsable_destino='" + dr["t314_idusuario_responsable_destino"].ToString() + "' ");
                sb.Append("subnodo_origen='" + dr["t304_idsubnodo_origen"].ToString() + "' ");
                sb.Append("subnodo_destino='" + dr["t304_idsubnodo_destino"].ToString() + "' ");
                if (dr["t475_procesado"].ToString() == "")
                {
                    sb.Append("procesado='' ");
                }
                else if ((bool)dr["t475_procesado"])
                {
                    sb.Append("procesado='1' ");
                }
                else
                {
                    sb.Append("procesado='0' ");
                }
                sb.Append("excepcion='" + Utilidades.escape(dr["t475_excepcion"].ToString()) + "' ");

                sb.Append("style='height:20px' >");
                sb.Append("<td></td>");
                sb.Append("<td></td>");
                sb.Append("<td></td>");
                sb.Append("<td style='padding-left:3px;'><nobr class='NBR W150' ondblclick='insertarProyecto(this.parentNode.parentNode)' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../images/info.gif' style='vertical-align:middle' />  Información] body=[<label style='width:70px;'>Proyecto:</label>" + int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + " - " + dr["t301_denominacion"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px;'>Cliente:</label>" + dr["t302_denominacion"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\">" + int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + " - " + dr["t301_denominacion"].ToString().Replace((char)34, (char)39) + "</nobr></td>");
                sb.Append("<td><nobr class='NBR W150' ondblclick='insertarProyecto(this.parentNode.parentNode)' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../images/info.gif' style='vertical-align:middle' />  Información] body=[<label style='width:60px;'>Responsable:</label>" + dr["responsable"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\">" + dr["responsable"].ToString() + "</nobr></td>");
                sb.Append("<td><nobr class='NBR W150' ondblclick='insertarProyecto(this.parentNode.parentNode)' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../../images/info.gif' style='vertical-align:middle' />  Información] body=[<label style='width:60px;'>" + Estructura.getDefCorta(Estructura.sTipoElem.SUBNODO) + ":</label>" + dr["t304_denominacion"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\">" + dr["t304_denominacion"].ToString() + "</nobr></td>");
                sb.Append("<td></td></tr>" + (char)10);
            }

            dr.Close();
            dr.Dispose();
            sb.Append("</tbody>");
            sb.Append("</table>");

            sResul = "OK@#@" + sb.ToString();;
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al obtener la relación de proyectos aparcados.", ex);
        }

        return(sResul);
    }
    private string Procesar(string strDatos)
    {
        string sResul = "";

        int idPSN = 0, responsable_origen = 0, responsable_destino = 0;

        try
        {
            REASIGNACIONPSN.DeleteReasig(null, (int)Session["UsuarioActual"]);

            string[] aDatos = Regex.Split(strDatos, "///");
            foreach (string oProyecto in aDatos)
            {
                try
                {
                    if (oProyecto == "")
                    {
                        continue;
                    }
                    string[] aProyecto = Regex.Split(oProyecto, "##");
                    ///aProyecto[0] = idPSN
                    ///aProyecto[1] = responsable_origen
                    ///aProyecto[2] = responsable_destino
                    ///aProyecto[3] = procesado

                    idPSN = int.Parse(aProyecto[0]);
                    responsable_origen  = int.Parse(aProyecto[1]);
                    responsable_destino = int.Parse(aProyecto[2]);

                    REASIGNACIONPSN.Insertar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, false, "");

                    if (aProyecto[3] == "1" || aProyecto[1] == aProyecto[2])
                    {
                        REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, true, "");
                        continue;
                    }

                    #region abrir conexión y transacción
                    try
                    {
                        oConn = Conexion.Abrir();
                        tr    = Conexion.AbrirTransaccionSerializable(oConn);
                    }
                    catch (Exception ex)
                    {
                        if (oConn.State == ConnectionState.Open)
                        {
                            Conexion.Cerrar(oConn);
                        }
                        sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex);
                        return(sResul);
                    }
                    #endregion

                    PROYECTOSUBNODO.UpdateReasignacion(tr, idPSN, responsable_destino);

                    //update proceso OK
                    REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, true, "");

                    Conexion.CommitTransaccion(tr);
                }
                catch (Exception ex)
                {
                    Conexion.CerrarTransaccion(tr);
                    //update proceso KO
                    REASIGNACIONPSN.Modificar(null, idPSN, (int)Session["UsuarioActual"], responsable_destino, false, ex.Message);
                    sResul = "Error@#@" + Errores.mostrarError("Error al procesar la reasignación.", ex);
                }
                finally
                {
                    Conexion.Cerrar(oConn);
                }
            }// fin foreach
            sResul = "OK";
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al procesar la reasignación.", ex);
        }
        return(sResul);
    }