20 lines
1 KiB
Transact-SQL
20 lines
1 KiB
Transact-SQL
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
|