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

(-)a/serials/subscription-batchedit.pl (-31 / +34 lines)
Lines 21-28 use Modern::Perl; Link Here
21
21
22
use CGI qw( -utf8 );
22
use CGI qw( -utf8 );
23
23
24
use C4::Auth qw( get_template_and_user );
24
use C4::Auth    qw( get_template_and_user );
25
use C4::Output qw( output_html_with_http_headers );
25
use C4::Output  qw( output_html_with_http_headers );
26
use C4::Serials qw( can_edit_subscription );
26
use C4::Serials qw( can_edit_subscription );
27
use Koha::Subscriptions;
27
use Koha::Subscriptions;
28
use Koha::Acquisition::Booksellers;
28
use Koha::Acquisition::Booksellers;
Lines 31-42 use Koha::DateUtils qw( dt_from_string ); Link Here
31
31
32
my $cgi = CGI->new;
32
my $cgi = CGI->new;
33
33
34
my ($template, $loggedinuser, $cookie) = get_template_and_user({
34
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
35
    template_name => 'serials/subscription-batchedit.tt',
35
    {
36
    query => $cgi,
36
        template_name => 'serials/subscription-batchedit.tt',
37
    type => 'intranet',
37
        query         => $cgi,
38
    flagsrequired => {serials => 'edit_subscription'},
38
        type          => 'intranet',
39
});
39
        flagsrequired => { serials => 'edit_subscription' },
40
    }
41
);
40
42
41
my @subscriptionids = $cgi->multi_param('subscriptionid');
43
my @subscriptionids = $cgi->multi_param('subscriptionid');
42
44
Lines 47-92 foreach my $subscriptionid (@subscriptionids) { Link Here
47
    push @subscriptions, $subscription if $subscription;
49
    push @subscriptions, $subscription if $subscription;
48
}
50
}
49
51
50
my @available_additional_fields = Koha::AdditionalFields->search({tablename => 'subscription'})->as_list;
52
my @available_additional_fields = Koha::AdditionalFields->search( { tablename => 'subscription' } )->as_list;
51
53
52
my $batchedit = $cgi->param('batchedit');
54
my $batchedit = $cgi->param('batchedit');
53
if ($batchedit) {
55
if ($batchedit) {
54
    my %params = (
56
    my %params = (
55
        aqbooksellerid => scalar $cgi->param('booksellerid'),
57
        aqbooksellerid  => scalar $cgi->param('booksellerid'),
56
        location => scalar $cgi->param('location'),
58
        location        => scalar $cgi->param('location'),
57
        branchcode => scalar $cgi->param('branchcode'),
59
        branchcode      => scalar $cgi->param('branchcode'),
58
        itemtype => scalar $cgi->param('itemtype'),
60
        itemtype        => scalar $cgi->param('itemtype'),
59
        notes => scalar $cgi->param('notes'),
61
        notes           => scalar $cgi->param('notes'),
60
        internalnotes => scalar $cgi->param('internalnotes'),
62
        internalnotes   => scalar $cgi->param('internalnotes'),
61
        serialsadditems => scalar $cgi->param('serialsadditems'),
63
        serialsadditems => scalar $cgi->param('serialsadditems'),
62
        enddate => dt_from_string(scalar $cgi->param('enddate')),
64
        enddate         => dt_from_string( scalar $cgi->param('enddate') ),
63
    );
65
    );
64
66
65
    my $field_values = {};
67
    my $field_values = {};
66
    foreach my $field (@available_additional_fields) {
68
    foreach my $field (@available_additional_fields) {
67
        my $value = $cgi->param('field_' . $field->id);
69
        my $value = $cgi->param( 'field_' . $field->id );
68
        $field_values->{$field->id} = $value;
70
        $field_values->{ $field->id } = $value;
69
    }
71
    }
70
72
71
    foreach my $subscription (@subscriptions) {
73
    foreach my $subscription (@subscriptions) {
72
        next unless C4::Serials::can_edit_subscription( $subscription->unblessed ); # This should be moved to Koha::Subscription->can_edit
74
        next
73
        while (my ($key, $value) = each %params) {
75
            unless C4::Serials::can_edit_subscription( $subscription->unblessed )
74
            if (defined $value and $value ne '') {
76
            ;    # This should be moved to Koha::Subscription->can_edit
77
        while ( my ( $key, $value ) = each %params ) {
78
            if ( defined $value and $value ne '' ) {
75
                $subscription->$key($value);
79
                $subscription->$key($value);
76
            }
80
            }
77
        }
81
        }
78
82
79
        my @additional_field_values;
83
        my @additional_field_values;
80
        foreach my $field (@available_additional_fields) {
84
        foreach my $field (@available_additional_fields) {
81
            my $value = $field_values->{$field->id};
85
            my $value = $field_values->{ $field->id };
82
            if (defined $value and $value ne '') {
86
            if ( defined $value and $value ne '' ) {
83
                push @additional_field_values, {
87
                push @additional_field_values, {
84
                    id => $field->id,
88
                    id    => $field->id,
85
                    value => $value,
89
                    value => $value,
86
                };
90
                };
87
            }else{
91
            } else {
88
                my $existing = $subscription->additional_field_values->search( { field_id => $field->id } )->last;
92
                my $existing = $subscription->additional_field_values->search( { field_id => $field->id } )->last;
89
                if($existing && $existing->value){
93
                if ( $existing && $existing->value ) {
90
                    push @additional_field_values, {
94
                    push @additional_field_values, {
91
                        id    => $field->id,
95
                        id    => $field->id,
92
                        value => $existing->value,
96
                        value => $existing->value,
Lines 94-100 if ($batchedit) { Link Here
94
                }
98
                }
95
            }
99
            }
96
        }
100
        }
97
        $subscription->set_additional_fields(\@additional_field_values);
101
        $subscription->set_additional_fields( \@additional_field_values );
98
102
99
        $subscription->store;
103
        $subscription->store;
100
    }
104
    }
Lines 105-114 if ($batchedit) { Link Here
105
}
109
}
106
110
107
$template->param(
111
$template->param(
108
    subscriptions => \@subscriptions,
112
    subscriptions     => \@subscriptions,
109
    booksellers => [ Koha::Acquisition::Booksellers->search->as_list ],
113
    booksellers       => [ Koha::Acquisition::Booksellers->search->as_list ],
110
    additional_fields => \@available_additional_fields,
114
    additional_fields => \@available_additional_fields,
111
    referrer => scalar $cgi->param('referrer'),
115
    referrer          => scalar $cgi->param('referrer'),
112
);
116
);
113
117
114
output_html_with_http_headers $cgi, $cookie, $template->output;
118
output_html_with_http_headers $cgi, $cookie, $template->output;
115
- 

Return to bug 35073