Bug 5670: [QA Followup] HouseboundRole CRUD from UI.

* koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt: Add
  HouseboundRole form.
* members/memberentry.pl: Handle HouseboundRole CRUD.

Signed-off-by: Claire Gravely <claire_gravely@hotmail.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Alex Sassmannshausen 2016-10-12 17:26:02 +02:00 committed by Kyle M Hall
parent 88f4b828f5
commit 8ef116a922
2 changed files with 104 additions and 5 deletions

View File

@ -917,6 +917,55 @@ $(document).ready(function() {
</ol>
</fieldset>
[% END # hide fieldset %][% END %]
[% IF ( HouseboundModule ) %]
<fieldset class="rows" id="memberentry_housebound_roles">
<legend id="housebound_roles">Housebound roles</legend>
<ol class="radio">
<li>
<label class="radio" for="housebound_chooser">
Chooser:
</label>
[% IF ( housebound_role.housebound_chooser == 1 ) %]
<label for="yes_housebound_chooser">Yes </label>
<input type="radio" id="yes_housebound_chooser"
name="housebound_chooser" value="1"
checked="checked" />
<label for="no_housebound_chooser">No </label>
<input type="radio" id="no_housebound_chooser"
name="housebound_chooser" value="0" />
[% ELSE %]
<label for="yes_housebound_chooser">Yes </label>
<input type="radio" id="yes_housebound_chooser"
name="housebound_chooser" value="1" />
<label for="no_housebound_chooser">No </label>
<input type="radio" id="no_housebound_chooser"
name="housebound_chooser" value="0"
checked="checked" />
[% END %]
</li>
<li>
<label class="radio" for="housebound_deliverer">Deliverer:</label>
[% IF ( housebound_role.housebound_deliverer == 1 ) %]
<label for="yes_housebound_deliverer">Yes </label>
<input type="radio" id="yes_housebound_deliverer"
name="housebound_deliverer" value="1"
checked="checked" />
<label for="no_housebound_deliverer">No </label>
<input type="radio" id="no_housebound_deliverer"
name="housebound_deliverer" value="0" />
[% ELSE %]
<label for="yes_housebound_deliverer">Yes </label>
<input type="radio" id="yes_housebound_deliverer"
name="housebound_deliverer" value="1" />
<label for="no_housebound_deliverer">No </label>
<input type="radio" id="no_housebound_deliverer"
name="housebound_deliverer" value="0"
checked="checked" />
[% END %]
</li>
</ol>
</fieldset>
[% END # hide fieldset %]
<!--this zones are not necessary in modif mode -->
[% UNLESS ( opadd || opduplicate ) %]
<fieldset class="rows" id="memberentry_account_flags">

View File

@ -44,6 +44,8 @@ use Koha::Cities;
use Koha::DateUtils;
use Koha::Libraries;
use Koha::Patron::Categories;
use Koha::Patron::HouseboundRole;
use Koha::Patron::HouseboundRoles;
use Koha::Token;
use Email::Valid;
use Module::Load;
@ -436,11 +438,53 @@ if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){
if ( exists $data{'borrowernumber'} && C4::Context->preference('NorwegianPatronDBEnable') && C4::Context->preference('NorwegianPatronDBEnable') == 1 ) {
NLSync({ 'borrowernumber' => $borrowernumber });
}
} elsif ($op eq 'save'){
if ($NoUpdateLogin) {
delete $newdata{'password'};
delete $newdata{'userid'};
}
# Create HouseboundRole if necessary.
# Borrower did not exist, so HouseboundRole *cannot* yet exist.
my ( $hsbnd_chooser, $hsbnd_deliverer ) = ( 0, 0 );
$hsbnd_chooser = 1 if $input->param('housebound_chooser');
$hsbnd_deliverer = 1 if $input->param('housebound_deliverer');
# Only create a HouseboundRole if patron has a role.
if ( $hsbnd_chooser || $hsbnd_deliverer ) {
Koha::Patron::HouseboundRole->new({
borrowernumber_id => $borrowernumber,
housebound_chooser => $hsbnd_chooser,
housebound_deliverer => $hsbnd_deliverer,
})->store;
}
} elsif ($op eq 'save') {
# Update or create our HouseboundRole if necessary.
my $housebound_role = Koha::Patron::HouseboundRoles->find($borrowernumber);
my ( $hsbnd_chooser, $hsbnd_deliverer ) = ( 0, 0 );
$hsbnd_chooser = 1 if $input->param('housebound_chooser');
$hsbnd_deliverer = 1 if $input->param('housebound_deliverer');
if ( $housebound_role ) {
if ( $hsbnd_chooser || $hsbnd_deliverer ) {
# Update our HouseboundRole.
$housebound_role
->housebound_chooser($hsbnd_chooser)
->housebound_deliverer($hsbnd_deliverer)
->store;
} else {
$housebound_role->delete; # No longer needed.
}
} else {
# Only create a HouseboundRole if patron has a role.
if ( $hsbnd_chooser || $hsbnd_deliverer ) {
$housebound_role = Koha::Patron::HouseboundRole->new({
borrowernumber_id => $borrowernumber,
housebound_chooser => $hsbnd_chooser,
housebound_deliverer => $hsbnd_deliverer,
})->store;
}
}
if ($NoUpdateLogin) {
delete $newdata{'password'};
delete $newdata{'userid'};
}
&ModMember(%newdata) unless scalar(keys %newdata) <= 1; # bug 4508 - avoid crash if we're not
# updating any columns in the borrowers table,
# which can happen if we're only editing the
@ -704,6 +748,12 @@ $template->param(
),
);
# HouseboundModule data
$template->param(
HouseboundModule => C4::Context->preference("HouseboundModule"),
housebound_role => Koha::Patron::HouseboundRoles->find($borrowernumber),
);
if(defined($data{'flags'})){
$template->param(flags=>$data{'flags'});
}