sale order
SAP-ERP Portal CI/CD / build (push) Successful in 3m57s

This commit is contained in:
John
2026-10-05 18:45:17 +05:30
parent e725a6571b
commit eead8f5ffd
129 changed files with 14252 additions and 452 deletions
+28 -25
View File
@@ -58,6 +58,11 @@ function validUQC(code) {
// ── SQL builders ──────────────────────────────────────────────────────────
// Deemed Export (DE) sales ledgers — invoices posting to any of these GL
// accounts are reported as B2B with invoice_type 'DE' and kept out of EXP.
// Updated 05-10-2026: added 4110202005, 4110202007 (matches EXCL_EI in reports.js)
const DE_LEDGERS = `'4110202001','4110202003','4110202005','4110202007'`;
function sqlB2B(from, to) {
return `
WITH TaxData AS (
@@ -127,7 +132,7 @@ WITH TaxData AS (
FROM TaxData GROUP BY DocEntry, TaxRate
)
SELECT
CASE WHEN EXISTS (SELECT 1 FROM INV1 T_DE WHERE T_DE.DocEntry=T_ODOC.DocEntry AND T_DE.AcctCode IN ('4110202001','4110202003')) THEN 'DE'
CASE WHEN EXISTS (SELECT 1 FROM INV1 T_DE WHERE T_DE.DocEntry=T_ODOC.DocEntry AND T_DE.AcctCode IN (${DE_LEDGERS})) THEN 'DE'
WHEN T_DOC12.CountryB<>'IN' THEN 'EXP'
WHEN T_ODOC.U_CustomerCategory='Indirect Export' THEN 'B2B'
WHEN T_DOC12.BpGSTN IS NULL AND T_DOC12.CountryS='IN' THEN 'B2CS'
@@ -154,7 +159,7 @@ LEFT JOIN OCST T_OCST_S ON T_OCST_S.Code=T_DOC12.StateS
WHERE T_ODOC.CANCELED='N'
AND T_ODOC.DocDate>='${from}' AND T_ODOC.DocDate<='${to}'
AND (
EXISTS (SELECT 1 FROM INV1 T_DE WHERE T_DE.DocEntry=T_ODOC.DocEntry AND T_DE.AcctCode IN ('4110202001','4110202003'))
EXISTS (SELECT 1 FROM INV1 T_DE WHERE T_DE.DocEntry=T_ODOC.DocEntry AND T_DE.AcctCode IN (${DE_LEDGERS}))
OR (
T_DOC12.CountryB='IN'
AND (T_DOC12.BpGSTN IS NOT NULL OR T_ODOC.U_CustomerCategory='Indirect Export')
@@ -434,7 +439,7 @@ WHERE T_ODOC.CANCELED='N'
AND T_ODOC.DocDate>='${from}' AND T_ODOC.DocDate<='${to}'
AND T_DOC12.ImpORExp='Y' AND T_DOC12.CountryB<>'IN'
AND T_DOC12.BpGSTN IS NULL AND T_OCST_S.GSTCode IS NULL
AND NOT EXISTS (SELECT 1 FROM INV1 T_DE WHERE T_DE.DocEntry=T_ODOC.DocEntry AND T_DE.AcctCode IN ('4110202001','4110202003'))
AND NOT EXISTS (SELECT 1 FROM INV1 T_DE WHERE T_DE.DocEntry=T_ODOC.DocEntry AND T_DE.AcctCode IN (${DE_LEDGERS}))
ORDER BY ITS.DocEntry, ITS.TaxRate`;
}
@@ -447,7 +452,9 @@ function sqlHsn(from, to) {
SUM(CASE WHEN staType = '-120' THEN TaxSum ELSE 0 END) AS iamt,
SUM(CASE WHEN staType = '-110' THEN TaxSum ELSE 0 END) AS camt,
SUM(CASE WHEN staType = '-100' THEN TaxSum ELSE 0 END) AS samt,
SUM(CASE WHEN staType = '10' THEN TaxSum ELSE 0 END) AS tcs
SUM(CASE WHEN staType = '10' THEN TaxSum ELSE 0 END) AS tcs,
-- line GST rate (IGST or CGST+SGST) — excludes TCS, unlike VatPrcnt
SUM(CASE WHEN staType IN ('-120','-110','-100') THEN TaxRate ELSE 0 END) AS rt
FROM INV4
GROUP BY DocEntry, LineNum
),
@@ -459,7 +466,9 @@ RIN_TAX AS (
SUM(CASE WHEN staType = '-120' THEN TaxSum ELSE 0 END) AS iamt,
SUM(CASE WHEN staType = '-110' THEN TaxSum ELSE 0 END) AS camt,
SUM(CASE WHEN staType = '-100' THEN TaxSum ELSE 0 END) AS samt,
SUM(CASE WHEN staType = '10' THEN TaxSum ELSE 0 END) AS tcs
SUM(CASE WHEN staType = '10' THEN TaxSum ELSE 0 END) AS tcs,
-- line GST rate (IGST or CGST+SGST) — excludes TCS, unlike VatPrcnt
SUM(CASE WHEN staType IN ('-120','-110','-100') THEN TaxRate ELSE 0 END) AS rt
FROM RIN4
GROUP BY DocEntry, LineNum
),
@@ -486,7 +495,8 @@ HSN_Lines AS (
ISNULL(T.iamt, 0) AS iamt,
ISNULL(T.camt, 0) AS camt,
ISNULL(T.samt, 0) AS samt,
ISNULL(T.tcs, 0) AS tcs
ISNULL(T.tcs, 0) AS tcs,
ISNULL(T.rt, 0) AS rt
FROM OINV
INNER JOIN INV1
ON OINV.DocEntry = INV1.DocEntry
@@ -525,7 +535,8 @@ HSN_Lines AS (
-ISNULL(T.iamt, 0) AS iamt,
-ISNULL(T.camt, 0) AS camt,
-ISNULL(T.samt, 0) AS samt,
-ISNULL(T.tcs, 0) AS tcs
-ISNULL(T.tcs, 0) AS tcs,
ISNULL(T.rt, 0) AS rt
FROM ORIN
INNER JOIN RIN1
ON ORIN.DocEntry = RIN1.DocEntry
@@ -557,18 +568,9 @@ HSN_Agg AS (
SUM(camt) AS camt_n,
SUM(samt) AS samt_n,
SUM(tcs) AS tcs_n,
CASE
WHEN SUM(txval) = 0 THEN 0
WHEN ROUND(
(SUM(iamt) + SUM(camt) + SUM(samt)) * 100.0 / SUM(txval),
0
) IN (0, 5, 12, 18, 28)
THEN ROUND(
(SUM(iamt) + SUM(camt) + SUM(samt)) * 100.0 / SUM(txval),
0
)
ELSE 0
END AS rate_of_tax_n
-- group by the line's own GST rate so 0% exports and 5%/18% supplies
-- under the same HSN are separate rows (a blended rate is invalid)
rt AS rate_of_tax_n
FROM HSN_Lines
GROUP BY
fp,
@@ -576,7 +578,8 @@ HSN_Agg AS (
hsn_sc,
gstr1Desc,
section,
uqc
uqc,
rt
)
SELECT
@@ -613,29 +616,29 @@ WITH DocStatus AS (
CASE WHEN T0.CANCELED='Y' OR CM.BaseEntry IS NOT NULL THEN 1 ELSE 0 END AS IsCanceled
FROM OINV T0
LEFT JOIN (SELECT DISTINCT R1.BaseEntry FROM RIN1 R1 INNER JOIN ORIN R0 ON R0.DocEntry=R1.DocEntry WHERE R1.BaseType=13 AND R0.CANCELED='N') CM ON CM.BaseEntry=T0.DocEntry
WHERE T0.DocDate>='${from}' AND T0.DocDate<'${to}'
WHERE T0.DocDate>='${from}' AND T0.DocDate<='${to}'
UNION ALL
SELECT D0.DocEntry, D0.DocNum, D0.Series, D0.DocDate, 'Delivery',
CASE WHEN D0.CANCELED='Y' THEN 1 ELSE 0 END
FROM ODLN D0 INNER JOIN NNM1 N1 ON N1.Series=D0.Series
WHERE N1.SeriesName LIKE '%FOC%' AND D0.DocDate>='${from}' AND D0.DocDate<'${to}'
WHERE N1.SeriesName LIKE '%FOC%' AND D0.DocDate>='${from}' AND D0.DocDate<='${to}'
UNION ALL
SELECT W0.DocEntry, W0.DocNum, W0.Series, W0.DocDate,
CASE WHEN N1.SeriesName LIKE '%JW%' THEN 'JW' WHEN N1.SeriesName LIKE '%IT%' AND N1.SeriesName NOT LIKE '%ITR%' THEN 'IT' END,
CASE WHEN W0.CANCELED='Y' THEN 1 ELSE 0 END
FROM OWTR W0 INNER JOIN NNM1 N1 ON N1.Series=W0.Series
WHERE (N1.SeriesName LIKE '%JW%' OR (N1.SeriesName LIKE '%IT%' AND N1.SeriesName NOT LIKE '%ITR%'))
AND W0.DocDate>='${from}' AND W0.DocDate<'${to}'
AND W0.DocDate>='${from}' AND W0.DocDate<='${to}'
UNION ALL
SELECT P0.DocEntry, P0.DocNum, P0.Series, P0.DocDate, 'AP Invoice (RCM)',
CASE WHEN P0.CANCELED='Y' THEN 1 ELSE 0 END
FROM OPCH P0 INNER JOIN NNM1 N1 ON N1.Series=P0.Series
WHERE N1.SeriesName LIKE '%rev%' AND P0.DocDate>='${from}' AND P0.DocDate<'${to}'
WHERE N1.SeriesName LIKE '%rev%' AND P0.DocDate>='${from}' AND P0.DocDate<='${to}'
UNION ALL
SELECT R0.DocEntry, R0.DocNum, R0.Series, R0.DocDate, 'AR Credit Memo',
CASE WHEN R0.CANCELED='Y' THEN 1 ELSE 0 END
FROM ORIN R0 INNER JOIN NNM1 N1 ON N1.Series=R0.Series
WHERE N1.SeriesName LIKE '%ARCN%' AND R0.DocDate>='${from}' AND R0.DocDate<'${to}'
WHERE N1.SeriesName LIKE '%ARCN%' AND R0.DocDate>='${from}' AND R0.DocDate<='${to}'
)
SELECT CONVERT(char(6),DocDate,112) AS fp, Series, DocumentType,
CASE WHEN DocumentType='AR Credit Memo' THEN CONCAT('CN-',MIN(DocNum))