Exemple #1
0
        public static void UpdateCal(int idficepi, int idcal)
        {
            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
            {
                SUPER.Capa_Datos.Ficepi.UpdateCal(tr, idficepi, idcal);


                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al modificar el id calendario.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
        }
Exemple #2
0
        public static void TrasladarAlertaEstructura(byte nOpcion, byte nNivel, int nCodigo)
        {
            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
            {
                SUPER.Capa_Datos.PSNALERTAS.TrasladarAlertaEstructura(tr, nOpcion, nNivel, nCodigo);
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al trasladar las alertas.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
        }
        public static string Grabar(string sParametrizacion)
        {
            string         sResul = "";
            SqlConnection  oConn  = null;
            SqlTransaction tr     = 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);
                }

                string   sError = Errores.mostrarError("Error al abrir la conexión", ex);
                string[] aError = Regex.Split(sError, "@#@");
                throw new Exception(Utilidades.escape(aError[0]), ex);
            }
            #endregion

            try
            {
                if (sParametrizacion != "")
                {
                    //Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aDatos = Regex.Split(sParametrizacion, "#sCad#");

                    PARAMETRIZACIONSUPER.Update(tr,
                                                (aDatos[0] == "") ? null : (DateTime?)DateTime.Parse(aDatos[0]),
                                                (aDatos[1] == "") ? short.Parse("0") : short.Parse(aDatos[1]),
                                                (aDatos[2] == "") ? short.Parse("0") : short.Parse(aDatos[2]),
                                                (aDatos[3] == "") ? short.Parse("0") : short.Parse(aDatos[3]),
                                                (aDatos[4] == "") ? short.Parse("0") : short.Parse(aDatos[4]),
                                                (aDatos[5] == "") ? short.Parse("0") : short.Parse(aDatos[5]),
                                                (aDatos[6] == "") ? short.Parse("0") : short.Parse(aDatos[6]),
                                                (aDatos[7] == "") ? short.Parse("0") : short.Parse(aDatos[7]),
                                                (aDatos[8] == "") ? short.Parse("0") : short.Parse(aDatos[8]),
                                                (aDatos[9] == "") ? null : (DateTime?)DateTime.Parse(aDatos[9]),
                                                (aDatos[10] == "") ? null : (DateTime?)DateTime.Parse(aDatos[10])
                                                );
                }

                Conexion.CommitTransaccion(tr);
                sResul = "";
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = SUPER.Capa_Negocio.Errores.mostrarError("Error al grabar la parametrización.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
            return(sResul);
        }
Exemple #4
0
        public static void EstablecerAlertaDetalleProyecto(string sDatosAlertas)
        {
            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
            {
                string[] aDatosAlertas = Regex.Split(sDatosAlertas, "{sepreg}");
                foreach (string sDatos in aDatosAlertas)
                {
                    if (sDatos == "")
                    {
                        continue;
                    }
                    string[] aValores = Regex.Split(sDatos, "{sep}");
                    ///aValores[0] = sPSN
                    ///aValores[1] = id alerta
                    ///aValores[2] = activado
                    ///aValores[3] = inicio standby
                    ///aValores[4] = fin standby
                    ///aValores[5] = seguimiento
                    SUPER.Capa_Datos.PSNALERTAS.EstablecerAlertaDetalleProyecto(tr, int.Parse(aValores[0]),
                                                                                byte.Parse(aValores[1]),
                                                                                (aValores[2] == "1") ? true : false,
                                                                                (aValores[3] == "") ? null : (int?)int.Parse(aValores[3]),
                                                                                (aValores[4] == "") ? null : (int?)int.Parse(aValores[4]),
                                                                                Utilidades.unescape(aValores[5])
                                                                                );
                }

                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al grabar las alertas.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }

            try
            {
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static string Procesar(string sRegistros, string strDatos)
        {
            string  sResul = "", sEstadoMes = "";
            int     nPSN_C = 0, nPSN_J = 0, nPSN_P = 0, nSegMesProy = 0;
            int     nIDEmpresaNodoProyecto_C = 0;
            int     nNodoUsuario = 0, nEmpresaNodoUsuario = 0, nNodo_C = 0, nNodo_J = 0, nNodo_P = 0;
            decimal nTipoCambio_C = 0, nTipoCambio_J = 0, nTipoCambio_P = 0;

            SqlConnection  oConn            = null;
            SqlTransaction tr               = null;
            bool           bErrorControlado = false;

            string[] aIncentivos = Regex.Split(strDatos, "#reg#");

            #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
            {
                //inserto los registros seleccionados en la T726_INCENTIVOSPRODUCTIVIDAD
                Capa_Datos.INCENTIVOSPRODUCTIVIDAD.Insertar(tr, sRegistros);

                //Trato los registros seleccionados
                int i = 0;
                foreach (string oIncentivo in aIncentivos)
                {
                    i++;
                    if (oIncentivo == "")
                    {
                        continue;
                    }
                    string[] aDatos = Regex.Split(oIncentivo, "#sep#");

                    #region Datos Incentivo
                    //aDatos[0] = id incentivo //0
                    //aDatos[1] = idusuario //1
                    //aDatos[2] = idnodo_usuario //2
                    //aDatos[3] = importe //3
                    //aDatos[4] = idproyecto //4
                    //aDatos[5] = anomes //5
                    //aDatos[6] = Profesional //6
                    //aDatos[7] = Denominación proyecto //7
                    //aDatos[8] = importe SS //8
                    #endregion

                    #region inicializar variables
                    nPSN_C      = 0;
                    nPSN_J      = 0;
                    nPSN_P      = 0;
                    nSegMesProy = 0;
                    nIDEmpresaNodoProyecto_C = 0;
                    nNodoUsuario             = 0;
                    nEmpresaNodoUsuario      = 0;
                    nNodo_C       = 0;
                    nNodo_J       = 0;
                    nNodo_P       = 0;
                    nTipoCambio_C = 0;
                    nTipoCambio_J = 0;
                    nTipoCambio_P = 0;
                    #endregion

                    DataSet ds = Capa_Datos.INCENTIVOSPRODUCTIVIDAD.ObtenerInstanciasProyecto(tr, int.Parse(aDatos[4]), int.Parse(aDatos[1]), int.Parse(aDatos[5]));
                    foreach (DataRow oFila in ds.Tables[0].Rows)
                    {
                        switch (oFila["t305_cualidad"].ToString())
                        {
                        case "C":
                            nPSN_C  = (int)oFila["t305_idproyectosubnodo"];
                            nNodo_C = (int)oFila["t303_idnodo"];
                            nIDEmpresaNodoProyecto_C = (int)oFila["t313_idempresa_nodo"];
                            nTipoCambio_C            = decimal.Parse(oFila["t699_tipocambio"].ToString());
                            break;

                        case "J":
                            nPSN_J        = (int)oFila["t305_idproyectosubnodo"];
                            nNodo_J       = (int)oFila["t303_idnodo"];
                            nTipoCambio_J = decimal.Parse(oFila["t699_tipocambio"].ToString());
                            break;

                        case "P":
                            nPSN_P        = (int)oFila["t305_idproyectosubnodo"];
                            nNodo_P       = (int)oFila["t303_idnodo"];
                            nTipoCambio_P = decimal.Parse(oFila["t699_tipocambio"].ToString());
                            break;
                        }
                        if (nNodoUsuario == 0)
                        {
                            nNodoUsuario = (int)oFila["t303_idnodo_usuario"];
                        }
                        if (nEmpresaNodoUsuario == 0)
                        {
                            nEmpresaNodoUsuario = (int)oFila["t313_idempresa_nodousuario"];
                        }
                    }

                    if (nPSN_C == 0)
                    {
                        sResul           = "Instancia contratante del proyecto económico no existente";
                        bErrorControlado = true;
                        throw (new Exception(sResul));
                    }

                    if (nPSN_P != 0) //Réplica con gestión
                    {
                        nSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, nPSN_P, int.Parse(aDatos[5]));
                        if (nSegMesProy == 0)
                        {
                            sEstadoMes  = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, nPSN_P, int.Parse(aDatos[5]));
                            nSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, nPSN_P, int.Parse(aDatos[5]), sEstadoMes, 0, 0, false, 0, 0);
                        }
                        DATOECO.Insert(tr, nSegMesProy, Constantes.nIdClaseProductividad, Utilidades.unescape(aDatos[6]), decimal.Parse(aDatos[3]) * nTipoCambio_P, null, null, 4);
                        DATOECO.Insert(tr, nSegMesProy, Constantes.nIdClaseProductividadSS, Utilidades.unescape(aDatos[6]), decimal.Parse(aDatos[8]) * nTipoCambio_P, null, null, 4);
                    }
                    else if (nNodo_C == nNodoUsuario) //El usuario pertenece a la Contratante
                    {
                        nSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, nPSN_C, int.Parse(aDatos[5]));
                        if (nSegMesProy == 0)
                        {
                            sEstadoMes  = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, nPSN_C, int.Parse(aDatos[5]));
                            nSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, nPSN_C, int.Parse(aDatos[5]), sEstadoMes, 0, 0, false, 0, 0);
                        }
                        DATOECO.Insert(tr, nSegMesProy, Constantes.nIdClaseProductividad, Utilidades.unescape(aDatos[6]), decimal.Parse(aDatos[3]) * nTipoCambio_C, null, null, 4);
                        DATOECO.Insert(tr, nSegMesProy, Constantes.nIdClaseProductividadSS, Utilidades.unescape(aDatos[6]), decimal.Parse(aDatos[8]) * nTipoCambio_C, null, null, 4);
                    }
                    else //Réplica sin gestión
                    {
                        //Para la réplica sin gestión
                        if (nNodo_J == 0) //no existe la réplica sin gestión, por lo que hay que crearla.
                        {
                            #region Creación de la instancia de proyecto
                            int     nCountManiobraTipo1 = 0, idNodoAuxManiobra = 0, nCountSubnodosNoManiobra = 0, idNodoAuxDestino = 0, idSubNodoGrabar = 0;
                            int     nResponsablePSN = 0;
                            DataSet dsSubnodos      = PROYECTOSUBNODO.ObtenerSubnodosParaReplicar(tr, nNodoUsuario);
                            foreach (DataRow oFila in dsSubnodos.Tables[0].Rows)
                            {
                                if ((byte)oFila["t304_maniobra"] == 1)
                                {
                                    nCountManiobraTipo1++;
                                    idNodoAuxManiobra = (int)oFila["t304_idsubnodo"];
                                }
                                else
                                {
                                    nCountSubnodosNoManiobra++;
                                    idNodoAuxDestino = (int)oFila["t304_idsubnodo"];
                                }
                            }

                            if (nCountSubnodosNoManiobra == 1) //si solo hay un subnodo en el nodo, que la réplica se haga a ese subnodo.
                            {
                                idSubNodoGrabar = idNodoAuxDestino;
                            }
                            else
                            {
                                if (nCountManiobraTipo1 == 0)
                                {
                                    NODO oNodo2 = NODO.SelectEnTransaccion(tr, nNodoUsuario);
                                    nResponsablePSN = oNodo2.t314_idusuario_responsable;
                                    //crear subnodo maniobra
                                    idSubNodoGrabar = SUBNODO.Insert(tr, "Proyectos a reasignar", nNodoUsuario, 0, true, 1, oNodo2.t314_idusuario_responsable, null);
                                }
                                else
                                {
                                    if (nCountManiobraTipo1 > 1)
                                    {
                                        ds.Dispose();
                                        throw (new Exception("El número de subnodos de maniobra es " + nCountManiobraTipo1.ToString() + " en el nodo " + nNodoUsuario.ToString() + ". Por favor avise al administrador."));
                                    }

                                    if (ds.Tables[0].Rows.Count - 1 > 1 || ds.Tables[0].Rows.Count - 1 == 0)
                                    {
                                        idSubNodoGrabar = idNodoAuxManiobra;
                                    }
                                    else
                                    {
                                        idSubNodoGrabar = idNodoAuxDestino;
                                    }
                                }
                            }
                            ds.Dispose();

                            if (nResponsablePSN == 0)
                            {
                                NODO oNodo3 = NODO.SelectEnTransaccion(tr, nNodoUsuario);
                                nResponsablePSN = oNodo3.t314_idusuario_responsable;
                            }
                            if (nTipoCambio_J == 0)
                            {
                                //hay que obtener el tipo de cambio de la moneda por defecto del nodo en el mes del incentivo.
                                nTipoCambio_J = NODO.getTipocambioMonedaNodoMes(tr, nNodoUsuario, int.Parse(aDatos[5]));
                            }
                            nPSN_J = PROYECTOSUBNODO.Insert(tr, int.Parse(aDatos[4]), idSubNodoGrabar, false, "J",
                                                            false, nResponsablePSN, Utilidades.unescape(aDatos[7]), "X", "X",
                                                            false, false, false, false, false, "", "",
                                                            "", null, null, null, null, null, null, false, 0);
                            #endregion
                        }

                        nSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, nPSN_J, int.Parse(aDatos[5]));
                        if (nSegMesProy == 0)
                        {
                            sEstadoMes  = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, nPSN_J, int.Parse(aDatos[5]));
                            nSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, nPSN_J, int.Parse(aDatos[5]), sEstadoMes, 0, 0, false, 0, 0);
                        }

                        DATOECO.Insert(tr, nSegMesProy, Constantes.nIdClaseProductividad, Utilidades.unescape(aDatos[6]), decimal.Parse(aDatos[3]) * nTipoCambio_J, null, null, 4);
                        DATOECO.Insert(tr, nSegMesProy, Constantes.nIdClaseProductividadSS, Utilidades.unescape(aDatos[6]), decimal.Parse(aDatos[8]) * nTipoCambio_J, null, null, 4);


                        //Para la contratante (se añade el nodo destino)
                        nSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, nPSN_C, int.Parse(aDatos[5]));
                        if (nSegMesProy == 0)
                        {
                            sEstadoMes  = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, nPSN_C, int.Parse(aDatos[5]));
                            nSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, nPSN_C, int.Parse(aDatos[5]), sEstadoMes, 0, 0, false, 0, 0);
                        }
                        DATOECO.Insert(tr, nSegMesProy, (nIDEmpresaNodoProyecto_C == nEmpresaNodoUsuario) ? 4 : 6, Utilidades.unescape(aDatos[6]), (decimal.Parse(aDatos[3]) + decimal.Parse(aDatos[8])) * nTipoCambio_C, nNodoUsuario, null, 4);
                    }

                    Capa_Datos.INCENTIVOSPRODUCTIVIDAD.Registrar(tr, int.Parse(aDatos[0]));
                }

                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                if (bErrorControlado)
                {
                    sResul = ex.Message;
                }
                else
                {
                    sResul = Errores.mostrarError("Error al procesar.", ex);
                }
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    if (bErrorControlado)
                    {
                        sResul = "ErrorControlado##EC##" + sResul;
                    }
                    throw (new Exception(sResul));
                }
            }

            return("");
        }
