From b6e866ab65d7d9658b59d8812e3ca2aada1c0efb Mon Sep 17 00:00:00 2001 From: Ben Shum Date: Wed, 14 Nov 2012 13:30:11 -0500 Subject: [PATCH] Add library setting to control pre-expire warning for patrons Thanks to some more inspiration by Thomas Berezansky, this change adds a library setting to control when the pre-expire warning will be displayed. Signed-off-by: Ben Shum Signed-off-by: Dan Scott --- Open-ILS/src/sql/Pg/950.data.seed-values.sql | 20 +++++++++++++++ .../XXXX.data.prewarn_expire_setting.sql | 25 +++++++++++++++++++ .../xul/staff_client/server/patron/display.js | 19 ++++++++++---- 3 files changed, 59 insertions(+), 5 deletions(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.prewarn_expire_setting.sql diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql index 394e7bcc6c..fe719f0c9e 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -11859,3 +11859,23 @@ INSERT INTO config.org_unit_setting_type ), 'bool' ); + +INSERT INTO config.org_unit_setting_type + (name, grp, label, description, datatype) + VALUES ( + 'circ.prewarn_expire_setting', + 'circ', + oils_i18n_gettext( + 'circ.prewarn_expire_setting', + 'Pre-warning for patron expiration', + 'coust', + 'label' + ), + oils_i18n_gettext( + 'circ.prewarn_expire_setting', + 'Pre-warning for patron expiration. This setting defines the number of days before patron expiration to display a message suggesting it is time to renew the patron account. Value is in number of days, for example: 3 for 3 days.', + 'coust', + 'description' + ), + 'integer' + ); diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.prewarn_expire_setting.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.prewarn_expire_setting.sql new file mode 100644 index 0000000000..151761b2a1 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.prewarn_expire_setting.sql @@ -0,0 +1,25 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); + +INSERT INTO config.org_unit_setting_type + (name, grp, label, description, datatype) + VALUES ( + 'circ.prewarn_expire_setting', + 'circ', + oils_i18n_gettext( + 'circ.prewarn_expire_setting', + 'Pre-warning for patron expiration', + 'coust', + 'label' + ), + oils_i18n_gettext( + 'circ.prewarn_expire_setting', + 'Pre-warning for patron expiration. This setting defines the number of days before patron expiration to display a message suggesting it is time to renew the patron account. Value is in number of days, for example: 3 for 3 days.', + 'coust', + 'description' + ), + 'integer' + ); + +COMMIT; diff --git a/Open-ILS/xul/staff_client/server/patron/display.js b/Open-ILS/xul/staff_client/server/patron/display.js index 393fa32306..d68d6a2c17 100644 --- a/Open-ILS/xul/staff_client/server/patron/display.js +++ b/Open-ILS/xul/staff_client/server/patron/display.js @@ -973,9 +973,6 @@ patron.display.prototype = { if (patron.expire_date()) { var now = new Date(); now = now.getTime()/1000; - var preexpire = new Date(); - preexpire.setDate(preexpire.getDate() + 28); - preexpire = preexpire.getTime()/1000; var expire_parts = patron.expire_date().substr(0,10).split('-'); expire_parts[1] = expire_parts[1] - 1; @@ -984,11 +981,23 @@ patron.display.prototype = { expire.setFullYear(expire_parts[0], expire_parts[1], expire_parts[2]); expire = expire.getTime()/1000 + var preexpire = new Date(); + var preexpire_value; + if (obj.OpenILS.data.hash.aous['circ.prewarn_expire_setting']) { + if (typeof obj.OpenILS.data.hash.aous['circ.prewarn_expire_setting'] == "string") { + preexpire_value = parseInt(obj.OpenILS.data.hash.aous['circ.prewarn_expire_setting']); + } else { + preexpire_value = obj.OpenILS.data.hash.aous['circ.prewarn_expire_setting']; + } + preexpire.setDate(preexpire.getDate() + preexpire_value); + } + preexpire = preexpire.getTime()/1000; + if (expire < now) { msg += $("patronStrings").getString('staff.patron.display.init.network_request.account_expired'); obj.stop_checkouts = true; - } else if (expire < preexpire) { - msg += $("patronStrings").getString('staff.patron.display.init.network_request.account_expire_soon'); + } else if (expire < preexpire && obj.OpenILS.data.hash.aous['circ.prewarn_expire_setting']) { + msg += $("patronStrings").getString('staff.patron.display.init.network_request.account_expire_soon'); } } var penalties = patron.standing_penalties(); -- 2.43.2