sozsoft-platform/configs/seeds/sql/object/Prc_P_PurchaseOrderAfterSave.sql
2026-10-12 13:27:54 +03:00

24 lines
1 KiB
Transact-SQL

CREATE OR ALTER PROCEDURE [dbo].[Prc_P_PurchaseOrderAfterSave]
@Id uniqueidentifier,
@UserId uniqueidentifier = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Act nvarchar(16) = (SELECT PendingAction FROM Prc_T_PurchaseOrder WHERE Id = @Id);
UPDATE o SET
PaymentTermId = ISNULL(o.PaymentTermId, c.PurchasePaymentTermId),
IncotermId = ISNULL(o.IncotermId, c.PurchaseIncotermId),
IncotermLocation = ISNULL(o.IncotermLocation, c.PurchaseIncotermLocation),
BuyerUserId = CASE WHEN o.LastModificationTime IS NULL AND c.BuyerUserId IS NOT NULL THEN c.BuyerUserId ELSE o.BuyerUserId END
FROM Prc_T_PurchaseOrder o
INNER JOIN Adm_T_Contact c ON c.Id = o.SupplierId
WHERE o.Id = @Id;
EXEC Prc_P_PurchaseOrderRecalc @Id;
-- Durum butonlari islemi PendingAction alanina yazip ekranin guncelleme ucuyla kaydeder.
IF @Act IS NOT NULL
BEGIN
EXEC Prc_P_PurchaseOrderSetStatus @Id, @Act, @UserId;
EXEC Prc_P_MaterialRequestSyncStatus @Id;
END
END