Skip to content

Commit a810eb8

Browse files
committed
fix uspAddInsureePolicy
1 parent c903b35 commit a810eb8

2 files changed

Lines changed: 84 additions & 9 deletions

File tree

Empty databases/openIMIS_ONLINE.sql

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6263,7 +6263,7 @@ BEGIN
62636263
SELECT @TotalInsurees = COUNT(InsureeId) FROM tblInsuree WHERE FamilyId = @FamilyId AND ValidityTo IS NULL
62646264
SELECT @isOffline = ISNULL(OfflineCHF,0) FROM tblIMISDefaults
62656265

6266-
6266+
DECLARE @Premium decimal(18,2) = 0
62676267

62686268
DECLARE Cur CURSOR FOR SELECT PolicyId,PolicyValue,EffectiveDate,PolicyStage,ProdID FROM tblPolicy WHERE FamilyID = @FamilyId AND ValidityTo IS NULL
62696269
OPEN Cur
@@ -6281,17 +6281,19 @@ BEGIN
62816281
--If new policy value is changed then the current insuree will not be insured
62826282
IF @NewPolicyValue <> @PolicyValue OR @ErrorCode <> 0
62836283
BEGIN
6284-
62856284
IF @Activate = 0
6286-
SET @EffectiveDate = NULL
6285+
BEGIN
6286+
6287+
SET @Premium=ISNULL((SELECT SUM(Amount) Amount FROM tblPremium WHERE PolicyID=@PolicyId AND ValidityTo IS NULL and isPhotoFee = 0 ),0)
6288+
IF @Premium < @NewPolicyValue
6289+
SET @EffectiveDate = NULL
6290+
END
62876291
END
6288-
6289-
62906292

6291-
INSERT INTO tblInsureePolicy(InsureeId,PolicyId,EnrollmentDate,StartDate,EffectiveDate,ExpiryDate,AuditUserId,isOffline)
6292-
SELECT @InsureeId, @PolicyId,EnrollDate,P.StartDate,@EffectiveDate,P.ExpiryDate,@AuditUserId,@isOffline
6293-
FROM tblPolicy P
6294-
WHERE P.PolicyID = @PolicyId
6293+
INSERT INTO tblInsureePolicy(InsureeId,PolicyId,EnrollmentDate,StartDate,EffectiveDate,ExpiryDate,AuditUserId,isOffline)
6294+
SELECT @InsureeId, @PolicyId,EnrollDate,P.StartDate,@EffectiveDate,P.ExpiryDate,@AuditUserId,@isOffline
6295+
FROM tblPolicy P
6296+
WHERE P.PolicyID = @PolicyId
62956297

62966298
NEXT_POLICY:
62976299
FETCH NEXT FROM Cur INTO @PolicyId,@PolicyValue,@EffectiveDate,@PolicyStage,@ProdId

Migration script/openIMIS migration latest.sql

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5776,3 +5776,76 @@ BEGIN
57765776
SELECT DATEADD(DAY, -1, @LastDate) LastDate;
57775777
END
57785778
GO
5779+
5780+
IF OBJECT_ID('uspAddInsureePolicy', 'P') IS NOT NULL
5781+
DROP PROCEDURE [uspAddInsureePolicy]
5782+
GO
5783+
5784+
SET ANSI_NULLS ON
5785+
GO
5786+
SET QUOTED_IDENTIFIER ON
5787+
GO
5788+
CREATE Procedure [dbo].[uspAddInsureePolicy]
5789+
(
5790+
@InsureeId INT,
5791+
@Activate BIT = 0
5792+
)
5793+
AS
5794+
BEGIN
5795+
DECLARE @FamilyId INT,
5796+
@PolicyId INT,
5797+
@NewPolicyValue DECIMAL(18,2),
5798+
@EffectiveDate DATE,
5799+
@PolicyValue DECIMAL(18,2),
5800+
@PolicyStage NVARCHAR(1),
5801+
@ProdId INT,
5802+
@AuditUserId INT,
5803+
@isOffline BIT,
5804+
@ErrorCode INT,
5805+
@TotalInsurees INT,
5806+
@MaxMember INT,
5807+
@ThresholdMember INT
5808+
5809+
SELECT @FamilyId = FamilyID,@AuditUserId = AuditUserID FROM tblInsuree WHERE InsureeID = @InsureeId
5810+
SELECT @TotalInsurees = COUNT(InsureeId) FROM tblInsuree WHERE FamilyId = @FamilyId AND ValidityTo IS NULL
5811+
SELECT @isOffline = ISNULL(OfflineCHF,0) FROM tblIMISDefaults
5812+
5813+
DECLARE @Premium decimal(18,2) = 0
5814+
5815+
DECLARE Cur CURSOR FOR SELECT PolicyId,PolicyValue,EffectiveDate,PolicyStage,ProdID FROM tblPolicy WHERE FamilyID = @FamilyId AND ValidityTo IS NULL
5816+
OPEN Cur
5817+
FETCH NEXT FROM Cur INTO @PolicyId,@PolicyValue,@EffectiveDate,@PolicyStage,@ProdId
5818+
WHILE @@FETCH_STATUS = 0
5819+
BEGIN
5820+
SELECT @MaxMember = MemberCount FROM tblProduct WHERE ProdId = @ProdId;
5821+
--amani 07/12
5822+
SELECT @ThresholdMember = Threshold FROM tblProduct WHERE ProdId = @ProdId;
5823+
5824+
IF @MaxMember < @TotalInsurees
5825+
GOTO NEXT_POLICY;
5826+
5827+
EXEC @NewPolicyValue = uspPolicyValue @PolicyId = @PolicyId, @PolicyStage = @PolicyStage, @ErrorCode = @ErrorCode OUTPUT;
5828+
--If new policy value is changed then the current insuree will not be insured
5829+
IF @NewPolicyValue <> @PolicyValue OR @ErrorCode <> 0
5830+
BEGIN
5831+
IF @Activate = 0
5832+
BEGIN
5833+
5834+
SET @Premium=ISNULL((SELECT SUM(Amount) Amount FROM tblPremium WHERE PolicyID=@PolicyId AND ValidityTo IS NULL and isPhotoFee = 0 ),0)
5835+
IF @Premium < @NewPolicyValue
5836+
SET @EffectiveDate = NULL
5837+
END
5838+
END
5839+
5840+
INSERT INTO tblInsureePolicy(InsureeId,PolicyId,EnrollmentDate,StartDate,EffectiveDate,ExpiryDate,AuditUserId,isOffline)
5841+
SELECT @InsureeId, @PolicyId,EnrollDate,P.StartDate,@EffectiveDate,P.ExpiryDate,@AuditUserId,@isOffline
5842+
FROM tblPolicy P
5843+
WHERE P.PolicyID = @PolicyId
5844+
5845+
NEXT_POLICY:
5846+
FETCH NEXT FROM Cur INTO @PolicyId,@PolicyValue,@EffectiveDate,@PolicyStage,@ProdId
5847+
END
5848+
CLOSE Cur
5849+
DEALLOCATE Cur
5850+
END
5851+
GO

0 commit comments

Comments
 (0)