Exemplo n.º 1
0
    protected string EliminarAE(string strIDAE)
    {
        string sResul = "";

        #region abrir conexión y transacción
        try
        {
            oConn = Conexion.Abrir();
            tr    = Conexion.AbrirTransaccion(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
        {
            string[] aAE = Regex.Split(strIDAE, "##");
            foreach (string oAE in aAE)
            {
                //AE.Delete(tr, int.Parse(oAE));
                CEC.Delete(tr, int.Parse(oAE));
            }
            Conexion.CommitTransaccion(tr);

            sResul = "OK@#@";
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al eliminar los criterios estadísticos", ex);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }

        return(sResul);
    }
Exemplo n.º 2
0
    protected string Grabar(string strDatos, string strDatosVAE, string sCEC, string sVCEC, string strNodos)
    {
        string sResul = "", sNuevosAEs = "", sNuevosVAEs = "", sTablaAct = "T341";
        bool   bEstado;
        int    idAE, idVAE, idNodo;

        string[] aKeysAE;
        string[] aKeysVAE;
        #region conexion
        try
        {
            oConn = Conexion.Abrir();
            tr    = Conexion.AbrirTransaccion(oConn);
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex);
            return(sResul);
        }
        #endregion
        try
        {
            #region AE
            int      idNuevoAE;
            string[] aAE = Regex.Split(strDatos, "///");
            foreach (string oAE in aAE)
            {
                if (oAE == "")
                {
                    continue;
                }
                string[] aValores = Regex.Split(oAE, "##");
                //0. Opcion BD. "I", "U", "D"
                //1. ID AE
                //2. Denominación
                //3. Estado
                //4. Orden
                bEstado = false;
                if (aValores[3] == "1")
                {
                    bEstado = true;
                }

                switch (aValores[0])
                {
                case "D":
                    CEC.Delete(tr, int.Parse(aValores[1]));
                    break;

                case "I":
                    idNuevoAE   = CEC.Insert(tr, Utilidades.unescape(aValores[2]), bEstado, int.Parse(aValores[4]));
                    sNuevosAEs += aValores[1] + "##" + idNuevoAE.ToString() + "@@";
                    break;

                case "U":
                    CEC.Update(tr, int.Parse(aValores[1]), Utilidades.unescape(aValores[2]), bEstado, int.Parse(aValores[4]));
                    break;
                }
            }
            #endregion
            aKeysAE   = Regex.Split(sNuevosAEs, "@@");
            sTablaAct = "T340";
            #region VAE
            int      idNuevoVAE;
            string[] aVAE = Regex.Split(strDatosVAE, "///");

            foreach (string oVAE in aVAE)
            {
                if (oVAE == "")
                {
                    break;
                }
                string[] aValoresVAE = Regex.Split(oVAE, "##");
                ///aValoresVAE[0] = opcionBD;
                ///aValoresVAE[1] = idAE;
                ///aValoresVAE[2] = idVAE;
                ///aValoresVAE[3] = Valor;
                ///aValoresVAE[4] = Orden;
                ///aValoresVAE[5] = Activo;
                idAE = int.Parse(aValoresVAE[1]);
                if (idAE < 0)
                {
                    idAE = flBuscarKeyAE(aValoresVAE[1], aKeysAE);
                }

                bool bEstadoVAE = false;
                if (aValoresVAE[5] == "1")
                {
                    bEstadoVAE = true;
                }

                switch (aValoresVAE[0])
                {
                case "I":
                    idNuevoVAE   = VCEC.Insert(tr, Utilidades.unescape(aValoresVAE[3]), bEstadoVAE, idAE, byte.Parse(aValoresVAE[4]));
                    sNuevosVAEs += aValoresVAE[2] + "##" + idNuevoVAE.ToString() + "@@";
                    break;

                case "U":
                    VCEC.Update(tr, int.Parse(aValoresVAE[2]), Utilidades.unescape(aValoresVAE[3]), bEstadoVAE, idAE, byte.Parse(aValoresVAE[4]));
                    break;

                case "D":
                    VCEC.Delete(tr, int.Parse(aValoresVAE[2]));
                    break;
                }
            }
            #endregion
            aKeysVAE  = Regex.Split(sNuevosVAEs, "@@");
            sTablaAct = "T345";
            #region CEC
            string[] aCEC = Regex.Split(sCEC, "///");
            foreach (string oCEC in aCEC)
            {
                if (oCEC != "")
                {
                    string[] aValores = Regex.Split(oCEC, "##");
                    //0. Opcion BD. "I", "U", "D"
                    //1. ID AE
                    //2. Obligatorio
                    //3. Nodo
                    idAE = int.Parse(aValores[1]);
                    if (idAE < 0)
                    {
                        idAE = flBuscarKeyAE(aValores[1], aKeysAE);
                    }

                    bEstado = false;
                    if (aValores[2] == "1")
                    {
                        bEstado = true;
                    }
                    switch (aValores[0])
                    {
                    case "D":
                        CECNODO.Delete(tr, idAE, int.Parse(aValores[3]));
                        break;

                    case "I":
                        if (CECNODO.Existe(tr, idAE, int.Parse(aValores[3])))
                        {
                            CECNODO.Update(tr, idAE, int.Parse(aValores[3]), bEstado);
                        }
                        else
                        {
                            CECNODO.Insert(tr, idAE, int.Parse(aValores[3]), bEstado);
                        }
                        break;

                    case "U":
                        CECNODO.Update(tr, idAE, int.Parse(aValores[3]), bEstado);
                        break;
                    }
                }
            }
            #endregion
            sTablaAct = "T435";
            #region VCEC
            string[] aNodo    = Regex.Split(strNodos, "///");
            string[] aVAENodo = Regex.Split(sVCEC, "///");

            foreach (string oNodo in aNodo)
            {
                if (oNodo == "")
                {
                    break;
                }
                idNodo = int.Parse(oNodo);
                foreach (string oVAENodo in aVAENodo)
                {
                    if (oVAENodo == "")
                    {
                        break;
                    }
                    string[] aValoresVAENodo = Regex.Split(oVAENodo, "##");
                    ///aValoresVAENodo[0] = opcionBD;
                    ///aValoresVAENodo[1] = idAE;
                    ///aValoresVAENodo[2] = idVAE;
                    idAE = int.Parse(aValoresVAENodo[1]);
                    if (idAE < 0)
                    {
                        idAE = flBuscarKeyAE(aValoresVAENodo[1], aKeysAE);
                    }

                    idVAE = int.Parse(aValoresVAENodo[2]);
                    if (idVAE < 0)
                    {
                        idVAE = flBuscarKeyAE(aValoresVAENodo[2], aKeysVAE);
                    }

                    switch (aValoresVAENodo[0])
                    {
                    case "I":
                    case "U":
                        if (!CECRESTRICCION.Existe(tr, idAE, idNodo, idVAE))
                        {
                            CECRESTRICCION.Insert(tr, idAE, idNodo, idVAE);
                        }
                        break;

                    case "D":
                        CECRESTRICCION.Delete(tr, idAE, idNodo, idVAE);
                        break;
                    }
                }
            }
            #endregion

            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@" + sNuevosAEs + "@#@" + sNuevosVAEs;
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al grabar los criterios estadísticos.", ex) + "@#@" + sTablaAct;
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }

        return(sResul);
    }