コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
 public DsPuntoRecepcionAgenciasRedespacho.DatosDataTable GetPuntosRecepcionAgenciasRedespachoDataSet()
 {
     DsPuntoRecepcionAgenciasRedespacho.DatosDataTable ds = new DsPuntoRecepcionAgenciasRedespacho.DatosDataTable();
     Config.Conexion.LlenarTypeDataSet(ds, System.Data.CommandType.StoredProcedure, "PuntoRecepcionAgenciasRedespachoSEL");
     return(ds);
 }