sozsoft-platform/configs/seeds/sql/object/Prc_P_PurchaseOrderRecalc.sql
2026-10-11 17:01:11 +03:00

23 lines
1.2 KiB
Transact-SQL

CREATE OR ALTER PROCEDURE [dbo].[Prc_P_PurchaseOrderRecalc]
@Id uniqueidentifier
AS
BEGIN
SET NOCOUNT ON;
UPDATE Prc_T_PurchaseOrderLine SET Amount = ROUND(Quantity * UnitPrice, 2)
WHERE PurchaseOrderId = @Id AND IsDeleted = 0;
UPDATE o SET
UntaxedAmount = ISNULL((SELECT SUM(l.Amount) FROM Prc_T_PurchaseOrderLine l WHERE l.PurchaseOrderId = @Id AND l.IsDeleted = 0), 0),
TaxAmount = ISNULL((SELECT SUM(ROUND(l.Amount * l.TaxRate / 100, 2)) FROM Prc_T_PurchaseOrderLine l WHERE l.PurchaseOrderId = @Id AND l.IsDeleted = 0), 0),
SourceDocument = STUFF((SELECT DISTINCT N', ' + r.RequestNo
FROM Prc_T_PurchaseOrderLine l
INNER JOIN Prc_T_MaterialRequestItem i ON i.Id = l.MaterialRequestItemId
INNER JOIN Prc_T_MaterialRequest r ON r.Id = i.MaterialRequestId
WHERE l.PurchaseOrderId = @Id AND l.IsDeleted = 0
FOR XML PATH(''), TYPE).value('.', 'nvarchar(512)'), 1, 2, N'')
FROM Prc_T_PurchaseOrder o
WHERE o.Id = @Id;
UPDATE Prc_T_PurchaseOrder SET TotalAmount = UntaxedAmount + TaxAmount WHERE Id = @Id;
END