From 3369cbb9a0944585c2256e5c73cf89b57e2c642d Mon Sep 17 00:00:00 2001 From: Steven Callender Date: Thu, 14 Nov 2013 15:07:33 -0500 Subject: [PATCH] Use the juvenile setting when removing juvenile flag. When calling the API open-ils.storage.actor.user.juvenile_to_adult, most notably from the juv_to_adult.srfsh support script, instead of strictly using the hardcoded passed value, first check the global.juvenile_age_threshold from the settings based on the users home library. If the setting does not exist, then fall back on the hard coded passed value. This will allow each library to be able to set different juvenile thresholds if needed and at the very least, give control to the settings rather than rely strictly on the hardcoded passed value. Signed-off-by: Steven Callender Signed-off-by: Bill Erickson --- .../perlmods/lib/OpenILS/Application/Storage/Publisher/actor.pm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/actor.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/actor.pm index f55da8c998..ff9327ff11 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/actor.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/actor.pm @@ -32,8 +32,11 @@ sub juv_to_adult { my $sql = <<" SQL"; UPDATE actor.usr SET juvenile = FALSE - WHERE AGE(dob) > ?::INTERVAL - AND juvenile IS TRUE; + WHERE id IN ( + SELECT au.id + FROM actor.usr au + WHERE AGE(au.dob) > COALESCE( BTRIM( (SELECT value FROM actor.org_unit_ancestor_setting('global.juvenile_age_threshold', au.home_ou)),'"' ), ? )::INTERVAL + AND au.juvenile IS TRUE) SQL my $sth = actor::user->db_Main->prepare_cached($sql); -- 2.11.0