Exemple #6
0
        public static string Grabar(string sDelete, string sInsert, string sUpdate)
        {
            SqlConnection  oConn = null;
            SqlTransaction tr;

            string sResul = "", sInsertados = "";
            int    nIDSector  = -1;
            int    nIDSegmen  = -1;
            string sKey       = "";
            string sKeyParent = "";

            //string[] aDatosBasicos = 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);
                }

                string   sError = Errores.mostrarError("Error al abrir la conexión", ex);
                string[] aError = Regex.Split(sError, "@#@");
                throw new Exception(Utilidades.escape(aError[0]), ex);
            }
            #endregion
            try
            {
                #region Bajas
                if (sDelete != "") //No se han realizado bajas
                {
                    string[] aDeletes = Regex.Split(sDelete, "///");
                    foreach (string oDelete in aDeletes)
                    {
                        if (oDelete == "")
                        {
                            continue;
                        }
                        string[] aDel = Regex.Split(oDelete, "##");

                        ///aDel[0] = id
                        ///aDel[1] = title
                        ///aDel[2] = nivel
                        ///aDel[3] = parent
                        ///
                        if (Utilidades.isNumeric(aDel[0]))
                        {
                            sKey = aDel[0];
                        }
                        else
                        {
                            sKey = aDel[0].Substring(3, aDel[0].Length - 3);
                        }

                        if (aDel[2] == "1")
                        {
                            SUPER.DAL.SECTOR.Delete(tr, int.Parse(sKey));
                        }
                        else if (aDel[2] == "2")
                        {
                            SUPER.DAL.SEGMENTO.Delete(tr, int.Parse(sKey));
                        }
                    }
                }

                #endregion
                #region Inserciones
                if (sInsert != "") // No se han realizado Inserciones
                {
                    string[] aInserts = Regex.Split(sInsert, "///");
                    foreach (string oInsert in aInserts)
                    {
                        if (oInsert == "")
                        {
                            continue;
                        }
                        string[] aInsert = Regex.Split(oInsert, "##");

                        ///aInsert[0] = id virtual
                        ///aInsert[1] = title
                        ///aInsert[2] = nivel
                        ///aInsert[3] = parent(sector para el caso de los segmentos)
                        ///aInsert[4] = codext
                        // Estoy metiendo el codigo externo con el valor de la denominacion

                        if (aInsert[2] == "1")
                        {
                            nIDSector = SUPER.DAL.SECTOR.Insert(tr, aInsert[1], "");
                            if (sInsertados == "")
                            {
                                sInsertados = aInsert[0] + "::N1_" + nIDSector.ToString();
                            }
                            else
                            {
                                sInsertados += "//" + aInsert[0] + "::N1_" + nIDSector.ToString();
                            }
                        }
                        else if (aInsert[2] == "2")
                        {
                            if (Utilidades.isNumeric(aInsert[3]))
                            {
                                sKeyParent = aInsert[3];
                            }
                            else
                            {
                                sKeyParent = aInsert[3].Substring(3, aInsert[3].Length - 3);
                            }

                            string sID = (int.Parse(sKeyParent) < 0) ? nIDSector.ToString() : sKeyParent;
                            nIDSegmen = SUPER.DAL.SEGMENTO.Insert(tr, aInsert[1], "", int.Parse(sID));
                            if (sInsertados == "")
                            {
                                sInsertados = aInsert[0] + "::N2_" + nIDSegmen.ToString();
                            }
                            else
                            {
                                sInsertados += "//" + aInsert[0] + "::N2_" + nIDSegmen.ToString();
                            }
                        }
                    }
                }
                #endregion
                #region Modificaciones
                if (sUpdate != "") //No se han realizado modificaciones
                {
                    string[] aUpdates = Regex.Split(sUpdate, "///");
                    foreach (string oUpdate in aUpdates)
                    {
                        if (oUpdate == "")
                        {
                            continue;
                        }
                        string[] aUpd = Regex.Split(oUpdate, "##");

                        ///aUpd[0] = id
                        ///aUpd[1] = title
                        ///aUpd[2] = nivel
                        ///aUpd[3] = parent(sector para el caso de los segmentos)
                        ///aUpd[4] = codext
                        ///

                        if (Utilidades.isNumeric(aUpd[0]))
                        {
                            sKey = aUpd[0];
                        }
                        else
                        {
                            sKey = aUpd[0].Substring(3, aUpd[0].Length - 3);
                        }

                        if (aUpd[2] == "1")
                        {
                            SUPER.DAL.SECTOR.Update(tr, int.Parse(sKey), aUpd[1], null);
                        }
                        else if (aUpd[2] == "2")
                        {
                            if (Utilidades.isNumeric(aUpd[3]))
                            {
                                sKeyParent = aUpd[3];
                            }
                            else
                            {
                                sKeyParent = aUpd[3].Substring(3, aUpd[3].Length - 3);
                            }

                            string sID = (int.Parse(sKeyParent) < 0) ? nIDSector.ToString() : sKeyParent;
                            SUPER.DAL.SEGMENTO.Update(tr, int.Parse(sKey), aUpd[1], null, int.Parse(sID));
                        }
                    }
                }
                #endregion

                Conexion.CommitTransaccion(tr);

                if (HttpContext.Current.Cache["Lista_Sectores"] != null)
                {
                    HttpContext.Current.Cache.Remove("Lista_Sectores");
                }

                sResul = sInsertados;
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                //string sError = Errores.mostrarError("Error al grabar los datos del árbol. ", ex);
                //string[] aError = Regex.Split(sError, "@#@");
                //throw new Exception(Utilidades.escape(aError[0]), ex);
                throw ex;
            }
            finally
            {
                Conexion.Cerrar(oConn);
            }
            return(sResul);
        }
