[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&amp;labelid=<!-- TMPL_VAR NAME="labelid" -->&amp;batch_id=<!-- TMPL_VAR NAME="batch_id" -->&amp;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