4 #script to recieve 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 under the
12 # terms of the GNU General Public License as published by the Free Software
13 # Foundation; either version 2 of the License, or (at your option) any later
16 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
17 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
18 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
20 # You should have received a copy of the GNU General Public License along with
21 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
22 # Suite 330, Boston, MA 02111-1307 USA
29 This script shows all order already receive and all pendings orders.
30 It permit to write a new order as 'received'.
37 to know on what supplier this script has to display receive order.
42 the number of this invoice.
47 The biblionumber of this order.
62 use C4::Koha; # GetKohaAuthorisedValues GetItemTypes
66 use C4::Dates qw/format_date/;
69 use C4::Branch; # GetBranches
72 my $supplierid = $input->param('supplierid');
73 my $dbh = C4::Context->dbh;
75 my $search = $input->param('receive');
76 my $invoice = $input->param('invoice');
77 my $freight = $input->param('freight');
78 my $biblionumber = $input->param('biblionumber');
79 my $datereceived = C4::Dates->new($input->param('datereceived'),'iso') || C4::Dates->new();
80 my $catview = $input->param('catview');
81 my $gst = $input->param('gst');
83 my @results = SearchOrder( $search, $supplierid, $biblionumber, $catview );
84 my $count = scalar @results;
86 my $bookseller = GetBookSellerFromId( $results[0]->{'booksellerid'} );
88 my $date = $results[0]->{'entrydate'};
90 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
92 template_name => "acqui/orderreceive.tmpl",
96 flagsrequired => { acquisition => 1 },
100 $template->param($count);
104 my (@itemtypesloop,@locationloop,@ccodeloop);
105 my $itemtypes = GetItemTypes;
106 foreach my $thisitemtype (sort keys %$itemtypes) {
108 value => $thisitemtype,
109 description => $itemtypes->{$thisitemtype}->{'description'},
110 selected => ($thisitemtype eq $results[0]->{itemtype}), # ifdef itemtype @ bibliolevel, use it as default for item level.
112 push @itemtypesloop, \%row;
115 my $locs = GetKohaAuthorisedValues( 'items.location' );
116 foreach my $thisloc (sort keys %$locs) {
119 description => $locs->{$thisloc},
121 push @locationloop, $row;
123 my $ccodes= GetKohaAuthorisedValues( 'items.ccode' );
124 foreach my $thisccode (sort keys %$ccodes) {
127 description => $ccodes->{$thisccode},
130 $template->param(itemtypeloop => \@itemtypesloop ,
131 locationloop => \@locationloop,
132 ccodeloop => \@ccodeloop,
133 itype => C4::Context->preference('item-level_itypes'),
136 my $onlymine=C4::Context->preference('IndependantBranches') &&
137 C4::Context->userenv &&
138 C4::Context->userenv->{flags} !=1 &&
139 C4::Context->userenv->{branch};
140 my $branches = GetBranches($onlymine);
142 foreach my $thisbranch ( sort keys %$branches ) {
144 value => $thisbranch,
145 description => $branches->{$thisbranch}->{'branchname'},
147 push @branchloop, \%row;
151 # See whether barcodes should be automatically allocated.
152 # FIXME : only incremental is implemented here, and it creates a race condition.
154 if ( C4::Context->preference('autoBarcode') eq 'incremental' ) {
155 my $sth = $dbh->prepare("Select max(barcode) from items");
157 my $data = $sth->fetchrow_hashref;
158 $barcode = $results[0]->{'barcode'} + 1;
162 if ( $results[0]->{'quantityreceived'} == 0 ) {
163 $results[0]->{'quantityreceived'} = '';
165 if ( $results[0]->{'unitprice'} == 0 ) {
166 $results[0]->{'unitprice'} = '';
168 # $results[0]->{'copyrightdate'} = format_date( $results[0]->{'copyrightdate'} ); # this usu fails.
170 branchloop => \@branchloop,
172 biblionumber => $results[0]->{'biblionumber'},
173 ordernumber => $results[0]->{'ordernumber'},
174 biblioitemnumber => $results[0]->{'biblioitemnumber'},
175 supplierid => $results[0]->{'booksellerid'},
178 catview => ( $catview ne 'yes' ? 1 : 0 ),
179 name => $bookseller->{'name'},
180 date => format_date($date),
181 title => $results[0]->{'title'},
182 author => $results[0]->{'author'},
183 copyrightdate => $results[0]->{'copyrightdate'},
184 itemtype => $results[0]->{'itemtype'},
185 isbn => $results[0]->{'isbn'},
186 seriestitle => $results[0]->{'seriestitle'},
188 bookfund => $results[0]->{'bookfundid'},
189 quantity => $results[0]->{'quantity'},
190 quantityreceivedplus1 => $results[0]->{'quantityreceived'} + 1,
191 quantityreceived => $results[0]->{'quantityreceived'},
192 rrp => $results[0]->{'rrp'},
193 ecost => $results[0]->{'ecost'},
194 unitprice => $results[0]->{'unitprice'},
196 datereceived => $datereceived->output(),
197 datereceived_iso => $datereceived->output('iso'),
202 for ( my $i = 0 ; $i < $count ; $i++ ) {
203 my %line = %{ $results[$i] };
205 $line{invoice} = $invoice;
206 $line{datereceived} = $datereceived->output();
207 $line{freight} = $freight;
209 $line{title} = $results[$i]->{'title'};
210 $line{author} = $results[$i]->{'author'};
211 $line{supplierid} = $supplierid;
216 date => format_date($date),
217 datereceived => $datereceived->output(),
218 name => $bookseller->{'name'},
219 supplierid => $supplierid,
224 output_html_with_http_headers $input, $cookie, $template->output;