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

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

Return to bug 10855