Bug 12971 - Regression: Patron print summary doesn't show checkouts
[srvgit] / members / memberentry.pl
index ff92447..7a0329f 100755 (executable)
@@ -43,6 +43,10 @@ use C4::Branch; # GetBranches
 use C4::Form::MessagingPreferences;
 use Koha::Borrower::Debarments;
 use Koha::DateUtils;
+use Module::Load;
+if ( C4::Context->preference('NorwegianPatronDBEnable') && C4::Context->preference('NorwegianPatronDBEnable') == 1 ) {
+    load Koha::NorwegianPatronDB, qw( NLGetSyncDataFromBorrowernumber );
+}
 
 use vars qw($debug);
 
@@ -57,7 +61,7 @@ my %data;
 my $dbh = C4::Context->dbh;
 
 my ($template, $loggedinuser, $cookie)
-    = get_template_and_user({template_name => "members/memberentrygen.tmpl",
+    = get_template_and_user({template_name => "members/memberentrygen.tt",
            query => $input,
            type => "intranet",
            authnotrequired => 0,
@@ -338,8 +342,13 @@ if ($op eq 'save' || $op eq 'insert'){
     $extended_patron_attributes = parse_extended_patron_attributes($input);
     foreach my $attr (@$extended_patron_attributes) {
         unless (C4::Members::Attributes::CheckUniqueness($attr->{code}, $attr->{value}, $borrowernumber)) {
+            my $attr_info = C4::Members::AttributeTypes->fetch($attr->{code});
             push @errors, "ERROR_extended_unique_id_failed";
-            $template->param(ERROR_extended_unique_id_failed_value => "$attr->{code}/$attr->{value}");
+            $template->param(
+                ERROR_extended_unique_id_failed_code => $attr->{code},
+                ERROR_extended_unique_id_failed_value => $attr->{value},
+                ERROR_extended_unique_id_failed_description => $attr_info->description()
+            );
         }
     }
   }
@@ -411,12 +420,16 @@ 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 });
+        }
        } elsif ($op eq 'save'){ 
                if ($NoUpdateLogin) {
                        delete $newdata{'password'};
                        delete $newdata{'userid'};
                }
-               &ModMember(%newdata) unless scalar(keys %newdata) <= 1; # bug 4508 - avoid crash if we're not
+        &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
                                                                 # patron attributes or messaging preferences sections
@@ -465,6 +478,15 @@ 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' );
@@ -604,7 +626,7 @@ if (C4::Context->userenv && C4::Context->userenv->{'branch'}) {
     $userbranch = C4::Context->userenv->{'branch'};
 }
 
-if (defined ($data{'branchcode'}) and ( $op eq 'modify' || ( $op eq 'add' && $category_type eq 'C' ) )) {
+if (defined ($data{'branchcode'}) and ( $op eq 'modify' || $op eq 'duplicate' || ( $op eq 'add' && $category_type eq 'C' ) )) {
     $userbranch = $data{'branchcode'};
 }
 
@@ -621,18 +643,8 @@ if($no_categories){
 $template->param(no_add => $no_add);
 # --------------------------------------------------------------------------------------------------------
 
-my $CGIsort = buildCGIsort("Bsort1","sort1",$data{'sort1'});
-if ($CGIsort) {
-    $template->param(CGIsort1 => $CGIsort);
-}
-$template->param( sort1 => $data{'sort1'});            # shouldn't this be in an "else" statement like the 2nd one?
-
-$CGIsort = buildCGIsort("Bsort2","sort2",$data{'sort2'});
-if ($CGIsort) {
-    $template->param(CGIsort2 => $CGIsort);
-} else {
-    $template->param( sort2 => $data{'sort2'});
-}
+$template->param( sort1 => $data{'sort1'});
+$template->param( sort2 => $data{'sort2'});
 
 if ($nok) {
     foreach my $error (@errors) {