From c38f9ac0fe048debb84d346e51b43ffb558080cf Mon Sep 17 00:00:00 2001 From: Jason Boyer Date: Mon, 29 Jan 2018 17:02:01 -0500 Subject: [PATCH] LP1737540: Add Patron Information to Receipts Adds the following fields to a patron object on print_data: first_given_name second_given_name family_name suffix barcode money_summary.balance_owed money_summary.total_paid money_summary.total_owed expire_date alias has_email has_phone On the following receipts: Checkout, Items Out, and Bill Payment. (money_summary left out on bill payment because it will always be out of date.) Signed-off-by: Jason Boyer --- .../web/js/ui/default/staff/admin/workstation/app.js | 2 ++ Open-ILS/web/js/ui/default/staff/circ/patron/bills.js | 18 +++++++++++++++++- .../web/js/ui/default/staff/circ/patron/checkout.js | 17 ++++++++++++++++- .../web/js/ui/default/staff/circ/patron/items_out.js | 17 ++++++++++++++++- 4 files changed, 51 insertions(+), 3 deletions(-) diff --git a/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js b/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js index 054ed7ff7e..16d9fb225c 100644 --- a/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js +++ b/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js @@ -349,9 +349,11 @@ function($scope , $q , egCore , ngToast) { // alongside the templates. // NOTE: A lot of this data can be shared across templates. var seed_user = { + prefix : 'Mr', first_given_name : 'Slow', second_given_name : 'Joe', family_name : 'Jones', + suffix : 'III', card : { barcode : '30393830393' }, diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/bills.js b/Open-ILS/web/js/ui/default/staff/circ/patron/bills.js index e1a4ef241c..24d2e54576 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/patron/bills.js +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/bills.js @@ -352,6 +352,8 @@ function($scope , $q , $routeParams , egCore , egConfirmDialog , $location, function printReceipt(type, payment_ids, payments_made, note) { var payment_blobs = []; + var cusr = patronSvc.current; + angular.forEach(payments_made, function(payment) { var xact_id = payment[0]; @@ -379,7 +381,21 @@ function($scope , $q , $routeParams , egCore , egConfirmDialog , $location, payments : payment_blobs, current_location : egCore.idl.toHash( egCore.org.get(egCore.auth.user().ws_ou())) - } + }; + + // Not a good idea to use patron_stats.fines for this; it's out of date + print_data.patron = { + prefix : cusr.prefix(), + first_given_name : cusr.first_given_name(), + second_given_name : cusr.second_given_name(), + family_name : cusr.family_name(), + suffix : cusr.suffix(), + card : { barcode : cusr.card().barcode() }, + expire_date : cusr.expire_date(), + alias : cusr.alias(), + has_email : Boolean(patronSvc.current.email() && patronSvc.current.email().match(/.*@.*/).length), + has_phone : Boolean(cusr.day_phone() || cusr.evening_phone() || cusr.other_phone()) + }; print_data.new_balance = ( print_data.previous_balance * 100 - diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js b/Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js index 83a6a6fecd..10a97e4273 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js @@ -256,7 +256,8 @@ function($scope , $q , $routeParams , egCore , egUser , patronSvc , } $scope.print_receipt = function() { - var print_data = {circulations : []} + var print_data = {circulations : []}; + var cusr = patronSvc.current; if ($scope.checkouts.length == 0) return $q.when(); @@ -272,7 +273,21 @@ function($scope , $q , $routeParams , egCore , egUser , patronSvc , }; }); + // This is repeated in patron.* so everyting is in one place but left here so existing templates don't break. print_data.patron_money = patronSvc.patron_stats.fines; + print_data.patron = { + prefix : cusr.prefix(), + first_given_name : cusr.first_given_name(), + second_given_name : cusr.second_given_name(), + family_name : cusr.family_name(), + suffix : cusr.suffix(), + card : { barcode : cusr.card().barcode() }, + money_summary : patronSvc.patron_stats.fines, + expire_date : cusr.expire_date(), + alias : cusr.alias(), + has_email : Boolean($scope.has_email_address()), + has_phone : Boolean(cusr.day_phone() || cusr.evening_phone() || cusr.other_phone()) + }; return egCore.print.print({ context : 'default', diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js b/Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js index 0b558e3ce2..22186590a6 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js @@ -344,7 +344,8 @@ function($scope, $q, $routeParams, $timeout, egCore , egUser, patronSvc , $ $scope.print_receipt = function(items) { if (items.length == 0) return $q.when(); - var print_data = {circulations : []} + var print_data = {circulations : []}; + var cusr = patronSvc.current; angular.forEach(patronSvc.items_out, function(circ) { print_data.circulations.push({ @@ -356,6 +357,20 @@ function($scope, $q, $routeParams, $timeout, egCore , egUser, patronSvc , $ }) }); + print_data.patron = { + prefix : cusr.prefix(), + first_given_name : cusr.first_given_name(), + second_given_name : cusr.second_given_name(), + family_name : cusr.family_name(), + suffix : cusr.suffix(), + card : { barcode : cusr.card().barcode() }, + money_summary : patronSvc.patron_stats.fines, + expire_date : cusr.expire_date(), + alias : cusr.alias(), + has_email : Boolean(patronSvc.current.email() && patronSvc.current.email().match(/.*@.*/).length), + has_phone : Boolean(cusr.day_phone() || cusr.evening_phone() || cusr.other_phone()) + }; + return egCore.print.print({ context : 'default', template : 'items_out', -- 2.11.0