Bugzilla – Attachment 100840 Details for
Bug 23808
Creating Child Guarantee doesn't populate Guarantor Information
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 23808: Pre-fill guarantor fields when adding guarantee to guarantor
Bug-23808-Pre-fill-guarantor-fields-when-adding-gu.patch (text/plain), 9.46 KB, created by
Alex Buckley
on 2020-03-17 03:30:48 UTC
(
hide
)
Description:
Bug 23808: Pre-fill guarantor fields when adding guarantee to guarantor
Filename:
MIME Type:
Creator:
Alex Buckley
Created:
2020-03-17 03:30:48 UTC
Size:
9.46 KB
patch
obsolete
>From e80c6271aec31f2b655eb891ecc49d06e075f42c Mon Sep 17 00:00:00 2001 >From: Alex Buckley <alexbuckley@catalyst.net.nz> >Date: Mon, 16 Mar 2020 04:10:54 +0000 >Subject: [PATCH] Bug 23808: Pre-fill guarantor fields when adding guarantee to > guarantor > >Bug 14570 removed the guarantor pre-fill functionality when selecting >'Add guarantee' to an Adult patron. This is because guarantor >information would now only display if (1) the patron record exists >(which it won't when first adding guarantee to guarantor record) and (2) >if there is already a guarantor added to a guarantee > >This patchfix will pre-fill guarantor fields if no relationship (existing >guarantor data exists) and a guarantorid is handed to memberenty.pl in >URL when clicking 'Add guarantee' button on Adults patron record. > >Test plan: >1. Add adult patron >2. Select 'Add guarantee' >3. Observe no details of the adult patron >are displaying in the 'Guarantor information' section of the memberentry.pl >page > >4. Select 'Search to add', search for your adult patron and choose >'Select' to add them as guarantor > >5. Fill out rest of memberentry.pl and 'Save' > >6. Observe adult is showing as the guarantor > >7. Apply patch > >8. Run tests: >sudo koha-shell <instancename> >prove xt >prove t > >9. Confirm tests pass > >10. Return to your adult patron > >11. Select 'Add guarantee' > >12. Observe in 'Guarantor information' section of memberentry.pl >pre-filled is the 'patron #' (borrowernumber), surname, firstname > >13. Fill out the rest of memberenty.pl and save and confirm your adult >patron is showing as the guarantor > >14. Repeat steps 10,11 and 12 and in the 'Guarantor information' select >'Search to add' and add another adult as guarantor > >15. Fill out the rest of memberentry.pl and 'Save' and notice with this >patch applied you can still add multiple guarantors successfully > >Sponsored-By: South Taranaki Distict Libraries, NZ >--- > .../prog/en/modules/members/memberentrygen.tt | 52 +++++++++++++++++++- > members/memberentry.pl | 57 ++++++++++++++++------ > 2 files changed, 94 insertions(+), 15 deletions(-) > >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 23a32e0785..de721d2447 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >@@ -325,7 +325,56 @@ > <legend>Guarantor information</legend> > > <span id="guarantor_relationships"> >- [% FOREACH r IN relationships %] >+ [% IF (!relationships) %] >+ <li id="contact-details"> >+ <span class="label">Patron #:</span> >+ [% IF guarantorid %] >+ [% IF logged_in_user.can_see_patron_infos( guarantor ) %] >+ <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% guarantorid | uri %]" target="blank">[% guarantorid | html %]</a> >+ [% ELSE %] >+ [% guarantorid | html %] >+ [% END %] >+ <input type="hidden" class="new_guarantor_id" name="new_guarantor_id" value="[% guarantorid | html %]" /> >+ [% END %] >+ </li> >+ [% UNLESS nocontactname %] >+ <li> >+ <label for="contactname">Surname: </label> >+ [% IF ( guarantorid ) %] >+ <span>[% contactname | html %]</span> >+ <input name="contactname" id="contactname" type="hidden" size="20" value="[% contactname | html %]" /> >+ [% ELSE %] >+ <input name="contactname" id="contactname" type="text" size="20" value="[% contactname | html %]" /> >+ [% END %] >+ </li> >+ [% END %] >+ [% UNLESS nocontactfirstname %] >+ <li> >+ <label for="contactfirstname">First name: </label> >+ [% IF ( guarantorid ) %] >+ <span>[% contactfirstname | html %]</span> >+ <input name="contactfirstname" id="contactfirstname" type="hidden" size="20" value="[% contactfirstname | html %]" /> >+ [% ELSE %] >+ <input name="contactfirstname" id="contactfirstname" type="text" size="20" value="[% contactfirstname | html %]" /> >+ [% END %] >+ </li> >+ [% END %] >+ [% IF ( relshiploop ) %] >+ <li> >+ <label for="relationship">Relationship: </label> >+ <select name="relationship" id="relationship" > >+ [% FOREACH relshiploo IN relshiploop %] >+ [% IF ( relshiploo.selected ) %] >+ <option value="[% relshiploo.relationship | html %]" selected="selected" >[% relshiploo.relationship | html %]</option> >+ [% ELSE %] >+ <option value="[% relshiploo.relationship | html %]">[% relshiploo.relationship | html %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ [% END %] >+ [% ELSE %] >+ [% FOREACH r IN relationships %] > <fieldset class="rows"> > <ol> > [% IF category_type == 'I' %] >@@ -370,6 +419,7 @@ > </ol> > </fieldset> > [% END # END relationships foreach %] >+ [% END %] > </span> > > <fieldset class="rows guarantor" id="guarantor_template"> >diff --git a/members/memberentry.pl b/members/memberentry.pl >index d5b0f08d55..9d99a941eb 100755 >--- a/members/memberentry.pl >+++ b/members/memberentry.pl >@@ -83,6 +83,7 @@ if ( C4::Context->preference('SMSSendDriver') eq 'Email' ) { > $template->param( sms_providers => \@providers ); > } > >+my $guarantorid = $input->param('guarantor_id'); > my $actionType = $input->param('actionType') || ''; > my $modify = $input->param('modify'); > my $delete = $input->param('delete'); >@@ -98,26 +99,13 @@ $nodouble = 1 if ($op eq 'modify' or $op eq 'duplicate'); # FIXME hack to rep > # isn't a duplicate. Marking FIXME because this > # script needs to be refactored. > my $nok = $input->param('nok'); >+my $guarantorinfo = $input->param('guarantorinfo'); > my $step = $input->param('step') || 0; > my @errors; > my $borrower_data; > my $NoUpdateLogin; > my $userenv = C4::Context->userenv; > >-## Deal with guarantor stuff >-$template->param( relationships => scalar $patron->guarantor_relationships ) if $patron; >- >-my $guarantor_id = $input->param('guarantor_id'); >-my $guarantor = undef; >-$guarantor = Koha::Patrons->find( $guarantor_id ) if $guarantor_id; >-$template->param( guarantor => $guarantor ); >- >-my @delete_guarantor = $input->multi_param('delete_guarantor'); >-foreach my $id ( @delete_guarantor ) { >- my $r = Koha::Patron::Relationships->find( $id ); >- $r->delete() if $r; >-} >- > ## Deal with debarments > $template->param( > debarments => scalar GetDebarments( { borrowernumber => $borrowernumber } ) ); >@@ -248,6 +236,45 @@ if ( $op eq 'insert' || $op eq 'modify' || $op eq 'save' || $op eq 'duplicate' ) > } > } > >+ >+ >+## Deal with guarantor stuff >+$template->param( relationships => scalar $patron->guarantor_relationships ) if $patron; >+my $guarantor_id = $input->param('guarantor_id'); >+my $guarantor = undef; >+$guarantor = Koha::Patrons->find( $guarantor_id ) if $guarantor_id; >+$template->param( guarantor => $guarantor ); >+ >+# Pre-fill guarantor fields if adding a guarantee to guarantor record using 'Add guarantee' button >+# in this case the guarantee patron record does not already exist >+ >+if (!$patron) { >+ if ( $guarantorid ) { >+ if (my $guarantor = Koha::Patrons->find( $guarantorid )) { >+ my $guarantordata = $guarantor->unblessed; >+ $categorycode = $guarantordata->{categorycode} eq 'I' ? 'P' : 'C'; >+ $guarantorinfo=$guarantordata->{'surname'}." , ".$guarantordata->{'firstname'}; >+ $newdata{'contactfirstname'}= $guarantordata->{'firstname'}; >+ $newdata{'contactname'} = $guarantordata->{'surname'}; >+ $newdata{'contacttitle'} = $guarantordata->{'title'}; >+ if ( $op eq 'add' ) { >+ foreach (qw(streetnumber address streettype address2 >+ zipcode country city state phone phonepro mobile fax email emailpro branchcode >+ B_streetnumber B_streettype B_address B_address2 >+ B_city B_state B_zipcode B_country B_email B_phone)) { >+ $newdata{$_} = $guarantordata->{$_}; >+ } >+ } >+ } >+ } >+} >+ >+my @delete_guarantor = $input->multi_param('delete_guarantor'); >+foreach my $id ( @delete_guarantor ) { >+ my $r = Koha::Patron::Relationships->find( $id ); >+ $r->delete() if $r; >+} >+ > # Test uniqueness of surname, firstname and dateofbirth > if ( ( $op eq 'insert' ) and !$nodouble ) { > my $conditions; >@@ -784,11 +811,13 @@ $template->param( > check_member => $check_member,#to know if the borrower already exist(=>1) or not (=>0) > "op$op" => 1); > >+$guarantorid = $borrower_data->{'guarantorid'} || $guarantorid; > $template->param( > patron => $patron ? $patron : \%newdata, # Used by address include templates now > nodouble => $nodouble, > borrowernumber => $borrowernumber, #register number > relshiploop => \@relshipdata, >+ guarantorid => $guarantorid, > btitle=> $default_borrowertitle, > flagloop => \@flagdata, > category_type =>$category_type, >-- >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 23808
:
100839
|
100840
|
100841
|
100842
|
100844
|
100845
|
100889
|
100900
|
100925
|
100928
|
100929
|
100957
|
100958
|
101098
|
101099
|
101100
|
101101
|
105565