Ejemplo n.º 1
0
    protected string Grabar(string sSegMesProy, string sGF)
    {
        string sResul           = "";
        bool   bErrorControlado = false;

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

        try
        {
            if (Session["ADMINISTRADOR_PC_ACTUAL"].ToString() != "SA")
            {
                SEGMESPROYECTOSUBNODO oSMPSN = SEGMESPROYECTOSUBNODO.Obtener(tr, int.Parse(sSegMesProy), null);
                if (oSMPSN.t325_estado == "C")
                {
                    bErrorControlado = true;
                    throw (new Exception("Durante su intervención en la pantalla, otro usuario ha cerrado el mes en curso."));
                }
            }
            SEGMESPROYECTOSUBNODO.UpdateGastosFinancieros(tr, int.Parse(sSegMesProy), decimal.Parse(sGF));
            Conexion.CommitTransaccion(tr);
            sResul = "OK@#@";
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            if (!bErrorControlado)
            {
                sResul = "Error@#@" + Errores.mostrarError("Error al grabar los gastos financieros.", ex);
            }
            else
            {
                sResul = "Error@#@Operación rechazada.\n\n" + ex.Message;
            }
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }

        return(sResul);
    }
Ejemplo n.º 2
0
    private string Procesar(string sMesValor, string strNodos)
    {
        string sResul     = "";
        string sEstadoMes = "";

        try
        {
            #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

            DataSet ds = PROYECTOSUBNODO.ObtenerSegMesGastosFinancierosDS(tr, int.Parse(sMesValor), strNodos);
            foreach (DataRow oSegMes in ds.Tables[0].Rows)
            {
                try
                {
                    if (oSegMes["t325_idsegmesproy"].ToString() != "")
                    {
                        SEGMESPROYECTOSUBNODO.UpdateGastosFinancieros(tr, (int)oSegMes["t325_idsegmesproy"], decimal.Parse(oSegMes["gasto_financiero"].ToString()));
                    }
                    else
                    {
                        if (decimal.Parse(oSegMes["gasto_financiero"].ToString()) != 0)
                        {
                            sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, (int)oSegMes["t305_idproyectosubnodo"], int.Parse(sMesValor));
                            SEGMESPROYECTOSUBNODO.Insert(tr, (int)oSegMes["t305_idproyectosubnodo"], int.Parse(sMesValor), sEstadoMes, 0, decimal.Parse(oSegMes["gasto_financiero"].ToString()), false, 0, 0);
                        }
                    }
                }
                catch (Exception exup)
                {
                    if (((SqlException)exup).Number == 2601)
                    {
                        SEGMESPROYECTOSUBNODO.UpdateGastosFinancierosByPSNAnomes(tr, (int)oSegMes["t305_idproyectosubnodo"], int.Parse(sMesValor), decimal.Parse(oSegMes["gasto_financiero"].ToString()));
                    }
                    else
                    {
                        throw (new Exception("Error al registrar los gastos financieros."));
                    }
                }
            }
            ds.Dispose();

            string[] aNodos = Regex.Split(strNodos, ",");
            foreach (string oNodo in aNodos)
            {
                if (oNodo == "")
                {
                    continue;
                }
                NODO objNodoAux = NODO.Select(tr, int.Parse(oNodo));
                HISTORIALGASTOSFINANCIEROS.Insert(tr, int.Parse(oNodo), int.Parse(sMesValor), DateTime.Now, objNodoAux.t303_interesGF, int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()));
            }

            Conexion.CommitTransaccion(tr);

            sResul = "OK";
        }
        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            sResul = "Error@#@" + Errores.mostrarError("Error al registrar los gastos financieros de un " + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + ".", ex, false);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }