-# if new basket, pre-fill infos
-$basket->{creationdate} = "" unless ($basket->{creationdate});
-$basket->{authorisedby} = $loggedinuser unless ($basket->{authorisedby});
-($count,@results)=getbasketcontent($basketno,'',$order);
-
-my $line_total; # total of each line
-my $sub_total; # total of line totals
-my $gist; # GST
-my $grand_total; # $subttotal + $gist
-
-# my $line_total_est; # total of each line
-my $sub_total_est; # total of line totals
-my $gist_est; # GST
-my $grand_total_est; # $subttotal + $gist
-
-my $qty_total;
-
-my @books_loop;
-for (my $i=0;$i<$count;$i++){
- my $rrp=$results[$i]->{'listprice'};
- $rrp=curconvert($results[$i]->{'currency'},$rrp);
-
- $sub_total_est+=$results[$i]->{'quantity'}*$results[$i]->{'rrp'};
- $line_total=$results[$i]->{'quantity'}*$results[$i]->{'ecost'};
- $sub_total+=$line_total;
- $qty_total += $results[$i]->{'quantity'};
- my %line;
- $line{ordernumber} = $results[$i]->{'ordernumber'};
- $line{publishercode} = $results[$i]->{'publishercode'};
- $line{isbn} = $results[$i]->{'isbn'};
- $line{booksellerid} = $results[$i]->{'booksellerid'};
- $line{basketno}=$basketno;
- $line{title} = $results[$i]->{'title'};
- $line{notes} = $results[$i]->{'notes'};
- $line{author} = $results[$i]->{'author'};
- $line{i} = $i;
- $line{rrp} = sprintf("%.2f",$results[$i]->{'rrp'});
- $line{ecost} = sprintf("%.2f",$results[$i]->{'ecost'});
- $line{quantity} = $results[$i]->{'quantity'};
- $line{quantityrecieved} = $results[$i]->{'quantityreceived'};
- $line{line_total} = sprintf("%.2f",$line_total);
- $line{biblionumber} = $results[$i]->{'biblionumber'};
- $line{bookfundid} = $results[$i]->{'bookfundid'};
- $line{odd} = $i %2;
- push @books_loop, \%line;
+ my $sub_total; # total of line totals
+ my $grand_total; # $subttotal + $gist
+
+ # my $line_total_est; # total of each line
+ my $sub_total_est; # total of line totals
+ my $sub_total_rrp; # total of line totals
+ my $grand_total_est; # $subttotal + $gist
+
+ my $qty_total;
+ my @books_loop;
+ for ( my $i = 0 ; $i < $count ; $i++ ) {
+ my $rrp = $results[$i]->{'listprice'};
+ my $qty = $results[$i]->{'quantity'};
+ $rrp = ConvertCurrency( $results[$i]->{'currency'}, $rrp );
+ $sub_total_rrp += $qty * $results[$i]->{'rrp'};
+ my $line_total = $qty * $results[$i]->{'ecost'};
+ # FIXME: what about the "actual cost" field?
+ $sub_total += $line_total;
+ $qty_total += $qty;
+ my %line = %{ $results[$i] };
+ ($i%2) and $line{toggle} = 1;
+ $line{order_received}= ( $qty eq $results[$i]->{'quantityreceived'} );
+ $line{basketno} = $basketno;
+ $line{i} = $i;
+ $line{rrp} = sprintf( "%.2f", $line{'rrp'} );
+ $line{ecost} = sprintf( "%.2f", $line{'ecost'} );
+ $line{line_total} = sprintf( "%.2f", $line_total );
+ $line{odd} = $i % 2;
+ push @books_loop, \%line;
+ }
+ my $prefgist = C4::Context->preference("gist") || 0;
+ my $gist = $sub_total * $prefgist;
+ my $gist_rrp = $sub_total_rrp * $prefgist;
+ $grand_total = $sub_total_est = $sub_total;
+ $grand_total_est = $sub_total_est; # FIXME: Too many things that are ALL the SAME
+ my $temp;
+ if ($temp = $bookseller->{'listincgst'}) {
+ $template->param(listincgst => $temp);
+ $gist = 0;
+ } else {
+ $grand_total += $gist;
+ $grand_total_est += $sub_total_est * $prefgist; # same thing as += gist
+ }
+ if ($temp = $bookseller->{'discount'}) {
+ $template->param(discount => sprintf( "%.2f", $temp ));
+ }
+ $template->param(
+ basketno => $basketno,
+ creationdate => format_date( $basket->{creationdate} ),
+ authorisedby => $basket->{authorisedby},
+ authorisedbyname => $basket->{authorisedbyname},
+ closedate => format_date( $basket->{closedate} ),
+ active => $bookseller->{'active'},
+ booksellerid => $bookseller->{'id'},
+ name => $bookseller->{'name'},
+ address1 => $bookseller->{'address1'},
+ address2 => $bookseller->{'address2'},
+ address3 => $bookseller->{'address3'},
+ address4 => $bookseller->{'address4'},
+ entrydate => format_date( $results[0]->{'entrydate'} ),
+ books_loop => \@books_loop,
+ sort_loop => \@sort_loop,
+ count => $count,
+ gist => $gist ? sprintf( "%.2f", $gist ) : 0,
+ gist_rate => sprintf( "%.2f", $prefgist * 100) . '%',
+ gist_est => sprintf( "%.2f", $sub_total_est * $prefgist ),
+ gist_rrp => sprintf( "%.2f", $gist_rrp),
+ sub_total => sprintf( "%.2f", $sub_total ),
+ grand_total => sprintf( "%.2f", $grand_total ),
+ sub_total_est => sprintf( "%.2f", $sub_total_est),
+ grand_total_est => sprintf( "%.2f", $grand_total_est),
+ sub_total_rrp => sprintf( "%.2f", $sub_total_rrp),
+ grand_total_rrp => sprintf( "%.2f", $sub_total_rrp + $gist_rrp),
+ currency => $bookseller->{'listprice'},
+ qty_total => $qty_total,
+ GST => $prefgist,
+ );