Beispiel #1
0
        public static string Grabar(string sBonos, string sImportes, string sOficinas)
        {
            string         sResul = "", sElementosInsertados = "", sElementosInsertados2 = "", sElementosInsertados3 = "";
            SqlConnection  oConn = null;
            SqlTransaction tr = null;
            int            nAux = 0, nDel = 0, nIdBono = -1, nFechas = 0;
            string         sNewBonos        = "";
            bool           bErrorControlado = false;

            #region abrir conexión y transacción
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccionSerializable(oConn);
            }
            catch (Exception)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión."));
            }
            #endregion

            try
            {
                #region Bonos
                if (sBonos != "")
                {
                    //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aBonosGrabar = Regex.Split(sBonos, "#sFin#");
                    for (int i = 0; i <= aBonosGrabar.Length - 1; i++)
                    {
                        string[] aElemBono = Regex.Split(aBonosGrabar[i], "#sCad#");
                        switch (aElemBono[0])
                        {
                        case "I":
                            nAux = DAL.BonoTransporte.InsertBonoTransporte(tr, Utilidades.unescape(aElemBono[2]), aElemBono[4], Utilidades.unescape(aElemBono[3]), aElemBono[5].ToString());
                            if (sElementosInsertados == "")
                            {
                                sElementosInsertados = nAux.ToString();
                                sNewBonos            = aElemBono[1] + "#sCad#" + nAux.ToString();
                            }
                            else
                            {
                                sElementosInsertados += "#sCad#" + nAux.ToString();
                                sNewBonos            += "#sFin#" + aElemBono[1] + "#sCad#" + nAux.ToString();
                            }
                            break;

                        case "D":
                            nDel = DAL.BonoTransporte.DeleteBonoTransporte(tr, int.Parse(aElemBono[1]));
                            if (nDel == 0)
                            {
                                bErrorControlado = true;
                                throw (new Exception("Operacion rechazada! Existen usuarios asignados a ese bono."));
                            }
                            break;

                        case "U":
                            DAL.BonoTransporte.UpdateBonoTransporte(tr, int.Parse(aElemBono[1]), Utilidades.unescape(aElemBono[2]), aElemBono[4], Utilidades.unescape(aElemBono[3]), aElemBono[5].ToString());
                            break;
                        }
                    }
                }
                //sElementosInsertados += "@#@";
                sElementosInsertados = sNewBonos + "@#@";
                #endregion

                #region Importes
                if (sImportes != "")
                {
                    //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aImportesGrabar = Regex.Split(sImportes, "#sFin#");
                    for (int i = 0, iCountLoop = aImportesGrabar.Length - 1; i <= iCountLoop; i++)
                    {
                        string[] aElemImporte = Regex.Split(aImportesGrabar[i], "#sCad#");
                        switch (aElemImporte[0])
                        {
                        case "I":
                            if (int.Parse(aElemImporte[1]) >= 30000)    // 30000 este es el valor mínimo que se le ha indicado a todas las filas nuevas
                            {
                                string[] aNewBonos = Regex.Split(sNewBonos, "#sFin#");
                                for (int j = 0, nCountLoop = aNewBonos.Length - 1; j <= nCountLoop; j++)
                                {
                                    string[] sElemNewBonos = Regex.Split(aNewBonos[j], "#sCad#");
                                    if (sElemNewBonos[0] == aElemImporte[1])
                                    {
                                        nIdBono = int.Parse(sElemNewBonos[1]);
                                        break;
                                    }
                                }
                            }
                            ////Comprobamos que las fechas que queremos introducir no se solapen con alguna otra que ya existiera.
                            nFechas = DAL.BonoTransporte.FechasImporte(tr,
                                                                       (aElemImporte[3] == "") ? 0 : int.Parse(aElemImporte[2]),
                                                                       (nIdBono != -1) ? nIdBono : int.Parse(aElemImporte[1]),
                                                                       (aElemImporte[4] == "") ? 0 : int.Parse(aElemImporte[4]),
                                                                       (aElemImporte[5] == "") ? 0 : int.Parse(aElemImporte[5]));
                            if (nFechas == 0)
                            {
                                nAux = DAL.BonoTransporte.InsertBonoImporte(tr,
                                                                            (nIdBono != -1) ? nIdBono : int.Parse(aElemImporte[1]),
                                                                            (aElemImporte[3] == "") ? 0 : decimal.Parse(aElemImporte[3]),
                                                                            (aElemImporte[4] == "") ? 0 : int.Parse(aElemImporte[4]),
                                                                            (aElemImporte[5] == "") ? 0 : int.Parse(aElemImporte[5]));
                                nIdBono = -1;
                                if (sElementosInsertados2 == "")
                                {
                                    sElementosInsertados2 = nAux.ToString();
                                }
                                else
                                {
                                    sElementosInsertados2 += "#sCad#" + nAux.ToString();
                                }
                            }
                            else
                            {
                                bErrorControlado = true;
                                throw (new Exception("Operacion rechazada! Denegado por solapamiento de fechas."));
                            }
                            break;

                        case "D":
                            DAL.BonoTransporte.DeleteBonoImporte(tr, int.Parse(aElemImporte[2]));
                            break;

                        case "U":
                            ////Comprobamos que las fechas que queremos introducir no se solapen con alguna otra que ya existiera.
                            nFechas = DAL.BonoTransporte.FechasImporte(tr,
                                                                       (aElemImporte[3] == "") ? 0 : int.Parse(aElemImporte[2]),
                                                                       (nIdBono != -1) ? nIdBono : int.Parse(aElemImporte[1]),
                                                                       (aElemImporte[4] == "") ? 0 : int.Parse(aElemImporte[4]),
                                                                       (aElemImporte[5] == "") ? 0 : int.Parse(aElemImporte[5]));
                            if (nFechas == 0)
                            {
                                DAL.BonoTransporte.UpdateBonoImporte(tr,
                                                                     int.Parse(aElemImporte[1]), int.Parse(aElemImporte[2]),
                                                                     (aElemImporte[3] == "") ? 0 : decimal.Parse(aElemImporte[3]),
                                                                     (aElemImporte[4] == "") ? 0 : int.Parse(aElemImporte[4]),
                                                                     (aElemImporte[5] == "") ? 0 : int.Parse(aElemImporte[5]));
                            }
                            else
                            {
                                bErrorControlado = true;
                                throw (new Exception("Operacion rechazada! Denegado por solapamiento de fechas."));
                            }
                            break;
                        }
                    }
                }
                sElementosInsertados += sElementosInsertados2;
                #endregion

                #region Oficinas
                if (sOficinas != "")
                {
                    //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aOficinasGrabar = Regex.Split(sOficinas, "#sFin#");
                    for (int i = 0; i <= aOficinasGrabar.Length - 1; i++)
                    {
                        string[] aElemOficina = Regex.Split(aOficinasGrabar[i], "#sCad#");
                        switch (aElemOficina[0])
                        {
                        case "I":
                            if (int.Parse(aElemOficina[1]) >= 30000)    // 30000 este es el valor mínimo que se le ha indicado a todas las filas nuevas
                            {
                                string[] aNewBonos = Regex.Split(sNewBonos, "#sFin#");
                                for (int j = 0, nCountLoop = aNewBonos.Length - 1; j <= nCountLoop; j++)
                                {
                                    string[] sElemNewBonos = Regex.Split(aNewBonos[j], "#sCad#");
                                    if (sElemNewBonos[0] == aElemOficina[1])
                                    {
                                        nIdBono = int.Parse(sElemNewBonos[1]);
                                        break;
                                    }
                                }
                            }
                            nFechas = DAL.BonoTransporte.FechasOficinas(tr,
                                                                        int.Parse(aElemOficina[2]),
                                                                        (nIdBono != -1) ? nIdBono : int.Parse(aElemOficina[1]),
                                                                        (aElemOficina[4] == "") ? 0 : int.Parse(aElemOficina[4]),
                                                                        (aElemOficina[5] == "") ? 0 : int.Parse(aElemOficina[5]),
                                                                        int.Parse(aElemOficina[3]));
                            if (nFechas == 0)
                            {
                                nAux = DAL.BonoTransporte.InsertBonoOficina(tr,
                                                                            (nIdBono != -1) ? nIdBono : int.Parse(aElemOficina[1]),
                                                                            int.Parse(aElemOficina[3]),
                                                                            (aElemOficina[4] == "") ? 0 : int.Parse(aElemOficina[4]),
                                                                            (aElemOficina[5] == "") ? 0 : int.Parse(aElemOficina[5]));
                                nIdBono = -1;
                                if (sElementosInsertados3 == "")
                                {
                                    sElementosInsertados3 = nAux.ToString();
                                }
                                else
                                {
                                    sElementosInsertados3 += "#sCad#" + nAux.ToString();
                                }
                            }
                            else
                            {
                                bErrorControlado = true;
                                throw (new Exception("Operacion rechazada! Denegado por solapamiento de fechas."));
                            }
                            break;

                        case "D":
                            DAL.BonoTransporte.DeleteBonoOficina(tr, int.Parse(aElemOficina[2]));
                            break;

                        case "U":
                            nFechas = DAL.BonoTransporte.FechasOficinas(tr,
                                                                        int.Parse(aElemOficina[2]),
                                                                        (nIdBono != -1) ? nIdBono : int.Parse(aElemOficina[1]),
                                                                        (aElemOficina[4] == "") ? 0 : int.Parse(aElemOficina[4]),
                                                                        (aElemOficina[5] == "") ? 0 : int.Parse(aElemOficina[5]),
                                                                        int.Parse(aElemOficina[3]));
                            if (nFechas == 0)
                            {
                                DAL.BonoTransporte.UpdateBonoOficina(tr,
                                                                     int.Parse(aElemOficina[1]),
                                                                     int.Parse(aElemOficina[2]), int.Parse(aElemOficina[3]),
                                                                     (aElemOficina[4] == "") ? 0 : int.Parse(aElemOficina[4]),
                                                                     (aElemOficina[5] == "") ? 0 : int.Parse(aElemOficina[5]));
                            }
                            else
                            {
                                bErrorControlado = true;
                                throw (new Exception("Operacion rechazada! Denegado por solapamiento de fechas."));
                            }
                            break;
                        }
                    }
                }
                sElementosInsertados += "@#@" + sElementosInsertados3;
                #endregion

                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                if (bErrorControlado)
                {
                    sResul = ex.Message;
                }
                else
                {
                    sResul = Errores.mostrarError("Error al grabar el bono transporte.", ex);
                }
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
            return(sElementosInsertados);
        }
        public static string Grabar(string sAc, string sProf, string sProy, string sCR)
        {
            string         sResul = "", sElementosInsertados = "", sElementosInsertados2 = "", sElementosInsertados3 = "", sElementosInsertados4 = "";
            SqlConnection  oConn = null;
            SqlTransaction tr = null;
            int            nAux = 0, nDel = 0, nIdAc = -1;
            string         sNewAc           = "";
            bool           bErrorControlado = false;

            #region abrir conexión y transacción
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccionSerializable(oConn);
            }
            catch (Exception)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión."));
            }
            #endregion

            try
            {
                #region Acuerdos
                if (sAc != "")
                {
                    //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aAcGrabar = Regex.Split(sAc, "#sFin#");
                    for (int i = 0; i <= aAcGrabar.Length - 1; i++)
                    {
                        string[] aElemAc = Regex.Split(aAcGrabar[i], "#sCad#");
                        switch (aElemAc[0])
                        {
                        case "I":
                            nAux = DAL.ACUERDOGV.InsertAcuerdo(tr,
                                                               Utilidades.unescape(aElemAc[2].ToString()),
                                                               int.Parse(aElemAc[3]),
                                                               Utilidades.unescape(aElemAc[4].ToString()),
                                                               DateTime.Parse(aElemAc[5]),
                                                               DateTime.Parse(aElemAc[6]),
                                                               int.Parse(aElemAc[7]),
                                                               DateTime.Parse(aElemAc[8]),
                                                               aElemAc[9].ToString());
                            if (sElementosInsertados == "")
                            {
                                sElementosInsertados = nAux.ToString();
                                sNewAc = aElemAc[1] + "#sCad#" + nAux.ToString();
                            }
                            else
                            {
                                sElementosInsertados += "#sCad#" + nAux.ToString();
                                sNewAc += "#sFin#" + aElemAc[1] + "#sCad#" + nAux.ToString();
                            }
                            break;

                        case "D":
                            nDel = DAL.ACUERDOGV.DeleteAcuerdo(tr, int.Parse(aElemAc[1]));
                            if (nDel == 0)
                            {
                                bErrorControlado = true;
                                throw (new Exception("Operacion rechazada! Existen usuarios asignados a ese acuerdo."));
                            }
                            break;

                        case "U":
                            DAL.ACUERDOGV.UpdateAcuerdo(tr,
                                                        int.Parse(aElemAc[1]),
                                                        Utilidades.unescape(aElemAc[2].ToString()),
                                                        int.Parse(aElemAc[3]),
                                                        Utilidades.unescape(aElemAc[4].ToString()),
                                                        DateTime.Parse(aElemAc[5]),
                                                        DateTime.Parse(aElemAc[6]),
                                                        int.Parse(aElemAc[7]),
                                                        DateTime.Parse(aElemAc[8]),
                                                        aElemAc[9].ToString());
                            break;
                        }
                    }
                }
                sElementosInsertados = sNewAc + "@#@";
                #endregion

                #region Profesionales
                if (sProf != "")
                {
                    //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aProfGrabar = Regex.Split(sProf, "#sFin#");
                    for (int i = 0, iCountLoop = aProfGrabar.Length - 1; i <= iCountLoop; i++)
                    {
                        string[] aElemProf = Regex.Split(aProfGrabar[i], "#sCad#");
                        switch (aElemProf[0])
                        {
                        case "I":
                            if (int.Parse(aElemProf[1]) >= 30000)    // 30000 este es el valor mínimo que se le ha indicado a todas las filas nuevas
                            {
                                string[] aNewAc = Regex.Split(sNewAc, "#sFin#");
                                for (int j = 0, nCountLoop = aNewAc.Length - 1; j <= nCountLoop; j++)
                                {
                                    string[] sElemNewAc = Regex.Split(aNewAc[j], "#sCad#");
                                    if (sElemNewAc[0] == aElemProf[1])
                                    {
                                        nIdAc = int.Parse(sElemNewAc[1]);
                                        break;
                                    }
                                }
                            }
                            nAux = DAL.ACUERDOGV.InsertProfesional(tr,
                                                                   (nIdAc != -1) ? nIdAc : int.Parse(aElemProf[1]),
                                                                   int.Parse(aElemProf[2]));
                            nIdAc = -1;
                            if (sElementosInsertados2 == "")
                            {
                                sElementosInsertados2 = aElemProf[2];
                            }
                            else
                            {
                                sElementosInsertados2 += "#sCad#" + aElemProf[2];
                            }

                            break;

                        case "D":
                            DAL.ACUERDOGV.DeleteProfesional(tr,
                                                            int.Parse(aElemProf[1]),
                                                            int.Parse(aElemProf[2]));
                            break;
                        }
                    }
                }
                sElementosInsertados += sElementosInsertados2;
                #endregion

                #region Proyectos
                if (sProy != "")
                {
                    //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aProyGrabar = Regex.Split(sProy, "#sFin#");
                    for (int i = 0; i <= aProyGrabar.Length - 1; i++)
                    {
                        string[] aElemProy = Regex.Split(aProyGrabar[i], "#sCad#");
                        switch (aElemProy[0])
                        {
                        case "I":
                            if (int.Parse(aElemProy[1]) >= 30000)    // 30000 este es el valor mínimo que se le ha indicado a todas las filas nuevas
                            {
                                string[] aNewAc = Regex.Split(sNewAc, "#sFin#");
                                for (int j = 0, nCountLoop = aNewAc.Length - 1; j <= nCountLoop; j++)
                                {
                                    string[] sElemNewAc = Regex.Split(aNewAc[j], "#sCad#");
                                    if (sElemNewAc[0] == aElemProy[1])
                                    {
                                        nIdAc = int.Parse(sElemNewAc[1]);
                                        break;
                                    }
                                }
                            }
                            nAux = DAL.ACUERDOGV.InsertProyecto(tr,
                                                                (nIdAc != -1) ? nIdAc : int.Parse(aElemProy[1]),
                                                                int.Parse(aElemProy[2]));
                            nIdAc = -1;
                            if (sElementosInsertados3 == "")
                            {
                                sElementosInsertados3 = aElemProy[2];
                            }
                            else
                            {
                                sElementosInsertados3 += "#sCad#" + aElemProy[2];
                            }
                            break;

                        case "D":
                            DAL.ACUERDOGV.DeleteProyecto(tr,
                                                         int.Parse(aElemProy[1]),
                                                         int.Parse(aElemProy[2]));
                            break;
                        }
                    }
                }
                sElementosInsertados += "@#@" + sElementosInsertados3;
                #endregion

                #region CR
                if (sCR != "")
                {
                    //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aCRGrabar = Regex.Split(sCR, "#sFin#");
                    for (int i = 0; i <= aCRGrabar.Length - 1; i++)
                    {
                        string[] aElemCR = Regex.Split(aCRGrabar[i], "#sCad#");
                        switch (aElemCR[0])
                        {
                        case "I":
                            if (int.Parse(aElemCR[1]) >= 30000)    // 30000 este es el valor mínimo que se le ha indicado a todas las filas nuevas
                            {
                                string[] aNewAc = Regex.Split(sNewAc, "#sFin#");
                                for (int j = 0, nCountLoop = aNewAc.Length - 1; j <= nCountLoop; j++)
                                {
                                    string[] sElemNewAc = Regex.Split(aNewAc[j], "#sCad#");
                                    if (sElemNewAc[0] == aElemCR[1])
                                    {
                                        nIdAc = int.Parse(sElemNewAc[1]);
                                        break;
                                    }
                                }
                            }
                            nAux = DAL.ACUERDOGV.InsertCR(tr,
                                                          (nIdAc != -1) ? nIdAc : int.Parse(aElemCR[1]),
                                                          int.Parse(aElemCR[2]));
                            nIdAc = -1;

                            if (sElementosInsertados4 == "")
                            {
                                sElementosInsertados4 = aElemCR[2];
                            }
                            else
                            {
                                sElementosInsertados4 += "#sCad#" + aElemCR[2];
                            }
                            break;

                        case "D":
                            DAL.ACUERDOGV.DeleteCR(tr,
                                                   int.Parse(aElemCR[1]),
                                                   int.Parse(aElemCR[2]));
                            break;
                        }
                    }
                }
                sElementosInsertados += "@#@" + sElementosInsertados4;
                #endregion

                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                if (bErrorControlado)
                {
                    sResul = ex.Message;
                }
                else
                {
                    sResul = Errores.mostrarError("Error al grabar el acuerdo.", ex);
                }
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
            return(sElementosInsertados);
        }
        public static void Grabar(string sSN2Ex, string sMotivosEx)
        {
            string         sResul = "";
            SqlConnection  oConn  = null;
            SqlTransaction tr     = null;

            #region abrir conexión y transacción
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccion(oConn);
            }
            catch (Exception)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión."));
            }
            #endregion

            try
            {
                if (sSN2Ex != "")
                {
                    string[] aDatos = Regex.Split(sSN2Ex, "#sFin#");
                    for (int i = 0; i <= aDatos.Length - 1; i++)
                    {
                        string[] aElem = Regex.Split(aDatos[i], "#sCad#");
                        switch (aElem[0])
                        {
                        case "D":
                            DAL.MOTIVOEX.DeleteSN2MotivoExAll(tr, int.Parse(aElem[1]));
                            break;
                        }
                    }
                }

                if (sMotivosEx != "")
                {
                    string[] aDatos2 = Regex.Split(sMotivosEx, "#sFin#");
                    for (int i = 0; i <= aDatos2.Length - 1; i++)
                    {
                        string[] aElem2 = Regex.Split(aDatos2[i], "#sCad#");
                        switch (aElem2[0])
                        {
                        case "D":
                            DAL.MOTIVOEX.DeleteSN2MotivoEx(tr, int.Parse(aElem2[1]), short.Parse(aElem2[2]));
                            break;

                        case "I":
                            DAL.MOTIVOEX.InsertSN2MotivoEx(tr, int.Parse(aElem2[1]), short.Parse(aElem2[2]));
                            break;
                        }
                    }
                }
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al grabar los motivos de excepción.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
        }
        public static void Grabar(string sDatos)
        {
            string         sResul = "";
            SqlConnection  oConn  = null;
            SqlTransaction tr     = null;

            #region abrir conexión y transacción
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccion(oConn);
            }
            catch (Exception)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión."));
            }
            #endregion

            try
            {
                if (sDatos != "")
                {
                    //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aDatos = Regex.Split(sDatos, "#sFin#");
                    for (int i = 0; i <= aDatos.Length - 1; i++)
                    {
                        string[] aElem = Regex.Split(aDatos[i], "#sCad#");
                        switch (aElem[0])
                        {
                        case "I":
                            DAL.AnnoGasto.InsertAnnoGasto(tr, int.Parse(aElem[2]), DateTime.Parse(aElem[3]), DateTime.Parse(aElem[4]), int.Parse(HttpContext.Current.Session["GVT_IDFICEPI"].ToString()), DateTime.Today);
                            break;

                        case "D":
                            DAL.AnnoGasto.DeleteAnnoGasto(tr, int.Parse(aElem[1]));
                            break;

                        case "U":
                            DAL.AnnoGasto.UpdateAnnoGasto(tr, int.Parse(aElem[1]), int.Parse(aElem[2]), DateTime.Parse(aElem[3]), DateTime.Parse(aElem[4]), int.Parse(HttpContext.Current.Session["GVT_IDFICEPI"].ToString()), DateTime.Today);
                            break;
                        }
                    }
                }
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al grabar los años gastos.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
        }
        public static void Grabar(string sMotivos, string sAprobadores)
        {
            string         sResul = "";
            SqlConnection  oConn  = null;
            SqlTransaction tr     = null;

            #region abrir conexión y transacción
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccion(oConn);
            }
            catch (Exception)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión."));
            }
            #endregion

            try
            {
                if (sMotivos != "")
                {
                    //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aDatosMo = Regex.Split(sMotivos, "#sFin#");
                    for (int i = 0; i <= aDatosMo.Length - 1; i++)
                    {
                        string[] aElem = Regex.Split(aDatosMo[i], "#sCad#");
                        DAL.MOTIVO.UpdateMotivo(tr,
                                                short.Parse(aElem[0]),
                                                Utilidades.unescape(aElem[1].ToString()),
                                                short.Parse(aElem[2]),
                                                int.Parse(aElem[3].Replace(".", "")),
                                                (aElem[4].ToString() == "") ? null : aElem[4].ToString());
                    }
                }
                if (sAprobadores != "")
                {
                    string[] aDatosAp = Regex.Split(sAprobadores, "#sFin#");
                    for (int i = 0; i <= aDatosAp.Length - 1; i++)
                    {
                        string[] aElem2 = Regex.Split(aDatosAp[i], "#sCad#");
                        switch (aElem2[0])
                        {
                        case "I":
                            DAL.MOTIVO.InsertAprobadores(tr, short.Parse(aElem2[1]), int.Parse(aElem2[2]));
                            break;

                        case "D":
                            DAL.MOTIVO.DeleteAprobadores(tr, short.Parse(aElem2[1]), int.Parse(aElem2[2]));
                            break;
                        }
                    }
                }
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al grabar los motivos y sus aprobadores.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
        }
