From: Jason Etheridge Date: Tue, 2 Aug 2011 03:43:23 +0000 (-0400) Subject: treat claims never checked out like claims returned for summary display and checkout... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=refs%2Fheads%2Fcollab%2Fphasefx%2Fclaimed_never_cko;p=working%2FEvergreen.git treat claims never checked out like claims returned for summary display and checkout count/list methods.. however, FIXME, it doesn't seem to be working correctly. I can't get claims_never_checked_out to increment for the .count version, or list an id for the list version. There's a SQL view in fieldmapper which may control this, and an older call in storage; I've changed both Signed-off-by: Jason Etheridge --- diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml index 7b621a9f96..abbd83a8be 100644 --- a/Open-ILS/examples/fm_IDL.xml +++ b/Open-ILS/examples/fm_IDL.xml @@ -3111,7 +3111,7 @@ SELECT usr, CASE WHEN ( ((fine_interval >= '1 day' AND due_date >= 'today') OR (fine_interval < '1 day' AND due_date > 'now')) - AND (stop_fines IS NULL OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','LONGOVERDUE')) + AND (stop_fines IS NULL OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','CLAIMSNEVERCHECKEDOUT','LONGOVERDUE')) ) THEN 1 ELSE 0 END @@ -3121,7 +3121,7 @@ SELECT usr, CASE WHEN ( ((fine_interval >= '1 day' AND due_date < 'today') OR (fine_interval < '1 day' AND due_date < 'now')) - AND (stop_fines IS NULL OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','LONGOVERDUE')) + AND (stop_fines IS NULL OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','CLAIMSNEVERCHECKEDOUT','LONGOVERDUE')) ) THEN 1 ELSE 0 END @@ -3129,6 +3129,7 @@ SELECT usr, SUM( CASE WHEN (xact_finish IS NULL AND stop_fines = 'LOST') THEN 1 ELSE 0 END) AS lost, SUM( CASE WHEN (xact_finish IS NULL AND stop_fines = 'CLAIMSRETURNED') THEN 1 ELSE 0 END) AS claims_returned, + SUM( CASE WHEN (xact_finish IS NULL AND stop_fines = 'CLAIMSNEVERCHECKEDOUT') THEN 1 ELSE 0 END) AS claims_never_checked_out, SUM( CASE WHEN (xact_finish IS NULL AND stop_fines = 'LONGOVERDUE') THEN 1 ELSE 0 END) AS long_overdue FROM action.circulation WHERE checkin_time IS NULL @@ -3140,6 +3141,7 @@ SELECT usr, + @@ -3153,7 +3155,7 @@ SELECT usr, CASE WHEN ( ((fine_interval >= '1 day' AND due_date >= 'today') OR (fine_interval < '1 day' AND due_date > 'now')) - AND (stop_fines IS NULL OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','LONGOVERDUE')) + AND (stop_fines IS NULL OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','CLAIMSNEVERCHECKEDOUT','LONGOVERDUE')) ) THEN id ELSE 0 END @@ -3163,7 +3165,7 @@ SELECT usr, CASE WHEN ( ((fine_interval >= '1 day' AND due_date < 'today') OR (fine_interval < '1 day' AND due_date < 'now')) - AND (stop_fines IS NULL OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','LONGOVERDUE')) + AND (stop_fines IS NULL OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','CLAIMSNEVERCHECKEDOUT','LONGOVERDUE')) ) THEN id ELSE 0 END @@ -3171,6 +3173,7 @@ SELECT usr, ARRAY_TO_STRING(ARRAY_ACCUM( CASE WHEN (xact_finish IS NULL AND stop_fines = 'LOST') THEN id ELSE 0 END),',') AS lost, ARRAY_TO_STRING(ARRAY_ACCUM( CASE WHEN (xact_finish IS NULL AND stop_fines = 'CLAIMSRETURNED') THEN id ELSE 0 END),',') AS claims_returned, + ARRAY_TO_STRING(ARRAY_ACCUM( CASE WHEN (xact_finish IS NULL AND stop_fines = 'CLAIMSNEVERCHECKEDOUT') THEN id ELSE 0 END),',') AS claims_never_checked_out, ARRAY_TO_STRING(ARRAY_ACCUM( CASE WHEN (xact_finish IS NULL AND stop_fines = 'LONGOVERDUE') THEN id ELSE 0 END),',') AS long_overdue FROM action.circulation WHERE checkin_time IS NULL @@ -3182,6 +3185,7 @@ SELECT usr, + diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm index 1f0fa939a3..0c3c0276a0 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm @@ -1913,6 +1913,7 @@ sub _checked_out { overdue => [], lost => [], claims_returned => [], + claims_never_checked_out => [], long_overdue => [] ); my $meth = 'retrieve_action_open_circ_'; @@ -1924,6 +1925,7 @@ sub _checked_out { overdue => 0, lost => 0, claims_returned => 0, + claims_never_checked_out => 0, long_overdue => 0 ); } else { 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 c638e1cbc4..7a71f93436 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 @@ -85,7 +85,7 @@ sub usr_breakdown_out { AND ( (fine_interval >= '1 day' AND due_date >= 'today') OR (fine_interval < '1 day' AND due_date > 'now' )) AND (stop_fines IS NULL - OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','LONGOVERDUE')) + OR stop_fines NOT IN ('LOST','CLAIMSRETURNED','CLAIMSNEVERCHECKEDOUT','LONGOVERDUE')) SQL my $out = actor::user->db_Main->selectcol_arrayref($out_sql, {}, $usr); @@ -119,6 +119,14 @@ sub usr_breakdown_out { my $cl = actor::user->db_Main->selectcol_arrayref($cl_sql, {}, $usr); + my $cl_sql2 = <<" SQL"; + SELECT id + FROM action.circulation + WHERE usr = ? AND checkin_time IS NULL AND stop_fines = 'CLAIMSNEVERCHECKEDOUT' + SQL + + my $cl2 = actor::user->db_Main->selectcol_arrayref($cl_sql2, {}, $usr); + my $lo_sql = <<" SQL"; SELECT id FROM action.circulation @@ -135,6 +143,7 @@ sub usr_breakdown_out { overdue => scalar(@$od), lost => scalar(@$lost), claims_returned => scalar(@$cl), + claims_never_checked_out => scalar(@$cl2), long_overdue => scalar(@$lo), }; } @@ -143,6 +152,7 @@ sub usr_breakdown_out { overdue => $od, lost => $lost, claims_returned => $cl, + claims_never_checked_out => $cl2, long_overdue => $lo, }; } diff --git a/Open-ILS/xul/staff_client/server/patron/items.js b/Open-ILS/xul/staff_client/server/patron/items.js index e640f1ea3a..a325082835 100644 --- a/Open-ILS/xul/staff_client/server/patron/items.js +++ b/Open-ILS/xul/staff_client/server/patron/items.js @@ -874,6 +874,7 @@ patron.items.prototype = { obj.checkouts = obj.checkouts.concat( robj.out ); obj.checkouts2 = obj.checkouts2.concat( robj.lost ); obj.checkouts2 = obj.checkouts2.concat( robj.claims_returned ); + obj.checkouts2 = obj.checkouts2.concat( robj.claims_never_checked_out ); obj.checkouts2 = obj.checkouts2.concat( robj.long_overdue ); } var robj = obj.network.simple_request( @@ -885,6 +886,7 @@ patron.items.prototype = { } else { obj.checkouts2 = obj.checkouts2.concat( robj.lost ); obj.checkouts2 = obj.checkouts2.concat( robj.claims_returned ); + obj.checkouts2 = obj.checkouts2.concat( robj.claims_never_checked_out ); obj.checkouts2 = obj.checkouts2.concat( robj.long_overdue ); } } diff --git a/Open-ILS/xul/staff_client/server/patron/summary.js b/Open-ILS/xul/staff_client/server/patron/summary.js index 55ad6348be..a33f18249c 100644 --- a/Open-ILS/xul/staff_client/server/patron/summary.js +++ b/Open-ILS/xul/staff_client/server/patron/summary.js @@ -369,6 +369,7 @@ patron.summary.prototype = { var e4 = document.getElementById( 'patron_long_overdue' ); if (e4) util.widgets.set_text(e4,'...'); var e5 = document.getElementById( 'patron_lost' ); if (e5) util.widgets.set_text(e5,'...'); var e6 = document.getElementById( 'patron_noncat' ); if (e6) util.widgets.set_text(e6,'...'); + var e7 = document.getElementById( 'patron_claimed_never_checked_out' ); if (e7) util.widgets.set_text(e7,'...'); var under_btn; if (xulG) { if (xulG.display_window) { @@ -383,14 +384,17 @@ patron.summary.prototype = { try { var robj = req.getResultObject(); var do_not_tally_claims_returned = String( obj.OpenILS.data.hash.aous['circ.do_not_tally_claims_returned'] ) == 'true'; + // we'll include claims_never_checked_out in our consideration of this setting util.widgets.set_text(e, robj.out + robj.overdue + (do_not_tally_claims_returned ? 0 : robj.claims_returned) + + (do_not_tally_claims_returned ? 0 : robj.claims_never_checked_out) + robj.long_overdue ); if (e2) util.widgets.set_text(e2, robj.overdue ); if (e3) util.widgets.set_text(e3, robj.claims_returned ); + if (e7) util.widgets.set_text(e7, robj.claims_never_checked_out ); if (e4) util.widgets.set_text(e4, robj.long_overdue ); if (e5) util.widgets.set_text(e5, robj.lost ); if (under_btn) util.widgets.set_text(under_btn, @@ -398,6 +402,7 @@ patron.summary.prototype = { robj.out + robj.overdue + (do_not_tally_claims_returned ? 0 : robj.claims_returned) + + (do_not_tally_claims_returned ? 0 : robj.claims_never_checked_out) + robj.long_overdue ) /* + ( robj.overdue > 0 ? '*' : '' ) */ diff --git a/Open-ILS/xul/staff_client/server/patron/summary_overlay.xul b/Open-ILS/xul/staff_client/server/patron/summary_overlay.xul index a0d7debf3d..2b7773ac1e 100644 --- a/Open-ILS/xul/staff_client/server/patron/summary_overlay.xul +++ b/Open-ILS/xul/staff_client/server/patron/summary_overlay.xul @@ -96,6 +96,10 @@