/// <summary> /// Libera recursos utilizados en la transacción /// </summary> public void Dispose() { CommitOrRollback(); Transaccion.Dispose(); Conexion.Dispose(); }
public static void GuardarNomina(Nomina nueva) { var transaccion = new Transaccion(); try { var repositorio = new Repositorio <Nomina>(transaccion); repositorio.Agregar(nueva); transaccion.GuardarCambios(); } catch (Exception ex) { transaccion.Dispose(); } }
public static List <ClavesPresupuestales> Agregar(List <ClavesPresupuestales> claves) { var transaccion = new Transaccion(); try { var repositorio = new Repositorio <ClavesPresupuestales>(transaccion); foreach (var clave in claves) { repositorio.Agregar(clave); } transaccion.GuardarCambios(); } catch (Exception) { transaccion.Dispose(); } return(claves); }
public void ejecutarSQLTransaccion(String pSql) { // Definicion de Command SqlCommand cmd = null; SqlTransaction Transaccion; IsError = false; // Inicio de la transaccion Transaccion = conexion.BeginTransaction(); try { cmd = new SqlCommand(pSql.ToString(), conexion); cmd.Transaction = Transaccion; cmd.Connection = conexion; cmd.ExecuteNonQuery(); Transaccion.Commit(); } catch (SqlException errorSql) { IsError = true; ErrorDescripcion = "Error en ejecutarSQL \n"; ErrorDescripcion += errorSql.Message; Transaccion.Rollback(); } catch (Exception error) { IsError = true; ErrorDescripcion = "Error en ejecutarSQL \n"; ErrorDescripcion += error.Message; Transaccion.Rollback(); } cmd.Dispose(); Transaccion.Dispose(); }
//revisado #region Metodos para agregar contenedores y actualizar inventario general public static bool GuardarInventarioContenedores(int idInventario, string numeroOrden, int numeroContenedor, string FInicial, string FFinal, int TotalFormas, DateTime fechaExterna) { bool bandera = false; var transaccion = new Transaccion(); var repositorio = new Repositorio <Tbl_Inventario>(transaccion); var inventarioFiltrado = repositorio.ObtenerPorFiltro(x => x.Id == idInventario && x.Activo == true); try { //Actualiza datos en la tabla inventario foreach (Tbl_Inventario inventarioObtenido in inventarioFiltrado) { inventarioObtenido.FormasDisponibles += TotalFormas; inventarioObtenido.UltimoFolioInventario = FFinal; } // agrega contenedores con folios para que coincida con el inventario Tbl_InventarioContenedores nuevoContenedor = new Tbl_InventarioContenedores(); nuevoContenedor.IdInventario = idInventario; nuevoContenedor.NumOrden = numeroOrden; nuevoContenedor.NumContenedor = numeroContenedor; nuevoContenedor.FolioInicial = FInicial; nuevoContenedor.FolioFinal = FFinal; nuevoContenedor.FormasTotalesContenedor = TotalFormas; nuevoContenedor.FormasDisponiblesActuales = TotalFormas; nuevoContenedor.FormasInhabilitadas = 0; nuevoContenedor.FormasAsignadas = 0; nuevoContenedor.FormasFoliadas = 0; nuevoContenedor.FechaAlta = fechaExterna; nuevoContenedor.Activo = true; var repositorioContenedor = new Repositorio <Tbl_InventarioContenedores>(transaccion); var contenedorAgregado = repositorioContenedor.Agregar(nuevoContenedor); //Agrega el detalle de cada contenedor para saber cada uno de sus folios var repositorioDetalle = new Repositorio <Tbl_InventarioDetalle>(transaccion); for (int i = Convert.ToInt32(FInicial); i <= Convert.ToInt32(FFinal); i++) { Tbl_InventarioDetalle nuevoDetalle = new Tbl_InventarioDetalle(); nuevoDetalle.IdContenedor = contenedorAgregado.Id; nuevoDetalle.NumFolio = i; nuevoDetalle.Activo = true; repositorioDetalle.Agregar(nuevoDetalle); } // transaccion.Dispose(); //se transacciona por si algo va mal se pueda hacer un roll over de todo transaccion.GuardarCambios(); bandera = true; } catch (Exception e) { transaccion.Dispose(); bandera = false; } return(bandera); }