Beispiel #6
0
        public static void Grabar(string sDatos)
        {
            string         sResul = "";
            SqlConnection  oConn  = null;
            SqlTransaction tr     = null;

            #region abrir conexión y transacción
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccion(oConn);
            }
            catch (Exception)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión."));
            }
            #endregion

            try
            {
                if (sDatos != "")
                {
                    //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aDatosGrabar = Regex.Split(sDatos, "#sFin#");
                    for (int i = 0; i <= aDatosGrabar.Length - 1; i++)
                    {
                        string[] aElem = Regex.Split(aDatosGrabar[i], "#sCad#");
                        switch (aElem[1])
                        {
                        case "I":
                            switch (aElem[0])
                            {
                            case "P":
                            case "A":
                            case "L":
                            case "S":
                                //case "T":
                                DAL.Figuras.InsertIntegranteFigura(tr, aElem[0], int.Parse(aElem[2]));
                                break;
                            }
                            break;

                        case "D":
                            DAL.Figuras.DeleteIntegranteFigura(tr, aElem[0], int.Parse(aElem[2]));
                            break;
                        }
                        switch (aElem[3])
                        {
                        case "I":
                            DAL.Figuras.InsertElementoFigura(tr, aElem[0], int.Parse(aElem[2]), int.Parse(aElem[4]), "V");
                            break;

                        case "D":
                            DAL.Figuras.DeleteElementoFigura(tr, aElem[0], int.Parse(aElem[2]), int.Parse(aElem[4]), "V");
                            break;
                        }
                    }
                }
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al grabar las figuras.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
        }
