From e1d91c5f52b71addb04721c16a972084e2a33f22 Mon Sep 17 00:00:00 2001 From: Joe Hunt Date: Tue, 27 Sep 2011 09:39:52 +0200 Subject: [PATCH] 0001085: When doing multiple deliveries for an order should account for shipping costs already consumed --- sales/customer_delivery.php | 3 +++ sales/includes/db/sales_delivery_db.inc | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/sales/customer_delivery.php b/sales/customer_delivery.php index c7e051e1..30e35919 100644 --- a/sales/customer_delivery.php +++ b/sales/customer_delivery.php @@ -95,6 +95,9 @@ if (isset($_GET['OrderNumber']) && $_GET['OrderNumber'] > 0) { die ("
" . _("This order has no items. There is nothing to delivery.") . ""); } + // Adjust Shipping Charge based upon previous deliveries TAM + adjust_shipping_charge($ord, $_GET['OrderNumber']); + $_SESSION['Items'] = $ord; copy_from_cart(); diff --git a/sales/includes/db/sales_delivery_db.inc b/sales/includes/db/sales_delivery_db.inc index 72392077..f92feca5 100644 --- a/sales/includes/db/sales_delivery_db.inc +++ b/sales/includes/db/sales_delivery_db.inc @@ -148,6 +148,18 @@ function write_sales_delivery(&$delivery,$bo_policy) return $delivery_no; } +//-------------------------------------------------------------------------------------------------- +function adjust_shipping_charge(&$delivery, $trans_no) +{ + $sql = "SELECT sum(ov_freight) as freight FROM ".TB_PREF."debtor_trans WHERE order_ = $trans_no AND type = " . ST_CUSTDELIVERY . " AND debtor_no = " . $delivery->customer_id; + $result = db_query($sql, "Can not find delivery notes"); + $row = db_fetch_row($result); + if (!$row[0]) $freight = 0; + else $freight = $row[0]; + if ($freight < $delivery->freight_cost) $delivery->freight_cost = $delivery->freight_cost - $freight; + else $delivery->freight_cost = 0; +} + //-------------------------------------------------------------------------------------------------- function void_sales_delivery($type, $type_no, $transactions=true) -- 2.30.2