From 8d80a1494a1e1223b6b32c3ea9ea8dbc458ae807 Mon Sep 17 00:00:00 2001 From: Hammat Wele Date: Wed, 7 Dec 2022 16:51:20 +0000 Subject: [PATCH] Bug 26597: Transfer informations from guarantor when adding a guarantor to an existing patron When creating a new guarantee from the guarantor, the preference PrefillGuaranteeField dictates some fields to be transfered from guarantor to guarantee. This patch makes it so those informations are also transfered when adding a new guarantor relationship to an existing patron. To test: 1) Apply patch 2) Search PrefillGuaranteeField preference and make sure some fields are selected 3) Select a user that can have a guarantor 4) In the edit form, click on 'Search to add' in 'Patron guarantor' fieldset 5) Choose a patron who has at least one of the fields in 1) set 6) Click 'Select' 7) Confirm guarantee's information is filled from the guarantor's record 8) Check that any preexisting information is not overwritten --- .../prog/en/modules/members/memberentrygen.tt | 3 +++ koha-tmpl/intranet-tmpl/prog/js/members.js | 16 ++++++++++++++++ members/memberentry.pl | 1 + 3 files changed, 20 insertions(+) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt index 48f62ddd52..660702dd0f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt @@ -1930,6 +1930,9 @@ legend:hover { }); [% END %] $("#guarantor_template").hide(); + [% IF guarantor_attributes %] + guarantor_attributes = [% To.json(guarantor_attributes) %]; + [% END %] [% Asset.js("js/members.js") | $raw %] diff --git a/koha-tmpl/intranet-tmpl/prog/js/members.js b/koha-tmpl/intranet-tmpl/prog/js/members.js index 597bb5d141..9195d91ffd 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/members.js +++ b/koha-tmpl/intranet-tmpl/prog/js/members.js @@ -121,6 +121,22 @@ function select_user(borrowernumber, borrower, relationship) { if ( relationship ) { fieldset.find('.new_guarantor_relationship').val(relationship); } + + if(typeof guarantor_attributes !== 'undefined') { + $.ajax({ + url: '/api/v1/patrons/'+borrowernumber, + method: "GET", + dataType: 'json', + success: function(data){ + for (var i = 0; i < parseInt(guarantor_attributes.length, 10); i++) { + var attribute = guarantor_attributes[i]; + if ( data[attribute] != null && document.forms.entryform[attribute].value == "" ) { + document.forms.entryform[attribute].value = data[attribute]; + } + } + } + }); + } } return 0; diff --git a/members/memberentry.pl b/members/memberentry.pl index 2ebf3b4335..d072602747 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -613,6 +613,7 @@ if (C4::Context->preference("IndependentBranches")) { # Define the fields to be pre-filled in guarantee records my $prefillguarantorfields=C4::Context->preference("PrefillGuaranteeField"); my @prefill_fields=split(/\,/,$prefillguarantorfields); +$template->param( guarantor_attributes => \@prefill_fields ); if ($op eq 'add'){ if ($guarantor_id) { -- 2.34.1