Exemple #1
0
    private string getDatosPSN(string sPSN, string sAnnomes, string sModelocoste, string sProfCons, string sEstadoMes, string esMesModificable)
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            SqlDataReader dr = CONSPERMES.ObtenerDatosPSNaTraspasar(null, int.Parse(sPSN), int.Parse(sAnnomes), sModelocoste, (sProfCons == "1")?true:false, false);

            sb.Append("<table id='tblDatos' style='width:700px;' mantenimiento=1>");
            sb.Append("<colgroup><col style='width:20px;' /><col style='width:440px;' /><col style='width:60px;' /><col style='width:60px;' /><col style='width:60px;' /><col style='width:60px;' /></colgroup>");
            while (dr.Read())
            {
                sb.Append("<tr id='" + dr["t314_idusuario"].ToString() + "' ");
                sb.Append("costecon='" + dr["t330_costecon"].ToString() + "' ");
                sb.Append("costerep='" + dr["t330_costerep"].ToString() + "' ");
                sb.Append("nodo_usuario='" + dr["t303_idnodo"].ToString() + "' ");
                sb.Append("empresa_nodo='" + dr["t313_idempresa"].ToString() + "' ");

                sb.Append("style='height:20px' onclick='ms(this)'>");
                sb.Append("<td style=' border-right: 0px;'><img border='0' src='../../../Images/imgUsu" + dr["tipo"].ToString() + dr["t001_sexo"].ToString() + ".gif' width='16px' height='16px' /></td>");
                sb.Append("<td>" + dr["profesional"].ToString() + "</td>");
                sb.Append("<td style='text-align:right;'>" + double.Parse(dr["horas_reportadas_proy"].ToString()).ToString("N") + "</td>");
                sb.Append("<td style='text-align:right;'>" + double.Parse(dr["jornadas_reportadas_proy"].ToString()).ToString("N") + "</td>");

                if (sModelocoste == "J")
                {
                    sb.Append("<td style='text-align:right;'>" + double.Parse(dr["jornadas_adaptadas"].ToString()).ToString("N") + "</td>");
                }
                else
                {
                    sb.Append("<td style='text-align:right;'>" + double.Parse(dr["horas_adaptadas"].ToString()).ToString("N") + "</td>");
                }

                sb.Append("<td style='text-align:right; padding-right:2px;'><input id='txtUE-" + dr["t314_idusuario"].ToString() + "' type='text' class='txtNumL' style='width:55px' value='" + double.Parse(dr["unidades_economicas"].ToString()).ToString("N") + "' ");//
                if (esMesModificable == "N" || (sEstadoMes == "C" && Session["ADMINISTRADOR_PC_ACTUAL"].ToString() != "SA"))
                {
                    sb.Append(" readonly");
                }
                else
                {
                    sb.Append(" onchange='activarGrabar();setTotales();' onfocus='fn(this, 5, 2);'");
                }
                sb.Append(" ></td>");

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

            return("OK@#@" + sb.ToString());
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los datos del proyecto.", ex));
        }
    }
Exemple #2
0
    private void ObtenerPSNs(int?nPSN)
    {
        StringBuilder sb = new StringBuilder();

        SqlDataReader dr = null;

        if (nPSN == null)
        {
            dr = CONSPERMES.ObtenerPSNaTraspasar((int)Session["UsuarioActual"]);
        }
        else
        {
            dr = CONSPERMES.ObtenerPSNaTraspasarByPSN((int)nPSN);
        }

        while (dr.Read())
        {
            sb.Append("insertarPSNEnArray(" + dr["t305_idproyectosubnodo"].ToString() + ",");
            sb.Append(dr["t301_idproyecto"].ToString() + ",");
            sb.Append("\"" + Utilidades.escape(dr["t301_denominacion"].ToString()) + "\",");
            sb.Append("\"" + Utilidades.escape(dr["t302_denominacion"].ToString()) + "\",");
            sb.Append("\"" + Utilidades.escape(dr["t303_denominacion"].ToString()) + "\",");
            sb.Append(dr["t325_traspasoIAP"].ToString() + ",");
            sb.Append("\"" + dr["t301_estado"].ToString() + "\",");
            sb.Append("\"" + dr["t301_categoria"].ToString() + "\",");
            sb.Append("\"" + dr["t305_cualidad"].ToString() + "\",");
            sb.Append(dr["tiene_consumos"].ToString() + ",");
            sb.Append(dr["annomes_traspaso"].ToString() + ",");
            sb.Append("\"" + dr["t325_estado"].ToString() + "\",");
            sb.Append("\"" + dr["t301_modelocoste"].ToString() + "\");\n");
            //sb.Append("\taVAE_js[" + i.ToString() + "] = new Array(\"" + dr["t341_idae"].ToString() + "\",\"" + dr["t340_idvae"].ToString() + "\",\"" + dr["t340_valor"].ToString() + "\");\n");
        }
        dr.Close();
        dr.Dispose();

        strArrayPSN = sb.ToString();
    }
