Fix duplicated payment amounts (#136)

This commit is contained in:
jekkos
2015-09-09 23:09:28 +02:00
parent 506aced23e
commit b41a006a79

View File

@@ -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'."