View | Details | Raw Unified | Return to bug 5473
Collapse All | Expand All

(-)a/C4/Biblio.pm (+50 lines)
Lines 99-104 BEGIN { Link Here
99
      &ModBiblio
99
      &ModBiblio
100
      &ModBiblioframework
100
      &ModBiblioframework
101
      &ModZebra
101
      &ModZebra
102
      &AddMarcFields
102
    );
103
    );
103
104
104
    # To delete something
105
    # To delete something
Lines 3681-3686 sub get_biblio_authorised_values { Link Here
3681
    return $authorised_values;
3682
    return $authorised_values;
3682
}
3683
}
3683
3684
3685
=head2 AddMarcFields
3686
3687
Adds fields/subfields to existing marcxml
3688
3689
parameters:
3690
    biblionumber
3691
    fields
3692
3693
returns: nothing
3694
3695
  $fields: { tag1 => val1, tag2 => val2, ... }
3696
  $valX  : $val for tags < 10,
3697
           { subfld1 => subval1, subfld2 => subval2, ... } for the rest
3698
3699
Notes: no indicator support
3700
3701
=cut
3702
3703
sub AddMarcFields {
3704
    my ( $biblionumber, $fields ) = @_;
3705
3706
    my $rec = GetMarcBiblio($biblionumber) or die "Invalid biblionumber $biblionumber";
3707
3708
    while ( my ($tag, $val) = each %$fields ) {
3709
        if ( my ($field) = $rec->field($tag) ) {
3710
            if (ref $val) {
3711
                $field->update(%$val);
3712
            } else {
3713
                $field->update($val);
3714
            }
3715
        }
3716
        else {
3717
            my $newfield;
3718
            if (ref $val) {
3719
                $newfield = MARC::Field->new( $tag, '', '', %$val );
3720
            } else {
3721
                $newfield = MARC::Field->new( $tag, $val );
3722
            }
3723
            $rec->insert_fields_ordered($newfield);
3724
        }
3725
    }
3726
3727
    my $dbh    = C4::Context->dbh;
3728
    my $encoding = C4::Context->preference("marcflavour");
3729
    $dbh->do("UPDATE biblioitems SET marcxml=? WHERE biblionumber=?", undef,
3730
        $rec->as_xml_record($encoding),
3731
        $biblionumber );
3732
}
3733
3684
1;
3734
1;
3685
3735
3686
__END__
3736
__END__
(-)a/acqui/finishreceive.pl (-1 / +9 lines)
Lines 114-117 if ($quantityrec > $origquantityrec ) { Link Here
114
    	$datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived);
114
    	$datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived);
115
	}
115
	}
116
}
116
}
117
118
AddMarcFields( $biblionumber, { 952 => { e => $supplierid,
119
                                         d => $datereceived,
120
                                         g => $unitprice,
121
                                         v => $replacement,
122
                                         w => $datereceived, # XXX
123
                                     },
124
                                 } );
125
117
    print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoice=$invoiceno&supplierid=$supplierid&freight=$freight&gst=$gst&datereceived=$datereceived$error_url_str");
126
    print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoice=$invoiceno&supplierid=$supplierid&freight=$freight&gst=$gst&datereceived=$datereceived$error_url_str");
118
- 

Return to bug 5473