Exemple #3
0
    public string getDatosProfesionales(string sSegMesProy, string sMonedaImportes2)
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            sLectura = "true";
            SqlDataReader dr = CONSPERMES.CatalogoProdIngProfesionales(int.Parse(sSegMesProy), sMonedaImportes2);

            sb.Append("<table class=texto id=tblDatos style='width: 960px;' mantenimiento=1>");
            sb.Append("<colgroup>");
            sb.Append("<col style='width:10px;' />");
            sb.Append("<col style='width:20px;' />");
            sb.Append("<col style='width:60px;' />");
            sb.Append("<col style='width:510px;' />");
            sb.Append("<col style='width:120px;' />");
            sb.Append("<col style='width:120px;' />");
            sb.Append("<col style='width:120px;' />");
            sb.Append("</colgroup>");
            sb.Append("<tbody>");
            while (dr.Read())
            {
                sb.Append("<tr id='" + dr["t314_idusuario"].ToString() + "' caso='" + dr["caso"].ToString() + "'");
                sb.Append(" tipo='" + dr["TipoRecurso"].ToString() + "' bd='' ");
                sb.Append("style='height:20px;'>");

                sb.Append("<td><img src='../../../images/imgFN.gif'></td>");
                sb.Append("<td>");
                //switch (dr["caso"].ToString())
                //{
                //    case "1":
                //        sb.Append("<img border='0' src='../../../Images/imgUsuP" + dr["sexo"].ToString() + ".gif' width='16px' height='16px' />");
                //        break;
                //    case "4":
                //        sb.Append("<img border='0' src='../../../Images/imgUsuE" + dr["sexo"].ToString() + ".gif' width='16px' height='16px' />");
                //        break;
                //}
                switch (dr["TipoRecurso"].ToString())
                {
                case "I":
                    sb.Append("<img border='0' src='../../../Images/imgUsuP" + dr["sexo"].ToString() + ".gif' width='16px' height='16px' />");
                    break;

                case "F":
                    sb.Append("<img border='0' src='../../../Images/imgUsuF" + dr["sexo"].ToString() + ".gif' width='16px' height='16px' />");
                    break;

                default:
                    sb.Append("<img border='0' src='../../../Images/imgUsuE" + dr["sexo"].ToString() + ".gif' width='16px' height='16px' />");
                    break;
                }
                sb.Append("</td>");
                sb.Append("<td style='text-align:right; padding-right:10px;'>" + dr["t314_idusuario"].ToString() + "</td>");
                sb.Append("<td>" + dr["profesional"].ToString() + "</td>");

                sb.Append("<td style='text-align:right;'>" + decimal.Parse(dr["t378_costeunitariocon"].ToString()).ToString("N") + "</td>");
                sb.Append("<td style='text-align:right;'>" + double.Parse(dr["t378_unidades"].ToString()).ToString("N") + "</td>");
                sb.Append("<td style='text-align:right;padding-right:2px;'>" + double.Parse(dr["importe"].ToString()).ToString("N") + "</td>");
                sb.Append("</tr>");
            }
            dr.Close();
            dr.Dispose();
            sb.Append("</tbody>");
            sb.Append("</table>");

            SEGMESPROYECTOSUBNODO oSegMes = SEGMESPROYECTOSUBNODO.Obtener(null, int.Parse(sSegMesProy), sMonedaImportes2);
            sModoCoste = oSegMes.t301_modelocoste;

            return("OK@#@" + sb.ToString() + "@#@" + sLectura + "@#@" + MONEDA.getDenominacionImportes(sMonedaImportes2));
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los datos de producción/ingresos", ex));
        }
    }
