From 9581421554b8e422fac73119acc3a8fe060ce310 Mon Sep 17 00:00:00 2001 From: Joe Hunt Date: Fri, 1 Aug 2008 21:34:47 +0000 Subject: [PATCH] Customer Dimension overrides an Item Dimension when creating GL transactions --- CHANGELOG.txt | 7 +++++++ sales/includes/db/customers_db.inc | 9 +++++++++ sales/includes/db/sales_credit_db.inc | 14 ++++++++------ sales/includes/db/sales_delivery_db.inc | 9 +++++++-- sales/includes/db/sales_invoice_db.inc | 25 +++++++++++++------------ 5 files changed, 44 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 61269f27..191dbf8e 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -19,6 +19,13 @@ Legend: ! -> Note $ -> Affected files +01-Aug-2008 Joe Hunt +! Customer Dimension overrides an Item Dimension when creating GL transactions +$ /sales/includes/db/customers_db.inc + /sales/includes/db/sales_credit_db.inc + /sales/includes/db/sales_delivery_db.inc + /sales/includes/db/sales_invoice_db.inc + 31-Jul-2008 Joe Hunt + Added a new menu entry after that Bank Payment or Bank Deposit has been processed. $ /gl/gl_bank.php diff --git a/sales/includes/db/customers_db.inc b/sales/includes/db/customers_db.inc index c13554df..30cf7b87 100644 --- a/sales/includes/db/customers_db.inc +++ b/sales/includes/db/customers_db.inc @@ -89,6 +89,15 @@ function get_customer_details($customer_id, $to=null) } +function get_customer($customer_id) +{ + $sql = "SELECT * FROM ".TB_PREF."debtors_master WHERE debtor_no=$customer_id"; + + $result = db_query($sql, "could not get customer"); + + return db_fetch($result); +} + function get_customer_name($customer_id) { $sql = "SELECT name FROM ".TB_PREF."debtors_master WHERE debtor_no=$customer_id"; diff --git a/sales/includes/db/sales_credit_db.inc b/sales/includes/db/sales_credit_db.inc index bb284f04..2faf9e7e 100644 --- a/sales/includes/db/sales_credit_db.inc +++ b/sales/includes/db/sales_credit_db.inc @@ -198,14 +198,18 @@ function add_gl_trans_credit_costs($order, $order_line, $credit_no, $date_, $credit_type, $write_off_gl_code, &$branch_data) { $stock_gl_codes = get_stock_gl_code($order_line->stock_id); + $customer = get_customer($order->customer_id); + // 2008-08-01. If there is a Customer Dimension, then override with this, + // else take the Item Dimension (if any) + $dim = ($customer['dimension_id'] != 0 ? $customer["dimension_id"] : $stock_gl_codes["dimension_id"]); + $dim2 = ($customer['dimension2_id'] != 0 ? $customer["dimension2_id"] : $stock_gl_codes["dimension2_id"]); /* insert gl_trans to credit stock and debit cost of sales at standard cost*/ if ($order_line->standard_cost != 0) { /*first the cost of sales entry*/ add_gl_trans_std_cost(11, $credit_no, $date_, $stock_gl_codes["cogs_account"], - $stock_gl_codes["dimension_id"], $stock_gl_codes["dimension2_id"], "", - -($order_line->standard_cost * $order_line->qty_dispatched), + $dim, $dim2, "", -($order_line->standard_cost * $order_line->qty_dispatched), payment_person_types::customer(), $order->customer_id, "The cost of sales GL posting could not be inserted"); @@ -242,16 +246,14 @@ function add_gl_trans_credit_costs($order, $order_line, $credit_no, $date_, $sales_account = $branch_data['sales_account']; else $sales_account = $stock_gl_codes['sales_account']; - add_gl_trans_customer(11, $credit_no, $date_, $sales_account, $stock_gl_codes["dimension_id"], - $stock_gl_codes["dimension2_id"], + add_gl_trans_customer(11, $credit_no, $date_, $sales_account, $dim, $dim2, ($line_taxfree_price * $order_line->qty_dispatched), $order->customer_id, "The credit note GL posting could not be inserted"); if ($order_line->discount_percent != 0) { add_gl_trans_customer(11, $credit_no, $date_, $branch_data["sales_discount_account"], - $stock_gl_codes["dimension_id"], $stock_gl_codes["dimension2_id"], - -($line_taxfree_price * $order_line->qty_dispatched * $order_line->discount_percent), + $dim, $dim2, -($line_taxfree_price * $order_line->qty_dispatched * $order_line->discount_percent), $order->customer_id, "The credit note discount GL posting could not be inserted"); diff --git a/sales/includes/db/sales_delivery_db.inc b/sales/includes/db/sales_delivery_db.inc index c216a572..7c24cb12 100644 --- a/sales/includes/db/sales_delivery_db.inc +++ b/sales/includes/db/sales_delivery_db.inc @@ -10,6 +10,7 @@ function write_sales_delivery(&$delivery,$bo_policy) begin_transaction(); + $customer = get_customer($delivery->customer_id); $delivery_items_total = $delivery->get_items_total_dispatch(); $freight_tax = $delivery->get_shipping_tax(); @@ -74,9 +75,13 @@ function write_sales_delivery(&$delivery,$bo_policy) if ($delivery_line->standard_cost != 0) { /*first the cost of sales entry*/ + // 2008-08-01. If there is a Customer Dimension, then override with this, + // else take the Item Dimension (if any) + $dim = ($customer['dimension_id'] != 0 ? $customer["dimension_id"] : $stock_gl_code["dimension_id"]); + $dim2 = ($customer['dimension2_id'] != 0 ? $customer["dimension2_id"] : $stock_gl_code["dimension2_id"]); + add_gl_trans_std_cost(13, $delivery_no, - $delivery->document_date, $stock_gl_code["cogs_account"], - $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], "", + $delivery->document_date, $stock_gl_code["cogs_account"], $dim, $dim2, "", $delivery_line->standard_cost * $delivery_line->qty_dispatched, payment_person_types::customer(), $delivery->customer_id, "The cost of sales GL posting could not be inserted"); diff --git a/sales/includes/db/sales_invoice_db.inc b/sales/includes/db/sales_invoice_db.inc index 4bf6ee48..b3dfd743 100644 --- a/sales/includes/db/sales_invoice_db.inc +++ b/sales/includes/db/sales_invoice_db.inc @@ -19,6 +19,8 @@ function write_sales_invoice(&$invoice) $branch_data = get_branch_accounts($invoice->Branch); + $customer = get_customer($invoice->customer_id); + // offer price values without freight costs $items_total = $invoice->get_items_total_dispatch(); $freight_tax = $invoice->get_shipping_tax(); @@ -93,26 +95,25 @@ function write_sales_invoice(&$invoice) if ($invoice_line->qty_dispatched != 0) { $stock_gl_code = get_stock_gl_code($invoice_line->stock_id); - // 2008-06-14. If there is a Branch Sales Account, then override with this, - // else take the Item Sales Account - if ($branch_data['sales_account'] != "") - $sales_account = $branch_data['sales_account']; - else - $sales_account = $stock_gl_code['sales_account']; if ($invoice_line->line_price() != 0) { //Post sales transaction to GL credit sales - add_gl_trans_customer(10, $invoice_no, $date_, $sales_account, - $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], - (-$line_taxfree_price * $invoice_line->qty_dispatched), - $invoice->customer_id, "The sales price GL posting could not be inserted"); + // 2008-06-14. If there is a Branch Sales Account, then override with this, + // else take the Item Sales Account + $sales_account = ($branch_data['sales_account'] != "" ? $branch_data['sales_account'] : $stock_gl_code['sales_account']); + // 2008-08-01. If there is a Customer Dimension, then override with this, + // else take the Item Dimension (if any) + $dim = ($customer['dimension_id'] != 0 ? $customer["dimension_id"] : $stock_gl_code["dimension_id"]); + $dim2 = ($customer['dimension2_id'] != 0 ? $customer["dimension2_id"] : $stock_gl_code["dimension2_id"]); + add_gl_trans_customer(10, $invoice_no, $date_, $sales_account, $dim, $dim2, + (-$line_taxfree_price * $invoice_line->qty_dispatched), + $invoice->customer_id, "The sales price GL posting could not be inserted"); if ($invoice_line->discount_percent != 0) { add_gl_trans_customer(10, $invoice_no, $date_, - $branch_data["sales_discount_account"], $stock_gl_code["dimension_id"], - $stock_gl_code["dimension2_id"], + $branch_data["sales_discount_account"], $dim, $dim2, ($line_taxfree_price * $invoice_line->qty_dispatched * $invoice_line->discount_percent), $invoice->customer_id, "The sales discount GL posting could not be inserted"); } /*end of if discount !=0 */ -- 2.30.2