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