Exemple #4
0
    private string Traspglobal(string sSobreescribir)
    {
        string  sResul     = "";
        string  sEstadoMes = "";
        int     nSMPSN     = 0;
        DataSet dsProf     = null;

        #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
        try
        {
            DataSet ds = CONSPERMES.ObtenerPSNaTraspasarDS((int)Session["UsuarioActual"]);
            foreach (DataRow oPSN in ds.Tables[0].Rows)
            {
                if (PROYECTOSUBNODO.ObtenerUltCierreEcoNodoPSN(tr, (int)oPSN["t305_idproyectosubnodo"]) >= (int)oPSN["annomes_traspaso"])
                {
                    Conexion.CerrarTransaccion(tr);
                    sResul = "Error@#@" + Errores.mostrarError("No se ha realizado el traspaso, debido a que el " + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + " '" + oPSN["t303_denominacion"].ToString() + "' se encuentra cerrado en el mes a traspasar.");
                    break;
                }
                else
                {
                    nSMPSN = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, (int)oPSN["t305_idproyectosubnodo"], (int)oPSN["annomes_traspaso"]);
                    if (nSMPSN == 0)
                    {
                        if (oPSN["tiene_consumos"].ToString() == "1")
                        {
                            sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, (int)oPSN["t305_idproyectosubnodo"], (int)oPSN["annomes_traspaso"]);
                            if (sEstadoMes == "C")
                            {
                                continue;
                            }

                            nSMPSN = SEGMESPROYECTOSUBNODO.Insert(tr, (int)oPSN["t305_idproyectosubnodo"], (int)oPSN["annomes_traspaso"], sEstadoMes, 0, 0, false, 0, 0);
                        }
                    }
                    else
                    {
                        SEGMESPROYECTOSUBNODO oSegMes = SEGMESPROYECTOSUBNODO.Obtener(tr, nSMPSN, null);
                        if (oSegMes.t325_estado == "C")
                        {
                            continue;
                        }

                        if (sSobreescribir == "1")
                        {
                            CONSPERMES.DeleteByT325_idsegmesproy(tr, nSMPSN);
                        }
                    }

                    #region Datos Profesionales
                    if (oPSN["tiene_consumos"].ToString() == "1") //si tiene consumos técnicos (IAP)
                    {
                        dsProf = CONSPERMES.ObtenerDatosPSNaTraspasarDS(tr, (int)oPSN["t305_idproyectosubnodo"], (int)oPSN["annomes_traspaso"], oPSN["t301_modelocoste"].ToString(), true, (sSobreescribir == "1")? false:true);
                        foreach (DataRow oProf in dsProf.Tables[0].Rows)
                        {
                            double nUnidades = (oPSN["t301_modelocoste"].ToString() == "J") ? double.Parse(oProf["jornadas_adaptadas"].ToString()) : double.Parse(oProf["horas_reportadas_proy"].ToString());
                            if (nUnidades != 0)
                            {
                                CONSPERMES.Insert(tr, nSMPSN,
                                                  (int)oProf["t314_idusuario"],
                                                  (oPSN["t301_modelocoste"].ToString() == "J") ? double.Parse(oProf["jornadas_adaptadas"].ToString()) : double.Parse(oProf["horas_reportadas_proy"].ToString()),
                                                  decimal.Parse(oProf["t330_costecon"].ToString()),
                                                  decimal.Parse(oProf["t330_costerep"].ToString()),
                                                  (oProf["t303_idnodo"] != DBNull.Value)? (int?)oProf["t303_idnodo"]:null,
                                                  (oProf["t313_idempresa"] != DBNull.Value)? (int?)oProf["t313_idempresa"]:null);
                            }
                        }
                        dsProf.Dispose();
                    }

                    #endregion

                    SEGMESPROYECTOSUBNODO.UpdateTraspasoIAP(tr, nSMPSN, true);
                }
            }

            ds.Dispose();

            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@";
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al realizar el traspaso global.", ex);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }
Exemple #5
0
    private string Grabar(string sPSN, string sAnnomes, string strProfesionales, string sHayDatosProf)
    {
        string sResul = "";
        string sEstadoMes = "";
        int    nPSN = int.Parse(sPSN), nAnnomes = int.Parse(sAnnomes), nSMPSN = 0;
        bool   bErrorControlado = false;

        #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
        try
        {
            if (PROYECTOSUBNODO.ObtenerUltCierreEcoNodoPSN(tr, nPSN) >= nAnnomes)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = "Error@#@" + Errores.mostrarError("No se ha realizado el traspaso, debido a que el " + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + " se encuentra cerrado en el mes a traspasar.");
            }
            else
            {
                nSMPSN = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, nPSN, nAnnomes);
                if (nSMPSN == 0)
                {
                    if (sHayDatosProf == "1")
                    {
                        sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, nPSN, nAnnomes);
                        if (sEstadoMes != "C")
                        {
                            nSMPSN = SEGMESPROYECTOSUBNODO.Insert(tr, nPSN, nAnnomes, sEstadoMes, 0, 0, false, 0, 0);
                        }
                    }
                }
                else
                {
                    if (Session["ADMINISTRADOR_PC_ACTUAL"].ToString() != "SA")
                    {
                        SEGMESPROYECTOSUBNODO oSMPSN = SEGMESPROYECTOSUBNODO.Obtener(tr, nSMPSN, null);
                        if (oSMPSN.t325_estado == "C")
                        {
                            bErrorControlado = true;
                            throw (new Exception("No se permite grabar, debido a que el mes en curso está cerrado para el proyecto."));
                        }
                    }

                    CONSPERMES.DeleteByT325_idsegmesproy(tr, nSMPSN);
                }

                #region Datos Profesionales
                if (strProfesionales != "" && sEstadoMes != "C")
                {
                    string[] aProfesionales = Regex.Split(strProfesionales, "##");
                    foreach (string oProf in aProfesionales)
                    {
                        if (oProf == "")
                        {
                            continue;
                        }
                        string[] aProf = Regex.Split(oProf, "//");
                        ///aProf[0] = idUsuario
                        ///aProf[1] = costecon
                        ///aProf[2] = costerep
                        ///aProf[3] = nodo_usuario
                        ///aProf[4] = empresa_nodo
                        ///aProf[5] = unidades económicas

                        CONSPERMES.Insert(tr, nSMPSN, int.Parse(aProf[0]), double.Parse(aProf[5]), decimal.Parse(aProf[1]), decimal.Parse(aProf[2]), (aProf[3] != "") ? (int?)int.Parse(aProf[3]) : null, (aProf[4] != "") ? (int?)int.Parse(aProf[4]) : null);
                    }
                }
                #endregion

                SEGMESPROYECTOSUBNODO.UpdateTraspasoIAP(tr, nSMPSN, true);

                Conexion.CommitTransaccion(tr);
                sResul = "OK@#@";
            }
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            if (!bErrorControlado)
            {
                sResul = "Error@#@" + Errores.mostrarError("Error al grabar los consumos del proyecto.", ex);
            }
            else
            {
                sResul = "Error@#@Operación rechazada.\n\n" + ex.Message;
            }
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }
Exemple #6
0
    protected string Grabar(string strDatos)
    {
        string sResul           = "";
        int    sSegMesProy      = 0;
        string sEstadoMes       = "";
        bool   bErrorControlado = false;
        double dUnidades        = 0;
        double?dUnidadesBD      = 0;

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

        try
        {
            string[] aConsumo = Regex.Split(strDatos, "///");
            foreach (string oConsumo in aConsumo)
            {
                if (oConsumo == "")
                {
                    continue;
                }
                string[] aValores = Regex.Split(oConsumo, "##");

                //0. Opcion BD. "I", "U", "D"
                //1. AnnoMes
                //2. ID usuario
                //3. Coste
                //4. Unidades
                //5. Costerep
                //6. idempresa_nodomes
                //7. Nodo

                nPSN        = int.Parse(Request.QueryString["nPSN"].ToString());
                sSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, nPSN, int.Parse(aValores[1]));
                if (sSegMesProy == 0)
                {
                    sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, nPSN, int.Parse(aValores[1]));
                    if (sEstadoMes == "C")
                    {
                        bErrorControlado = true;
                        throw (new Exception("Durante su intervención en la pantalla, otro usuario ha eliminado el año/mes: " + aValores[1]));
                    }
                    sSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, nPSN, int.Parse(aValores[1]), sEstadoMes, 0, 0, false, 0, 0);
                }
                else
                {
                    SEGMESPROYECTOSUBNODO oSegMes = SEGMESPROYECTOSUBNODO.Obtener(tr, nPSN, int.Parse(aValores[1]), Request.QueryString["sMoneda"].ToString());
                    if (oSegMes.t325_estado == "C")
                    {
                        bErrorControlado = true;
                        throw (new Exception("Durante su intervención en la pantalla, otro usuario ha cerrado el año/mes: " + aValores[1]));
                    }
                    else
                    {
                        sSegMesProy = oSegMes.t325_idsegmesproy;
                    }
                }
                dUnidades = double.Parse(aValores[4]);
                if (dUnidades == 0)
                {
                    CONSPERMES.Delete(tr, sSegMesProy, int.Parse(aValores[2]));
                }
                else
                {                            //Si existe en BBDD, updateo, sino, inserto
                    dUnidadesBD = CONSPERMES.GetUnidades(tr, sSegMesProy, int.Parse(aValores[2]));
                    if (dUnidadesBD == null) //No existe registro -> lo insertamos
                    {
                        int?nEmpresa = null;
                        if (aValores[6] != "")
                        {
                            nEmpresa = int.Parse(aValores[6]);
                        }
                        int?nNodo = null;
                        if (aValores[7] != "")
                        {
                            nNodo = int.Parse(aValores[7]);
                        }
                        CONSPERMES.Insert(tr, sSegMesProy, int.Parse(aValores[2]), dUnidades, decimal.Parse(aValores[3]), decimal.Parse(aValores[5]), nNodo, nEmpresa);
                    }
                    else
                    {//El registro ya existe, solo updateamos si el valor es diferente
                        if (dUnidades != dUnidadesBD)
                        {
                            CONSPERMES.UpdateUnidades(tr, sSegMesProy, int.Parse(aValores[2]), dUnidades);
                        }
                    }
                }
            }
            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@";
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            if (!bErrorControlado)
            {
                sResul = "Error@#@" + Errores.mostrarError("Error al grabar los consumos de los profesionales.", ex);
            }
            else
            {
                sResul = "Error@#@Operación rechazada.\n\n" + ex.Message;
            }
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }

        return(sResul);
    }
    protected string Grabar(string sSegMesProy, string strDatos)
    {
        string sResul           = "";
        bool   bErrorControlado = false;
        double dUnidades        = 0;
        double?dUnidadesBD      = null;

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

        try
        {
            if (Session["ADMINISTRADOR_PC_ACTUAL"].ToString() != "SA")
            {
                SEGMESPROYECTOSUBNODO oSMPSN = SEGMESPROYECTOSUBNODO.Obtener(tr, int.Parse(sSegMesProy), null);
                if (oSMPSN.t325_estado == "C")
                {
                    bErrorControlado = true;
                    throw (new Exception("Durante su intervención en la pantalla, otro usuario ha cerrado el mes en curso."));
                }
            }
            //CONSPERMES.DeleteByT325_idsegmesproy(tr, int.Parse(sSegMesProy));
            string[] aConsumo = Regex.Split(strDatos, "///");
            foreach (string oConsumo in aConsumo)
            {
                if (oConsumo == "")
                {
                    continue;
                }
                string[] aValores = Regex.Split(oConsumo, "##");
                //0. Opcion BD. "I", "U", "D"
                //1. ID usuario
                //2. Coste
                //3. Unidades
                //4. Costerep
                //5. idempresa_nodomes
                //6. Nodo
                dUnidades = double.Parse(aValores[3]);
                if (dUnidades == 0)
                {
                    CONSPERMES.Delete(tr, int.Parse(sSegMesProy), int.Parse(aValores[1]));
                }
                else
                {                            //Si existe en BBDD, updateo, sino, inserto
                    dUnidadesBD = CONSPERMES.GetUnidades(tr, int.Parse(sSegMesProy), int.Parse(aValores[1]));
                    if (dUnidadesBD == null) //No existe registro -> lo insertamos
                    {
                        int?nEmpresa = null;
                        if (aValores[5] != "")
                        {
                            nEmpresa = int.Parse(aValores[5]);
                        }
                        int?nNodo = null;
                        if (aValores[6] != "")
                        {
                            nNodo = int.Parse(aValores[6]);
                        }
                        CONSPERMES.Insert(tr, int.Parse(sSegMesProy), int.Parse(aValores[1]), dUnidades, decimal.Parse(aValores[2]), decimal.Parse(aValores[4]), nNodo, nEmpresa);
                    }
                    else
                    {//El registro ya existe, solo updateamos si el valor es diferente
                        if (dUnidades != dUnidadesBD)
                        {
                            CONSPERMES.UpdateUnidades(tr, int.Parse(sSegMesProy), int.Parse(aValores[1]), dUnidades);
                        }
                    }
                }
            }
            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@";
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            if (!bErrorControlado)
            {
                sResul = "Error@#@" + Errores.mostrarError("Error al grabar los consumos de los profesionales.", ex);
            }
            else
            {
                sResul = "Error@#@Operación rechazada.\n\n" + ex.Message;
            }
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }

        return(sResul);
    }
    public string getDatosProfesionales(string sC, string sClase, string sSegMesProy, string sEstadoMes, string sEstadoProy, string sCualidad, string sMonedaProyecto2, string sMonedaImportes2)
    {
        StringBuilder sb = new StringBuilder();
        SqlDataReader dr = null;

        try
        {
            sLectura = "false";

            if (sEstadoProy == "H" || sEstadoProy == "C")
            {
                sLecturaInsMes = "true";
                if (sCualidad != "J")
                {
                    dr = CONSPERMES.CatalogoMesCerrado(int.Parse(sSegMesProy), sMonedaImportes2);
                }
                else
                {
                    dr = CONSPERMES.CatalogoMesCerradoReplicado(int.Parse(sSegMesProy), sMonedaImportes2);
                }
            }
            else if (sEstadoMes == "A")
            {
                if (sCualidad != "J")
                {
                    dr = CONSPERMES.CatalogoMesAbierto(int.Parse(sSegMesProy), sMonedaImportes2);
                }
                else
                {
                    dr = CONSPERMES.CatalogoMesAbiertoReplicado(int.Parse(sSegMesProy), sMonedaImportes2);
                }
            }
            else if (Session["ADMINISTRADOR_PC_ACTUAL"].ToString() == "SA")
            {
                if (sCualidad != "J")
                {
                    dr = CONSPERMES.CatalogoMesCerradoSA(int.Parse(sSegMesProy), sMonedaImportes2);
                }
                else
                {
                    dr = CONSPERMES.CatalogoMesCerradoSAReplicado(int.Parse(sSegMesProy), sMonedaImportes2);
                }
            }
            else
            {
                if (sCualidad != "J")
                {
                    dr = CONSPERMES.CatalogoMesCerrado(int.Parse(sSegMesProy), sMonedaImportes2);
                }
                else
                {
                    dr = CONSPERMES.CatalogoMesCerradoReplicado(int.Parse(sSegMesProy), sMonedaImportes2);
                }
            }

            sb.Append("<TABLE class=texto id=tblDatos style='width: 960px;' mantenimiento='1'>");
            sb.Append("<colgroup>");
            sb.Append("<col style='width:10px;' />");
            sb.Append("<col style='width:20px;' />");
            sb.Append("<col style='width:570px;' />");
            sb.Append("<col style='width:120px;' />");
            sb.Append("<col style='width:120px;' />");
            sb.Append("<col style='width:120px;' />");
            sb.Append("</colgroup>");
            sb.Append("<tbody>");

            if (sMonedaProyecto2 != sMonedaImportes2)
            {
                sLectura = "true";
            }
            else
            {
                if (sEstadoProy == "H" || sEstadoProy == "C" || (bool)Session["MODOLECTURA_PROYECTOSUBNODO"] || sEstadoMes == "C" || sCualidad == "J")
                {
                    sLectura = "true";
                }
                if ((sEstadoProy == "A" || sEstadoProy == "P") && (Session["ADMINISTRADOR_PC_ACTUAL"].ToString() == "SA" && sCualidad != "J"))
                {
                    sLectura = "false";
                }
                if (sClase == "-15")
                {
                    sLectura = "true";
                }
            }

            while (dr.Read())
            {
                sModoCoste = dr["t301_modelocoste"].ToString();
                sb.Append("<tr id='" + dr["t314_idusuario"].ToString() + "' bd='' ");
                sb.Append("idNodo='" + dr["t303_idnodo_usuariomes"].ToString() + "' ");
                sb.Append("caso='" + dr["caso"].ToString() + "' ");
                sb.Append("tipo='" + dr["TipoRecurso"].ToString() + "' ");
                sb.Append("unidades='" + dr["t378_unidades"].ToString().Replace(",", ".") + "' ");
                sb.Append("costecon='" + dr["coste"].ToString().Replace(",", ".") + "' ");
                sb.Append("costerep='" + dr["costerep"].ToString().Replace(",", ".") + "' ");
                sb.Append("idempresa='" + dr["t313_idempresa_nodomes"].ToString() + "' ");
                if (sClase == "-15")
                {
                    sb.Append("importe='" + dr["importe_cesion"].ToString().Replace(",", ".") + "' ");
                }
                else
                {
                    sb.Append("importe='" + dr["importe"].ToString().Replace(",", ".") + "' ");
                }

                if (sLectura != "true")
                {
                    sb.Append(" onclick='mm(event)' ");
                }

                if (sC == "0" || sC == dr["caso"].ToString() || sClase == "-15")
                {
                    sb.Append("style='height:20px;'>");
                }
                else
                {
                    sb.Append("style='height:20px;display:none;'>");
                }

                sb.Append("<td><img src='../../../images/imgFN.gif'></td>");

                switch (dr["TipoRecurso"].ToString())
                {
                case "1":
                    sb.Append("<td><img border='0' src='../../../Images/imgUsuP" + dr["sexo"].ToString() + ".gif' width='16px' height='16px' /></td>");
                    break;

                case "2":
                case "3":
                    sb.Append("<td><img border='0' src='../../../Images/imgUsuN" + dr["sexo"].ToString() + ".gif' width='16px' height='16px' /></td>");
                    break;

                case "4":
                    sb.Append("<td><img border='0' src='../../../Images/imgUsuE" + dr["sexo"].ToString() + ".gif' width='16px' height='16px' /></td>");
                    break;

                case "5":
                    sb.Append("<td><img border='0' src='../../../Images/imgUsuF" + dr["sexo"].ToString() + ".gif' width='16px' height='16px' /></td>");
                    break;
                }
                //sb.Append("<td><nobr class='NBR W520' 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;'>Profesional:</label>" + dr["profesional"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px;'>Usuario:</label>" + int.Parse(dr["t314_idusuario"].ToString()).ToString("#,###") + "<br><label style='width:70px;'>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + dr["t303_denominacion"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px;'>Empresa:</label>" + dr["EMPRESA"].ToString().Replace((char)34, (char)39) + "] hideselects=[off]\" >" + dr["Profesional"].ToString() + "<nobr></td>");
                sb.Append("<td style='padding-left:3px;'><nobr class='NBR W520' 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;'>Profesional:</label>" + dr["profesional"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px;'>Usuario:</label>" + int.Parse(dr["t314_idusuario"].ToString()).ToString("#,###"));
                if (dr["caso"].ToString() == "4")
                {//Si externo, ponemos su proveedor
                    sb.Append("<br><label style='width:70px;'>Proveedor:</label>" + dr["EMPRESA"].ToString().Replace((char)34, (char)39));
                }
                else//Sino, ponemos su nodo (SI NO ES FORÁNEO)
                {
                    if (dr["TipoRecurso"].ToString() != "5")
                    {
                        sb.Append("<br><label style='width:70px;'>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + dr["t303_denominacion"].ToString().Replace((char)34, (char)39));
                    }
                }
                sb.Append("] hideselects=[off]\" >" + dr["Profesional"].ToString() + "<nobr></td>");

                if (sCualidad != "J" || sClase == "-15")
                {
                    sb.Append("<td style='text-align:right;' title='" + dr["coste"].ToString() + "'>" + decimal.Parse(dr["coste"].ToString()).ToString("N") + "</td>");
                }
                else
                {
                    sb.Append("<td style='text-align:right;' title='" + dr["costerep"].ToString() + "'>" + decimal.Parse(dr["costerep"].ToString()).ToString("N") + "</td>");
                }

                if (sLectura == "true")
                {
                    sb.Append("<td style='text-align:right;'>" + double.Parse(dr["t378_unidades"].ToString()).ToString("N") + "</td>");
                    if (sClase == "-15")
                    {
                        sb.Append("<td style='text-align:right; padding-right:2px;'>" + decimal.Parse(dr["importe_cesion"].ToString()).ToString("N") + "</td>");
                    }
                    else
                    {
                        sb.Append("<td style='text-align:right; padding-right:2px;'>" + decimal.Parse(dr["importe"].ToString()).ToString("N") + "</td>");
                    }
                }
                else
                {
                    sb.Append("<td style='text-align:right;'><input type='text' class='txtNumL' style='width:90px; cursor:pointer' value='" + double.Parse(dr["t378_unidades"].ToString()).ToString("N") + "' onkeyup='fm(event);activarGrabar();if(event.keyCode!=9)setUnidades(this);' onfocus='fn(this);' onchange='calcularTotal()' title='" + dr["t378_unidades"].ToString().Replace(",", ".") + "' /></td>");
                    if ((bool)dr["t323_coste"])
                    {
                        if (sClase == "-15")
                        {
                            sb.Append("<td style='text-align:right; padding-right:2px;'><input type='text' class='txtNumL' style='width:90px; cursor:pointer' value='" + decimal.Parse(dr["importe_cesion"].ToString()).ToString("N") + "' title='" + dr["importe_cesion"].ToString() + "' onkeyup='fm(event);activarGrabar();if(event.keyCode!=9)setImporte(this);' onfocus='fn(this);' onchange='calcularTotal()' /></td>");
                        }
                        else
                        {
                            sb.Append("<td style='text-align:right; padding-right:2px;'><input type='text' class='txtNumL' style='width:90px; cursor:pointer' value='" + decimal.Parse(dr["importe"].ToString()).ToString("N") + "' title='" + dr["importe"].ToString() + "' onkeyup='fm(event);activarGrabar();if(event.keyCode!=9)setImporte(this);' onfocus='fn(this);' onchange='calcularTotal()' /></td>");
                        }
                    }
                    else
                    {
                        sb.Append("<td style='text-align:right; padding-right:2px;'><input type='text' class='txtNumL' style='width:90px; cursor:pointer' value='0,00' readonly /></td>");
                    }
                }
                sb.Append("</tr>");
            }
            dr.Close();
            dr.Dispose();
            sb.Append("</tbody>");
            sb.Append("</table>");

            return("OK@#@" + sb.ToString() + "@#@" + sLectura + "@#@" + MONEDA.getDenominacionImportes(sMonedaImportes2));
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los consumos de los profesionales", ex));
        }
    }
    public string getDatosNivel(string sSegMesProy, string sEstadoMes, string sModeloCoste, string sIdNodo, string sEstadoProy, string sMonedaProyecto2, string sMonedaImportes2)
    {
        StringBuilder sb = new StringBuilder();
        SqlDataReader dr;

        try
        {
            sLectura = "false";

            sb.Append("<table id=tblDatos style='width: 960px;' mantenimiento='1'>");
            sb.Append("<colgroup>");
            sb.Append("<col style='width:10px;' />");
            sb.Append("<col style='width:600px;' />");
            sb.Append("<col style='width:120px;' />");
            sb.Append("<col style='width:120px;' />");
            sb.Append("<col style='width:120px;' />");
            sb.Append("</colgroup>");
            sb.Append("<tbody>");

            if (sMonedaProyecto2 != sMonedaImportes2)
            {
                sLectura = "true";
            }
            else
            {
                if (sEstadoProy == "H" || sEstadoProy == "C" || (bool)Session["MODOLECTURA_PROYECTOSUBNODO"] || sEstadoMes == "C")
                {
                    sLecturaInsMes = "true";
                    sLectura       = "true";
                }
                if ((sEstadoProy == "A" || sEstadoProy == "P") && Session["ADMINISTRADOR_PC_ACTUAL"].ToString() == "SA")
                {
                    sLectura = "false";
                }
            }

            //Comprobar si hay conspermes. Si hay, poner en lectura y mostrar mmoff
            dr = CONSPERMES.Catalogo(int.Parse(sSegMesProy), null, null, null, null, null, null, 1, 0);
            if (dr.Read())
            {
                sHayConsumos = "true";
            }
            dr.Close();

            dr = CONSNIVELMES.Catalogo(int.Parse(sSegMesProy), sEstadoMes, sMonedaImportes2);
            while (dr.Read())
            {
                sb.Append("<tr id='" + dr["t442_idnivel"].ToString() + "' bd='' unidades='" + dr["t379_unidades"].ToString().Replace(",", ".") + "' style='height:20px;'");

                if (sLectura == "false" && sHayConsumos == "false")
                {
                    sb.Append(" onclick='mm(event)' ");
                }

                sb.Append("><td><img src='../../../images/imgFN.gif'></td>");
                sb.Append("<td style='padding-left:5px;'>" + dr["t442_denominacion"].ToString() + "</td>");
                sb.Append("<td style='text-align:right;'>" + decimal.Parse(dr["coste"].ToString()).ToString("N") + "</td>");

                if (sLectura == "false" && sHayConsumos == "false")
                {
                    sb.Append("<td style='text-align:right;'><input type='text' class='txtNumL' style='width:90px; cursor:pointer' value='" + double.Parse(dr["t379_unidades"].ToString()).ToString("N") + "' onkeyup='fm(event);setUnidades(this);' onfocus='fn(this);' onchange='calcularTotal()' title='" + dr["t379_unidades"].ToString().Replace(",", ".") + "' /></td>");
                    sb.Append("<td style='text-align:right;padding-right:2px;'><input type='text' class='txtNumL' style='width:90px; cursor:pointer' value='" + double.Parse(dr["importe"].ToString()).ToString("N") + "' onkeyup='fm(event);setImporte(this);' onfocus='fn(this);' onchange='calcularTotal()' /></td>");
                }
                else
                {
                    sb.Append("<td style='text-align:right;'>" + double.Parse(dr["t379_unidades"].ToString()).ToString("N") + "</td>");
                    sb.Append("<td style='text-align:right;padding-right:2px;'>" + double.Parse(dr["importe"].ToString()).ToString("N") + "</td>");
                }
                sb.Append("</tr>");
            }
            dr.Close();
            dr.Dispose();
            sb.Append("</tbody>");
            sb.Append("</table>");

            return("OK@#@" + sb.ToString() + "@#@" + sLectura + "@#@" + sHayConsumos + "@#@" + MONEDA.getDenominacionImportes(sMonedaImportes2));
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener los consumos de niveles", ex));
        }
    }