require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(
- &get_label_options &get_label_items
+ &get_label_options &GetLabelItems
&build_circ_barcode &draw_boundaries
&drawbox &GetActiveLabelTemplate
&GetAllLabelTemplates &DeleteTemplate
#FIXME: Needs to be ported to receive $batch_type
sub get_batches {
+ my ($batch_type) = @_;
my $dbh = C4::Context->dbh;
- my $q = "select batch_id, count(*) as num from labels group by batch_id";
+ my $q = "select batch_id, count(*) as num from $batch_type group by batch_id";
my $sth = $dbh->prepare($q);
$sth->execute();
my @resultsloop;
$sth->finish;
}
-=item get_label_items;
+=item GetLabelItems;
- $options = get_label_items()
+ $options = GetLabelItems()
Returns an array of references-to-hash, whos keys are the field from the biblio, biblioitems, items and labels tables in the Koha database.
=cut
#'
-sub get_label_items {
+sub GetLabelItems {
my ($batch_id) = @_;
my $dbh = C4::Context->dbh;
my ( $batch_id ) = @_;
my @resultsloop;
- warn "Received batch id: $batch_id";
my $dbh = C4::Context->dbh;
my $query = "SELECT * FROM patroncards WHERE batch_id = ? ORDER BY borrowernumber";
my $sth = $dbh->prepare($query);
- warn "Executing query...\n";
$sth->execute($batch_id);
- warn "Parsing results...\n";
+ my $cardno = 1;
while ( my $data = $sth->fetchrow_hashref ) {
- warn "for borrowernumber $data->{'borrowernumber'}\n";
my $patron_data = GetMember( $data->{'borrowernumber'} );
$patron_data->{'branchname'} = GetBranchName( $patron_data->{'branchcode'} );
+ $patron_data->{'cardno'} = $cardno;
+ $patron_data->{'cardid'} = $data->{'cardid'};
+ $patron_data->{'batch_id'} = $batch_id;
push( @resultsloop, $patron_data );
+ $cardno++;
}
$sth->finish;
return @resultsloop;
build_circ_barcode( $x_pos, $y_pos, $barcode,
$barcodetype, \$item);
-$item is the result of a previous call to get_label_items();
+$item is the result of a previous call to GetLabelItems();
=cut
<!-- /TMPL_LOOP -->
<!-- /TMPL_IF -->
-<!-- TMPL_UNLESS NAME="batch_id" -->
<!-- TMPL_INCLUDE NAME="tools-labels-toolbar.inc" -->
+<!-- TMPL_UNLESS NAME="batch_id" -->
+<!-- TMPL_IF EXPR="(batch_type eq 'labels')" -->
<!-- TMPL_IF NAME="batches" -->
-<div class="yui-g">
-
-<div class="yui-u first">
-<h2>Label Batches</h2>
-<table>
-<tr>
- <th>ID</th>
- <th>#</th>
- <th>Edit</th>
- <th>Delete</th>
- <th>Print</th>
-</tr>
-<!-- TMPL_LOOP NAME="batches" -->
-<tr>
- <td><!-- TMPL_VAR NAME="batch_id" --></td>
- <td><!-- TMPL_VAR NAME="num" --> records</td>
- <td>
- <a href="/cgi-bin/koha/labels/label-manager.pl?batch_id=<!-- TMPL_VAR NAME="batch_id" -->">Edit</a>
- </td>
- <td>
- <a href="/cgi-bin/koha/labels/label-manager.pl?op=delete_batch&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">Delete</a>
- <!-- FIXME: should use POST to change server state, not GET -->
- </td>
- <td>
- <a style="float: left;" href="/cgi-bin/koha/labels/label-print-pdf.pl?batch_id=<!-- TMPL_VAR NAME="batch_id" -->">Generate PDF for Batch <!-- TMPL_VAR NAME="batch_id" --></a>
- </td></tr>
-<!-- /TMPL_LOOP -->
-</table>
-</div>
-<div class="yui-u">
-<!-- TMPL_INCLUDE NAME="label-status.inc" -->
-</div>
-</div>
+ <div class="yui-g">
+ <div class="yui-u first">
+ <h2>Label Batches</h2>
+ <table>
+ <tr>
+ <th>ID</th>
+ <th>#</th>
+ <th>Edit</th>
+ <th>Delete</th>
+ <th>Print</th>
+ </tr>
+ <!-- TMPL_LOOP NAME="batches" -->
+ <tr>
+ <td><!-- TMPL_VAR NAME="batch_id" --></td>
+ <td><!-- TMPL_VAR NAME="num" --> records</td>
+ <td><a href="/cgi-bin/koha/labels/label-manager.pl?batch_id=<!-- TMPL_VAR NAME="batch_id" -->&type=labels">Edit</a></td>
+ <td><a href="/cgi-bin/koha/labels/label-manager.pl?op=delete_batch&batch_id=<!-- TMPL_VAR NAME="batch_id" -->&type=labels">Delete</a><!-- FIXME: should use POST to change server state, not GET --></td>
+ <td><a style="float: left;" href="/cgi-bin/koha/labels/label-print-pdf.pl?batch_id=<!-- TMPL_VAR NAME="batch_id" -->&type=labels">Generate PDF for Batch <!-- TMPL_VAR NAME="batch_id" --></a></td>
+ </tr>
+ <!-- /TMPL_LOOP -->
+ </table>
+ </div>
+ <div class="yui-u">
+ <!-- TMPL_INCLUDE NAME="label-status.inc" -->
+ </div>
+ </div>
<!-- TMPL_ELSE -->
-<div class="yui-g">
-<div class="yui-u first">
-<h2>No Label Batches Currently Defined</h2>
-</div>
-<div class="yui-u">
-<!-- TMPL_INCLUDE NAME="label-status.inc" -->
-</div>
-</div>
+ <div class="yui-g">
+ <div class="yui-u first">
+ <h2>No Label Batches Currently Defined</h2>
+ </div>
+ <div class="yui-u">
+ <!-- TMPL_INCLUDE NAME="label-status.inc" -->
+ </div>
+ </div>
<!-- /TMPL_IF --><!-- /batches -->
-
+<!-- TMPL_ELSIF EXPR="(batch_type eq 'patroncards')" -->
+<!-- TMPL_IF NAME="batches" -->
+ <div class="yui-g">
+ <div class="yui-u first">
+ <h2>Patron Card Batches</h2>
+ <table>
+ <tr>
+ <th>ID</th>
+ <th>#</th>
+ <th>Edit</th>
+ <th>Delete</th>
+ <th>Print</th>
+ </tr>
+ <!-- TMPL_LOOP NAME="batches" -->
+ <tr>
+ <td><!-- TMPL_VAR NAME="batch_id" --></td>
+ <td><!-- TMPL_VAR NAME="num" --> records</td>
+ <td><a href="/cgi-bin/koha/labels/label-manager.pl?batch_id=<!-- TMPL_VAR NAME="batch_id" -->&type=patroncards">Edit</a></td>
+ <td><a href="/cgi-bin/koha/labels/label-manager.pl?op=delete_batch&batch_id=<!-- TMPL_VAR NAME="batch_id" -->&type=patroncards">Delete</a><!-- FIXME: should use POST to change server state, not GET --></td>
+ <td><a style="float: left;" href="/cgi-bin/koha/labels/label-print-pdf.pl?batch_id=<!-- TMPL_VAR NAME="batch_id" -->&type=patroncards">Generate PDF for Batch <!-- TMPL_VAR NAME="batch_id" --></a></td>
+ </tr>
+ <!-- /TMPL_LOOP -->
+ </table>
+ </div>
+ <div class="yui-u">
+ <!-- TMPL_INCLUDE NAME="label-status.inc" -->
+ </div>
+ </div>
<!-- TMPL_ELSE -->
-
-<div id="toolbar">
- <script type="text/javascript">
- //<![CDATA[
-
- // prepare DOM for YUI Toolbar
-
- $(document).ready(function() {
- $("#additemsc").empty();
- yuiToolbar();
- });
-
- // YUI Toolbar Functions
-
- function yuiToolbar() {
- new YAHOO.widget.Button({
- id: "additems",
- type: "button",
- label: "Add item(s) to batch",
- container: "additemsc",
- onclick: {fn:function(){Plugin(<!-- TMPL_VAR NAME="batch_id" -->)}}
- });
- new YAHOO.widget.Button("deletebatch");
- new YAHOO.widget.Button("dedup");
- new YAHOO.widget.Button("generate");
- }
-
- //]]>
- </script>
- <ul class="toolbar">
- <li id="additemsc"><a id="additems" href="#" onclick="Plugin(<!-- TMPL_VAR NAME="batch_id" -->); return false;">Add item(s) to batch</a></li>
- <li><a id="deletebatch" href="/cgi-bin/koha/labels/label-manager.pl?op=delete_batch&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">Delete current batch</a></li>
- <!-- FIXME: should use POST to change server state, not GET -->
- <li><a id="dedup" href="/cgi-bin/koha/labels/label-manager.pl?op=deduplicate&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">Remove duplicate barcodes</a></li>
- <li><a id="generate" href="/cgi-bin/koha/labels/label-print-pdf.pl?batch_id=<!-- TMPL_VAR NAME="batch_id" -->">Generate PDF for Batch</a></li>
-</ul></div>
-
-<h2>Items to be Printed for Batch <!-- TMPL_VAR NAME="batch_id" --> (<!-- TMPL_VAR NAME="batch_count" --> items)</h2>
-
-<table>
-<tr>
- <th>Label<br />Num.</th>
- <th>Summary</th>
- <th>Item<br />Type</th>
- <th>Barcode</th>
- <th>Delete</th>
-</tr>
-<!-- TMPL_LOOP NAME="resultsloop" -->
-<tr>
- <td><!-- TMPL_VAR NAME="labelno" --></td>
- <td><b><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"> <!-- TMPL_VAR NAME="title" --></a></b>:
- <!-- TMPL_VAR NAME="author" -->:
- <!-- TMPL_VAR NAME="isbn" --></td>
- <td><!-- TMPL_VAR NAME="itemtype" --></td>
- <td><!-- TMPL_VAR NAME="barcode" --></td>
- <td>
- <a href="/cgi-bin/koha/labels/label-manager.pl?op=delete&labelid=<!-- TMPL_VAR NAME="labelid" -->&batch_id=<!-- TMPL_VAR NAME="batch_id" -->">Delete</a>
- <!-- FIXME: should use POST to change server state, not GET -->
- </td>
-</tr>
-<!-- /TMPL_LOOP -->
-</table>
+ <div class="yui-g">
+ <div class="yui-u first">
+ <h2>No Patron Card Batches Currently Defined</h2>
+ </div>
+ <div class="yui-u">
+ <!-- TMPL_INCLUDE NAME="label-status.inc" -->
+ </div>
+ </div>
+<!-- /TMPL_IF --><!-- /batches -->
+<!-- /TMPL_IF --><!-- /batch_type -->
<!-- /TMPL_UNLESS --><!-- batch_id -->
-
+<!-- if no batch_id do this -->
+<!-- TMPL_IF EXPR="(batch_type eq 'labels')" -->
+ <h2>Items to be Printed for Batch <!-- TMPL_VAR NAME="batch_id" --> (<!-- TMPL_VAR NAME="batch_count" --> items)</h2>
+ <table>
+ <tr>
+ <th>Label<br />Num.</th>
+ <th>Summary</th>
+ <th>Item<br />Type</th>
+ <th>Barcode</th>
+ <th>Delete</th>
+ </tr>
+ <!-- TMPL_LOOP NAME="resultsloop" -->
+ <tr>
+ <td><!-- TMPL_VAR NAME="labelno" --></td>
+ <td><b><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"> <!-- TMPL_VAR NAME="title" --></a></b> : <!-- TMPL_VAR NAME="author" --> : <!-- TMPL_VAR NAME="isbn" --></td>
+ <td><!-- TMPL_VAR NAME="itemtype" --></td>
+ <td><!-- TMPL_VAR NAME="barcode" --></td>
+ <td><a href="/cgi-bin/koha/labels/label-manager.pl?op=delete&labelid=<!-- TMPL_VAR NAME="labelid" -->&batch_id=<!-- TMPL_VAR NAME="batch_id" -->&type=labels">Delete</a></td>
+ <!-- FIXME: should use POST to change server state, not GET -->
+ </tr>
+ <!-- /TMPL_LOOP -->
+ </table>
+<!-- TMPL_ELSIF EXPR="(batch_type eq 'patroncards')" -->
+ <h2>Patron Cards to be Printed for Batch <!-- TMPL_VAR NAME="batch_id" --> (<!-- TMPL_VAR NAME="batch_count" --> items)</h2>
+ <table>
+ <tr>
+ <th>Card<br />Num.</th>
+ <th>Patron Name</th>
+ <th>Borrower Number</th>
+ <th>Card Number</th>
+ <th>Delete</th>
+ </tr>
+ <!-- TMPL_LOOP NAME="resultsloop" -->
+ <tr>
+ <td><!-- TMPL_VAR NAME="cardno" --></td>
+ <td><b><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->"> <!-- TMPL_VAR NAME="title" -->. <!-- TMPL_VAR NAME="firstname" --> <!-- TMPL_VAR NAME="surname" --></a></b></td>
+ <td><!-- TMPL_VAR NAME="borrowernumber" --></td>
+ <td><!-- TMPL_VAR NAME="cardnumber" --></td>
+ <td><a href="/cgi-bin/koha/labels/label-manager.pl?op=delete&cardid=<!-- TMPL_VAR NAME="cardid" -->&batch_id=<!-- TMPL_VAR NAME="batch_id" -->&type=patroncards">Delete</a></td>
+ <!-- FIXME: should use POST to change server state, not GET -->
+ </tr>
+ <!-- /TMPL_LOOP -->
+ </table>
+<!-- TMPL_ELSIF EXPR="(batch_type eq 'patroncards')" -->
+<!-- /TMPL_IF --><!-- /batch_type -->
</div>
</div>
<div class="yui-b">
my $guidebox = $query->param('guidebox');
my $fontsize = $query->param('fontsize');
my @itemnumber = $query->param('itemnumber');
-
+my $batch_type = $query->param('type');
# little block for displaying active layout/template/batch in templates
# ----------
-my $batch_id = $query->param('batch_id');
-my $active_layout = get_active_layout();
-my $active_template = GetActiveLabelTemplate();
-my $active_layout_name = $active_layout->{'layoutname'};
-my $active_template_name = $active_template->{'tmpl_code'};
+my $batch_id = $query->param('batch_id');
+my $active_layout = get_active_layout();
+my $active_template = GetActiveLabelTemplate();
+my $active_layout_name = $active_layout->{'layoutname'};
+my $active_template_name = $active_template->{'tmpl_code'};
# ----------
#if (!$batch_id ) {
# $batch_id = get_highest_batch();
#}
-my $batch_type = "labels"; #FIXME: Hardcoded for testing...
+#my $batch_type = "labels"; #FIXME: Hardcoded for testing/development...
my @messages;
my ($itemnumber) = @itemnumber if (scalar(@itemnumber) == 1);
# first lets do a read of the labels table , to get the a list of the
# currently entered items to be prinited
-my @batches = get_batches();
-my @resultsloop = get_label_items($batch_id);
+my @batches = get_batches($batch_type);
+my @resultsloop = ($batch_type eq 'labels') ? GetLabelItems($batch_id) : GetPatronCardItems($batch_id);
#warn "$batches[0] (id $batch_id)";
#warn Dumper(@resultsloop);
$template->param(message_loop => \@complex);
}
$template->param(
- batch_id => $batch_id,
- batch_count => scalar @resultsloop,
- active_layout_name => $active_layout_name,
- active_template_name => $active_template_name,
-
- resultsloop => \@resultsloop,
- batches => \@batches,
- tmpl_desc => $active_template->{'tmpl_desc'},
+ batch_type => $batch_type,
+ batch_id => $batch_id,
+ batch_count => scalar @resultsloop,
+ active_layout_name => $active_layout_name,
+ active_template_name => $active_template_name,
+
+ resultsloop => \@resultsloop,
+ batches => \@batches,
+ tmpl_desc => $active_template->{'tmpl_desc'},
# startrow => $startrow,
# sheets => $sheets_needed,