@@ -5776,3 +5776,76 @@ BEGIN
57765776 SELECT DATEADD (DAY , - 1 , @LastDate) LastDate;
57775777END
57785778GO
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