[Koha-patches] [PATCH] Analytical record: improved code to create analytical record from an item
savitra.sirohi at osslabs.biz
savitra.sirohi at osslabs.biz
Wed Nov 10 19:22:42 CET 2010
From: Amit Gupta <amit.gupta at osslabs.biz>
---
cataloguing/addbiblio.pl | 57 ++++++-------------
.../prog/en/modules/cataloguing/addbiblio.tmpl | 2 +-
2 files changed, 19 insertions(+), 40 deletions(-)
diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl
index 4e56fad..28aad1f 100755
--- a/cataloguing/addbiblio.pl
+++ b/cataloguing/addbiblio.pl
@@ -346,8 +346,6 @@ sub create_input {
);
# always expand all subfields of a mandatory field
$subfield_data{visibility} = "" if $tagslib->{$tag}->{mandatory};
- # expand all subfields of 773 if there is a host item provided in the input
- $subfield_data{visibility} ="" if ($tag eq 773 and $cgi->param('hostitemnumber'));
# it's an authorised field
if ( $tagslib->{$tag}->{$subfield}->{authorised_value} ) {
$subfield_data{marc_value} =
@@ -679,14 +677,6 @@ sub build_tabs ($$$$$) {
# if breeding is empty
}
else {
- my $hostbiblionumber;
- my $hostitemnumber;
- my $hostrecord;
- if ($tag eq 773){
- $hostbiblionumber = $input->param('hostbiblionumber');
- $hostitemnumber = $input->param('hostitemnumber');
- $hostrecord = &GetMarcBiblio($hostbiblionumber);
- }
my @subfields_data;
foreach my $subfield ( sort( keys %{ $tagslib->{$tag} } ) ) {
next if ( length $subfield != 1 );
@@ -703,35 +693,6 @@ sub build_tabs ($$$$$) {
# always include in the form regardless of the hidden setting - bug 2206
next
if ( $tagslib->{$tag}->{$subfield}->{tab} ne $tabloop );
- if ( $tag eq 773 and $hostbiblionumber){
- if ($subfield eq "w"){
- push(
- @subfields_data,
- &create_input(
- $tag, $subfield,$hostbiblionumber, $index_tag, $tabloop, $record,
- $authorised_values_sth,$input
- ));
- next;
- }
- if ($subfield eq "a"){
- push(
- @subfields_data,
- &create_input(
- $tag, $subfield,$hostrecord->subfield('245',"a"), $index_tag, $tabloop, $record,
- $authorised_values_sth,$input
- ));
- next;
- }
- if ($subfield eq "o"){
- push(
- @subfields_data,
- &create_input(
- $tag, $subfield,$hostitemnumber, $index_tag, $tabloop, $record,
- $authorised_values_sth,$input
- ));
- next;
- }
- }
push(
@subfields_data,
&create_input(
@@ -870,6 +831,8 @@ my $mode = $input->param('mode');
my $frameworkcode = $input->param('frameworkcode');
my $redirect = $input->param('redirect');
my $dbh = C4::Context->dbh;
+my $hostbiblionumber = $input->param('hostbiblionumber');
+my $hostitemnumber = $input->param('hostitemnumber');
my $userflags = ($frameworkcode eq 'FA') ? "fast_cataloging" : "edit_catalogue";
@@ -927,6 +890,20 @@ if (($biblionumber) && !($breedingid)){
if ($breedingid) {
( $record, $encoding ) = MARCfindbreeding( $breedingid ) ;
}
+#populate 773 if hostbiblionumber is available
+if ($hostbiblionumber){
+ my $hostrecord = &GetMarcBiblio($hostbiblionumber);
+ $record=MARC::Record->new();
+ $record->leader('');
+ my $field = MARC::Field->new(
+ 773, '', '',
+ 'w' => $hostbiblionumber,
+ 'o' => $hostitemnumber,
+ 'a' => $hostrecord->subfield('245','a'),
+ 'x' => $hostrecord->subfield('245','x')
+ );
+ $record->append_fields($field);
+}
$is_a_modif = 0;
@@ -1053,6 +1030,8 @@ elsif ( $op eq "delete" ) {
biblioitemnumtagfield => $biblioitemnumtagfield,
biblioitemnumtagsubfield => $biblioitemnumtagsubfield,
biblioitemnumber => $biblioitemnumber,
+ hostbiblionumber => $hostbiblionumber,
+ hostitemnumber => $hostitemnumber
);
}
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tmpl
index 3e510c5..86905ad 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tmpl
@@ -195,7 +195,7 @@ function GetZ3950Terms(){
function Changefwk(FwkList) {
var fwk = FwkList.options[FwkList.selectedIndex].value;
- window.location = "/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=<!--TMPL_VAR Name="biblionumber"-->&breedingid=<!-- TMPL_VAR name="breedingid" -->&frameworkcode="+fwk;
+ window.location = "/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=<!--TMPL_VAR Name="biblionumber"-->&breedingid=<!-- TMPL_VAR name="breedingid" -->&hostbiblionumber=<!-- TMPL_VAR Name="hostbiblionumber" -->&hostitemnumber=<!--TMPL_VAR Name="hostitemnumber" -->&frameworkcode="+fwk;
}
--
1.5.4.5
More information about the Koha-patches
mailing list