Exemple #7
0
        public static string Grabar(string strDatos)
        {
            string sElementosInsertados = "";

            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 ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión. " + ex.Message));
            }
            #endregion

            try
            {
                if (strDatos != "") //No se ha modificado nada
                {
                    string[] aDatos = Regex.Split(strDatos, "///");
                    foreach (string oDatos in aDatos)
                    {
                        if (oDatos == "")
                        {
                            continue;
                        }
                        string[] aValores = Regex.Split(oDatos, "##");

                        ///aValores[0] = bd
                        ///aValores[1] = t001_idficepi

                        switch (aValores[0])
                        {
                        case "I":
                            SUPER.Capa_Datos.CLIENTE.Update(tr, int.Parse(aValores[1]), true);
                            if (sElementosInsertados == "")
                            {
                                sElementosInsertados = aValores[1];
                            }
                            else
                            {
                                sElementosInsertados += "//" + aValores[1];
                            }
                            break;

                        case "D":
                            SUPER.Capa_Datos.CLIENTE.Update(tr, int.Parse(aValores[1]), false);
                            break;
                        }
                    }
                }
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al actualizar las alertas del profesional.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
            sResul = sElementosInsertados;
            return("OK@#@" + sResul);
        }
        public static string Grabar(string strDatos)
        {
            string sResul = "", sDesc = "", sElementosInsertados = "";
            int    nAux = 0;

            SqlConnection  oConn = null;
            SqlTransaction tr    = 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
            {
                string[] aCuenta = Regex.Split(strDatos, "///");
                foreach (string oCuenta in aCuenta)
                {
                    if (oCuenta == "")
                    {
                        continue;
                    }
                    string[] aValores = Regex.Split(oCuenta, "##");
                    //0. Opcion BD. "I", "U", "D"
                    //1. ID
                    //2. Descripcion
                    //3. Volumen de negocio
                    //4. Es cliente

                    switch (aValores[0])
                    {
                    case "I":
                        nAux = SUPER.DAL.CUENTASCUR.Insert(tr, Utilidades.unescape(aValores[2]), decimal.Parse(aValores[3]), (aValores[4] == "1") ? true : false);
                        if (sElementosInsertados == "")
                        {
                            sElementosInsertados = nAux.ToString();
                        }
                        else
                        {
                            sElementosInsertados += "//" + nAux.ToString();
                        }
                        break;

                    case "U":
                        SUPER.DAL.CUENTASCUR.Update(tr, int.Parse(aValores[1]), Utilidades.unescape(aValores[2]), decimal.Parse(aValores[3]), (aValores[4] == "1") ? true : false);
                        break;

                    case "D":
                        SUPER.DAL.CUENTASCUR.Delete(tr, int.Parse(aValores[1]));
                        break;
                    }
                }
                Conexion.CommitTransaccion(tr);

                sResul = "OK@#@" + sElementosInsertados;
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = "Error@#@" + Errores.mostrarError("Error al grabar las cuentas.", ex, false) + "@#@" + sDesc;
            }
            finally
            {
                Conexion.Cerrar(oConn);
            }

            return(sResul);
        }
        public static string Grabar(string strDatos)
        {
            string         sElementosInsertados = "";
            int            nAux   = 0;
            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 ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión. " + ex.Message));
            }
            #endregion

            try
            {
                if (strDatos != "") //No se ha modificado nada
                {
                    string[] aCampo = Regex.Split(strDatos, "///");
                    //Primero se hacen las deletes para evitar errores por denominaciones duplicadas.
                    foreach (string oCampo in aCampo)
                    {
                        if (oCampo == "")
                        {
                            continue;
                        }
                        string[] aValores = Regex.Split(oCampo, "##");
                        //0. Opcion BD. "I", "D"
                        //1. ID Campo
                        //2. Descripcion
                        //3. t291_idtipodato
                        //4. Ambito
                        //5  t001_ficepi_owner
                        //6  t305_idproyectosubnodo
                        //7  t295_uidequipo

                        if (aValores[0] != "D")
                        {
                            continue;
                        }
                        SUPER.Capa_Datos.CAMPOS.Delete(tr, int.Parse(aValores[1]));
                    }

                    foreach (string oCampo in aCampo)
                    {
                        if (oCampo == "")
                        {
                            continue;
                        }
                        string[] aValores = Regex.Split(oCampo, "##");
                        //0. Opcion BD. "I", "D"
                        //1. t290_idcampo
                        //2. t290_denominación
                        //3. t291_idtipodato
                        //4. Ambito
                        //5  t001_ficepi_owner
                        //6  t305_idproyectosubnodo
                        //7  t295_uidequipo

                        switch (aValores[0])
                        {
                        case "I":

                            nAux = SUPER.Capa_Datos.CAMPOS.Insert(tr,
                                                                  Utilidades.unescape(aValores[2]),
                                                                  int.Parse(HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString()),
                                                                  aValores[3],
                                                                  int.Parse(aValores[4]),
                                                                  (aValores[5] == "0") ? null : (int?)int.Parse(aValores[5]),
                                                                  (aValores[6] == "0") ? null : (int?)int.Parse(aValores[6]),
                                                                  (aValores[7] == "") ?  null : Utilidades.unescape(aValores[7])
                                                                  );
                            if (sElementosInsertados == "")
                            {
                                sElementosInsertados = nAux.ToString();
                            }
                            else
                            {
                                sElementosInsertados += "//" + nAux.ToString();
                            }
                            break;
                        }
                    }
                }
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al actualizar los campos ligados a tarea.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
            sResul = sElementosInsertados;
            return("OK@#@" + sResul);
        }
