From b41a006a79318a14e09fa5319a05ea95e367f1d5 Mon Sep 17 00:00:00 2001 From: jekkos Date: Wed, 9 Sep 2015 23:09:28 +0200 Subject: [PATCH] Fix duplicated payment amounts (#136) --- application/models/sale.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/application/models/sale.php b/application/models/sale.php index 9f4b7212f..b9e3dbf91 100644 --- a/application/models/sale.php +++ b/application/models/sale.php @@ -85,21 +85,21 @@ class Sale extends CI_Model function get_payments_summary($inputs) { // get payment summary - $this->db->select('sales_payments.payment_type, count(*) AS count, SUM(payment_amount) AS payment_amount', FALSE); - $this->db->from('sales_payments'); - $this->db->join('sales_items_temp', 'sales_items_temp.sale_id=sales_payments.sale_id'); - $this->db->join('people', 'people.person_id = sales_items_temp.customer_id', 'left'); + $this->db->select('payment_type, count(*) AS count, SUM(payment_amount) AS payment_amount', FALSE); + $this->db->from('sales'); + $this->db->join('sales_payments', 'sales_payments.sale_id=sales.sale_id'); + $this->db->join('people', 'people.person_id = sales.customer_id', 'left'); if (empty($inputs['search'])) { - $this->db->where('sale_date BETWEEN '. $this->db->escape($inputs['start_date']). ' AND '. $this->db->escape($inputs['end_date'])); + $this->db->where('DATE(sale_time) BETWEEN '. $this->db->escape($inputs['start_date']). ' AND '. $this->db->escape($inputs['end_date'])); } else { if ($inputs['is_valid_receipt']) { $pieces = explode(' ',$inputs['search']); - $this->db->where('sales_items_temp.sale_id', $pieces[1]); + $this->db->where('sales.sale_id', $pieces[1]); } else @@ -127,7 +127,7 @@ class Sale extends CI_Model if ($inputs['only_cash'] != FALSE) { - $this->db->like('sales_payments.payment_type ', $this->lang->line('sales_cash'), 'after'); + $this->db->like('payment_type ', $this->lang->line('sales_cash'), 'after'); } $this->db->group_by("payment_type"); @@ -441,7 +441,7 @@ class Sale extends CI_Model } $this->db->query("CREATE TEMPORARY TABLE IF NOT EXISTS ".$this->db->dbprefix('sales_items_temp')." - (SELECT date(sale_time) as sale_date, sale_time, ".$this->db->dbprefix('sales_items').".sale_id, comment, payments.payment_type, payments.sale_payment_amount, item_location, customer_id, employee_id, + (SELECT date(sale_time) as sale_date, sale_time, ".$this->db->dbprefix('sales_items').".sale_id, comment, payments.payment_type, payment_method, payments.sale_payment_amount, item_location, customer_id, employee_id, ".$this->db->dbprefix('items').".item_id, supplier_id, quantity_purchased, item_cost_price, item_unit_price, SUM(percent) as item_tax_percent, discount_percent, ROUND((item_unit_price*quantity_purchased-item_unit_price*quantity_purchased*discount_percent/100)*$subtotal,2) as subtotal, ".$this->db->dbprefix('sales_items').".line as line, serialnumber, ".$this->db->dbprefix('sales_items').".description as description, @@ -453,7 +453,7 @@ class Sale extends CI_Model FROM ".$this->db->dbprefix('sales_items')." INNER JOIN ".$this->db->dbprefix('sales')." ON ".$this->db->dbprefix('sales_items').'.sale_id='.$this->db->dbprefix('sales').'.sale_id'." INNER JOIN ".$this->db->dbprefix('items')." ON ".$this->db->dbprefix('sales_items').'.item_id='.$this->db->dbprefix('items').'.item_id'." - INNER JOIN (SELECT sale_id, SUM(payment_amount) AS sale_payment_amount, + INNER JOIN (SELECT sale_id, SUM(payment_amount) AS sale_payment_amount, payment_type AS payment_method, GROUP_CONCAT(CONCAT(payment_type,' ',payment_amount) SEPARATOR ', ') AS payment_type FROM " . $this->db->dbprefix('sales_payments') . " GROUP BY sale_id) AS payments ON " . $this->db->dbprefix('sales_items') . '.sale_id'. "=" . "payments.sale_id LEFT OUTER JOIN ".$this->db->dbprefix('suppliers')." ON ".$this->db->dbprefix('items').'.supplier_id='.$this->db->dbprefix('suppliers').'.person_id'."