53 lines
1.3 KiB
MySQL
53 lines
1.3 KiB
MySQL
|
SELECT
|
||
|
issued,
|
||
|
CAST(debtOut AS DECIMAL(10,2)) debtOut,
|
||
|
CAST(debtIn AS DECIMAL(10,2)) debtIn,
|
||
|
ref,
|
||
|
companyFk,
|
||
|
priority
|
||
|
FROM (
|
||
|
SELECT
|
||
|
? AS issued,
|
||
|
SUM(amountUnpaid) AS debtOut,
|
||
|
NULL AS debtIn,
|
||
|
'Saldo Anterior' AS ref,
|
||
|
companyFk,
|
||
|
0 as priority
|
||
|
FROM (
|
||
|
SELECT SUM(amount) AS amountUnpaid, companyFk, 0
|
||
|
FROM invoiceOut io
|
||
|
WHERE io.clientFk = ?
|
||
|
AND io.issued < ?
|
||
|
GROUP BY io.companyFk
|
||
|
UNION ALL
|
||
|
SELECT SUM(-1 * amountPaid), companyFk, 0
|
||
|
FROM receipt
|
||
|
WHERE clientFk = ?
|
||
|
AND payed < ?
|
||
|
GROUP BY companyFk) AS transactions
|
||
|
GROUP BY companyFk
|
||
|
UNION ALL
|
||
|
SELECT
|
||
|
issued,
|
||
|
amount as debtOut,
|
||
|
NULL AS debtIn,
|
||
|
ref,
|
||
|
companyFk,
|
||
|
1
|
||
|
FROM invoiceOut
|
||
|
WHERE clientFk = ?
|
||
|
AND issued >= ?
|
||
|
UNION ALL
|
||
|
SELECT
|
||
|
r.payed,
|
||
|
NULL as debtOut,
|
||
|
r.amountPaid,
|
||
|
r.invoiceFk,
|
||
|
r.companyFk,
|
||
|
0
|
||
|
FROM receipt r
|
||
|
WHERE r.clientFk = ?
|
||
|
AND r.payed >= ?) t
|
||
|
INNER JOIN `client` c ON c.id = ?
|
||
|
HAVING debtOut <> 0 OR debtIn <> 0
|
||
|
ORDER BY issued, priority DESC, debtIn;
|