Files
SHERPA/SHERPA.BBM.CORE/SqlScripts/VIEW/v_OrderData.sql
T
Samuele Locatelli f48a622696 refresh views
2024-02-13 10:31:39 +01:00

48 lines
1.5 KiB
Transact-SQL

---------------------------------------------
-- VIEW dati riassuntivi livello Ordine
---------------------------------------------
CREATE OR ALTER VIEW [dbo].[v_OrderData]
AS
WITH cteRes AS
(
SELECT DocId
,SUM(ISNULL(r.FinalPrice,0)) AS PriceDocSum
FROM Resources r
GROUP BY r.DocId
)
,cteBill AS
(
SELECT o.DocId
,SUM(CASE WHEN ISNULL(f.IdxBillExt,0) > 0 AND f.OrdId > 0 THEN ISNULL(f.Amount,0) ELSE 0 END) AS AmountSum
,SUM(ISNULL(f.Paid,0)) AS PaidSum
,COUNT(f.AccMovId) AS NumMov
,SUM(CASE WHEN f.IdxBillExt IS NULL AND f.OrdId > 0 THEN 1 ELSE 0 END) AS MovOpen
FROM Orders o
LEFT OUTER JOIN dbo.AccMov AS f ON o.OrdId = f.OrdId
GROUP BY o.DocId
)
SELECT o.*
,c.RagSoc
,k.CodBasket
,k.Descript AS BaskDescript
,n.CodNegotiation
,n.Descript AS NegotDescript
,CAST(ISNULL(r.PriceDocSum,0) AS decimal(18,6)) AS AmountTot
,CAST(ISNULL(b.AmountSum,0) AS decimal(18,6)) AS BillTot
,CAST(ISNULL(b.PaidSum,0) AS decimal(18,6)) AS PaidTot
,CAST(CASE WHEN ISNULL(b.AmountSum,0) + ISNULL(b.PaidSum,0) = 0 AND b.NumMov=0 THEN 0 ELSE 1 END AS BIT) AS HasBill
,CAST(CASE WHEN MovOpen > 0 THEN 1 ELSE 0 END AS BIT) AS MovOpen
--,ISNULL(b.NumMov,0) AS NumMov
FROM dbo.Orders AS o
INNER JOIN Baskets AS k ON k.BasketId = o.BasketId
INNER JOIN Negotiations AS n ON n.NegotiationId = o.NegotiationId
INNER JOIN Customers AS c ON n.CustomerId = c.CustomerId
LEFT OUTER JOIN cteRes AS r ON o.DocId = r.DocId
LEFT OUTER JOIN cteBill AS b ON o.DocId = b.DocId
GO