master #2823

Merged
robert merged 14 commits from master into test 2024-08-01 05:05:16 +00:00
2 changed files with 61 additions and 55 deletions
Showing only changes of commit 94d89f9c99 - Show all commits

View File

@ -13,60 +13,65 @@ BEGIN
(PRIMARY KEY (ticketFk))
ENGINE = MEMORY
WITH ticket AS (
SELECT t.id ticketFk,
t.companyFk,
DATE(t.shipped) dated,
t.totalWithVat,
ticket_isProblemCalcNeeded(t.id) isProblemCalcNeeded
FROM vn.ticket t
JOIN vn.clientConfig cc
WHERE t.clientFk = vClientFk
AND t.refFk IS NULL
AND NOT t.isDeleted
AND IFNULL(t.totalWithVat, 0) <> 0
AND t.shipped > (util.VN_CURDATE() - INTERVAL cc.riskScope MONTH)
), balance AS (
SELECT SUM(amount)amount, companyFk
FROM (
SELECT amount, companyFk
FROM vn.clientRisk
WHERE clientFk = vClientFk
UNION ALL
SELECT -(SUM(amount) / 100) amount, tm.companyFk
FROM hedera.tpvTransaction t
JOIN hedera.tpvMerchant tm ON t.id = t.merchantFk
WHERE clientFk = vClientFk
AND receiptFk IS NULL
AND `status` = 'ok'
) sub
WHERE companyFk
GROUP BY companyFk
), uninvoiced AS (
SELECT companyFk, dated, SUM(totalWithVat) amount
FROM ticket
GROUP BY companyFk, dated
), receipt AS (
SELECT companyFk, DATE(payed) dated, SUM(amountPaid) amount
FROM vn.receipt
WHERE clientFk = vClientFk
AND payed > util.VN_CURDATE()
GROUP BY companyFk, DATE(payed)
), risk AS (
SELECT b.companyFk,
ui.dated,
SUM(ui.amount) OVER (PARTITION BY b.companyFk ORDER BY ui.dated) +
b.amount +
SUM(IFNULL(r.amount, 0)) amount
FROM balance b
JOIN uninvoiced ui ON ui.companyFk = b.companyFk
LEFT JOIN receipt r ON r.dated > ui.dated
AND r.companyFk = ui.companyFk
GROUP BY b.companyFk, ui.dated
)
SELECT ti.ticketFk, r.amount, ti.isProblemCalcNeeded
FROM ticket ti
JOIN risk r ON r.dated = ti.dated
AND r.companyFk = ti.companyFk;
SELECT t.id ticketFk,
t.companyFk,
DATE(t.shipped) dated,
t.totalWithVat,
ticket_isProblemCalcNeeded(t.id) isProblemCalcNeeded
FROM vn.ticket t
JOIN vn.clientConfig cc
WHERE t.clientFk = vClientFk
AND t.refFk IS NULL
AND NOT t.isDeleted
AND IFNULL(t.totalWithVat, 0) <> 0
AND t.shipped > (util.VN_CURDATE() - INTERVAL cc.riskScope MONTH)
), uninvoiced AS (
SELECT companyFk, dated, SUM(totalWithVat) amount
FROM ticket
GROUP BY companyFk, dated
), companies AS (
SELECT DISTINCT companyFk FROM uninvoiced
), balance AS (
SELECT SUM(IFNULL(amount, 0))amount, companyFk
FROM (
SELECT cr.amount, c.companyFk
FROM companies c
LEFT JOIN vn.clientRisk cr ON cr.companyFk = c.companyFk
AND cr.clientFk = vClientFk
UNION ALL
SELECT -(SUM(t.amount) / 100) amount, c.companyFk
FROM companies c
LEFT JOIN hedera.tpvMerchant tm ON tm.companyFk = c.companyFk
LEFT JOIN hedera.tpvTransaction t ON t.merchantFk = tm.id
AND t.clientFk = vClientFk
AND t.receiptFk IS NULL
AND t.`status` = 'ok'
) sub
WHERE companyFk
GROUP BY companyFk
), receipt AS (
SELECT r.companyFk, DATE(r.payed) dated, SUM(r.amountPaid) amount
FROM vn.receipt r
JOIN companies c ON c.companyFk = r.companyFk
WHERE r.clientFk = vClientFk
AND r.payed > util.VN_CURDATE()
GROUP BY r.companyFk, DATE(r.payed)
), risk AS (
SELECT b.companyFk,
ui.dated,
SUM(ui.amount) OVER (PARTITION BY b.companyFk ORDER BY ui.dated) +
b.amount +
SUM(IFNULL(r.amount, 0)) amount
FROM balance b
JOIN uninvoiced ui ON ui.companyFk = b.companyFk
LEFT JOIN receipt r ON r.dated > ui.dated
AND r.companyFk = ui.companyFk
GROUP BY b.companyFk, ui.dated
)
SELECT ti.ticketFk, r.amount, ti.isProblemCalcNeeded
FROM ticket ti
JOIN risk r ON r.dated = ti.dated
AND r.companyFk = ti.companyFk;
UPDATE ticket t
JOIN tTicketRisk tr ON tr.ticketFk = t.id

View File

@ -101,7 +101,8 @@ module.exports = Self => {
'groupingMode',
'inkFk',
'originFk',
'producerFk'
'producerFk',
'comment'
],
include: [
{