Improvements to offline circ report (linking to title and patron records), and moving...
authorOwen Leonard <oleonard@myacpl.org>
Thu, 2 Oct 2008 20:19:55 +0000 (15:19 -0500)
committerGalen Charlton <galen.charlton@liblime.com>
Mon, 22 Dec 2008 23:24:34 +0000 (17:24 -0600)
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>

koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/process_koc.tmpl
offline_circ/process_koc.pl

index 4c1d2ea..d4d2d57 100644 (file)
@@ -31,14 +31,14 @@ function CheckForm(f) {
 </script>
 <style type="text/css">
        #fileuploadstatus,#jobstatus { margin:.4em; }
-       #fileuploadprogress,#jobprogress{ width:150px;height:10px;border:1px solid #666;background:url('/intranet-tmpl/prog/img/progress.png') -300px 0px no-repeat; }
+       #fileuploadprogress,#jobprogress{ width:200px;height:10px;border:1px solid #666;background:url('/intranet-tmpl/prog/img/progress.png') -300px 0px no-repeat; }
 </style>
 </head>
 <body>
 <!-- TMPL_INCLUDE NAME="header.inc" -->
 <!-- TMPL_INCLUDE NAME="circ-search.inc" -->
 
-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> &rsaquo; Offline Circulation File Upload</div>
+<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> &rsaquo; <!-- TMPL_IF NAME="transactions_loaded" --> <a href="/cgi-bin/koha/offline_circ/process_koc.pl">Offline Circulation File Upload</a> &rsaquo; Results<!-- TMPL_ELSE --> Offline Circulation File Upload<!-- /TMPL_IF --></div>
 
 <div id="doc" class="yui-t7">
    
@@ -46,9 +46,18 @@ function CheckForm(f) {
 
 <!-- TMPL_IF NAME="transactions_loaded" -->
   <h2>Koha Offline Circulation</h2>
-  <p>Your data was processed. Here are the results.</p>
+  <p>Your data was processed. Here are the results:</p>
   <!-- TMPL_LOOP NAME="messages" -->
-    <p><!-- TMPL_VAR NAME="message" --></p>
+    <!-- TMPL_IF NAME="message" -->
+       <div class="dialog alert">
+               <!-- TMPL_IF NAME="ERROR_file_version" --><p>Warning: This file is version <!-- TMPL_VAR NAME="upload_version" -->, but I only know how to import version <!-- TMPL_VAR NAME="current_version" -->. I'll try my best.</p><!-- /TMPL_IF -->
+       </div>
+       <!-- /TMPL_IF -->
+       <!-- TMPL_IF NAME="ERROR_no_borrower_from_item" --><p>Warning: Unable to determine patron from item barcode (<!-- TMPL_VAR NAME="badbarcode" -->). Cannot check in.</p><!-- /TMPL_IF -->
+       <!-- TMPL_IF NAME="issue" --><p>Checked out <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"><!-- TMPL_VAR NAME="title" --></a> (<!-- TMPL_VAR NAME="barcode" -->) to <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->"><!-- TMPL_VAR NAME="firstname" --> <!-- TMPL_VAR NAME="surname" --></a> (<!-- TMPL_VAR NAME="cardnumber" -->): <!-- TMPL_VAR NAME="datetime" --></p><!-- /TMPL_IF -->
+       <!-- TMPL_IF NAME="renew" --><p>Renewed <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"><!-- TMPL_VAR NAME="title" --></a>  (<!-- TMPL_VAR NAME="barcode" -->) for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->"><!-- TMPL_VAR NAME="firstname" --> <!-- TMPL_VAR NAME="surname" --></a> (<!-- TMPL_VAR NAME="cardnumber" -->): <!-- TMPL_VAR NAME="datetime" --></p><!-- /TMPL_IF -->
+       <!-- TMPL_IF NAME="return" --><p>Checked in <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"><!-- TMPL_VAR NAME="title" --></a> (<!-- TMPL_VAR NAME="barcode" -->) from <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->"><!-- TMPL_VAR NAME="firstname" --> <!-- TMPL_VAR NAME="surname" --></a> (<!-- TMPL_VAR NAME="cardnumber" -->): <!-- TMPL_VAR NAME="datetime" --></p><!-- /TMPL_IF -->
+       <!-- TMPL_IF NAME="payment" --><p>Accepted payment (<!-- TMPL_VAR NAME="amount" -->) from <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->"><!-- TMPL_VAR NAME="firstname" --> <!-- TMPL_VAR NAME="surname" --></a> (<!-- TMPL_VAR NAME="cardnumber" -->): <!-- TMPL_VAR NAME="datetime" --></p><!-- /TMPL_IF -->
   <!-- /TMPL_LOOP -->
 <!-- TMPL_ELSE -->
   <h2>Upload Offline Circulation Data</h2>
index 86a79cf..71effd5 100755 (executable)
@@ -115,7 +115,11 @@ if ($completedJobID) {
     my $header_line = shift @input_lines;
     my $file_info   = parse_header_line($header_line);
     if ($file_info->{'Version'} ne $FILE_VERSION) {
-        push( @output, { message => "Warning: This file is version '$file_info->{'Version'}', but I only know how to import version '$FILE_VERSION'. I'll try my best." } );
+      push( @output, { message => 1,
+      ERROR_file_version => 1,
+      upload_version => $file_info->{'Version'},
+      current_version => $FILE_VERSION
+      } );
     }
     
     
@@ -260,7 +264,16 @@ sub kocIssueItem {
         $circ->{'date'},               # issuedate
     ) unless ($DEBUG);
 
-      push( @output, { message => "Renewed $item->{ 'title' } ( $item->{ 'barcode' } ) to $borrower->{ 'firstname' } $borrower->{ 'surename' } ( $borrower->{'cardnumber'} ) : $circ->{ 'datetime' }\n" } );
+      push( @output, { renew => 1,
+    title => $item->{ 'title' },
+    biblionumber => $item->{'biblionumber'},
+    barcode => $item->{ 'barcode' },
+    firstname => $borrower->{ 'firstname' },
+    surname => $borrower->{ 'surname' },
+    borrowernumber => $borrower->{'borrowernumber'},
+    cardnumber => $borrower->{'cardnumber'},
+    datetime => $circ->{ 'datetime' }
+    } );
 
     } else {
 #warn "Item issued to a different member.";
@@ -272,7 +285,16 @@ sub kocIssueItem {
       if ( Date_to_Days( $i_y, $i_m, $i_d ) < Date_to_Days( $c_y, $c_m, $c_d ) ) { ## Current issue to a different persion is older than this issue, return and issue.
         my $date_due_object = C4::Dates->new($date_due ,'iso');
         C4::Circulation::AddIssue( $borrower, $circ->{'barcode'}, $date_due_object ) unless ( DEBUG );
-        push( @output, { message => "Issued $item->{ 'title' } ( $item->{ 'barcode' } ) to $borrower->{ 'firstname' } $borrower->{ 'surename' } ( $borrower->{'cardnumber'} ) : $circ->{ 'datetime' }\n" } );
+        push( @output, { issue => 1,
+    title => $item->{ 'title' },
+    biblionumber => $item->{'biblionumber'},
+    barcode => $item->{ 'barcode' },
+    firstname => $borrower->{ 'firstname' },
+    surname => $borrower->{ 'surname' },
+    borrowernumber => $borrower->{'borrowernumber'},
+    cardnumber => $borrower->{'cardnumber'},
+    datetime => $circ->{ 'datetime' }
+    } );
 
       } else { ## Current issue is *newer* than this issue, write a 'returned' issue, as the item is most likely in the hands of someone else now.
 #warn "Current issue to another member is newer. Doing nothing";
@@ -284,8 +306,17 @@ sub kocIssueItem {
   } else { ## Item is not checked out to anyone at the moment, go ahead and issue it
       my $date_due_object = C4::Dates->new($date_due ,'iso');
       C4::Circulation::AddIssue( $borrower, $circ->{'barcode'}, $date_due_object ) unless ( DEBUG );
-    push( @output, { message => "Issued $item->{ 'title' } ( $item->{ 'barcode' } ) to $borrower->{ 'firstname' } $borrower->{ 'surename' } ( $borrower->{'cardnumber'} ) : $circ->{ 'datetime' }\n" } );
-  }  
+    push( @output, { issue => 1,
+    title => $item->{ 'title' },
+    biblionumber => $item->{'biblionumber'},
+    barcode => $item->{ 'barcode' },
+    firstname => $borrower->{ 'firstname' },
+    surname => $borrower->{ 'surname' },
+    borrowernumber => $borrower->{'borrowernumber'},
+    cardnumber => $borrower->{'cardnumber'},
+    datetime =>$circ->{ 'datetime' }
+    } );
+        }  
 }
 
 sub kocReturnItem {
@@ -293,22 +324,43 @@ sub kocReturnItem {
   my $item = GetBiblioFromItemNumber( undef, $circ->{ 'barcode' } );
   #warn( Data::Dumper->Dump( [ $circ, $item ], [ qw( circ item ) ] ) );
   my $borrowernumber = _get_borrowernumber_from_barcode( $circ->{'barcode'} );
-  unless ( $borrowernumber ) {
-      push( @output, { message => "Warning: unable to determine borrower from item ($item->{'barcode'}). Cannot mark returned\n" } );
-  }
-  C4::Circulation::MarkIssueReturned( $borrowernumber,
+  if ( $borrowernumber ) {
+  my $borrower = GetMember( $borrowernumber, 'borrowernumber' );
+    C4::Circulation::MarkIssueReturned( $borrowernumber,
                                       $item->{'itemnumber'},
                                       undef,
                                       $circ->{'date'} );
   
-  push( @output, { message => "Returned $item->{ 'title' } ( $item->{ 'barcode' } ) From borrower number $borrowernumber : $circ->{ 'datetime' }\n" } ); 
+  push( @output, { return => 1,
+    title => $item->{ 'title' },
+    biblionumber => $item->{'biblionumber'},
+    barcode => $item->{ 'barcode' },
+    borrowernumber => $borrower->{'borrowernumber'},
+    firstname => $borrower->{'firstname'},
+    surname => $borrower->{'surname'},
+    cardnumber => $borrower->{'cardnumber'},
+    datetime => $circ->{ 'datetime' }
+    } ); 
+  } else {
+    push( @output, { ERROR_no_borrower_from_item => 1,
+    badbarcode => $circ->{'barcode'}
+    } );
+  
+  }
+
 }
 
 sub kocMakePayment {
   my ( $circ ) = @_;
   my $borrower = GetMember( $circ->{ 'cardnumber' }, 'cardnumber' );
   recordpayment( $borrower->{'borrowernumber'}, $circ->{'amount'} );
-  push( @output, { message => "accepted payment ($circ->{'amount'}) from cardnumber ($circ->{'cardnumber'}), borrower ($borrower->{'borrowernumber'})" } );
+  push( @output, { payment => 1,
+    amount => $circ->{'amount'},
+    firstname => $borrower->{'firstname'},
+    surname => $borrower->{'surname'},
+    cardnumber => $circ->{'cardnumber'},
+    borrower => $borrower->{'borrowernumber'}
+    } );
 }
 
 =head3 _get_borrowernumber_from_barcode