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

(-)a/Koha/Acquisition/Invoice.pm (-1 / +1 lines)
Lines 19-25 use Modern::Perl; Link Here
19
19
20
use Koha::Database;
20
use Koha::Database;
21
21
22
use base qw(Koha::Object);
22
use base qw(Koha::Object Koha::Object::Mixin::AdditionalFields);
23
23
24
=head1 NAME
24
=head1 NAME
25
25
(-)a/Koha/Acquisition/Invoices.pm (-1 / +1 lines)
Lines 21-27 use Koha::Database; Link Here
21
21
22
use Koha::Acquisition::Invoice;
22
use Koha::Acquisition::Invoice;
23
23
24
use base qw(Koha::Objects);
24
use base qw(Koha::Objects Koha::Objects::Mixin::AdditionalFields);
25
25
26
=head1 NAME
26
=head1 NAME
27
27
(-)a/Koha/Schema/Result/Aqinvoice.pm (+16 lines)
Lines 220-225 __PACKAGE__->belongs_to( Link Here
220
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-21 13:39:29
220
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-21 13:39:29
221
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:LkekSbup37Z2WVnU/c9K+g
221
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:LkekSbup37Z2WVnU/c9K+g
222
222
223
__PACKAGE__->has_many(
224
    "additional_field_values",
225
    "Koha::Schema::Result::AdditionalFieldValue",
226
    sub {
227
        my ($args) = @_;
228
229
        return {
230
            "$args->{foreign_alias}.record_id" => { -ident => "$args->{self_alias}.invoiceid" },
231
232
            "$args->{foreign_alias}.field_id" =>
233
              { -in => \'(SELECT id FROM additional_fields WHERE tablename="aqinvoices")' },
234
        };
235
    },
236
    { cascade_copy => 0, cascade_delete => 0 },
237
);
238
223
sub koha_object_class {
239
sub koha_object_class {
224
    'Koha::Acquisition::Invoice';
240
    'Koha::Acquisition::Invoice';
225
}
241
}
(-)a/acqui/invoice.pl (+22 lines)
Lines 38-46 use C4::Log qw(logaction); Link Here
38
38
39
use Koha::Acquisition::Booksellers;
39
use Koha::Acquisition::Booksellers;
40
use Koha::Acquisition::Currencies qw( get_active );
40
use Koha::Acquisition::Currencies qw( get_active );
41
use Koha::AdditionalFields;
41
use Koha::DateUtils qw( output_pref );
42
use Koha::DateUtils qw( output_pref );
42
use Koha::Misc::Files;
43
use Koha::Misc::Files;
43
use Koha::Acquisition::Invoice::Adjustments;
44
use Koha::Acquisition::Invoice::Adjustments;
45
use Koha::Acquisition::Invoices;
44
46
45
my $input = CGI->new;
47
my $input = CGI->new;
46
my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
48
my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
Lines 125-130 elsif ( $op && $op eq 'mod' ) { Link Here
125
        MergeInvoices($invoiceid, \@sources);
127
        MergeInvoices($invoiceid, \@sources);
126
        defined($invoice_files) && $invoice_files->MergeFileRecIds(@sources);
128
        defined($invoice_files) && $invoice_files->MergeFileRecIds(@sources);
127
    }
129
    }
130
131
    my @additional_fields;
132
    my $invoice_fields = Koha::AdditionalFields->search({ tablename => 'aqinvoices' });
133
    while ( my $field = $invoice_fields->next ) {
134
        my $value = $input->param('additional_field_' . $field->id);
135
        push @additional_fields, {
136
            id => $field->id,
137
            value => $value,
138
        };
139
    }
140
    Koha::Acquisition::Invoices->find($invoiceid)->set_additional_fields(\@additional_fields);
141
128
    $template->param( modified => 1 );
142
    $template->param( modified => 1 );
