- $date = date2sql($date);
-
- $sql = "SELECT ".TB_PREF."supp_trans.*, ".TB_PREF."sys_types.type_name,
- (".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount)
- AS TotalAmount, ".TB_PREF."supp_trans.alloc AS Allocated,
- ((".TB_PREF."supp_trans.type = 20)
- AND ".TB_PREF."supp_trans.due_date < '$date') AS OverDue
- FROM ".TB_PREF."supp_trans, ".TB_PREF."sys_types
- WHERE ".TB_PREF."supp_trans.tran_date <= '$date' AND ".TB_PREF."supp_trans.supplier_id = '$supplier_id'
- AND ".TB_PREF."supp_trans.type = ".TB_PREF."sys_types.type_id
- ORDER BY ".TB_PREF."supp_trans.tran_date";
+ if ($to)
+ $to = date2sql($to);
+
+ $sql = "SELECT SUM(IF(t.type = ".ST_SUPPINVOICE." OR (t.type IN (".ST_JOURNAL." , ".ST_BANKDEPOSIT.") AND t.ov_amount>0),
+ -abs(t.ov_amount + t.ov_gst + t.ov_discount), 0)) AS charges,";
+
+ $sql .= "SUM(IF(t.type != ".ST_SUPPINVOICE." AND NOT(t.type IN (".ST_JOURNAL." , ".ST_BANKDEPOSIT.") AND t.ov_amount>0),
+ abs(t.ov_amount + t.ov_gst + t.ov_discount) * -1, 0)) AS credits,";
+
+ $sql .= "SUM(IF(t.type != ".ST_SUPPINVOICE." AND NOT(t.type IN (".ST_JOURNAL." , ".ST_BANKDEPOSIT.")), t.alloc * -1, t.alloc))
+ AS Allocated,";
+
+ $sql .= "SUM(IF(t.type = ".ST_SUPPINVOICE.", 1, -1) *
+ (abs(t.ov_amount + t.ov_gst + t.ov_discount) - abs(t.alloc))) AS OutStanding
+ FROM ".TB_PREF."supp_trans t
+ WHERE t.supplier_id = ".db_escape($supplier_id);
+ if ($to)
+ $sql .= " AND t.tran_date < '$to'";
+ $sql .= " GROUP BY supplier_id";
+
+ $result = db_query($sql,"No transactions were returned");
+ return db_fetch($result);
+}
+
+function getTransactions($supplier_id, $from, $to)
+{
+ $from = date2sql($from);
+ $to = date2sql($to);
+
+ $sql = "SELECT *,
+ (ov_amount + ov_gst + ov_discount) AS TotalAmount,
+ alloc AS Allocated,
+ ((type = ".ST_SUPPINVOICE.") AND due_date < '$to') AS OverDue
+ FROM ".TB_PREF."supp_trans
+ WHERE tran_date >= '$from' AND tran_date <= '$to'
+ AND supplier_id = '$supplier_id' AND ov_amount!=0
+ ORDER BY tran_date";