[Patches] [PATCH] bug_6504: Reintroduced freight costs when receiving orders
koha-patchbot at kohaaloha.com
koha-patchbot at kohaaloha.com
Mon Nov 7 18:20:04 NZDT 2011
From: Srdjan Jankovic <srdjan at catalyst.net.nz>
Date: Mon, 7 Nov 2011 18:06:07 +1300
Subject: [PATCH] bug_6504: Reintroduced freight costs when receiving orders
---
C4/Acquisition.pm | 4 +-
acqui/addorder.pl | 3 +
acqui/neworderempty.pl | 1 +
acqui/parcel.pl | 44 +++++++++-----------
.../prog/en/modules/acqui/neworderempty.tt | 6 +++
.../prog/en/modules/acqui/orderreceive.tt | 2 +-
.../intranet-tmpl/prog/en/modules/acqui/parcel.tt | 2 +-
.../intranet-tmpl/prog/en/modules/acqui/parcels.tt | 5 +-
8 files changed, 37 insertions(+), 30 deletions(-)
diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm
index a0dda42..519efb9 100644
--- a/C4/Acquisition.pm
+++ b/C4/Acquisition.pm
@@ -712,7 +712,8 @@ sub GetPendingOrders {
my $strsth = "
SELECT ".($grouped?"count(*),":"")."aqbasket.basketno,
surname,firstname,aqorders.*,biblio.*,biblioitems.isbn,
- aqbasket.closedate, aqbasket.creationdate, aqbasket.basketname
+ aqbasket.closedate, aqbasket.creationdate, aqbasket.basketname,
+ (SELECT count(*) FROM aqorders_items WHERE aqorders_items.ordernumber=aqorders.ordernumber) AS items
FROM aqorders
LEFT JOIN aqbasket ON aqbasket.basketno=aqorders.basketno
LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
@@ -1269,6 +1270,7 @@ sub GetParcel {
aqorders.listprice,
aqorders.rrp,
aqorders.ecost,
+ aqorders.freight,
biblio.title
FROM aqorders
LEFT JOIN aqbasket ON aqbasket.basketno=aqorders.basketno
diff --git a/acqui/addorder.pl b/acqui/addorder.pl
index d7f7e96..bab1ea9 100755
--- a/acqui/addorder.pl
+++ b/acqui/addorder.pl
@@ -103,6 +103,8 @@ budget_id used to pay this order.
=item C<cost>
+=item C<freight>
+
=item C<sub>
=item C<invoice>
@@ -174,6 +176,7 @@ $orderinfo->{'uncertainprice'} ||= 0;
#my $gst = $input->param('GST');
#my $budget = $input->param('budget');
#my $cost = $input->param('cost');
+#my $freight = $input->param('freight');
#my $sub = $input->param('sub');
#my $purchaseorder = $input->param('purchaseordernumber');
#my $invoice = $input->param('invoice');
diff --git a/acqui/neworderempty.pl b/acqui/neworderempty.pl
index 459dfe8..f3cd048 100755
--- a/acqui/neworderempty.pl
+++ b/acqui/neworderempty.pl
@@ -384,6 +384,7 @@ $template->param(
quantityrec => $data->{'quantity'},
rrp => $data->{'rrp'},
listprice => sprintf("%.2f", $data->{'listprice'}||$data->{'price'}||$listprice),
+ freight => sprintf("%.2f", $data->{'freight'}||0),
total => sprintf("%.2f", ($data->{'ecost'}||0)*($data->{'quantity'}||0) ),
ecost => $data->{'ecost'},
unitprice => sprintf("%.2f", $data->{'unitprice'}),
diff --git a/acqui/parcel.pl b/acqui/parcel.pl
index c256c60..5c397e4 100755
--- a/acqui/parcel.pl
+++ b/acqui/parcel.pl
@@ -178,27 +178,25 @@ for (my $i = 0 ; $i < $countlines ; $i++) {
$totalprice += $parcelitems[$i]->{'unitprice'};
$line{unitprice} = sprintf($cfstr, $parcelitems[$i]->{'unitprice'});
- #double FIXME - totalfreight is redefined later.
-
-# 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..
- if ($i > 0 && $totalfreight != $parcelitems[$i]->{'freight'}) {
- warn "FREIGHT CHARGE MISMATCH!!";
- }
- $totalfreight = $parcelitems[$i]->{'freight'};
+ $totalfreight += $parcelitems[$i]->{'freight'};
$totalquantity += $parcelitems[$i]->{'quantityreceived'};
$tototal += $total;
}
my $pendingorders = GetPendingOrders($supplierid);
-my $countpendings = scalar @$pendingorders;
+my $countpendingitems = 0;
+if ($pendingorders) {
+ $countpendingitems += $_->{items} || 1 foreach @$pendingorders;
+}
+my $freight_per_item = $freight && $countpendingitems ? $freight/$countpendingitems : 0;
# pending orders totals
my ($totalPunitprice, $totalPquantity, $totalPecost, $totalPqtyrcvd);
my $ordergrandtotal;
my @loop_orders = ();
-for (my $i = 0 ; $i < $countpendings ; $i++) {
- my %line;
- %line = %{$pendingorders->[$i]};
+for (my $i = $startfrom; $i < $startfrom + $resultsperpage; $i++) {
+ last unless $pendingorders->[$i];
+ my %line = %{$pendingorders->[$i]};
$line{quantity}+=0;
$line{quantityreceived}+=0;
@@ -210,6 +208,7 @@ for (my $i = 0 ; $i < $countpendings ; $i++) {
$line{ecost} = sprintf("%.2f",$line{ecost});
$line{ordertotal} = sprintf("%.2f",$line{ecost}*$line{quantity});
$line{unitprice} = sprintf("%.2f",$line{unitprice});
+ $line{freight} = sprintf("%.2f",$freight_per_item * ($line{items} || 1));
$line{invoice} = $invoice;
$line{gst} = $gst;
$line{total} = $total;
@@ -244,22 +243,20 @@ for (my $i = 0 ; $i < $countpendings ; $i++) {
$line{holds} = $holds;
$line{holds_on_order} = $itemholds?$itemholds:$holds if $line{left_holds_on_order};
-
- push @loop_orders, \%line if ($i >= $startfrom and $i < $startfrom + $resultsperpage);
+ push @loop_orders, \%line;
}
-$freight = $totalfreight unless $freight;
-my $count = $countpendings;
+my $countpendings = $pendingorders ? scalar (@$pendingorders) : 0;
-if ($count>$resultsperpage){
+if ($countpendings>$resultsperpage){
my $displaynext=0;
my $displayprev=$startfrom;
- if(($count - ($startfrom+$resultsperpage)) > 0 ) {
+ if(($countpendings - ($startfrom+$resultsperpage)) > 0 ) {
$displaynext = 1;
}
my @numbers = ();
- for (my $i=1; $i<$count/$resultsperpage+1; $i++) {
+ for (my $i=1; $i<$countpendings/$resultsperpage+1; $i++) {
my $highlight=0;
($startfrom/$resultsperpage==($i-1)) && ($highlight=1);
push @numbers, { number => $i,
@@ -269,21 +266,20 @@ if ($count>$resultsperpage){
my $from = $startfrom*$resultsperpage+1;
my $to;
- if($count < (($startfrom+1)*$resultsperpage)){
- $to = $count;
+ if($countpendings < (($startfrom+1)*$resultsperpage)){
+ $to = $countpendings;
} else {
$to = (($startfrom+1)*$resultsperpage);
}
$template->param(numbers=>\@numbers,
displaynext=>$displaynext,
displayprev=>$displayprev,
- nextstartfrom=>(($startfrom+$resultsperpage<$count)?$startfrom+$resultsperpage:$count),
+ nextstartfrom=>(($startfrom+$resultsperpage<$countpendings)?$startfrom+$resultsperpage:$countpendings),
prevstartfrom=>(($startfrom-$resultsperpage>0)?$startfrom-$resultsperpage:0)
);
}
-#$totalfreight=$freight;
-$tototal = $tototal + $freight;
+$tototal = $tototal + $totalfreight;
$template->param(
invoice => $invoice,
@@ -300,7 +296,7 @@ $template->param(
countpending => $countpendings,
loop_orders => \@loop_orders,
totalprice => sprintf($cfstr, $totalprice),
- totalfreight => $totalfreight,
+ totalfreight => sprintf($cfstr, $totalfreight),
totalquantity => $totalquantity,
tototal => sprintf($cfstr, $tototal),
ordergrandtotal => sprintf($cfstr, $ordergrandtotal),
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
index 68c290a..cf8e019 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
@@ -464,6 +464,12 @@ $(document).ready(function()
<input type="text" id="unitprice" size="20" name="unitprice" value="[% unitprice %]" />
[% END %]
</li>
+ [% IF ( quantityrec ) %]
+ <li>
+ <label for="freight">Freight: </label>
+ <input type="text" id="freight" size="20" name="freight" value="[% freight %]" [% IF close %] readonly="readonly" [% END %]/>
+ </li>
+ [% END %]
<li>
<label for="notes">Notes: </label>
<textarea id="notes" cols="30" rows="3" name="notes" >[% notes %]</textarea>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt
index 7147b19..ce41f6e 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt
@@ -82,7 +82,6 @@
<input type="hidden" name="biblioitemnumber" value="[% biblioitemnumber %]" />
<input type="hidden" name="supplierid" value="[% supplierid %]" />
<input type="hidden" name="datereceived" value="[% datereceived_iso %]" />
- <input type="hidden" name="freight" value="[% freight %]" />
<input type="hidden" name="gst" value="[% gst %]" />
</div>
<div class="yui-u">
@@ -127,6 +126,7 @@
[% ELSE %]
<input type="text" size="20" name="cost" id="cost" value="[% ecost %]" />
[% END %]</li></ol>
+ <li><label for="freight">Freight: </label><input type="text" size="20" name="freight" id="freight" value="[% freight %]" /></li>
<label for="note">Notes: </label><textarea name="note" width="40" rows="8" >[% notes %]</textarea>
<input type="hidden" name="invoice" value="[% invoice %]" />
</fieldset>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt
index 45eb591..86789d2 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt
@@ -325,7 +325,7 @@
<tr>
<td colspan="6">
</td>
- <td>Shipping</td>
+ <td>Shipping cost</td>
<td>[% totalfreight %]</td>
</tr>
[% END %]
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt
index a7d704d..4478f34 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt
@@ -96,11 +96,10 @@
<input type="text" size="20" id="gst" name="gst" />
</li>
[% END %]
- <!-- // Removing freight input until shipping can be proplerly handled .
<li>
- <label for="freight">Shipping:</label>
+ <label for="freight">Shipping cost:</label>
<input type="text" size="20" id="freight" name="freight" />
- </li> -->
+ </li>
<li><label for="datereceived">Shipment date: </label>
<input type="text" id="datereceived" name="datereceived" maxlength="10" size="10" value="[% datereceived_today %]" />
<img src="[% themelang %]/lib/calendar/cal.gif" id="datereceived_button" alt="Show Calendar" />
--
1.6.5
More information about the Patches
mailing list