[Koha-patches] [PATCH] Add interface to modify formatted call number for labels.
Ryan Higgins
rch at liblime.com
Fri Apr 4 10:17:46 CEST 2008
diff --git a/C4/Labels.pm b/C4/Labels.pm
index a008199..7858ff7 100644
--- a/C4/Labels.pm
+++ b/C4/Labels.pm
@@ -47,6 +47,7 @@ BEGIN {
&get_batches &delete_batch
&add_batch &printText
&GetItemFields
+ &SetLabelCN
&get_text_fields
get_layout &save_layout &add_layout
&set_active_layout &by_order
@@ -68,12 +69,9 @@ C4::Labels - Functions for printing spine labels and barcodes in Koha
=head1 FUNCTIONS
-=over 2
-
=item get_label_options;
- $options = get_label_options()
-
+$options = get_label_options()
Return a pointer on a hash list containing info from labels_conf table in Koha DB.
=cut
@@ -293,14 +291,16 @@ sub by_order {
$$a{order} <=> $$b{order};
}
-=head2 sub add_batch
-=over 4
- add_batch($batch_type,\@batch_list);
- if $batch_list is supplied,
+=item add_batch
+
+ add_batch($batch_type,\@batch_list);
+
+ if $batch_list is supplied,
create a new batch with those items.
- else, return the next available batch_id.
-=return
+ else, return the next available batch_id.
+
=cut
+
sub add_batch {
my ( $batch_type,$batch_list ) = @_;
my $new_batch;
@@ -828,7 +828,11 @@ sub GetLabelItems {
$data1->{'labelno'} = $i1;
$data1->{'labelid'} = $data->{'labelid'};
$data1->{'batch_id'} = $batch_id;
- $data1->{'summary'} =
+ if($data->{'callnumber'}) {
+ $data1->{'cn_overridden'} = $data1->{'itemcallnumber'} ;
+ $data1->{'itemcallnumber'} = $data->{'callnumber'} ;
+ }
+ $data1->{'summary'} =
"$data1->{'barcode'}, $data1->{'title'}, $data1->{'isbn'}";
push( @resultsloop, $data1 );
@@ -841,6 +845,21 @@ sub GetLabelItems {
}
+=item SetLabelCN
+
+SetLabelCN($labelid,$callnum)
+ Update a print-friendly-formatted callnumber string
+ that will override itemcallnumber if it exists in the labels table.
+
+=cut
+
+sub SetLabelCN {
+ my ($labelid,$itemcn) = @_;
+ my $dbh = C4::Context->dbh();
+ my $sth = $dbh->prepare("UPDATE `labels` SET callnumber = ? WHERE labelid=?");
+ $sth->execute($itemcn,$labelid);
+}
+
sub GetItemFields {
my @fields = qw (
barcode title subtitle
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-manager.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-manager.tmpl
index 1ac48c3..b3e0e11 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-manager.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-manager.tmpl
@@ -28,6 +28,7 @@
<th>Label Num.</th>
<th>Summary</th>
<th>Item Type</th>
+ <th>Call Number</th>
<th>Barcode</th>
<th>Delete</th>
</tr>
@@ -36,6 +37,21 @@
<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><a href="#" onclick="document.getElementById('cn_update_<!-- TMPL_VAR NAME="labelid" -->').className='content_visible';"><!-- TMPL_VAR NAME="itemcallnumber" --></a> <!-- TMPL_IF NAME="cn_overridden" -->*<!-- /TMPL_IF -->
+ <div class="content_hidden" id="cn_update_<!-- TMPL_VAR NAME="labelid" -->">
+ <form name="cn_form<!-- TMPL_VAR NAME="labelid" -->" action="/cgi-bin/koha/labels/label-manager.pl" method="post">
+ <input name="labelid" type="hidden" value="<!-- TMPL_VAR NAME="labelid" -->" />
+ <label for="tx_itemcallnumber">Formatted Call Number</label>
+ <input name="tx_itemcallnumber" type="text" />
+ <input name="op" type="hidden" value="update_cn" />
+ <input name="batch_id" type="hidden" value="<!-- TMPL_VAR NAME="batch_id" -->" />
+ <input name="type" type="hidden" value="labels" />
+ <input type="submit" value="Update" />
+ </form>
+ <br />
+ <!-- TMPL_IF NAME="cn_overridden" -->original: <!-- TMPL_VAR NAME="cn_overridden" --><!-- /TMPL_IF -->
+ </div>
+ </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 -->
diff --git a/labels/label-manager.pl b/labels/label-manager.pl
index f320812..4310efc 100755
--- a/labels/label-manager.pl
+++ b/labels/label-manager.pl
@@ -40,6 +40,7 @@ my $startlabel = $query->param('startlabel');
my $printingtype = $query->param('printingtype');
my $guidebox = $query->param('guidebox');
my $fontsize = $query->param('fontsize');
+my $labelid = $query->param('labelid');
my @itemnumber;
($query->param('type') eq 'labels') ? (@itemnumber = $query->param('itemnumber')) : (@itemnumber = $query->param('borrowernumber'));
my $batch_type = $query->param('type');
@@ -153,6 +154,8 @@ elsif ( $op eq 'deduplicate' ) {
my ($return, $dberror) = deduplicate_batch($batch_id, $batch_type);
my $msg = (($return) ? "Removed $return" : "Error removing") . " duplicate items from Batch $batch_id." . (($dberror) ? " Database returned: $dberror" : "");
push @messages, $msg;
+} elsif ( $op eq 'update_cn' ) {
+ SetLabelCN($labelid,$itemcallnumber);
}
# first lets do a read of the labels table , to get the a list of the
--
1.5.2.1
More information about the Koha-patches
mailing list