CREATE OR ALTER PROCEDURE [dbo].[Prc_P_PurchaseRfqRecalc] @Id uniqueidentifier AS BEGIN SET NOCOUNT ON; -- TenderLineId alternatiflere kopyalanır; ihaledeki aynı kalemi kıyasta birleştiren anahtardır. UPDATE Prc_T_PurchaseRfqLine SET Amount = ROUND(ROUND(Quantity * UnitPrice, 2) * (1 + TaxRate / 100), 2), TenderLineId = ISNULL(TenderLineId, Id) WHERE PurchaseRfqId = @Id AND IsDeleted = 0; UPDATE r SET UntaxedAmount = ISNULL((SELECT SUM(ROUND(l.Quantity * l.UnitPrice, 2)) FROM Prc_T_PurchaseRfqLine l WHERE l.PurchaseRfqId = @Id AND l.IsDeleted = 0), 0), TaxAmount = ISNULL((SELECT SUM(l.Amount - ROUND(l.Quantity * l.UnitPrice, 2)) FROM Prc_T_PurchaseRfqLine l WHERE l.PurchaseRfqId = @Id AND l.IsDeleted = 0), 0), SourceDocument = STUFF((SELECT DISTINCT N', ' + m.RequestNo FROM Prc_T_PurchaseRfqLine l INNER JOIN Prc_T_MaterialRequestItem i ON i.Id = l.MaterialRequestItemId INNER JOIN Prc_T_MaterialRequest m ON m.Id = i.MaterialRequestId WHERE l.PurchaseRfqId = @Id AND l.IsDeleted = 0 FOR XML PATH(''), TYPE).value('.', 'nvarchar(512)'), 1, 2, N'') FROM Prc_T_PurchaseRfq r WHERE r.Id = @Id; UPDATE Prc_T_PurchaseRfq SET TotalAmount = UntaxedAmount + TaxAmount WHERE Id = @Id; EXEC Prc_P_MaterialRequestSyncStatus @Id; END