4 #script to receive orders
5 #written by chris@katipo.co.nz 24/2/2000
7 # Copyright 2000-2002 Katipo Communications
9 # This file is part of Koha.
11 # Koha is free software; you can redistribute it and/or modify it
12 # under the terms of the GNU General Public License as published by
13 # the Free Software Foundation; either version 3 of the License, or
14 # (at your option) any later version.
16 # Koha is distributed in the hope that it will be useful, but
17 # WITHOUT ANY WARRANTY; without even the implied warranty of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 # GNU General Public License for more details.
21 # You should have received a copy of the GNU General Public License
22 # along with Koha; if not, see <http://www.gnu.org/licenses>.
30 This script shows all order already receive and all pendings orders.
31 It permit to write a new order as 'received'.
39 to know on what supplier this script has to display receive order.
43 the id of this invoice.
49 The biblionumber of this order.
68 use C4
::Budgets qw
/ GetBudget GetBudgetHierarchy CanUserUseBudget GetBudgetPeriods /;
75 use Koha
::Acquisition
::Booksellers
;
76 use Koha
::Acquisition
::Currencies
;
77 use Koha
::Acquisition
::Orders
;
78 use Koha
::DateUtils
qw( dt_from_string );
84 my $dbh = C4
::Context
->dbh;
85 my $invoiceid = $input->param('invoiceid');
86 my $invoice = GetInvoice
($invoiceid);
87 my $booksellerid = $invoice->{booksellerid
};
88 my $freight = $invoice->{shipmentcost
};
89 my $ordernumber = $input->param('ordernumber');
91 my $bookseller = Koha
::Acquisition
::Booksellers
->find( $booksellerid );
92 my $order = Koha
::Acquisition
::Orders
->find( $ordernumber );
94 my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user
(
96 template_name
=> "acqui/orderreceive.tt",
99 flagsrequired
=> {acquisition
=> 'order_receive'},
105 output_html_with_http_headers
$input, $cookie, $template->output;
109 # prepare the form for receiving
110 my $basket = $order->basket;
111 my $currencies = Koha
::Acquisition
::Currencies
->search;
112 my $active_currency = $currencies->get_active;
114 # Check if ACQ framework exists
115 my $acq_fw = GetMarcStructure
( 1, 'ACQ', { unsafe
=> 1 } );
117 $template->param('NoACQframework' => 1);
121 my $creator = Koha
::Patrons
->find( $order->created_by );
123 my $budget = GetBudget
( $order->budget_id );
125 my $datereceived = $order->datereceived ? dt_from_string
( $order->datereceived ) : dt_from_string
;
127 # get option values for gist syspref
128 my @gst_values = map {
130 }, split( '\|', C4
::Context
->preference("gist") );
132 my $order_internalnote = $order->order_internalnote;
133 my $order_vendornote = $order->order_vendornote;
134 if ( $order->subscriptionid ) {
135 # Order from a subscription, we will display an history of what has been received
136 my $orders = Koha
::Acquisition
::Orders
->search(
138 subscriptionid
=> $order->subscriptionid,
139 parent_ordernumber
=> $order->ordernumber,
140 ordernumber
=> { '!=' => $order->ordernumber }
143 if ( $order->parent_ordernumber != $order->ordernumber ) {
144 my $parent_order = Koha
::Acquisition
::Orders
->find($order->parent_ordernumber);
145 $order_internalnote = $parent_order->order_internalnote;
146 $order_vendornote = $parent_order->order_vendornote;
156 name
=> $bookseller->name,
157 active_currency
=> $active_currency,
158 currencies
=> scalar $currencies->search({ rate
=> { '!=' => 1 } }),
159 invoiceincgst
=> $bookseller->invoiceincgst,
160 bookfund
=> $budget->{budget_name
},
162 invoiceid
=> $invoice->{invoiceid
},
163 invoice
=> $invoice->{invoicenumber
},
164 datereceived
=> $datereceived,
165 order_internalnote
=> $order_internalnote,
166 order_vendornote
=> $order_vendornote,
167 gst_values
=> \
@gst_values,
170 my $suggestion = GetSuggestionInfoFromBiblionumber
($order->{biblionumber
});
172 $template->param( suggestion
=> $suggestion );
175 my $patron = Koha
::Patrons
->find( $loggedinuser )->unblessed;
177 my $periods = GetBudgetPeriods
( );
178 foreach my $period (@
$periods) {
179 if ($period->{'budget_period_id'} == $budget->{'budget_period_id'}) {
180 $template->{'VARS'}->{'budget_period_description'} = $period->{'budget_period_description'};
182 next if $period->{'budget_period_locked'} || !$period->{'budget_period_description'};
183 my $budget_hierarchy = GetBudgetHierarchy
( $period->{'budget_period_id'} );
185 foreach my $r ( @
{$budget_hierarchy} ) {
186 next unless ( CanUserUseBudget
( $patron, $r, $userflags ) );
187 if ( !defined $r->{budget_amount
} || $r->{budget_amount
} == 0 ) {
192 b_id
=> $r->{budget_id
},
193 b_txt
=> $r->{budget_name
},
194 b_sel
=> ( $r->{budget_id
} == $order->{budget_id
} ) ?
1 : 0,
198 @funds = sort { uc( $a->{b_txt
} ) cmp uc( $b->{b_txt
} ) } @funds;
202 'id' => $period->{'budget_period_id'},
203 'description' => $period->{'budget_period_description'},
208 $template->{'VARS'}->{'budget_loop'} = \
@budget_loop;
210 my $op = $input->param('op');
211 if ($op and $op eq 'edit'){
212 $template->param(edit
=> 1);
214 output_html_with_http_headers
$input, $cookie, $template->output;