Exemple #10
0
        public static string Grabar(string strProvincias)
        {
            string         sResul = "";
            SqlConnection  oConn  = null;
            SqlTransaction tr;

            #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);
                }

                string   sError = Errores.mostrarError("Error al abrir la conexión", ex);
                string[] aError = Regex.Split(sError, "@#@");
                throw new Exception(Utilidades.escape(aError[0]), ex);
            }
            #endregion
            try
            {
                #region Datos Provincias
                if (strProvincias != "")//No se ha modificado nada de la pestaña de Figuras
                {
                    string[] aProvincias = Regex.Split(strProvincias, "///");
                    foreach (string oProvincia in aProvincias)
                    {
                        if (oProvincia == "")
                        {
                            continue;
                        }
                        string[] aValores = Regex.Split(oProvincia, "##");
                        ///aValores[0] = id provincia
                        ///aValores[1] = id zona

                        SUPER.DAL.PROVINCIA.UpdateZona(tr, int.Parse(aValores[0]), int.Parse(aValores[1]));
                    }
                }

                #endregion

                Conexion.CommitTransaccion(tr);
                sResul = "";
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                //string sError = Errores.mostrarError("Error al grabar los datos de la provincia", ex);
                //string[] aError = Regex.Split(sError, "@#@");
                //throw new Exception(Utilidades.escape(aError[0]), ex);
                throw ex;
            }
            finally
            {
                Conexion.Cerrar(oConn);
            }
            return(sResul);
        }
