2026-10-11 19:57:23 +00:00
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[Prc_P_PurchaseRfqAfterSave]
|
|
|
|
|
|
@Id uniqueidentifier,
|
|
|
|
|
|
@UserId uniqueidentifier = NULL
|
|
|
|
|
|
AS
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
|
|
DECLARE @Act nvarchar(16) = (SELECT PendingAction FROM Prc_T_PurchaseRfq WHERE Id = @Id);
|
|
|
|
|
|
IF EXISTS (SELECT 1 FROM Prc_T_PurchaseRfq WHERE Id = @Id AND PriceWeight + DeliveryWeight <> 100)
|
|
|
|
|
|
THROW 50153, N'Fiyat ve termin ağırlıklarının toplamı 100 olmalıdır.', 1;
|
|
|
|
|
|
|
|
|
|
|
|
-- İhalenin kökü ilk belgedir; alternatifler kökün Id'sini taşır.
|
|
|
|
|
|
UPDATE r SET
|
|
|
|
|
|
TenderGroupId = ISNULL(r.TenderGroupId, r.Id),
|
|
|
|
|
|
QuoteDate = CASE WHEN r.SupplierResponse <> 'Waiting' THEN ISNULL(r.QuoteDate, GETUTCDATE()) ELSE r.QuoteDate END,
|
|
|
|
|
|
PaymentTermId = ISNULL(r.PaymentTermId, c.PurchasePaymentTermId),
|
|
|
|
|
|
IncotermId = ISNULL(r.IncotermId, c.PurchaseIncotermId),
|
|
|
|
|
|
IncotermLocation = ISNULL(r.IncotermLocation, c.PurchaseIncotermLocation),
|
|
|
|
|
|
BuyerUserId = CASE WHEN r.LastModificationTime IS NULL AND c.BuyerUserId IS NOT NULL THEN c.BuyerUserId ELSE r.BuyerUserId END
|
|
|
|
|
|
FROM Prc_T_PurchaseRfq r
|
|
|
|
|
|
INNER JOIN Adm_T_Contact c ON c.Id = r.SupplierId
|
|
|
|
|
|
WHERE r.Id = @Id;
|
|
|
|
|
|
|
|
|
|
|
|
-- Kıyas ağırlıkları ihale geneli tek değerdir; hangi belgede değişirse diğerlerine yazılır.
|
|
|
|
|
|
UPDATE x SET PriceWeight = r.PriceWeight, DeliveryWeight = r.DeliveryWeight
|
|
|
|
|
|
FROM Prc_T_PurchaseRfq x
|
|
|
|
|
|
INNER JOIN Prc_T_PurchaseRfq r ON r.Id = @Id
|
|
|
|
|
|
WHERE x.TenderGroupId = r.TenderGroupId AND x.Id <> r.Id
|
|
|
|
|
|
AND (x.PriceWeight <> r.PriceWeight OR x.DeliveryWeight <> r.DeliveryWeight);
|
|
|
|
|
|
|
|
|
|
|
|
EXEC Prc_P_PurchaseRfqFromAgreement @Id;
|
|
|
|
|
|
EXEC Prc_P_PurchaseRfqRecalc @Id;
|
|
|
|
|
|
-- Durum butonlari islemi PendingAction alanina yazip ekranin guncelleme ucuyla kaydeder.
|
2026-10-12 10:27:54 +00:00
|
|
|
|
IF @Act IS NOT NULL
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
EXEC Prc_P_PurchaseRfqSetStatus @Id, @Act, @UserId;
|
|
|
|
|
|
EXEC Prc_P_MaterialRequestSyncStatus @Id;
|
|
|
|
|
|
END
|
2026-10-11 19:57:23 +00:00
|
|
|
|
END
|