Beispiel #7
0
        public static string AparcarNotaEstandar(string strDatosCabecera, string strDatosPosiciones)
        {
            string         sResul = "";
            int            nReferencia = 0, nFilasModificadas = 0;
            SqlConnection  oConn = null;
            SqlTransaction tr = null;
            bool           bErrorControlado = false, bExisteNota = false;

            string[] aDatosCabecera = Regex.Split(strDatosCabecera, "#sep#");
            #region Datos Cabecera
            ///aDatosCabecera[0] = txtConcepto //0
            ///aDatosCabecera[1] = hdnInteresado //1
            ///aDatosCabecera[2] = cboMotivo //2
            ///aDatosCabecera[3] = rdbJustificantes //3
            ///aDatosCabecera[4] = hdnIdProyectoSubNodo //4
            ///aDatosCabecera[5] = cboMoneda //5
            ///aDatosCabecera[6] = txtObservacionesNota //6
            ///aDatosCabecera[7] = hdnAnotacionesPersonales //7
            ///aDatosCabecera[8] = txtImpAnticipo //8
            ///aDatosCabecera[9] = txtFecAnticipo //9
            ///aDatosCabecera[10] = txtOficinaAnticipo //10
            ///aDatosCabecera[11] = txtImpDevolucion //11
            ///aDatosCabecera[12] = txtFecDevolucion //12
            ///aDatosCabecera[13] = txtOficinaDevolucion //13
            ///aDatosCabecera[14] = txtAclaracionesAnticipos //14
            ///aDatosCabecera[15] = txtPagadoTransporte //15
            ///aDatosCabecera[16] = txtPagadoHotel //16
            ///aDatosCabecera[17] = txtPagadoOtros //17
            ///aDatosCabecera[18] = txtAclaracionesPagado //18
            ///aDatosCabecera[19] = hdnReferencia //19
            ///aDatosCabecera[20] = hdnIdEmpresa //20
            #endregion Datos Posiciones
            string[] aPosiciones = Regex.Split(strDatosPosiciones, "#reg#");
            #region Posiciones
            ///aPosiciones[0] = sDesde  //0
            ///aPosiciones[1] = sHasta  //
            ///aPosiciones[2] = destino
            ///aPosiciones[3] = comentario
            ///aPosiciones[4] = DC
            ///aPosiciones[5] = MD
            ///aPosiciones[6] = DE
            ///aPosiciones[7] = DA
            ///aPosiciones[8] = KMS
            ///aPosiciones[9] = eco
            ///aPosiciones[10] = Peaje
            ///aPosiciones[11] = Comida
            ///aPosiciones[12] = Trans
            ///aPosiciones[13] = Hoteles

            #endregion

            #region Abrir conexión y transacción
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccionSerializable(oConn);
            }
            catch
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión."));
            }
            #endregion

            try
            {
                try
                {
                    #region Aparcar Cabecera
                    if (aDatosCabecera[19] == "")
                    {
                        nReferencia = DAL.CABECERAAPARCADA_NEGV.AparcarCabecera(tr,
                                                                                Utilidades.unescape(aDatosCabecera[0]),
                                                                                (int)HttpContext.Current.Session["GVT_IDFICEPI"],
                                                                                int.Parse(aDatosCabecera[1]),
                                                                                byte.Parse(aDatosCabecera[2]),
                                                                                (aDatosCabecera[3] == "1") ? true : false,
                                                                                (aDatosCabecera[4] == "") ? null : (int?)int.Parse(aDatosCabecera[4]),
                                                                                aDatosCabecera[5],
                                                                                Utilidades.unescape(aDatosCabecera[6]),
                                                                                Utilidades.unescape(aDatosCabecera[7]),
                                                                                decimal.Parse(aDatosCabecera[8]),
                                                                                (aDatosCabecera[9] == "") ? null : (DateTime?)DateTime.Parse(aDatosCabecera[9]),
                                                                                Utilidades.unescape(aDatosCabecera[10]),
                                                                                decimal.Parse(aDatosCabecera[11]),
                                                                                (aDatosCabecera[12] == "") ? null : (DateTime?)DateTime.Parse(aDatosCabecera[12]),
                                                                                Utilidades.unescape(aDatosCabecera[13]),
                                                                                Utilidades.unescape(aDatosCabecera[14]),
                                                                                decimal.Parse(aDatosCabecera[15]),
                                                                                decimal.Parse(aDatosCabecera[16]),
                                                                                decimal.Parse(aDatosCabecera[17]),
                                                                                Utilidades.unescape(aDatosCabecera[18]),
                                                                                (aDatosCabecera[20] == "") ? null : (int?)int.Parse(aDatosCabecera[20])
                                                                                );
                    }
                    else
                    {
                        bExisteNota       = true;
                        nReferencia       = int.Parse(aDatosCabecera[19]);
                        nFilasModificadas = DAL.CABECERAAPARCADA_NEGV.ReAparcarCabecera(tr,
                                                                                        nReferencia,
                                                                                        Utilidades.unescape(aDatosCabecera[0]),
                                                                                        (int)HttpContext.Current.Session["GVT_IDFICEPI"],
                                                                                        int.Parse(aDatosCabecera[1]),
                                                                                        byte.Parse(aDatosCabecera[2]),
                                                                                        (aDatosCabecera[3] == "1") ? true : false,
                                                                                        (aDatosCabecera[4] == "") ? null : (int?)int.Parse(aDatosCabecera[4]),
                                                                                        aDatosCabecera[5],
                                                                                        Utilidades.unescape(aDatosCabecera[6]),
                                                                                        Utilidades.unescape(aDatosCabecera[7]),
                                                                                        decimal.Parse(aDatosCabecera[8]),
                                                                                        (aDatosCabecera[9] == "") ? null : (DateTime?)DateTime.Parse(aDatosCabecera[9]),
                                                                                        Utilidades.unescape(aDatosCabecera[10]),
                                                                                        decimal.Parse(aDatosCabecera[11]),
                                                                                        (aDatosCabecera[12] == "") ? null : (DateTime?)DateTime.Parse(aDatosCabecera[12]),
                                                                                        Utilidades.unescape(aDatosCabecera[13]),
                                                                                        Utilidades.unescape(aDatosCabecera[14]),
                                                                                        decimal.Parse(aDatosCabecera[15]),
                                                                                        decimal.Parse(aDatosCabecera[16]),
                                                                                        decimal.Parse(aDatosCabecera[17]),
                                                                                        Utilidades.unescape(aDatosCabecera[18]),
                                                                                        DateTime.Now,
                                                                                        (aDatosCabecera[20] == "") ? null : (int?)int.Parse(aDatosCabecera[20])
                                                                                        );

                        if (nFilasModificadas == 0)
                        {
                            sResul           = "Solicitud aparcada no existente";
                            bErrorControlado = true;
                            throw (new Exception(sResul));
                        }
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    if (bErrorControlado)
                    {
                        throw (new Exception(ex.Message));
                    }
                    else
                    {
                        throw (new Exception("Error al aparcar la cabecera. " + ex.Message));
                    }
                }

                try
                {
                    if (bExisteNota)
                    {
                        DAL.POSICIONAPARCADA_NEGV.DeleteByT660_idreferencia(tr, nReferencia);
                    }

                    #region Aparcar Posiciones
                    foreach (string oPosicion in aPosiciones)
                    {
                        if (oPosicion == "")
                        {
                            continue;
                        }
                        string[] aDatosPosicion = Regex.Split(oPosicion, "#sep#");

                        DAL.POSICIONAPARCADA_NEGV.AparcarPosicion(tr, nReferencia,
                                                                  (aDatosPosicion[0] == "") ? null : (DateTime?)DateTime.Parse(aDatosPosicion[0]),
                                                                  (aDatosPosicion[1] == "") ? null : (DateTime?)DateTime.Parse(aDatosPosicion[1]),
                                                                  Utilidades.unescape(aDatosPosicion[2]),
                                                                  Utilidades.unescape(aDatosPosicion[3]),
                                                                  (byte)decimal.Parse(aDatosPosicion[4]),
                                                                  (byte)decimal.Parse(aDatosPosicion[5]),
                                                                  (byte)decimal.Parse(aDatosPosicion[6]),
                                                                  (byte)decimal.Parse(aDatosPosicion[7]),
                                                                  (short)decimal.Parse(aDatosPosicion[8]),
                                                                  (aDatosPosicion[9] == "") ? null : (int?)int.Parse(aDatosPosicion[9]),
                                                                  decimal.Parse(aDatosPosicion[10]),
                                                                  decimal.Parse(aDatosPosicion[11]),
                                                                  decimal.Parse(aDatosPosicion[12]),
                                                                  decimal.Parse(aDatosPosicion[13])
                                                                  );
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    throw (new Exception("Error al aparcar la posición. " + ex.Message));
                }

                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                if (bErrorControlado)
                {
                    sResul = ex.Message;
                }
                else
                {
                    sResul = Errores.mostrarError("Error al aparcar la nota estándar.", ex);
                }
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }

            return(nReferencia.ToString());
        }
Beispiel #8
0
        public static void Grabar(string sDatos)
        {
            string         sResul = "";
            SqlConnection  oConn  = null;
            SqlTransaction tr     = null;

            #region abrir conexión y transacción
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccion(oConn);
            }
            catch (Exception)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión."));
            }
            #endregion

            try
            {
                if (sDatos != "")
                {
                    string[] aDatos = Regex.Split(sDatos, "#sFin#");
                    for (int i = 0, nCount = aDatos.Length; i < nCount; i++)
                    {
                        string[] aElem = Regex.Split(aDatos[i], "#sCad#");
                        switch (aElem[0])
                        {
                        case "I":
                            DAL.EXCEPCIONAUTO.InsertExcepcionAuto(tr,
                                                                  int.Parse(aElem[1]),
                                                                  short.Parse(aElem[2]),
                                                                  int.Parse(aElem[3]),
                                                                  int.Parse(HttpContext.Current.Session["GVT_IDFICEPI"].ToString()));
                            break;

                        case "D":
                            DAL.EXCEPCIONAUTO.DeleteExcepcionAuto(tr,
                                                                  int.Parse(aElem[1]),
                                                                  (aElem[2] == "") ? null: (short?)short.Parse(aElem[2]));
                            break;

                        case "U":
                            DAL.EXCEPCIONAUTO.UpdateExcepcionAuto(tr,
                                                                  int.Parse(aElem[1]),
                                                                  short.Parse(aElem[2]),
                                                                  int.Parse(aElem[3]),
                                                                  int.Parse(HttpContext.Current.Session["GVT_IDFICEPI"].ToString()));
                            break;
                        }
                    }
                }
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al grabar las modificaciones.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
        }