[Koha-patches] [PATCH] Analytical records: ability to edit items belonging to host records, also ability ito delink from them

savitra.sirohi at osslabs.biz savitra.sirohi at osslabs.biz
Tue Nov 16 02:10:59 CET 2010


From: Amit Gupta <amit.gupta at osslabs.biz>

---
 cataloguing/additem.pl                             |   32 ++++++++++++++++++++
 .../prog/en/modules/cataloguing/additem.tmpl       |    2 +-
 2 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl
index 9676fd6..db82d54 100755
--- a/cataloguing/additem.pl
+++ b/cataloguing/additem.pl
@@ -96,6 +96,7 @@ my $error        = $input->param('error');
 my $biblionumber = $input->param('biblionumber');
 my $itemnumber   = $input->param('itemnumber');
 my $op           = $input->param('op');
+my $hostitemnumber = $input->param('hostitemnumber');
 
 my $frameworkcode = &GetFrameworkCode($biblionumber);
 
@@ -300,6 +301,14 @@ if ($op eq "additem") {
         $itemnumber="";
     }
     $nextop="additem";
+} elsif ($op eq "delinkitem"){
+	foreach my $field ($record->field('773')){
+		if ($field->subfield('o') eq $hostitemnumber){
+			$record->delete_field($field);
+			last;
+		}
+	}
+	my $modbibresult = ModBiblio($record, $biblionumber,'');
 }
 
 #
@@ -311,6 +320,20 @@ if ($op eq "additem") {
 my $temp = GetMarcBiblio( $biblionumber );
 my @fields = $temp->fields();
 #my @fields = $record->fields();
+
+my @hostitemnumbers;
+foreach my $hostfield ($temp->field('773')){
+	if ($hostfield->subfield('w')){
+		my $hostrecord = GetMarcBiblio($hostfield->subfield('w'));
+		foreach my $hostitem ($hostrecord->field('952')){
+			if ($hostitem->subfield('9') eq $hostfield->subfield('o')){
+				push (@fields, $hostitem);
+				push (@hostitemnumbers, $hostfield->subfield('o'));
+			}
+		}
+	}
+}
+
 my %witness; #---- stores the list of subfields used at least once, with the "meaning" of the code
 my @big_array;
 #---- finds where items.itemnumber is stored
@@ -342,6 +365,13 @@ foreach my $field (@fields) {
             }
         }
         $this_row{itemnumber} = $subf[$i][1] if ($field->tag() eq $itemtagfield && $subf[$i][0] eq $itemtagsubfield);
+	foreach my $hostitemnumber (@hostitemnumbers){
+		if ($this_row{itemnumber} eq $hostitemnumber){
+			$this_row{hostitemflag} = 1;
+			$this_row{hostbiblionumber}= GetBiblionumberFromItemnumber($hostitemnumber);
+			last;
+		}
+	}
     }
     if (%this_row) {
         push(@big_array, \%this_row);
@@ -362,6 +392,8 @@ for my $row ( @big_array ) {
     $row_data{itemnumber} = $row->{itemnumber};
     #reporting this_row values
     $row_data{'nomod'} = $row->{'nomod'};
+    $row_data{'hostitemflag'} = $row->{'hostitemflag'};
+    $row_data{'hostbiblionumber'} = $row->{'hostbiblionumber'};
     push(@item_value_loop,\%row_data);
 }
 foreach my $subfield_code (sort keys(%witness)) {
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl
index d0be875..2145ddb 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl
@@ -206,7 +206,7 @@ function set_to_today(id, force) {
             </tr>
                 <!-- TMPL_LOOP NAME="item_loop" -->
                 <tr id="row<!-- TMPL_VAR NAME="itemnumber" -->">
-                    <!-- TMPL_IF Name="nomod"--> <td colspan="2">&nbsp;</td><!--TMPL_ELSE--><td><a href="additem.pl?op=edititem&amp;biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#edititem">Edit</a></td>
+                    <!-- TMPL_IF Name="nomod"--> <td colspan="2">&nbsp;</td><!--TMPL_ELSIF Name ="hostitemflag"--><td><a href="additem.pl?op=edititem&biblionumber=<!-- TMPL_VAR NAME="hostbiblionumber" -->&itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#edititem">Edit in Host</a></td><td><a href="additem.pl?op=delinkitem&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&hostitemnumber=<!-- TMPL_VAR NAME="itemnumber" -->">Delink</a></td><!--TMPL_ELSE--><td><a href="additem.pl?op=edititem&amp;biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#edititem">Edit</a></td>
                     <td><a class="delete" href="/cgi-bin/koha/cataloguing/additem.pl?op=delitem&amp;biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->" onclick="confirm_deletion(<!-- TMPL_VAR NAME="biblionumber" -->,<!-- TMPL_VAR NAME="itemnumber" -->); return false;">Delete</a></td><!--/TMPL_IF-->
                 <!-- TMPL_LOOP NAME="item_value" -->
                     <td><!-- TMPL_VAR ESCAPE=HTML NAME="field" --></td>
-- 
1.5.4.5



More information about the Koha-patches mailing list