Exemple #11
0
        public static string Grabar(string strDatos)
        {
            string         sElementosInsertados = "";
            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 ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión. " + ex.Message));
            }
            #endregion

            try
            {
                if (strDatos != "") //No se ha modificado nada
                {
                    string[] aDatos = Regex.Split(strDatos, "///");
                    foreach (string oDatos in aDatos)
                    {
                        if (oDatos == "")
                        {
                            continue;
                        }
                        string[] aValores = Regex.Split(oDatos, "##");

                        ///aValores[0] = bd
                        ///aValores[1] = t314_idusuario
                        ///aValores[2] = gestor
                        string[] aId = Regex.Split(aValores[1], "/");
                        SUPER.Capa_Datos.GestorSAP.Update(tr, int.Parse(aId[1]), aValores[2]);
                    }
                }
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al actualizar las alertas del profesional.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
            sResul = sElementosInsertados;
            return("OK@#@" + sResul);
        }
        public static string Grabar(string strProfesionales)
        {
            string         sResul = "", sElementosInsertados = "";
            SqlConnection  oConn = null;
            SqlTransaction tr    = 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);
                }
                throw (new Exception("Error al abrir la conexión. " + ex.Message));
            }
            #endregion
            try
            {
                #region Datos Profesionales
                if (strProfesionales != "")//No se ha modificado nada de la pestaña de Figuras
                {
                    string[] aProfesionales = Regex.Split(strProfesionales, "///");
                    foreach (string oProfesional in aProfesionales)
                    {
                        if (oProfesional == "")
                        {
                            continue;
                        }
                        string[] aValores = Regex.Split(oProfesional, "##");
                        ///aValores[0] = bd
                        ///aValores[1] = idFicepi

                        switch (aValores[0])
                        {
                        case "I":
                            SUPER.Capa_Datos.USUSINAVISOVTO.Insert(tr, int.Parse(aValores[1]));
                            if (sElementosInsertados == "")
                            {
                                sElementosInsertados = aValores[1];
                            }
                            else
                            {
                                sElementosInsertados += "//" + aValores[1];
                            }
                            break;

                        case "D":
                            SUPER.Capa_Datos.USUSINAVISOVTO.Delete(tr, int.Parse(aValores[1]));
                            break;
                        }
                    }
                }

                #endregion

                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos del profesional", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
            sResul = "OK@#@" + sElementosInsertados;
            return(sResul);
        }
        public static string Grabar(string strDatos)
        {
            string         sElementosInsertados = "";
            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 ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión. " + ex.Message));
            }
            #endregion

            try
            {
                if (strDatos != "") //No se ha modificado nada
                {
                    string[] aDatos = Regex.Split(strDatos, "///");
                    foreach (string oDatos in aDatos)
                    {
                        if (oDatos == "")
                        {
                            continue;
                        }
                        string[] aValores = Regex.Split(oDatos, "##");

                        ///aValores[0] = bd
                        ///aValores[1] = t828_anomes
                        ///aValores[2] = t828_limitealertas

                        SUPER.Capa_Datos.LIMITEALERTAS.Update(tr, int.Parse(aValores[1]), (aValores[2] == "") ? null : (DateTime?)DateTime.Parse(aValores[2]));
                    }
                }
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al actualizar la fecha límite de alertas para dialogos.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
            sResul = sElementosInsertados;
            return("OK@#@" + sResul);
        }
        public static string Grabar(string sUpdate)
        {
            SqlConnection  oConn = null;
            SqlTransaction tr;

            string sResul = "";
            string sKey   = "";

            //string[] aDatosBasicos = 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);
                }
                throw new Exception(Errores.mostrarError("Error al abrir la conexión", ex));
            }
            #endregion
            try
            {
                #region Modificaciones
                if (sUpdate != "") //No se han realizado modificaciones
                {
                    string[] aUpdates = Regex.Split(sUpdate, "///");
                    foreach (string oUpdate in aUpdates)
                    {
                        if (oUpdate == "")
                        {
                            continue;
                        }
                        string[] aUpd = Regex.Split(oUpdate, "##");

                        ///aUpd[0] = id
                        ///aUpd[1] = nivel
                        ///aUpd[2] = activo
                        ///
                        if (Utilidades.isNumeric(aUpd[0]))
                        {
                            sKey = aUpd[0];
                        }
                        else
                        {
                            sKey = aUpd[0].Substring(3, aUpd[0].Length - 3);
                        }

                        if (aUpd[1] == "1")
                        {
                            SUPER.DAL.PAIS.ActivarDesactivar(tr, int.Parse(sKey), (aUpd[2] == "1") ? true : false);
                        }
                        else if (aUpd[1] == "2")
                        {
                            SUPER.DAL.PROVINCIA.ActivarDesactivar(tr, int.Parse(sKey), (aUpd[2] == "1") ? true : false);
                        }
                    }
                }
                #endregion

                Conexion.CommitTransaccion(tr);

                //if (HttpContext.Current.Cache["Lista_Ambitos"] != null)
                //    HttpContext.Current.Cache.Remove("Lista_Ambitos");

                //sResul = sInsertados;
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                throw ex;
            }
            finally
            {
                Conexion.Cerrar(oConn);
            }
            return(sResul);
        }
        public static string Eliminar(string strGrupo)
        {
            string         sResul = "";
            SqlConnection  oConn  = null;
            SqlTransaction tr     = null;
            SqlDataReader  dr     = null;

            #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);
                }
                throw (new Exception("Error al abrir la conexión. " + ex.Message));
            }
            #endregion

            try
            {
                string[]  aGP                = Regex.Split(strGrupo, "##");
                string    sDenomGrupo        = "";
                ArrayList aListDestinatarios = new ArrayList();
                foreach (string oGP in aGP)
                {
                    if (oGP != "")
                    {
                        //Leo integrantes para notificar correo
                        dr = SUPER.Capa_Datos.GrupoProf.Integrantes(oGP);
                        while (dr.Read())
                        {
                            aListDestinatarios.Add(dr["t001_codred"].ToString());
                        }

                        dr.Close();
                        dr.Dispose();
                        //Leo denominación grupo
                        GrupoProf miGP = new GrupoProf();
                        miGP.Obtener(oGP);
                        sDenomGrupo = miGP.sDesGP;
                        miGP        = null;

                        GrupoProf.BorrarGrupo(tr, oGP);
                    }
                }

                Conexion.CommitTransaccion(tr);

                string sTexto  = "";
                string sAsunto = "";
                string sTO     = "";

                sAsunto = "Borrado de equipo de profesionales";
                //sTexto = @" <LABEL class='TITULO'>Informarle que el profesional " + HttpContext.Current.Session["APELLIDO1"] + " " + HttpContext.Current.Session["APELLIDO2"] + ", " + HttpContext.Current.Session["NOMBRE"] + ", ha procedido a borrar el grupo '" + sDenomGrupo + "' del que eres integrante. </LABEL>";
                sTexto = @" <LABEL class='TITULO'>El profesional " + HttpContext.Current.Session["APELLIDO1"] + " " + HttpContext.Current.Session["APELLIDO2"] + ", " + HttpContext.Current.Session["NOMBRE"] + ", ha procedido a borrar el grupo '" + sDenomGrupo + "' del que eres integrante. </LABEL>";

                ArrayList aListCorreo = new ArrayList();

                for (int i = 0; i < aListDestinatarios.Count; i++)
                {
                    sTO = (string)aListDestinatarios[i];
                    string[] aMail = { sAsunto, sTexto, sTO, "" };
                    aListCorreo.Add(aMail);
                }

                Correo.EnviarCorreosCAUDEF(aListCorreo);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al eliminar el grupo de profesionales.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }

            // Enviar correos a los integrantes del grupo

            return("OK@#@" + sResul);
        }
