X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=members%2Fmemberentry.pl;h=14a11361a204cae670a5cf9ac7874a490ea35f45;hb=461a6f53b85becbefb18c0cb9356384a479aa9f1;hp=3618c4ffbe756fbebbf282fb78e383c5630f2d9a;hpb=9d4c7350612dfb941a84a0e62ffe3efe19ccc4f8;p=koha.git diff --git a/members/memberentry.pl b/members/memberentry.pl index 3618c4ffbe..14a11361a2 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -48,10 +48,6 @@ use Koha::Patron::HouseboundRole; 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); @@ -78,6 +74,10 @@ my ($template, $loggedinuser, $cookie) 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 ); @@ -156,9 +156,8 @@ if ( $op eq 'modify' or $op eq 'save' or $op eq 'duplicate' ) { $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)){ @@ -281,21 +280,23 @@ $newdata{'lang'} = $input->param('lang') if defined($input->param('lang')) # 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'}; @@ -478,10 +479,6 @@ if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){ 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. @@ -594,15 +591,6 @@ if ($op eq "modify") { 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' );