Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -10,6 +10,10 @@ import (
|
||||
|
||||
// ========================================================
|
||||
// 📌 GetOrderList — FINAL + CURRENCY SAFE + PIYASA AUTHZ
|
||||
//
|
||||
// ✅ TotalAmount artık trOrderLineCurrency(NetAmount) üzerinden
|
||||
// ve CurrencyCode = Header.DocCurrencyCode satırından gelir.
|
||||
//
|
||||
// ========================================================
|
||||
func GetOrderList(
|
||||
ctx context.Context,
|
||||
@@ -36,10 +40,8 @@ func GetOrderList(
|
||||
}
|
||||
|
||||
if len(codes) == 0 {
|
||||
// hiç yetkisi yok → hiç kayıt dönmesin
|
||||
piyasaWhere = "1=0"
|
||||
} else {
|
||||
// ⚠️ EXISTS içinde kullanılacak
|
||||
piyasaWhere = authz.BuildINClause(
|
||||
"UPPER(f2.CustomerAtt01)",
|
||||
codes,
|
||||
@@ -86,6 +88,29 @@ SELECT
|
||||
ELSE 0
|
||||
END AS TotalAmountUSD,
|
||||
|
||||
ISNULL(l.PackedAmount,0) AS PackedAmount,
|
||||
|
||||
CASE
|
||||
WHEN h.DocCurrencyCode = 'USD'
|
||||
THEN ISNULL(l.PackedAmount,0)
|
||||
|
||||
WHEN h.DocCurrencyCode = 'TRY'
|
||||
AND usd.Rate > 0
|
||||
THEN ISNULL(l.PackedTRY,0) / usd.Rate
|
||||
|
||||
WHEN cur.Rate > 0
|
||||
AND usd.Rate > 0
|
||||
THEN (ISNULL(l.PackedAmount,0) * cur.Rate) / usd.Rate
|
||||
|
||||
ELSE 0
|
||||
END AS PackedUSD,
|
||||
|
||||
CASE
|
||||
WHEN ISNULL(l.TotalAmount,0) > 0
|
||||
THEN (ISNULL(l.PackedAmount,0) * 100.0) / NULLIF(l.TotalAmount,0)
|
||||
ELSE 0
|
||||
END AS PackedRatePct,
|
||||
|
||||
ISNULL(h.IsCreditableConfirmed,0) AS IsCreditableConfirmed,
|
||||
ISNULL(h.Description,'') AS Description,
|
||||
|
||||
@@ -93,12 +118,40 @@ SELECT
|
||||
|
||||
FROM dbo.trOrderHeader h
|
||||
|
||||
-- ✅ TOPLAM ARTIK trOrderLineCurrency'den: CurrencyCode = DocCurrencyCode
|
||||
JOIN (
|
||||
SELECT
|
||||
OrderHeaderID,
|
||||
SUM(Qty1 * Price) AS TotalAmount
|
||||
FROM dbo.trOrderLine
|
||||
GROUP BY OrderHeaderID
|
||||
l.OrderHeaderID,
|
||||
SUM(ISNULL(c.NetAmount,0)) AS TotalAmount,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN ISNULL(c.CurrencyCode,'') = 'TRY'
|
||||
THEN ISNULL(c.NetAmount,0)
|
||||
ELSE 0
|
||||
END
|
||||
) AS TotalTRY,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN ISNULL(l.IsClosed,0) = 1
|
||||
THEN ISNULL(c.NetAmount,0)
|
||||
ELSE 0
|
||||
END
|
||||
) AS PackedAmount,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN ISNULL(l.IsClosed,0) = 1
|
||||
AND ISNULL(c.CurrencyCode,'') = 'TRY'
|
||||
THEN ISNULL(c.NetAmount,0)
|
||||
ELSE 0
|
||||
END
|
||||
) AS PackedTRY
|
||||
FROM dbo.trOrderLine l
|
||||
JOIN dbo.trOrderHeader h2
|
||||
ON h2.OrderHeaderID = l.OrderHeaderID
|
||||
LEFT JOIN dbo.trOrderLineCurrency c
|
||||
ON c.OrderLineID = l.OrderLineID
|
||||
AND c.CurrencyCode = ISNULL(h2.DocCurrencyCode,'TRY')
|
||||
GROUP BY l.OrderHeaderID
|
||||
) l
|
||||
ON l.OrderHeaderID = h.OrderHeaderID
|
||||
|
||||
|
||||
Reference in New Issue
Block a user