CREATE OR ALTER PROCEDURE [dbo].[Prc_P_PurchaseOrderAfterSave] @Id uniqueidentifier, @UserId uniqueidentifier = NULL AS BEGIN SET NOCOUNT ON; DECLARE @Req uniqueidentifier, @Act nvarchar(16), @Agr uniqueidentifier; 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; SELECT @Req = MaterialRequestId, @Act = PendingAction, @Agr = AgreementId FROM Prc_T_PurchaseOrder WHERE Id = @Id; IF @Agr IS NOT NULL EXEC Prc_P_PurchaseRfqFromAgreement @Id; IF @Req IS NOT NULL EXEC Prc_P_PurchaseOrderImportRequest @Id; EXEC Prc_P_PurchaseOrderRecalc @Id; IF @Act IS NOT NULL EXEC Prc_P_PurchaseOrderSetStatus @Id, @Act, @UserId; END