</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> › <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> › Offline Circulation File Upload</div>
+<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> › <!-- TMPL_IF NAME="transactions_loaded" --> <a href="/cgi-bin/koha/offline_circ/process_koc.pl">Offline Circulation File Upload</a> › Results<!-- TMPL_ELSE --> Offline Circulation File Upload<!-- /TMPL_IF --></div>
<div id="doc" class="yui-t7">
<!-- 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>
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
+ } );
}
$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.";
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";
} 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 {
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