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

(-)a/svc/bib (-7 / +7 lines)
Lines 65-71 exit 0; Link Here
65
sub fetch_bib {
65
sub fetch_bib {
66
    my $query = shift;
66
    my $query = shift;
67
    my $biblionumber = shift;
67
    my $biblionumber = shift;
68
    my $record = GetMarcBiblio({
68
    my $record = C4::Biblio::GetMarcBiblio({
69
        biblionumber => $biblionumber,
69
        biblionumber => $biblionumber,
70
        embed_items  => scalar $query->param('items') });
70
        embed_items  => scalar $query->param('items') });
71
    if  (defined $record) {
71
    if  (defined $record) {
Lines 79-85 sub fetch_bib { Link Here
79
sub update_bib {
79
sub update_bib {
80
    my $query = shift;
80
    my $query = shift;
81
    my $biblionumber = shift;
81
    my $biblionumber = shift;
82
    my $old_record = GetMarcBiblio({ biblionumber => $biblionumber });
82
    my $old_record = C4::Biblio::GetMarcBiblio({ biblionumber => $biblionumber });
83
    my $frameworkcode = $query->url_param('frameworkcode') // GetFrameworkCode($biblionumber);
83
    my $frameworkcode = $query->url_param('frameworkcode') // GetFrameworkCode($biblionumber);
84
    unless  (defined $old_record) {
84
    unless  (defined $old_record) {
85
        print $query->header(-type => 'text/xml', -status => '404 Not Found');
85
        print $query->header(-type => 'text/xml', -status => '404 Not Found');
Lines 98-104 sub update_bib { Link Here
98
    } else {
98
    } else {
99
        my $fullrecord = $record->clone();
99
        my $fullrecord = $record->clone();
100
        my ( $itemtag, $itemsubfield ) =
100
        my ( $itemtag, $itemsubfield ) =
101
          GetMarcFromKohaField( "items.itemnumber" );
101
          C4::Biblio::GetMarcFromKohaField( "items.itemnumber" );
102
102
103
        # delete any item tags
103
        # delete any item tags
104
        foreach my $field ( $record->field($itemtag) ) {
104
        foreach my $field ( $record->field($itemtag) ) {
Lines 109-121 sub update_bib { Link Here
109
            foreach my $field ( $fullrecord->field($itemtag) ) {
109
            foreach my $field ( $fullrecord->field($itemtag) ) {
110
                my $one_item_record = $record->clone();
110
                my $one_item_record = $record->clone();
111
                $one_item_record->add_fields($field);
111
                $one_item_record->add_fields($field);
112
                ModItemFromMarc( $one_item_record, $biblionumber,
112
                C4::Items::ModItemFromMarc( $one_item_record, $biblionumber,
113
                    $field->subfield($itemsubfield) );
113
                    $field->subfield($itemsubfield) );
114
            }
114
            }
115
        }
115
        }
116
116
117
        ModBiblio( $record, $biblionumber, $frameworkcode );
117
        C4::Biblio::ModBiblio( $record, $biblionumber, $frameworkcode );
118
        my $new_record = GetMarcBiblio({
118
        my $new_record = C4::Biblio::GetMarcBiblio({
119
            biblionumber => $biblionumber,
119
            biblionumber => $biblionumber,
120
            embed_items  => scalar $query->url_param('items') });
120
            embed_items  => scalar $query->url_param('items') });
121
121
Lines 133-139 sub update_bib { Link Here
133
sub delete_bib {
133
sub delete_bib {
134
    my $query = shift;
134
    my $query = shift;
135
    my $biblionumber = shift;
135
    my $biblionumber = shift;
136
    my $error = DelBiblio($biblionumber);
136
    my $error = C4::Biblio::DelBiblio($biblionumber);
137
137
138
    if (defined $error) {
138
    if (defined $error) {
139
        print $query->header(-type => 'text/xml', -status => '400 Bad request');
139
        print $query->header(-type => 'text/xml', -status => '400 Bad request');
(-)a/svc/new_bib (-7 / +6 lines)
Lines 63-90 sub add_bib { Link Here
63
        # fix character set
63
        # fix character set
64
        if ($record->encoding() eq 'MARC-8') {
64
        if ($record->encoding() eq 'MARC-8') {
65
            my ($guessed_charset, $charset_errors);
65
            my ($guessed_charset, $charset_errors);
66
            ($record, $guessed_charset, $charset_errors) = MarcToUTF8Record($record, $marcflavour);
66
            ($record, $guessed_charset, $charset_errors) = C4::Charset::MarcToUTF8Record($record, $marcflavour);
67
        }
67
        }
68
68
69
        my $fullrecord = $record->clone();
69
        my $fullrecord = $record->clone();
70
70
71
        # delete any item tags
71
        # delete any item tags
72
        my ( $itemtag, $itemsubfield ) =
72
        my ( $itemtag, $itemsubfield ) =
73
          GetMarcFromKohaField( "items.itemnumber" );
73
          C4::Biblio::GetMarcFromKohaField( "items.itemnumber" );
74
        foreach my $field ( $record->field($itemtag) ) {
74
        foreach my $field ( $record->field($itemtag) ) {
75
            $record->delete_field($field);
75
            $record->delete_field($field);
76
        }
76
        }
77
        my ( $biblionumber, $biblioitemnumber ) = AddBiblio( $record, $frameworkcode );
77
        my ( $biblionumber, $biblioitemnumber ) = C4::Biblio::AddBiblio( $record, $frameworkcode );
78
        my $new_record = GetMarcBiblio({ biblionumber => $biblionumber });
78
        my $new_record = C4::Biblio::GetMarcBiblio({ biblionumber => $biblionumber });
79
        if ( $query->url_param('items') ) {
79
        if ( $query->url_param('items') ) {
80
            foreach my $field ( $fullrecord->field($itemtag) ) {
80
            foreach my $field ( $fullrecord->field($itemtag) ) {
81
                my $one_item_record = $new_record->clone();
81
                my $one_item_record = $new_record->clone();
82
                $one_item_record->add_fields($field);
82
                $one_item_record->add_fields($field);
83
                AddItemFromMarc( $one_item_record, $biblionumber );
83
                C4::Items::AddItemFromMarc( $one_item_record, $biblionumber );
84
            }
84
            }
85
        }
85
        }
86
86
87
        $new_record = GetMarcBiblio({
87
        $new_record = C4::Biblio::GetMarcBiblio({
88
            biblionumber => $biblionumber,
88
            biblionumber => $biblionumber,
89
            embed_items  => scalar $query->url_param('items') });
89
            embed_items  => scalar $query->url_param('items') });
90
        $result->{'status'} = "ok";
90
        $result->{'status'} = "ok";
91
- 

Return to bug 28750