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

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

Return to bug 10855