CREATE OR ALTER PROCEDURE [dbo].[Prc_P_PurchaseRfqFromAgreement] @Id uniqueidentifier AS BEGIN SET NOCOUNT ON; DECLARE @Agr uniqueidentifier, @Tenant uniqueidentifier; SELECT @Agr = AgreementId, @Tenant = TenantId FROM Prc_T_PurchaseOrder WHERE Id = @Id; IF @Agr IS NULL RETURN; IF EXISTS (SELECT 1 FROM Prc_T_PurchaseOrderLine WHERE PurchaseOrderId = @Id AND IsDeleted = 0) RETURN; INSERT INTO Prc_T_PurchaseOrderLine (Id, TenantId, PurchaseOrderId, ProductId, Description, Quantity, UomId, UnitPrice, TaxRate, Amount, CreationTime, IsDeleted) SELECT NEWID(), @Tenant, @Id, al.ProductId, al.Description, CASE WHEN al.Quantity - al.OrderedQuantity > 0 THEN al.Quantity - al.OrderedQuantity ELSE 0 END, al.UomId, al.UnitPrice, ISNULL(p.PurchaseTaxRate, 0), 0, GETUTCDATE(), 0 FROM Prc_V_PurchaseAgreementLine al LEFT JOIN Inv_T_Product p ON p.Id = al.ProductId WHERE al.AgreementId = @Agr AND al.IsDeleted = 0 AND al.Quantity - al.OrderedQuantity > 0; END