48 lines
1.5 KiB
Transact-SQL
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
|