Bugzilla – Attachment 111319 Details for
Bug 26597
Transfer information from guarantor when adding a guarantor to an existing patron
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 26597: Transfer informations from guarantor when adding a guarantor to an existing patron
Bug-26597-Transfer-informations-from-guarantor-whe.patch (text/plain), 9.77 KB, created by
David Nind
on 2020-10-06 19:12:33 UTC
(
hide
)
Description:
Bug 26597: Transfer informations from guarantor when adding a guarantor to an existing patron
Filename:
MIME Type:
Creator:
David Nind
Created:
2020-10-06 19:12:33 UTC
Size:
9.77 KB
patch
obsolete
>From cb1e930a0ed0ed531f853f4da757a3ea51bb88d8 Mon Sep 17 00:00:00 2001 >From: Maryse Simard <maryse.simard@inlibro.com> >Date: Wed, 30 Sep 2020 17:13:42 -0400 >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 > >Signed-off-by: David Nind <david@davidnind.com> >--- > C4/Utils/DataTables/Members.pm | 27 ++++++++++++++-------- > .../prog/en/modules/admin/preferences/patrons.pref | 2 +- > .../prog/en/modules/common/patron_search.tt | 10 +++++--- > .../prog/en/modules/members/memberentrygen.tt | 2 +- > .../en/modules/members/tables/guarantor_search.tt | 2 +- > koha-tmpl/intranet-tmpl/prog/js/members.js | 11 ++++++++- > svc/members/search | 4 ++++ > 7 files changed, 42 insertions(+), 16 deletions(-) > >diff --git a/C4/Utils/DataTables/Members.pm b/C4/Utils/DataTables/Members.pm >index a718a9633e..04a1995719 100644 >--- a/C4/Utils/DataTables/Members.pm >+++ b/C4/Utils/DataTables/Members.pm >@@ -77,15 +77,24 @@ sub search { > } > } > >- my $select = "SELECT >- borrowers.borrowernumber, borrowers.surname, borrowers.firstname, >- borrowers.othernames, >- borrowers.flags, >- borrowers.streetnumber, borrowers.streettype, borrowers.address, >- borrowers.address2, borrowers.city, borrowers.state, borrowers.zipcode, >- borrowers.country, cardnumber, borrowers.dateexpiry, >- borrowers.borrowernotes, borrowers.branchcode, borrowers.email, >- borrowers.userid, borrowers.dateofbirth, borrowers.categorycode, >+ my @columns = qw( borrowernumber surname firstname othernames flags streetnumber streettype address address2 city state zipcode country cardnumber dateexpiry borrowernotes branchcode email userid dateofbirth categorycode phone phonepro mobile fax email emailpro); >+ >+ my $prefillguarantorfields = C4::Context->preference("PrefillGuaranteeField"); >+ my @prefill_fields = split(/\,/,$prefillguarantorfields); >+ if ( @prefill_fields ) { >+ foreach my $field (@prefill_fields) { >+ if (! grep {$_ eq $field} @columns) { >+ push @columns, $field; >+ } >+ } >+ }; >+ >+ my $borrowers_columns = ""; >+ foreach my $item (@columns) { >+ $borrowers_columns .= "borrowers." . $item . ", "; >+ } >+ >+ my $select = "SELECT " . $borrowers_columns . " > categories.description AS category_description, categories.category_type, > branches.branchname, borrowers.phone"; > my $from = "FROM borrowers >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >index fc8e8b6c7e..509fbdbdd2 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref >@@ -249,7 +249,7 @@ Patrons: > class: multi > - (input multiple choices separated by |). Leave empty to deactivate. > - >- - "When adding a guarantee to a guarantor patron fill the following fields in the guarantee's member entry form from the guarantors record:" >+ - "When adding a guarantor relationship to a patron fill the following unfilled fields in the guarantee's member entry form from the guarantors record:" > - pref: PrefillGuaranteeField > multiple: > B_address: "Alternate address - Address" >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt >index b78ec9bd31..46b2e7d090 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt >@@ -225,7 +225,11 @@ > e.preventDefault(); > var borrowernumber = $(this).data("borrowernumber"); > var borrower_data = $("#borrower_data"+borrowernumber).val(); >- select_user( borrowernumber, JSON.parse(borrower_data) ); >+ var guarantor_attributes = $("#guarantor_attributes"+borrowernumber).val(); >+ if ( !guarantor_attributes ) { >+ guarantor_attributes = "{}"; >+ } >+ select_user( borrowernumber, JSON.parse(borrower_data), JSON.parse(guarantor_attributes) ); > }); > > $("body").on("click",".patron_preview", function( e ){ >@@ -283,9 +287,9 @@ > wait_for_opener(); > } > [% ELSIF selection_type == 'select' %] >- function select_user(borrowernumber, data) { >+ function select_user(borrowernumber, data, attributes) { > var p = window.opener; >- p.select_user(borrowernumber, data); >+ p.select_user(borrowernumber, data, null, attributes); > window.close(); > } > [% END %] >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 738afd604b..6d461a7736 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >@@ -1581,7 +1581,7 @@ legend:hover { > > [% IF new_guarantors %] > [% FOREACH g IN new_guarantors %] >- select_user( '[% g.patron.borrowernumber | html %]', [% To.json( g.patron.unblessed ) | $raw %], '[% g.relationship | html %]' ); >+ select_user( '[% g.patron.borrowernumber | html %]', [% To.json( g.patron.unblessed ) | $raw %], '[% g.relationship | html %]' [% IF guarantor_attributes %], [% To.json( guarantor_attributes ) | $raw %][% END %] ); > [% END %] > [% END %] > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/tables/guarantor_search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/tables/guarantor_search.tt >index 38ec5aa9e0..d451aec944 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/tables/guarantor_search.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/tables/guarantor_search.tt >@@ -18,7 +18,7 @@ > "dt_address": > "[% INCLUDE escape_address data=data %]", > "dt_action": >- "<a href=\"#\" class=\"btn btn-default btn-xs select_user\" data-borrowernumber=\"[% data.borrowernumber | html %]\">Select</a><input type=\"hidden\" id=\"borrower_data[% data.borrowernumber | html %]\" name=\"borrower_data[% data.borrowernumber | html %]\" value=\"[% To.json(data) | html %]\" />" >+ "<a href=\"#\" class=\"btn btn-default btn-xs select_user\" data-borrowernumber=\"[% data.borrowernumber | html %]\">Select</a><input type=\"hidden\" id=\"borrower_data[% data.borrowernumber | html %]\" name=\"borrower_data[% data.borrowernumber | html %]\" value=\"[% To.json(data) | html %]\" /><input type=\"hidden\" id=\"guarantor_attributes[% data.borrowernumber | html %]\" name=\"guarantor_attributes[% data.borrowernumber | html %]\" value=\"[% To.json(guarantor_attributes) | html %]\" />" > }[% UNLESS loop.last %],[% END %] > [% END %] > ] >diff --git a/koha-tmpl/intranet-tmpl/prog/js/members.js b/koha-tmpl/intranet-tmpl/prog/js/members.js >index f38870cc48..cdbb813759 100644 >--- a/koha-tmpl/intranet-tmpl/prog/js/members.js >+++ b/koha-tmpl/intranet-tmpl/prog/js/members.js >@@ -75,7 +75,7 @@ function update_category_code(category_code) { > $(mytables).find(" li[data-category_code='']").show(); > } > >-function select_user(borrowernumber, borrower, relationship) { >+function select_user(borrowernumber, borrower, relationship, attributes) { > let is_guarantor = $(`.guarantor-details[data-borrowernumber=${borrower.borrowernumber}]`).length; > > if ( is_guarantor ) { >@@ -120,6 +120,15 @@ function select_user(borrowernumber, borrower, relationship) { > if ( relationship ) { > fieldset.find('.new_guarantor_relationship').val(relationship); > } >+ >+ if ( attributes ) { >+ for (var i = 0; i < parseInt(attributes.length, 10); i++) { >+ var attribute = attributes[i]; >+ if ( borrower[attribute] != null && document.forms.entryform[attribute].value == "" ) { >+ document.forms.entryform[attribute].value = borrower[attribute]; >+ } >+ } >+ } > } > > return 0; >diff --git a/svc/members/search b/svc/members/search >index 06201ef4ae..5c55bb98b7 100755 >--- a/svc/members/search >+++ b/svc/members/search >@@ -90,12 +90,16 @@ $results = C4::Utils::DataTables::Members::search( > } > ) unless $results; > >+my $prefillguarantorfields = C4::Context->preference("PrefillGuaranteeField"); >+my @prefill_fields = split(/\,/,$prefillguarantorfields); >+ > $template->param( > sEcho => $sEcho, > iTotalRecords => $results->{iTotalRecords}, > iTotalDisplayRecords => $results->{iTotalDisplayRecords}, > aaData => $results->{patrons}, > selection_type => $selection_type, >+ guarantor_attributes => \@prefill_fields, > ); > > output_with_http_headers $input, $cookie, $template->output, 'json'; >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 26597
:
111054
|
111319
|
112196
|
142443
|
144475
|
144560
|
148564
|
148597
|
148598
|
148599
|
151850
|
151851
|
151878
|
154501
|
154503
|
154504
|
154505
|
154506
|
158119
|
158300
|
161510
|
161511
|
161512
|
161513
|
161514
|
161515
|
161516