Exemple #16
0
        public static string Grabar(string strDatos)
        {
            string         sElementosInsertados = "";
            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 ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión. " + ex.Message));
            }
            #endregion

            try
            {
                if (strDatos != "") //No se ha modificado nada
                {
                    string[] aDatos = Regex.Split(strDatos, "///");
                    foreach (string oDatos in aDatos)
                    {
                        if (oDatos == "")
                        {
                            continue;
                        }
                        string[] aValores = Regex.Split(oDatos, "##");

                        ///aValores[0] = bd
                        ///aValores[1] = t314_idusuario
                        ///aValores[2] = t332_idtarea
                        ///aValores[3] = t143_horas_L
                        ///aValores[4] = t143_horas_M
                        ///aValores[5] = t143_horas_X
                        ///aValores[6] = t143_horas_J
                        ///aValores[7] = t143_horas_V
                        ///aValores[8] = t143_horas_S
                        ///aValores[9] = t143_horas_D
                        ///aValores[10] = t143_avisomail
                        ////*

                        switch (aValores[0])
                        {
                        case "I":
                            SUPER.Capa_Datos.USUARIOSIAUTO.Insert(
                                tr,
                                int.Parse(aValores[1]),
                                int.Parse(aValores[2]),
                                (aValores[3] == "") ? 0 : float.Parse(aValores[3]),
                                (aValores[4] == "") ? 0 : float.Parse(aValores[4]),
                                (aValores[5] == "") ? 0 : float.Parse(aValores[5]),
                                (aValores[6] == "") ? 0 : float.Parse(aValores[6]),
                                (aValores[7] == "") ? 0 : float.Parse(aValores[7]),
                                (aValores[8] == "") ? 0 : float.Parse(aValores[8]),
                                (aValores[9] == "") ? 0 : float.Parse(aValores[9]),
                                (aValores[10] == "1") ? true : false
                                );
                            if (sElementosInsertados == "")
                            {
                                sElementosInsertados = aValores[1];
                            }
                            else
                            {
                                sElementosInsertados += "//" + aValores[1];
                            }
                            break;

                        case "U":
                            SUPER.Capa_Datos.USUARIOSIAUTO.Update(
                                tr,
                                int.Parse(aValores[1]),
                                int.Parse(aValores[2]),
                                (aValores[3] == "") ? 0 : float.Parse(aValores[3]),
                                (aValores[4] == "") ? 0 : float.Parse(aValores[4]),
                                (aValores[5] == "") ? 0 : float.Parse(aValores[5]),
                                (aValores[6] == "") ? 0 : float.Parse(aValores[6]),
                                (aValores[7] == "") ? 0 : float.Parse(aValores[7]),
                                (aValores[8] == "") ? 0 : float.Parse(aValores[8]),
                                (aValores[9] == "") ? 0 : float.Parse(aValores[9]),
                                (aValores[10] == "1") ? true : false
                                );
                            break;

                        case "D":
                            SUPER.Capa_Datos.USUARIOSIAUTO.Delete(tr, int.Parse(aValores[1]));
                            break;
                        }
                    }
                }
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al grabar los parámetros de las imputaciones automáticas.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
            sResul = sElementosInsertados;
            return("OK@#@" + sResul);
        }
        public static string Grabar(string sGrupoFuncional, string sIntegrantes)
        {   //En el primer parametro de entrada tenemos codGf#descGF
            //y en el segundo una lista de codigos de personas separados por comas (persona#responsable,)
            string         sCad, sResul = "", sDesGP, sOperacion, sCodGP, sCodRed;
            bool           bAlta = false;
            int            iEmpleado, iPos;
            SqlConnection  oConn = null;
            SqlTransaction tr    = null;

            try
            {
                //Recojo el código de GF
                iPos   = sGrupoFuncional.IndexOf("#");
                sCodGP = sGrupoFuncional.Substring(0, iPos);
                sDesGP = Utilidades.unescape(sGrupoFuncional.Substring(iPos + 1));
                //Abro transaccion
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccionSerializable(oConn);

                if (sCodGP != "")
                {
                    GrupoProf.ModificarGrupo(null, sCodGP, sDesGP);
                }
                else
                {
                    bAlta  = true;
                    sCodGP = GrupoProf.InsertarGrupo(null, sDesGP);
                    HttpContext.Current.Session["nIdGrupo"] = sCodGP;
                    GrupoProf.InsertarProfesional(tr, sCodGP, int.Parse(HttpContext.Current.Session["IDFICEPI_PC_ACTUAL"].ToString()));
                }
                ArrayList aListDestinatarios = new ArrayList();

                //Borrar los integrantes existentes
                //GrupoFun.BorrarIntegrantes(tr,iCodGF);
                if (sIntegrantes == "")
                {//Tenemos lista vacía. No hacemos nada
                }
                else
                {//Con la cadena generamos una lista y la recorremos para grabar cada elemento
                    string[] aTareas = Regex.Split(sIntegrantes, @",");

                    for (int i = 0; i < aTareas.Length - 1; i++)
                    {
                        sCad = aTareas[i];
                        if (sCad != "")
                        {
                            string[] aElem = Regex.Split(sCad, @"##");
                            sOperacion = aElem[0];
                            iEmpleado  = System.Convert.ToInt32(aElem[1]);
                            sCodRed    = aElem[2];
                            if (bAlta && int.Parse(HttpContext.Current.Session["IDFICEPI_PC_ACTUAL"].ToString()) == iEmpleado)
                            {
                                continue;
                            }

                            //GrupoFun.InsertarIntegrante(tr, iCodGF, iEmpleado, iResponsable);
                            switch (sOperacion)
                            {
                            case "D":
                                GrupoProf.BorrarProfesional(tr, sCodGP, iEmpleado);
                                aListDestinatarios.Add(sCodRed);
                                break;

                            case "I":
                                GrupoProf.InsertarProfesional(tr, sCodGP, iEmpleado);
                                break;
                            } //switch
                        }
                    }         //for
                }
                //Cierro transaccion
                Conexion.CommitTransaccion(tr);

                string sTexto  = "";
                string sAsunto = "";
                string sTO     = "";

                sAsunto = "Borrado de un integrante de un grupo de profesionales";
                sTexto  = @" <LABEL class='TITULO'>Informarle que el profesional " + HttpContext.Current.Session["APELLIDO1"] + " " + HttpContext.Current.Session["APELLIDO2"] + ", " + HttpContext.Current.Session["NOMBRE"] + ", te ha borrado del grupo '" + sDesGP + "' del que eres integrante. </LABEL>";

                ArrayList aListCorreo = new ArrayList();

                for (int i = 0; i < aListDestinatarios.Count; i++)
                {
                    sTO = (string)aListDestinatarios[i];
                    string[] aMail = { sAsunto, sTexto, sTO, "" };
                    aListCorreo.Add(aMail);
                }

                Correo.EnviarCorreosCAUDEF(aListCorreo);
                sCad   = DetalleIntegrantes(sCodGP);
                sResul = "OK@#@" + sCodGP + "@#@" + sCad;
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = "Error@#@" + Errores.mostrarError("Error al grabar", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
            }
            return(sResul);
        }
Exemple #18
0
        public static string Grabar(string strDatos)
        {
            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 ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                throw (new Exception("Error al abrir la conexión. " + ex.Message));
            }
            #endregion

            try
            {
                #region Alertas globales
                if (strDatos != "") //No se ha modificado nada
                {
                    string[] aDatos = Regex.Split(strDatos, "///");
                    foreach (string oDatos in aDatos)
                    {
                        if (oDatos == "")
                        {
                            continue;
                        }
                        string[] aValores = Regex.Split(oDatos, "##");

                        ///aValores[0] = ID
                        ///aValores[1] = ALERTAS ACTUALES
                        ///aValores[2] = ALERTAS FUTURAS

                        if (aValores[1] != "")
                        {
                            SUPER.Capa_Datos.ALERTAS.UpdatePSNAlertas(tr, byte.Parse(aValores[0]), aValores[1]);
                        }
                        if (aValores[2] != "")
                        {
                            SUPER.Capa_Datos.ALERTAS.UpdateNodoAlertas(tr, byte.Parse(aValores[0]), aValores[2]);
                        }
                    }
                }
                #endregion
                Conexion.CommitTransaccion(tr);
            }
            catch (Exception ex)
            {
                Conexion.CerrarTransaccion(tr);
                sResul = Errores.mostrarError("Error al actualizar las alertas de nodo o proyecto.", ex);
            }
            finally
            {
                Conexion.Cerrar(oConn);
                if (sResul != "")
                {
                    throw (new Exception(sResul));
                }
            }
            return("OK@#@");
        }