Lines 42-49
To know the supplier this script has to show orders.
Link Here
|
42 |
|
42 |
|
43 |
is the bookseller invoice number. |
43 |
is the bookseller invoice number. |
44 |
|
44 |
|
45 |
=item freight |
|
|
46 |
|
47 |
|
45 |
|
48 |
=item gst |
46 |
=item gst |
49 |
|
47 |
|
Lines 57-63
To filter the results list on this given date.
Link Here
|
57 |
=cut |
55 |
=cut |
58 |
|
56 |
|
59 |
use strict; |
57 |
use strict; |
60 |
#use warnings; FIXME - Bug 2505 |
58 |
use warnings; |
|
|
59 |
|
61 |
use C4::Auth; |
60 |
use C4::Auth; |
62 |
use C4::Acquisition; |
61 |
use C4::Acquisition; |
63 |
use C4::Budgets; |
62 |
use C4::Budgets; |
Lines 71-86
use C4::Suggestions;
Link Here
|
71 |
use JSON; |
70 |
use JSON; |
72 |
|
71 |
|
73 |
my $input=new CGI; |
72 |
my $input=new CGI; |
74 |
my $booksellerid=$input->param('booksellerid'); |
73 |
|
75 |
my $bookseller=GetBookSellerFromId($booksellerid); |
74 |
my $invoiceid = $input->param('invoiceid'); |
76 |
|
75 |
my $invoice = GetInvoiceDetails($invoiceid); |
77 |
my $invoice=$input->param('invoice') || ''; |
76 |
my $booksellerid = $invoice->{booksellerid}; |
78 |
my $freight=$input->param('freight'); |
77 |
my $bookseller = GetBookSellerFromId($booksellerid); |
79 |
my $input_gst = ($input->param('gst') eq '' ? undef : $input->param('gst')); |
78 |
my $gst = $bookseller->{gstrate} // C4::Context->preference("gist") // 0; |
80 |
my $gst= $input_gst // $bookseller->{gstrate} // C4::Context->preference("gist") // 0; |
|
|
81 |
my $datereceived = ($input->param('op') eq 'new') ? C4::Dates->new($input->param('datereceived')) |
82 |
: C4::Dates->new($input->param('datereceived'), 'iso') ; |
83 |
$datereceived = C4::Dates->new() unless $datereceived; |
84 |
my $code = $input->param('code'); |
79 |
my $code = $input->param('code'); |
85 |
my @rcv_err = $input->param('error'); |
80 |
my @rcv_err = $input->param('error'); |
86 |
my @rcv_err_barcode = $input->param('error_bc'); |
81 |
my @rcv_err_barcode = $input->param('error_bc'); |
Lines 90-105
my $resultsperpage = $input->param('resultsperpage');
Link Here
|
90 |
$resultsperpage = 20 unless ($resultsperpage); |
85 |
$resultsperpage = 20 unless ($resultsperpage); |
91 |
$startfrom=0 unless ($startfrom); |
86 |
$startfrom=0 unless ($startfrom); |
92 |
|
87 |
|
93 |
if($input->param('format') eq "json"){ |
88 |
my $format = $input->param('format') || ''; |
|
|
89 |
if($format eq "json"){ |
94 |
my ($template, $loggedinuser, $cookie) |
90 |
my ($template, $loggedinuser, $cookie) |
95 |
= get_template_and_user({template_name => "acqui/ajax.tmpl", |
91 |
= get_template_and_user({template_name => "acqui/ajax.tmpl", |
96 |
query => $input, |
92 |
query => $input, |
97 |
type => "intranet", |
93 |
type => "intranet", |
98 |
authnotrequired => 0, |
94 |
authnotrequired => 0, |
99 |
flagsrequired => {acquisition => 'order_receive'}, |
95 |
flagsrequired => {acquisition => 'order_receive'}, |
100 |
debug => 1, |
96 |
debug => 1, |
101 |
}); |
97 |
}); |
102 |
|
98 |
|
103 |
my @datas; |
99 |
my @datas; |
104 |
my $search = $input->param('search') || ''; |
100 |
my $search = $input->param('search') || ''; |
105 |
my $supplier = $input->param('booksellerid') || ''; |
101 |
my $supplier = $input->param('booksellerid') || ''; |
Lines 110-116
if($input->param('format') eq "json"){
Link Here
|
110 |
foreach my $order (@$orders){ |
106 |
foreach my $order (@$orders){ |
111 |
if($order->{quantityreceived} < $order->{quantity}){ |
107 |
if($order->{quantityreceived} < $order->{quantity}){ |
112 |
my $data = {}; |
108 |
my $data = {}; |
113 |
|
109 |
|
114 |
$data->{basketno} = $order->{basketno}; |
110 |
$data->{basketno} = $order->{basketno}; |
115 |
$data->{ordernumber} = $order->{ordernumber}; |
111 |
$data->{ordernumber} = $order->{ordernumber}; |
116 |
$data->{title} = $order->{title}; |
112 |
$data->{title} = $order->{title}; |
Lines 118-131
if($input->param('format') eq "json"){
Link Here
|
118 |
$data->{isbn} = $order->{isbn}; |
114 |
$data->{isbn} = $order->{isbn}; |
119 |
$data->{booksellerid} = $order->{booksellerid}; |
115 |
$data->{booksellerid} = $order->{booksellerid}; |
120 |
$data->{biblionumber} = $order->{biblionumber}; |
116 |
$data->{biblionumber} = $order->{biblionumber}; |
121 |
$data->{freight} = $order->{freight}; |
|
|
122 |
$data->{quantity} = $order->{quantity}; |
117 |
$data->{quantity} = $order->{quantity}; |
123 |
$data->{ecost} = $order->{ecost}; |
118 |
$data->{ecost} = $order->{ecost}; |
124 |
$data->{ordertotal} = sprintf("%.2f",$order->{ecost}*$order->{quantity}); |
119 |
$data->{ordertotal} = sprintf("%.2f",$order->{ecost}*$order->{quantity}); |
125 |
push @datas, $data; |
120 |
push @datas, $data; |
126 |
} |
121 |
} |
127 |
} |
122 |
} |
128 |
|
123 |
|
129 |
my $json_text = to_json(\@datas); |
124 |
my $json_text = to_json(\@datas); |
130 |
$template->param(return => $json_text); |
125 |
$template->param(return => $json_text); |
131 |
output_html_with_http_headers $input, $cookie, $template->output; |
126 |
output_html_with_http_headers $input, $cookie, $template->output; |
Lines 135-141
if($input->param('format') eq "json"){
Link Here
|
135 |
my ($template, $loggedinuser, $cookie) |
130 |
my ($template, $loggedinuser, $cookie) |
136 |
= get_template_and_user({template_name => "acqui/parcel.tmpl", |
131 |
= get_template_and_user({template_name => "acqui/parcel.tmpl", |
137 |
query => $input, |
132 |
query => $input, |
138 |
type => "intranet", |
133 |
type => "intranet", |
139 |
authnotrequired => 0, |
134 |
authnotrequired => 0, |
140 |
flagsrequired => {acquisition => 'order_receive'}, |
135 |
flagsrequired => {acquisition => 'order_receive'}, |
141 |
debug => 1, |
136 |
debug => 1, |
Lines 155-164
if( scalar(@rcv_err) ) {
Link Here
|
155 |
} |
150 |
} |
156 |
|
151 |
|
157 |
my $cfstr = "%.2f"; # currency format string -- could get this from currency table. |
152 |
my $cfstr = "%.2f"; # currency format string -- could get this from currency table. |
158 |
my @parcelitems = GetParcel($booksellerid, $invoice, $datereceived->output('iso')); |
153 |
my @parcelitems = @{ $invoice->{orders} }; |
159 |
my $countlines = scalar @parcelitems; |
154 |
my $countlines = scalar @parcelitems; |
160 |
my $totalprice = 0; |
155 |
my $totalprice = 0; |
161 |
my $totalfreight = 0; |
|
|
162 |
my $totalquantity = 0; |
156 |
my $totalquantity = 0; |
163 |
my $total; |
157 |
my $total; |
164 |
my $tototal; |
158 |
my $tototal; |
Lines 166-180
my @loop_received = ();
Link Here
|
166 |
|
160 |
|
167 |
for (my $i = 0 ; $i < $countlines ; $i++) { |
161 |
for (my $i = 0 ; $i < $countlines ; $i++) { |
168 |
|
162 |
|
169 |
#$total=($parcelitems[$i]->{'unitprice'} + $parcelitems[$i]->{'freight'}) * $parcelitems[$i]->{'quantityreceived'}; #weird, are the freight fees counted by book? (pierre) |
163 |
$total = ($parcelitems[$i]->{'unitprice'}) * $parcelitems[$i]->{'quantityreceived'}; |
170 |
$total = ($parcelitems[$i]->{'unitprice'}) * $parcelitems[$i]->{'quantityreceived'}; #weird, are the freight fees counted by book? (pierre) |
|
|
171 |
$parcelitems[$i]->{'unitprice'} += 0; |
164 |
$parcelitems[$i]->{'unitprice'} += 0; |
172 |
my %line; |
165 |
my %line; |
173 |
%line = %{ $parcelitems[$i] }; |
166 |
%line = %{ $parcelitems[$i] }; |
174 |
$line{invoice} = $invoice; |
167 |
$line{invoice} = $invoice->{invoicenumber}; |
175 |
$line{gst} = $gst; |
168 |
$line{gst} = $gst; |
176 |
$line{total} = sprintf($cfstr, $total); |
169 |
$line{total} = sprintf($cfstr, $total); |
177 |
$line{booksellerid} = $booksellerid; |
170 |
$line{booksellerid} = $invoice->{booksellerid}; |
178 |
push @loop_received, \%line; |
171 |
push @loop_received, \%line; |
179 |
$totalprice += $parcelitems[$i]->{'unitprice'}; |
172 |
$totalprice += $parcelitems[$i]->{'unitprice'}; |
180 |
$line{unitprice} = sprintf($cfstr, $parcelitems[$i]->{'unitprice'}); |
173 |
$line{unitprice} = sprintf($cfstr, $parcelitems[$i]->{'unitprice'}); |
Lines 184-327
for (my $i = 0 ; $i < $countlines ; $i++) {
Link Here
|
184 |
$line{surnamesuggestedby} = $suggestion->{surnamesuggestedby}; |
177 |
$line{surnamesuggestedby} = $suggestion->{surnamesuggestedby}; |
185 |
$line{firstnamesuggestedby} = $suggestion->{firstnamesuggestedby}; |
178 |
$line{firstnamesuggestedby} = $suggestion->{firstnamesuggestedby}; |
186 |
|
179 |
|
187 |
#double FIXME - totalfreight is redefined later. |
|
|
188 |
|
189 |
# FIXME - each order in a parcel holds the freight for the whole parcel. This means if you receive a parcel with items from multiple budgets, you'll see the freight charge in each budget.. |
190 |
if ($i > 0 && $totalfreight != $parcelitems[$i]->{'freight'}) { |
191 |
warn "FREIGHT CHARGE MISMATCH!!"; |
192 |
} |
193 |
$totalfreight = $parcelitems[$i]->{'freight'}; |
194 |
$totalquantity += $parcelitems[$i]->{'quantityreceived'}; |
180 |
$totalquantity += $parcelitems[$i]->{'quantityreceived'}; |
195 |
$tototal += $total; |
181 |
$tototal += $total; |
196 |
} |
182 |
} |
197 |
|
183 |
|
198 |
my $pendingorders = GetPendingOrders($booksellerid); |
184 |
if(!defined $invoice->{closedate}) { |
199 |
my $countpendings = scalar @$pendingorders; |
185 |
my $pendingorders = GetPendingOrders($booksellerid); |
200 |
|
186 |
my $countpendings = scalar @$pendingorders; |
201 |
# pending orders totals |
187 |
|
202 |
my ($totalPunitprice, $totalPquantity, $totalPecost, $totalPqtyrcvd); |
188 |
# pending orders totals |
203 |
my $ordergrandtotal; |
189 |
my ($totalPunitprice, $totalPquantity, $totalPecost, $totalPqtyrcvd); |
204 |
my @loop_orders = (); |
190 |
my $ordergrandtotal; |
205 |
for (my $i = 0 ; $i < $countpendings ; $i++) { |
191 |
my @loop_orders = (); |
206 |
my %line; |
192 |
for (my $i = 0 ; $i < $countpendings ; $i++) { |
207 |
%line = %{$pendingorders->[$i]}; |
193 |
my %line; |
208 |
|
194 |
%line = %{$pendingorders->[$i]}; |
209 |
$line{quantity}+=0; |
195 |
|
210 |
$line{quantityreceived}+=0; |
196 |
$line{quantity}+=0; |
211 |
$line{unitprice}+=0; |
197 |
$line{quantityreceived}+=0; |
212 |
$totalPunitprice += $line{unitprice}; |
198 |
$line{unitprice}+=0; |
213 |
$totalPquantity +=$line{quantity}; |
199 |
$totalPunitprice += $line{unitprice}; |
214 |
$totalPqtyrcvd +=$line{quantityreceived}; |
200 |
$totalPquantity +=$line{quantity}; |
215 |
$totalPecost += $line{ecost}; |
201 |
$totalPqtyrcvd +=$line{quantityreceived}; |
216 |
$line{ecost} = sprintf("%.2f",$line{ecost}); |
202 |
$totalPecost += $line{ecost}; |
217 |
$line{ordertotal} = sprintf("%.2f",$line{ecost}*$line{quantity}); |
203 |
$line{ecost} = sprintf("%.2f",$line{ecost}); |
218 |
$line{unitprice} = sprintf("%.2f",$line{unitprice}); |
204 |
$line{ordertotal} = sprintf("%.2f",$line{ecost}*$line{quantity}); |
219 |
$line{invoice} = $invoice; |
205 |
$line{unitprice} = sprintf("%.2f",$line{unitprice}); |
220 |
$line{gst} = $gst; |
206 |
$line{invoice} = $invoice; |
221 |
$line{total} = $total; |
207 |
$line{gst} = $gst; |
222 |
$line{booksellerid} = $booksellerid; |
208 |
$line{total} = $total; |
223 |
$ordergrandtotal += $line{ecost} * $line{quantity}; |
209 |
$line{booksellerid} = $booksellerid; |
224 |
|
210 |
$ordergrandtotal += $line{ecost} * $line{quantity}; |
225 |
my $biblionumber = $line{'biblionumber'}; |
211 |
|
226 |
my $countbiblio = CountBiblioInOrders($biblionumber); |
212 |
my $biblionumber = $line{'biblionumber'}; |
227 |
my $ordernumber = $line{'ordernumber'}; |
213 |
my $countbiblio = CountBiblioInOrders($biblionumber); |
228 |
my @subscriptions = GetSubscriptionsId ($biblionumber); |
214 |
my $ordernumber = $line{'ordernumber'}; |
229 |
my $itemcount = GetItemsCount($biblionumber); |
215 |
my @subscriptions = GetSubscriptionsId ($biblionumber); |
230 |
my $holds = GetHolds ($biblionumber); |
216 |
my $itemcount = GetItemsCount($biblionumber); |
231 |
my @items = GetItemnumbersFromOrder( $ordernumber ); |
217 |
my $holds = GetHolds ($biblionumber); |
232 |
my $itemholds; |
218 |
my @items = GetItemnumbersFromOrder( $ordernumber ); |
233 |
foreach my $item (@items){ |
219 |
my $itemholds; |
234 |
my $nb = GetItemHolds($biblionumber, $item); |
220 |
foreach my $item (@items){ |
235 |
if ($nb){ |
221 |
my $nb = GetItemHolds($biblionumber, $item); |
236 |
$itemholds += $nb; |
222 |
if ($nb){ |
|
|
223 |
$itemholds += $nb; |
224 |
} |
237 |
} |
225 |
} |
238 |
} |
|
|
239 |
|
226 |
|
240 |
my $suggestion = GetSuggestionInfoFromBiblionumber($line{biblionumber}); |
227 |
my $suggestion = GetSuggestionInfoFromBiblionumber($line{biblionumber}); |
241 |
$line{suggestionid} = $suggestion->{suggestionid}; |
228 |
$line{suggestionid} = $suggestion->{suggestionid}; |
242 |
$line{surnamesuggestedby} = $suggestion->{surnamesuggestedby}; |
229 |
$line{surnamesuggestedby} = $suggestion->{surnamesuggestedby}; |
243 |
$line{firstnamesuggestedby} = $suggestion->{firstnamesuggestedby}; |
230 |
$line{firstnamesuggestedby} = $suggestion->{firstnamesuggestedby}; |
|
|
231 |
|
232 |
# if the biblio is not in other orders and if there is no items elsewhere and no subscriptions and no holds we can then show the link "Delete order and Biblio" see bug 5680 |
233 |
$line{can_del_bib} = 1 if $countbiblio <= 1 && $itemcount == scalar @items && !(@subscriptions) && !($holds); |
234 |
$line{items} = ($itemcount) - (scalar @items); |
235 |
$line{left_item} = 1 if $line{items} >= 1; |
236 |
$line{left_biblio} = 1 if $countbiblio > 1; |
237 |
$line{biblios} = $countbiblio - 1; |
238 |
$line{left_subscription} = 1 if scalar @subscriptions >= 1; |
239 |
$line{subscriptions} = scalar @subscriptions; |
240 |
$line{left_holds} = ($holds >= 1) ? 1 : 0; |
241 |
$line{left_holds_on_order} = 1 if $line{left_holds}==1 && ($line{items} == 0 || $itemholds ); |
242 |
$line{holds} = $holds; |
243 |
$line{holds_on_order} = $itemholds?$itemholds:$holds if $line{left_holds_on_order}; |
244 |
|
245 |
|
246 |
push @loop_orders, \%line if ($i >= $startfrom and $i < $startfrom + $resultsperpage); |
247 |
} |
244 |
|
248 |
|
245 |
# if the biblio is not in other orders and if there is no items elsewhere and no subscriptions and no holds we can then show the link "Delete order and Biblio" see bug 5680 |
249 |
my $count = $countpendings; |
246 |
$line{can_del_bib} = 1 if $countbiblio <= 1 && $itemcount == scalar @items && !(@subscriptions) && !($holds); |
|
|
247 |
$line{items} = ($itemcount) - (scalar @items); |
248 |
$line{left_item} = 1 if $line{items} >= 1; |
249 |
$line{left_biblio} = 1 if $countbiblio > 1; |
250 |
$line{biblios} = $countbiblio - 1; |
251 |
$line{left_subscription} = 1 if scalar @subscriptions >= 1; |
252 |
$line{subscriptions} = scalar @subscriptions; |
253 |
$line{left_holds} = 1 if $holds >= 1; |
254 |
$line{left_holds_on_order} = 1 if $line{left_holds}==1 && ($line{items} == 0 || $itemholds ); |
255 |
$line{holds} = $holds; |
256 |
$line{holds_on_order} = $itemholds?$itemholds:$holds if $line{left_holds_on_order}; |
257 |
|
258 |
|
259 |
push @loop_orders, \%line if ($i >= $startfrom and $i < $startfrom + $resultsperpage); |
260 |
} |
261 |
$freight = $totalfreight unless $freight; |
262 |
|
250 |
|
263 |
my $count = $countpendings; |
251 |
if ($count>$resultsperpage){ |
|
|
252 |
my $displaynext=0; |
253 |
my $displayprev=$startfrom; |
254 |
if(($count - ($startfrom+$resultsperpage)) > 0 ) { |
255 |
$displaynext = 1; |
256 |
} |
264 |
|
257 |
|
265 |
if ($count>$resultsperpage){ |
258 |
my @numbers = (); |
266 |
my $displaynext=0; |
259 |
for (my $i=1; $i<$count/$resultsperpage+1; $i++) { |
267 |
my $displayprev=$startfrom; |
260 |
my $highlight=0; |
268 |
if(($count - ($startfrom+$resultsperpage)) > 0 ) { |
261 |
($startfrom/$resultsperpage==($i-1)) && ($highlight=1); |
269 |
$displaynext = 1; |
262 |
push @numbers, { number => $i, |
270 |
} |
263 |
highlight => $highlight , |
|
|
264 |
startfrom => ($i-1)*$resultsperpage}; |
265 |
} |
271 |
|
266 |
|
272 |
my @numbers = (); |
267 |
my $from = $startfrom*$resultsperpage+1; |
273 |
for (my $i=1; $i<$count/$resultsperpage+1; $i++) { |
268 |
my $to; |
274 |
my $highlight=0; |
269 |
if($count < (($startfrom+1)*$resultsperpage)){ |
275 |
($startfrom/$resultsperpage==($i-1)) && ($highlight=1); |
270 |
$to = $count; |
276 |
push @numbers, { number => $i, |
271 |
} else { |
277 |
highlight => $highlight , |
272 |
$to = (($startfrom+1)*$resultsperpage); |
278 |
startfrom => ($i-1)*$resultsperpage}; |
273 |
} |
|
|
274 |
$template->param(numbers=>\@numbers, |
275 |
displaynext=>$displaynext, |
276 |
displayprev=>$displayprev, |
277 |
nextstartfrom=>(($startfrom+$resultsperpage<$count)?$startfrom+$resultsperpage:$count), |
278 |
prevstartfrom=>(($startfrom-$resultsperpage>0)?$startfrom-$resultsperpage:0) |
279 |
); |
279 |
} |
280 |
} |
280 |
|
281 |
|
281 |
my $from = $startfrom*$resultsperpage+1; |
282 |
$template->param( |
282 |
my $to; |
283 |
countpending => $countpendings, |
283 |
if($count < (($startfrom+1)*$resultsperpage)){ |
284 |
loop_orders => \@loop_orders, |
284 |
$to = $count; |
285 |
ordergrandtotal => sprintf($cfstr, $ordergrandtotal), |
285 |
} else { |
286 |
totalPunitprice => sprintf("%.2f", $totalPunitprice), |
286 |
$to = (($startfrom+1)*$resultsperpage); |
287 |
totalPquantity => $totalPquantity, |
287 |
} |
288 |
totalPqtyrcvd => $totalPqtyrcvd, |
288 |
$template->param(numbers=>\@numbers, |
289 |
totalPecost => sprintf("%.2f", $totalPecost), |
289 |
displaynext=>$displaynext, |
290 |
); |
290 |
displayprev=>$displayprev, |
|
|
291 |
nextstartfrom=>(($startfrom+$resultsperpage<$count)?$startfrom+$resultsperpage:$count), |
292 |
prevstartfrom=>(($startfrom-$resultsperpage>0)?$startfrom-$resultsperpage:0) |
293 |
); |
294 |
} |
291 |
} |
295 |
|
292 |
|
296 |
#$totalfreight=$freight; |
|
|
297 |
$tototal = $tototal + $freight; |
298 |
|
293 |
|
299 |
$template->param( |
294 |
$template->param( |
300 |
invoice => $invoice, |
295 |
invoiceid => $invoice->{invoiceid}, |
301 |
datereceived => $datereceived->output('iso'), |
296 |
invoice => $invoice->{invoicenumber}, |
302 |
invoicedatereceived => $datereceived->output('iso'), |
297 |
invoiceclosedate => $invoice->{closedate}, |
303 |
formatteddatereceived => $datereceived->output(), |
298 |
datereceived => $invoice->{'shipmentdate'}, |
|
|
299 |
invoicedatereceived => $invoice->{'billingdate'}, |
300 |
formatteddatereceived => $invoice->{'shipmentdate'}, |
304 |
name => $bookseller->{'name'}, |
301 |
name => $bookseller->{'name'}, |
305 |
booksellerid => $booksellerid, |
302 |
booksellerid => $bookseller->{id}, |
306 |
gst => $gst, |
303 |
gst => $gst, |
307 |
freight => $freight, |
|
|
308 |
invoice => $invoice, |
309 |
countreceived => $countlines, |
304 |
countreceived => $countlines, |
310 |
loop_received => \@loop_received, |
305 |
loop_received => \@loop_received, |
311 |
countpending => $countpendings, |
|
|
312 |
loop_orders => \@loop_orders, |
313 |
totalprice => sprintf($cfstr, $totalprice), |
306 |
totalprice => sprintf($cfstr, $totalprice), |
314 |
totalfreight => $totalfreight, |
|
|
315 |
totalquantity => $totalquantity, |
307 |
totalquantity => $totalquantity, |
316 |
tototal => sprintf($cfstr, $tototal), |
308 |
tototal => sprintf($cfstr, $tototal), |
317 |
ordergrandtotal => sprintf($cfstr, $ordergrandtotal), |
|
|
318 |
gst => $gst, |
309 |
gst => $gst, |
319 |
grandtot => sprintf($cfstr, $tototal + $gst), |
310 |
grandtot => sprintf($cfstr, $tototal + $gst), |
320 |
totalPunitprice => sprintf("%.2f", $totalPunitprice), |
|
|
321 |
totalPquantity => $totalPquantity, |
322 |
totalPqtyrcvd => $totalPqtyrcvd, |
323 |
totalPecost => sprintf("%.2f", $totalPecost), |
324 |
resultsperpage => $resultsperpage, |
311 |
resultsperpage => $resultsperpage, |
325 |
); |
312 |
); |
326 |
output_html_with_http_headers $input, $cookie, $template->output; |
313 |
output_html_with_http_headers $input, $cookie, $template->output; |
327 |
|
|
|