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

(-)a/serials/subscription-add.pl (-19 / +18 lines)
Lines 345-358 sub redirect_add_subscription { Link Here
345
    );
345
    );
346
346
347
    my $additional_fields = Koha::AdditionalField->all( { tablename => 'subscription' } );
347
    my $additional_fields = Koha::AdditionalField->all( { tablename => 'subscription' } );
348
    my @additional_field_values;
348
    insert_additional_fields( $additional_fields, $biblionumber, $subscriptionid );
349
    for my $field ( @$additional_fields ) {
350
        my $af = Koha::AdditionalField->new({ id => $field->{id} });
351
        $af->{values} = {
352
            $subscriptionid => $query->param('additional_field_' . $field->{id})
353
        } if defined $query->param('additional_field_' . $field->{id});
354
        $af->insert_values;
355
    }
356
349
357
    print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid");
350
    print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid");
358
    return;
351
    return;
Lines 430-454 sub redirect_mod_subscription { Link Here
430
    );
423
    );
431
424
432
    my $additional_fields = Koha::AdditionalField->all( { tablename => 'subscription' } );
425
    my $additional_fields = Koha::AdditionalField->all( { tablename => 'subscription' } );
426
    insert_additional_fields( $additional_fields, $biblionumber, $subscriptionid );
427
428
    print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid");
429
    return;
430
}
431
432
sub insert_additional_fields {
433
    my ( $additional_fields, $biblionumber, $subscriptionid ) = @_;
433
    my @additional_field_values;
434
    my @additional_field_values;
435
    my $record = GetMarcBiblio( $biblionumber, 1 );
434
    for my $field ( @$additional_fields ) {
436
    for my $field ( @$additional_fields ) {
435
        my $af = Koha::AdditionalField->new({ id => $field->{id} })->fetch;
437
        my $af = Koha::AdditionalField->new({ id => $field->{id} })->fetch;
436
        if ( $af->{marcfield} ) {
438
        if ( $af->{marcfield} ) {
437
            my $record = GetMarcBiblio( $biblionumber, 1 );
438
            my ( $field, $subfield ) = split /\$/, $af->{marcfield};
439
            my ( $field, $subfield ) = split /\$/, $af->{marcfield};
439
            next unless $field and $subfield;
440
            $af->{values} = undef;
440
            my $value = $record->subfield( $field, $subfield );
441
            if ( $field and $subfield ) {
441
            $af->{values} = {
442
                my $value = $record->subfield( $field, $subfield );
442
                $subscriptionid => $value
443
                $af->{values} = {
443
            };
444
                    $subscriptionid => $value
445
                };
446
            }
444
        } else {
447
        } else {
445
            $af->{values} = {
448
            $af->{values} = {
446
                $subscriptionid => $query->param('additional_field_' . $field->{id})
449
                $subscriptionid => $query->param('additional_field_' . $field->{id})
447
            };
450
            } if defined $query->param('additional_field_' . $field->{id});
448
        }
451
        }
449
        $af->insert_values;
452
        $af->insert_values;
450
    }
453
    }
451
452
    print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid");
453
    return;
454
}
454
}
455
- 

Return to bug 10855