129
}
143
}
130
elsif ( $op && $op eq 'delete' ) {
144
elsif ( $op && $op eq 'delete' ) {
Lines 298-303 foreach my $r ( @{$budgets} ) { Link Here
298
my $adjustments = Koha::Acquisition::Invoice::Adjustments->search({ invoiceid => $details->{'invoiceid'} });
312
my $adjustments = Koha::Acquisition::Invoice::Adjustments->search({ invoiceid => $details->{'invoiceid'} });
299
if ( $adjustments ) { $template->param( adjustments => $adjustments ); }
313
if ( $adjustments ) { $template->param( adjustments => $adjustments ); }
300
314
315
my $invoice = Koha::Acquisition::Invoices->find($invoiceid);
316
$template->param(
317
    available_additional_fields => Koha::AdditionalFields->search( { tablename => 'aqinvoices' } ),
318
    additional_field_values => { map {
319
                $_->field->id => $_->value
320
            } $invoice->additional_field_values->as_list },
321
);
322
301
$template->param(
323
$template->param(
302
    invoiceid                   => $details->{'invoiceid'},
324
    invoiceid                   => $details->{'invoiceid'},
303
    invoicenumber               => $details->{'invoicenumber'},
325
    invoicenumber               => $details->{'invoicenumber'},
(-)a/acqui/parcels.pl (-1 / +24 lines)
Lines 75-80 use C4::Acquisition qw( GetInvoices GetInvoice AddInvoice ); Link Here
75
use C4::Budgets qw( GetBudgetHierarchy GetBudget CanUserUseBudget );
75
use C4::Budgets qw( GetBudgetHierarchy GetBudget CanUserUseBudget );
76
76
77
use Koha::Acquisition::Booksellers;
77
use Koha::Acquisition::Booksellers;
78
use Koha::Acquisition::Invoices;
79
use Koha::AdditionalFields;
78
use Koha::DateUtils qw( dt_from_string );
80
use Koha::DateUtils qw( dt_from_string );
79
81
80
my $input          = CGI->new;
82
my $input          = CGI->new;
Lines 118-123 if ( $op and $op eq 'new' ) { Link Here
118
    }
120
    }
119
    $op = 'confirm' unless $template->{'VARS'}->{'duplicate_invoices'};
121
    $op = 'confirm' unless $template->{'VARS'}->{'duplicate_invoices'};
120
}
122
}
123
121
if ($op and $op eq 'confirm') {
124
if ($op and $op eq 'confirm') {
122
    my $invoiceid = AddInvoice(
125
    my $invoiceid = AddInvoice(
123
        invoicenumber => $invoicenumber,
126
        invoicenumber => $invoicenumber,
Lines 126-132 if ($op and $op eq 'confirm') { Link Here
126
        shipmentcost => $shipmentcost,
129
        shipmentcost => $shipmentcost,
127
        shipmentcost_budgetid => $shipmentcost_budgetid,
130
        shipmentcost_budgetid => $shipmentcost_budgetid,
128
    );
131
    );
129
    if(defined $invoiceid) {
132
    if (defined $invoiceid) {
133
134
        my @additional_fields;
135
        my $invoice_fields = Koha::AdditionalFields->search({ tablename => 'aqinvoices' });
136
        while ( my $field = $invoice_fields->next ) {
137
            my $value = $input->param('additional_field_' . $field->id);
138
            if (defined $value) {
139
                push @additional_fields, {
140
                    id    => $field->id,
141
                    value => $value,
142
                };
143
            }
144
        }
145
        if (@additional_fields) {
146
            my $invoice = Koha::Acquisition::Invoices->find( $invoiceid );
147
            $invoice->set_additional_fields(\@additional_fields);
148
        }
130
        # Successful 'Add'
149
        # Successful 'Add'
131
        print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoiceid=$invoiceid");
150
        print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoiceid=$invoiceid");
132
        exit 0;
151
        exit 0;
Lines 135-140 if ($op and $op eq 'confirm') { Link Here
135
    }
154
    }
136
}
155
}
137
156
157
$template->param(
158
    available_additional_fields => [ Koha::AdditionalFields->search({ tablename => 'aqinvoices' })->as_list ]
159
);
160
138
my $bookseller = Koha::Acquisition::Booksellers->find( $booksellerid );
161
my $bookseller = Koha::Acquisition::Booksellers->find( $booksellerid );
139
my @parcels = GetInvoices(
162
my @parcels = GetInvoices(
140
    supplierid => $booksellerid,
163
    supplierid => $booksellerid,
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt (+5 lines)
Lines 140-145 Link Here
140
                [% END %]
140
                [% END %]
141
            [% END %]
141
            [% END %]
142
            </ol>
142
            </ol>
143
          <fieldset class="rows">
144
            [% IF available_additional_fields.count %]
145
                [% INCLUDE 'additional-fields-entry.inc' available=available_additional_fields values=additional_field_values %]
146
            [% END %]
147
          </fieldset>
143
        [% UNLESS readonly %]
148
        [% UNLESS readonly %]
144
          <input type="hidden" name="op" value="mod" />
149
          <input type="hidden" name="op" value="mod" />
145
          <input type="hidden" name="invoiceid" value="[% invoiceid | html %]" />
150
          <input type="hidden" name="invoiceid" value="[% invoiceid | html %]" />
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt (+5 lines)
Lines 191-196 Link Here
191
        </li>
191
        </li>
192
		</ol>
192
		</ol>
193
    </fieldset>
193
    </fieldset>
194
            <fieldset class="rows">
195
                [% IF available_additional_fields %]
196
                    [% INCLUDE 'additional-fields-entry.inc' available=available_additional_fields values=additional_field_values %]
197
                [% END %]
198
            </fieldset>
194
            <fieldset class="action"><input type="submit" class="button" value="Next" /> <a class="cancel" href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid | html %]">Cancel</a></fieldset>
199
            <fieldset class="action"><input type="submit" class="button" value="Next" /> <a class="cancel" href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid | html %]">Cancel</a></fieldset>
195
        </form>
200
        </form>
196
    </div>
201
    </div>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/additional-fields.tt (-2 / +4 lines)
Lines 12-18 Link Here
12
</head>
12
</head>
13
13
14
[% marcfield_tables = ['subscription'] %]
14
[% marcfield_tables = ['subscription'] %]
15
[% searchable_tables = ['subscription', 'aqbasket'] %]
15
[% searchable_tables = ['subscription', 'aqbasket', 'aqinvoices'] %]
16
[% show_marcfield = marcfield_tables.grep('^' _ tablename _ '$').size ? 1 : 0 %]
16
[% show_marcfield = marcfield_tables.grep('^' _ tablename _ '$').size ? 1 : 0 %]
17
[% show_searchable = searchable_tables.grep('^' _ tablename _ '$').size ? 1 : 0 %]
17
[% show_searchable = searchable_tables.grep('^' _ tablename _ '$').size ? 1 : 0 %]
18
18
Lines 117-122 Link Here
117
            [% IF CAN_user_acquisition_order_manage %]
117
            [% IF CAN_user_acquisition_order_manage %]
118
                [% WRAPPER table_option value="aqbasket" %]<span>Order baskets</span>[% END %]
118
                [% WRAPPER table_option value="aqbasket" %]<span>Order baskets</span>[% END %]
119
            [% END %]
119
            [% END %]
120
            [% IF CAN_user_acquisition_edit_invoices %]
121
                [% WRAPPER table_option value="aqinvoices" %]<span>Invoices</span>[% END %]
122
            [% END %]
120
            [% IF CAN_user_serials_edit_subscription %]
123
            [% IF CAN_user_serials_edit_subscription %]
121
                [% WRAPPER table_option value="subscription" %]<span>Subscriptions</span>[% END %]
124
                [% WRAPPER table_option value="subscription" %]<span>Subscriptions</span>[% END %]
122
            [% END %]
125
            [% END %]
123
- 

Return to bug 31115