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 TramitarBono(string sConcepto, string sAnoMes, string sIdBono, string sIdProyecto, string sIdUsuario, string sComentario, string sAnotaciones, string sImporte, string sIdTerritorio, string sIdReferencia, string sMoneda, string sOficina) { string sResul = "", sValorInsertado = ""; SqlConnection oConn = null; SqlTransaction tr = null; int nAux = 0; 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 Tramitar Bonos if (sIdReferencia == "") { nAux = DAL.BonoTransporte.InsertCabeceraGVBono(tr, sConcepto, int.Parse(HttpContext.Current.Session["GVT_IDFICEPI"].ToString()), int.Parse(sIdUsuario), int.Parse(sIdProyecto), Utilidades.unescape(sComentario), Utilidades.unescape(sAnotaciones), int.Parse(HttpContext.Current.Session["GVT_IDEMPRESA"].ToString()), int.Parse(sIdBono), float.Parse(sImporte), int.Parse(sAnoMes), int.Parse(sIdTerritorio), sMoneda, short.Parse(sOficina) ); sValorInsertado = nAux.ToString(); } else { DAL.BonoTransporte.UpdateCabeceraGVBono(tr, int.Parse(sIdReferencia), sConcepto, int.Parse(HttpContext.Current.Session["GVT_IDFICEPI"].ToString()), int.Parse(sIdUsuario), int.Parse(sIdProyecto), Utilidades.unescape(sComentario), Utilidades.unescape(sAnotaciones), int.Parse(HttpContext.Current.Session["GVT_IDEMPRESA"].ToString()), int.Parse(sIdBono), float.Parse(sImporte), int.Parse(sAnoMes), int.Parse(sIdTerritorio), sMoneda, short.Parse(sOficina) ); sValorInsertado = sIdReferencia; } #endregion //string sCentroCoste = DAL.CABECERAGV.ObtenerCentroCoste(tr, int.Parse(sValorInsertado)); //if (sCentroCoste == "") //{ // sResul = "Operación denegada.\n\nNo se ha podido determinar el centro de coste a asociar a la solicitud."; // bErrorControlado = true; // throw (new Exception(sResul)); //} //else //{ // DAL.CABECERAGV.UpdateCentroCoste(tr, int.Parse(sValorInsertado), sCentroCoste); //} sValorInsertado += "@#@" + ObtenerHistorial(nAux.ToString()); Conexion.CommitTransaccion(tr); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); //sResul = Errores.mostrarError("Error al grabar el bono transporte.", ex); if (bErrorControlado) { sResul = ex.Message; } else { sResul = Errores.mostrarError("Error al grabar el bono transporte.", ex); } } finally { Conexion.Cerrar(oConn); if (sResul != "") { if (bErrorControlado) { sResul = "ErrorControlado##EC##" + sResul; } throw (new Exception(sResul)); } } return(sValorInsertado); }
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)); } } }
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)); } } }
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()); }
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)); } } }