public bool Guardar(DsPuntoRecepcionAgenciasRedespacho.DatosDataTable dtPuntoRecepcion, IUsuarios usuario) { using (SqlConnection conexion = new SqlConnection()) { SqlTransaction transaccion = null; conexion.ConnectionString = Config.ConnectionString; try { conexion.Open(); //para trabajar con transaccion transaccion = conexion.BeginTransaction(); DsPuntoRecepcionAgenciasRedespacho.DatosDataTable puntoRecepcionBD = this.GetPuntosRecepcionAgenciasRedespachoDataSet(); foreach (DsPuntoRecepcionAgenciasRedespacho.DatosRow row in dtPuntoRecepcion.Rows) { #region Insert/Update string store = ""; if (row.IsPuntoRecepcionAgenciasRedespachoIDNull()) { //UPDATE store = "PuntoRecepcionAgenciasRedespachoINS"; } else { //INSERT store = "PuntoRecepcionAgenciasRedespachoUPD"; } Config.Conexion.EjecutarSinResultados(transaccion, store, row.IsPuntoRecepcionAgenciasRedespachoIDNull() ? 0 : row.PuntoRecepcionAgenciasRedespachoID, Utiles.BaseDatos.IntToSql(row.PuntoRecepcionID), Utiles.BaseDatos.IntToSql(row.IsAgenciaIDNull() ? 0 : row.AgenciaID), row.IsConsolidadoNull() ? false : row.Consolidado, row.IsRedespachoNull() ? false : row.Redespacho, Utiles.BaseDatos.IntToSql(usuario.UsuarioID), DateTime.Now, Utiles.BaseDatos.IntToSql(usuario.UsuarioID), DateTime.Now); #endregion } foreach (DsPuntoRecepcionAgenciasRedespacho.DatosRow ROWinBD in puntoRecepcionBD.Rows) { #region Comprobamos si Existe en Base y no en el DS bool eliminarDeBD = false; if (dtPuntoRecepcion.Select("PuntoRecepcionAgenciasRedespachoID = " + ROWinBD.PuntoRecepcionAgenciasRedespachoID).Length == 0) { eliminarDeBD = true; } #endregion #region Del if (eliminarDeBD) { Config.Conexion.EjecutarSinResultados(transaccion, "PuntoRecepcionAgenciasRedespachoDEL", ROWinBD.PuntoRecepcionAgenciasRedespachoID, usuario.UsuarioID, DateTime.Now); } #endregion } /*SFE: Se comenta porque para codigos postales ya no se necesitaria. se utiliza el store que esta despues*/ // Obtengo los datos actualizados, remuevo el cache viejo, y creo el nuevo caché con los nuevos datos // con esto logro que el tiempo se disminuya //DsDestinosGuias ds1 = new DsDestinosGuias(); //Config.Conexion.LlenarTypeDataSet(ds1.Datos, System.Data.CommandType.StoredProcedure, "UVentaModEntregaAgenciaDestinoSEL"); //CacheDataManager.RemoveCacheValue(SisPack.CacheObjetos.UnidadVentaMEntregaDestino.ToString()); //CacheDataManager.SetCacheValue(SisPack.CacheObjetos.UnidadVentaMEntregaDestino.ToString(), ds1); //// Limpio de cache los datos para la emisión de la guía //(new AdministrarGuias()).LimpiarCacheUVAgLocParaEmisionGuia(); transaccion.Commit(); return(true); } catch (Exception ex) { transaccion.Rollback(); throw ex; } } }
public DsPuntoRecepcionAgenciasRedespacho.DatosDataTable GetPuntosRecepcionAgenciasRedespachoDataSet() { DsPuntoRecepcionAgenciasRedespacho.DatosDataTable ds = new DsPuntoRecepcionAgenciasRedespacho.DatosDataTable(); Config.Conexion.LlenarTypeDataSet(ds, System.Data.CommandType.StoredProcedure, "PuntoRecepcionAgenciasRedespachoSEL"); return(ds); }