use Koha::Patron::HouseboundRoles;
use Koha::Token;
use Email::Valid;
-use Module::Load;
-if ( C4::Context->preference('NorwegianPatronDBEnable') && C4::Context->preference('NorwegianPatronDBEnable') == 1 ) {
- load Koha::NorwegianPatronDB, qw( NLGetSyncDataFromBorrowernumber );
-}
use Koha::SMS::Providers;
use vars qw($debug);
my $borrowernumber = $input->param('borrowernumber');
my $patron = Koha::Patrons->find($borrowernumber);
+if ( $borrowernumber and not $patron ) {
+ output_and_exit( $input, $cookie, $template, 'unknown_patron' );
+}
+
if ( C4::Context->preference('SMSSendDriver') eq 'Email' ) {
my @providers = Koha::SMS::Providers->search();
$template->param( sms_providers => \@providers );
$borrower_data = $patron->unblessed;
$borrower_data->{category_type} = $patron->category->category_type;
-} else {
- $patron = Koha::Patron->new;
}
+
my $categorycode = $input->param('categorycode') || $borrower_data->{'categorycode'};
my $category_type = $input->param('category_type') || '';
unless ($category_type or !($categorycode)){
# builds default userid
# userid input text may be empty or missing because of syspref BorrowerUnwantedField
if ( ( defined $newdata{'userid'} && $newdata{'userid'} eq '' ) || $check_BorrowerUnwantedField =~ /userid/ && !defined $data{'userid'} ) {
+ my $fake_patron = Koha::Patron->new;
+ $fake_patron->userid($patron->userid) if $patron; # editing
if ( ( defined $newdata{'firstname'} || $category_type eq 'I' ) && ( defined $newdata{'surname'} ) ) {
# Full page edit, firstname and surname input zones are present
- $patron->firstname($newdata{firstname});
- $patron->surname($newdata{surname});
- $patron->generate_userid;
- $newdata{'userid'} = $patron->userid;
+ $fake_patron->firstname($newdata{firstname});
+ $fake_patron->surname($newdata{surname});
+ $fake_patron->generate_userid;
+ $newdata{'userid'} = $fake_patron->userid;
}
elsif ( ( defined $data{'firstname'} || $category_type eq 'I' ) && ( defined $data{'surname'} ) ) {
# Partial page edit (access through "Details"/"Library details" tab), firstname and surname input zones are not used
# Still, if the userid field is erased, we can create a new userid with available firstname and surname
# FIXME clean thiscode newdata vs data is very confusing
- $patron->firstname($data{firstname});
- $patron->surname($data{surname});
- $patron->generate_userid;
- $newdata{'userid'} = $patron->userid;
+ $fake_patron->firstname($data{firstname});
+ $fake_patron->surname($data{surname});
+ $fake_patron->generate_userid;
+ $newdata{'userid'} = $fake_patron->userid;
}
else {
$newdata{'userid'} = $data{'userid'};
if (C4::Context->preference('EnhancedMessagingPreferences') and $input->param('setting_messaging_prefs')) {
C4::Form::MessagingPreferences::handle_form_action($input, { borrowernumber => $borrowernumber }, $template, 1, $newdata{'categorycode'});
}
- # Try to do the live sync with the Norwegian national patron database, if it is enabled
- if ( exists $data{'borrowernumber'} && C4::Context->preference('NorwegianPatronDBEnable') && C4::Context->preference('NorwegianPatronDBEnable') == 1 ) {
- NLSync({ 'borrowernumber' => $borrowernumber });
- }
# Create HouseboundRole if necessary.
# Borrower did not exist, so HouseboundRole *cannot* yet exist.
if ( $step == 4 ) {
$template->param( categorycode => $borrower_data->{'categorycode'} );
}
- # Add sync data to the user data
- if ( C4::Context->preference('NorwegianPatronDBEnable') && C4::Context->preference('NorwegianPatronDBEnable') == 1 ) {
- my $sync = NLGetSyncDataFromBorrowernumber( $borrowernumber );
- if ( $sync ) {
- $template->param(
- sync => $sync->sync,
- );
- }
- }
}
if ( $op eq "duplicate" ) {
$template->param( updtype => 'I' );