[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"> </td><!--TMPL_ELSE--><td><a href="additem.pl?op=edititem&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#edititem">Edit</a></td>
+ <!-- TMPL_IF Name="nomod"--> <td colspan="2"> </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&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#edititem">Edit</a></td>
<td><a class="delete" href="/cgi-bin/koha/cataloguing/additem.pl?op=delitem&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&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