Skip to content

Commit 296c9a7

Browse files
committed
fix uspLastDateForPayment
1 parent fc8fdd8 commit 296c9a7

2 files changed

Lines changed: 50 additions & 0 deletions

File tree

54 Bytes
Binary file not shown.

Migration script/openIMIS migration latest.sql

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5375,3 +5375,53 @@ BEGIN
53755375
END
53765376
GO
53775377

5378+
IF OBJECT_ID('[uspLastDateForPayment]', 'P') IS NOT NULL
5379+
DROP PROCEDURE [uspLastDateForPayment]
5380+
GO
5381+
CREATE PROCEDURE [dbo].[uspLastDateForPayment]
5382+
(
5383+
@PolicyId INT
5384+
)
5385+
AS
5386+
BEGIN
5387+
DECLARE @ProdId INT,
5388+
@HasCycle BIT = 0,
5389+
@GracePeriod INT,
5390+
@WaitingPeriod INT,
5391+
@StartDate DATE,
5392+
@PolicyStage CHAR(1),
5393+
@ExpiryDate DATE,
5394+
@EnrollDate DATE,
5395+
@LastDate DATE
5396+
5397+
SELECT @ProdId = ProdId FROM tblPolicy WHERE PolicyId = @PolicyId;
5398+
IF EXISTS(SELECT 1 FROM tblProduct Prod WHERE ProdID = @ProdId AND (StartCycle1 IS NOT NULL OR StartCycle2 IS NOT NULL OR StartCycle3 IS NOT NULL OR StartCycle4 IS NOT NULL))
5399+
SET @HasCycle = 1;
5400+
5401+
SELECT @GracePeriod = CASE PL.PolicyStage WHEN 'N' THEN ISNULL(Prod.GracePeriod, 0) WHEN 'R' THEN ISNULL(Prod.GracePeriodRenewal, 0) END,
5402+
@WaitingPeriod = Prod.WaitingPeriod
5403+
FROM tblProduct Prod
5404+
INNER JOIN tblPolicy PL ON PL.ProdId = Prod.ProdId
5405+
WHERE Prod.ProdId = @ProdId;
5406+
5407+
IF @HasCycle = 1
5408+
BEGIN
5409+
PRINT N'Calculate on Fixed Cycle';
5410+
SELECT @StartDate = StartDate FROM tblPolicy WHERE PolicyId = @PolicyId;
5411+
SET @LastDate = DATEADD(MONTH, @GracePeriod, @StartDate)
5412+
PRINT @LastDate
5413+
END
5414+
ELSE
5415+
BEGIN
5416+
PRINT N'Calculate on Free Cycle';
5417+
SELECT @PolicyStage = PolicyStage, @EnrollDate = EnrollDate, @ExpiryDate = ExpiryDate FROM tblPolicy WHERE PolicyId = @PolicyId;
5418+
IF @PolicyStage = 'N'
5419+
SET @LastDate = DATEADD(MONTH, @WaitingPeriod, @EnrollDate);
5420+
IF @PolicyStage = 'R'
5421+
SET @LastDate = DATEADD(MONTH, @WaitingPeriod, DATEADD(DAY, 1, @ExpiryDate));
5422+
END
5423+
5424+
SELECT DATEADD(DAY, -1, @LastDate) LastDate;
5425+
END
5426+
GO
5427+

0 commit comments

Comments
 (0)