|
1 | | ---- MIGRATION Script from v1.4.2 onward |
| 1 | +--- MIGRATION Script from v1.4.2 onward |
2 | 2 |
|
3 | 3 | ------------------------------------------------------------------------------------------ |
4 | 4 | ------------------------------------------------------------------------------------------ |
@@ -5113,7 +5113,7 @@ BEGIN |
5113 | 5113 | /*Error Codes |
5114 | 5114 | 2- Not valid insurance or missing product code |
5115 | 5115 | 3- Not valid enrolment officer code |
5116 | | - 4 –Enrolment officer code and insurance product code are not compatible |
| 5116 | + 4 Enrolment officer code and insurance product code are not compatible |
5117 | 5117 | 5- Beneficiary has no policy of specified insurance product for renewal |
5118 | 5118 | 6- Can not issue a control number as default indicated prior enrollment and Insuree has not been enrolled yet |
5119 | 5119 |
|
@@ -5375,6 +5375,358 @@ BEGIN |
5375 | 5375 | END |
5376 | 5376 | GO |
5377 | 5377 |
|
| 5378 | +IF OBJECT_ID('[uspSSRSCapitationPayment]', 'P') IS NOT NULL |
| 5379 | + DROP PROCEDURE [uspSSRSCapitationPayment] |
| 5380 | +GO |
| 5381 | +CREATE PROCEDURE [dbo].[uspSSRSCapitationPayment] |
| 5382 | +( |
| 5383 | + @RegionId INT = NULL, |
| 5384 | + @DistrictId INT = NULL, |
| 5385 | + @ProdId INT, |
| 5386 | + @Year INT, |
| 5387 | + @Month INT, |
| 5388 | + @HFLevel xAttributeV READONLY |
| 5389 | +) |
| 5390 | +AS |
| 5391 | +BEGIN |
| 5392 | + |
| 5393 | + DECLARE @Level1 CHAR(1) = NULL, |
| 5394 | + @Sublevel1 CHAR(1) = NULL, |
| 5395 | + @Level2 CHAR(1) = NULL, |
| 5396 | + @Sublevel2 CHAR(1) = NULL, |
| 5397 | + @Level3 CHAR(1) = NULL, |
| 5398 | + @Sublevel3 CHAR(1) = NULL, |
| 5399 | + @Level4 CHAR(1) = NULL, |
| 5400 | + @Sublevel4 CHAR(1) = NULL, |
| 5401 | + @ShareContribution DECIMAL(5, 2), |
| 5402 | + @WeightPopulation DECIMAL(5, 2), |
| 5403 | + @WeightNumberFamilies DECIMAL(5, 2), |
| 5404 | + @WeightInsuredPopulation DECIMAL(5, 2), |
| 5405 | + @WeightNumberInsuredFamilies DECIMAL(5, 2), |
| 5406 | + @WeightNumberVisits DECIMAL(5, 2), |
| 5407 | + @WeightAdjustedAmount DECIMAL(5, 2) |
| 5408 | + |
| 5409 | + |
| 5410 | + DECLARE @FirstDay DATE = CAST(@Year AS VARCHAR(4)) + '-' + CAST(@Month AS VARCHAR(2)) + '-01'; |
| 5411 | + DECLARE @LastDay DATE = EOMONTH(CAST(@Year AS VARCHAR(4)) + '-' + CAST(@Month AS VARCHAR(2)) + '-01', 0) |
| 5412 | + DECLARE @DaysInMonth INT = DATEDIFF(DAY,@FirstDay,DATEADD(MONTH,1,@FirstDay)); |
| 5413 | + |
| 5414 | + set @DistrictId = CASE @DistrictId WHEN 0 THEN NULL ELSE @DistrictId END |
| 5415 | + |
| 5416 | + DECLARE @Locations TABLE ( |
| 5417 | + LocationId INT, |
| 5418 | + LocationName VARCHAR(50), |
| 5419 | + LocationCode VARCHAR(8), |
| 5420 | + ParentLocationId INT |
| 5421 | + ); |
| 5422 | + |
| 5423 | + INSERT INTO @Locations |
| 5424 | + SELECT 0 LocationId, N'National' LocationName, NULL ParentLocationId, 0 LocationCode |
| 5425 | + |
| 5426 | + UNION ALL |
| 5427 | + |
| 5428 | + SELECT LocationId,LocationName, LocationCode, ISNULL(ParentLocationId, 0) |
| 5429 | + FROM tblLocations |
| 5430 | + WHERE (ValidityTo IS NULL ) |
| 5431 | + AND (LocationId = ISNULL(@DistrictId, @RegionId) OR |
| 5432 | + (LocationType IN ('R', 'D') AND ParentLocationId = ISNULL(@DistrictId, @RegionId))) |
| 5433 | + |
| 5434 | + |
| 5435 | + DECLARE @LocationTemp table (LocationId int, RegionId int, RegionCode [nvarchar](8) , RegionName [nvarchar](50), DistrictId int, DistrictCode [nvarchar](8), |
| 5436 | + DistrictName [nvarchar](50), ParentLocationId int) |
| 5437 | + |
| 5438 | + |
| 5439 | + INSERT INTO @LocationTemp(LocationId , RegionId , RegionCode , RegionName , DistrictId , DistrictCode , |
| 5440 | + DistrictName , ParentLocationId)( SELECT ISNULL(d.LocationId,r.LocationId) LocationId , r.LocationId as RegionId , r.LocationCode as RegionCode , r.LocationName as RegionName , d.LocationId as DistrictId , d.LocationCode as DistrictCode , |
| 5441 | + d.LocationName as DistrictName , ISNULL(d.ParentLocationId,r.ParentLocationId) ParentLocationId FROM @Locations d INNER JOIN @Locations r on d.ParentLocationId = r.LocationId |
| 5442 | + UNION ALL SELECT r.LocationId, r.LocationId as RegionId , r.LocationCode as RegionCode , r.LocationName as RegionName , NULL DistrictId , NULL DistrictCode , |
| 5443 | + NULL DistrictName , ParentLocationId FROM @Locations r WHERE ParentLocationId = 0) |
| 5444 | + ; |
| 5445 | + declare @listOfHF table (id int); |
| 5446 | + |
| 5447 | + IF @RegionId IS NULL or @RegionId =0 |
| 5448 | + INSERT INTO @listOfHF(id) SELECT tblHF.HfID FROM tblHF WHERE tblHF.ValidityTo is NULL; |
| 5449 | + ELSE IF @DistrictId is NULL or @DistrictId =0 |
| 5450 | + INSERT INTO @listOfHF(id) SELECT tblHF.HfID FROM tblHF JOIN tblLocations l on tblHF.LocationId = l.LocationId WHERE l.ParentLocationId = @RegionId ; |
| 5451 | + ELSE |
| 5452 | + INSERT INTO @listOfHF(id) SELECT tblHF.HfID FROM tblHF WHERE tblHF.LocationId = @DistrictId and tblHF.ValidityTo is NULL; |
| 5453 | + |
| 5454 | + |
| 5455 | + SELECT @Level1 = Level1, @Sublevel1 = Sublevel1, @Level2 = Level2, @Sublevel2 = Sublevel2, @Level3 = Level3, @Sublevel3 = Sublevel3, |
| 5456 | + @Level4 = Level4, @Sublevel4 = Sublevel4, @ShareContribution = ISNULL(ShareContribution, 0), @WeightPopulation = ISNULL(WeightPopulation, 0), |
| 5457 | + @WeightNumberFamilies = ISNULL(WeightNumberFamilies, 0), @WeightInsuredPopulation = ISNULL(WeightInsuredPopulation, 0), @WeightNumberInsuredFamilies = ISNULL(WeightNumberInsuredFamilies, 0), |
| 5458 | + @WeightNumberVisits = ISNULL(WeightNumberVisits, 0), @WeightAdjustedAmount = ISNULL(WeightAdjustedAmount, 0) |
| 5459 | + FROM tblProduct Prod |
| 5460 | + WHERE ProdId = @ProdId; |
| 5461 | + |
| 5462 | + |
| 5463 | + PRINT @ShareContribution |
| 5464 | + PRINT @WeightPopulation |
| 5465 | + PRINT @WeightNumberFamilies |
| 5466 | + PRINT @WeightInsuredPopulation |
| 5467 | + PRINT @WeightNumberInsuredFamilies |
| 5468 | + PRINT @WeightNumberVisits |
| 5469 | + PRINT @WeightAdjustedAmount |
| 5470 | + |
| 5471 | + |
| 5472 | + DECLARE @TotalPopFam TABLE ( |
| 5473 | + HFID INT, |
| 5474 | + TotalPopulation DECIMAL(18, 6), |
| 5475 | + TotalFamilies DECIMAL(18, 6) |
| 5476 | + ); |
| 5477 | + |
| 5478 | + INSERT INTO @TotalPopFam |
| 5479 | + |
| 5480 | + SELECT C.HFID HFID , |
| 5481 | + CASE WHEN ISNULL(@DistrictId, @RegionId) IN (D.RegionId, D.DistrictId) THEN 1 ELSE 0 END * SUM((ISNULL(L.MalePopulation, 0) + ISNULL(L.FemalePopulation, 0) + ISNULL(L.OtherPopulation, 0)) *(0.01* Catchment)) TotalPopulation, |
| 5482 | + CASE WHEN ISNULL(@DistrictId, @RegionId) IN (D.RegionId, D.DistrictId) THEN 1 ELSE 0 END * SUM(ISNULL(((L.Families)*(0.01* Catchment)), 0))TotalFamilies |
| 5483 | + FROM tblHFCatchment C |
| 5484 | + LEFT JOIN tblLocations L ON L.LocationId = C.LocationId OR L.LegacyId = C.LocationId |
| 5485 | + INNER JOIN tblHF HF ON C.HFID = HF.HfID |
| 5486 | + INNER JOIN @LocationTemp D ON HF.LocationId = D.DistrictId |
| 5487 | + WHERE (C.ValidityTo IS NULL OR C.ValidityTo >= @FirstDay) AND C.ValidityFrom< @FirstDay |
| 5488 | + AND(L.ValidityTo IS NULL OR L.ValidityTo >= @FirstDay) AND L.ValidityFrom< @FirstDay |
| 5489 | + AND (HF.ValidityTo IS NULL ) |
| 5490 | + AND C.HFID in (SELECT id FROM @listOfHF) |
| 5491 | + GROUP BY C.HFID, D.DistrictId, D.RegionId |
| 5492 | + |
| 5493 | + |
| 5494 | + |
| 5495 | + DECLARE @InsuredInsuree TABLE ( |
| 5496 | + HFID INT, |
| 5497 | + ProdId INT, |
| 5498 | + TotalInsuredInsuree DECIMAL(18, 6) |
| 5499 | + ); |
| 5500 | + |
| 5501 | + INSERT INTO @InsuredInsuree |
| 5502 | + |
| 5503 | + SELECT HC.HFID, @ProdId ProdId, COUNT(DISTINCT IP.InsureeId)*(0.01 * Catchment) TotalInsuredInsuree |
| 5504 | + FROM tblInsureePolicy IP |
| 5505 | + INNER JOIN tblInsuree I ON I.InsureeId = IP.InsureeId |
| 5506 | + INNER JOIN tblFamilies F ON F.FamilyId = I.FamilyId |
| 5507 | + INNER JOIN tblHFCatchment HC ON HC.LocationId = F.LocationId |
| 5508 | + INNER JOIN tblPolicy PL ON PL.PolicyID = IP.PolicyId |
| 5509 | + WHERE (HC.ValidityTo IS NULL OR HC.ValidityTo >= @FirstDay) AND HC.ValidityFrom< @FirstDay |
| 5510 | + AND I.ValidityTo IS NULL |
| 5511 | + AND IP.ValidityTo IS NULL |
| 5512 | + AND F.ValidityTo IS NULL |
| 5513 | + AND PL.ValidityTo IS NULL |
| 5514 | + AND IP.EffectiveDate <= @LastDay |
| 5515 | + AND IP.ExpiryDate > @LastDay |
| 5516 | + AND PL.ProdID = @ProdId |
| 5517 | + AND HC.HFID in (SELECT id FROM @listOfHF) |
| 5518 | + GROUP BY HC.HFID, Catchment--, L.LocationId |
| 5519 | + |
| 5520 | + |
| 5521 | + |
| 5522 | + |
| 5523 | + DECLARE @InsuredFamilies TABLE ( |
| 5524 | + HFID INT, |
| 5525 | + TotalInsuredFamilies DECIMAL(18, 6) |
| 5526 | + ); |
| 5527 | + |
| 5528 | + INSERT INTO @InsuredFamilies |
| 5529 | + SELECT HC.HFID, COUNT(DISTINCT F.FamilyID)*(0.01 * Catchment) TotalInsuredFamilies |
| 5530 | + FROM tblInsureePolicy IP |
| 5531 | + INNER JOIN tblInsuree I ON I.InsureeId = IP.InsureeId |
| 5532 | + INNER JOIN tblFamilies F ON F.InsureeID = I.InsureeID |
| 5533 | + INNER JOIN tblHFCatchment HC ON HC.LocationId = F.LocationId |
| 5534 | + INNER JOIN tblPolicy PL ON PL.PolicyID = IP.PolicyId |
| 5535 | + WHERE (HC.ValidityTo IS NULL OR HC.ValidityTo >= @FirstDay) AND HC.ValidityFrom< @FirstDay |
| 5536 | + AND I.ValidityTo IS NULL |
| 5537 | + AND IP.ValidityTo IS NULL |
| 5538 | + AND F.ValidityTo IS NULL |
| 5539 | + AND PL.ValidityTo IS NULL |
| 5540 | + AND IP.EffectiveDate <= @LastDay |
| 5541 | + AND IP.ExpiryDate > @LastDay |
| 5542 | + AND PL.ProdID = @ProdId |
| 5543 | + AND HC.HFID in (SELECT id FROM @listOfHF) |
| 5544 | + GROUP BY HC.HFID, Catchment--, L.LocationId |
| 5545 | + |
| 5546 | + |
| 5547 | + |
| 5548 | + |
| 5549 | + |
| 5550 | + |
| 5551 | + DECLARE @Allocation TABLE ( |
| 5552 | + ProdId INT, |
| 5553 | + Allocated DECIMAL(18, 6) |
| 5554 | + ); |
| 5555 | + |
| 5556 | + INSERT INTO @Allocation |
| 5557 | + SELECT ProdId, CAST(SUM(ISNULL(Allocated, 0)) AS DECIMAL(18, 6)) Allocated |
| 5558 | + FROM |
| 5559 | + (SELECT PL.ProdID, |
| 5560 | + CASE |
| 5561 | + WHEN MONTH(DATEADD(D,-1,PL.ExpiryDate)) = @Month AND YEAR(DATEADD(D,-1,PL.ExpiryDate)) = @Year AND (DAY(PL.ExpiryDate)) > 1 |
| 5562 | + THEN CASE WHEN DATEDIFF(D,CASE WHEN PR.PayDate < @FirstDay THEN @FirstDay ELSE PR.PayDate END,PL.ExpiryDate) = 0 THEN 1 ELSE DATEDIFF(D,CASE WHEN PR.PayDate < @FirstDay THEN @FirstDay ELSE PR.PayDate END,PL.ExpiryDate) END * ((SUM(PR.Amount))/(CASE WHEN (DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,PL.ExpiryDate)) <= 0 THEN 1 ELSE DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,PL.ExpiryDate) END)) |
| 5563 | + WHEN MONTH(CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END) = @Month AND YEAR(CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END) = @Year |
| 5564 | + THEN ((@DaysInMonth + 1 - DAY(CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END)) * ((SUM(PR.Amount))/CASE WHEN DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,PL.ExpiryDate) <= 0 THEN 1 ELSE DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,PL.ExpiryDate) END)) |
| 5565 | + WHEN PL.EffectiveDate < @FirstDay AND PL.ExpiryDate > @LastDay AND PR.PayDate < @FirstDay |
| 5566 | + THEN @DaysInMonth * (SUM(PR.Amount)/CASE WHEN (DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,DATEADD(D,-1,PL.ExpiryDate))) <= 0 THEN 1 ELSE DATEDIFF(DAY,CASE WHEN PR.PayDate < PL.EffectiveDate THEN PL.EffectiveDate ELSE PR.PayDate END,PL.ExpiryDate) END) |
| 5567 | + END Allocated |
| 5568 | + FROM tblPremium PR |
| 5569 | + INNER JOIN tblPolicy PL ON PR.PolicyID = PL.PolicyID |
| 5570 | + INNER JOIN tblProduct Prod ON Prod.ProdId = PL.ProdID |
| 5571 | + INNER JOIN @Locations L ON ISNULL(Prod.LocationId, 0) = L.LocationId |
| 5572 | + WHERE PR.ValidityTo IS NULL |
| 5573 | + AND PL.ValidityTo IS NULL |
| 5574 | + AND PL.ProdID = @ProdId |
| 5575 | + AND PL.PolicyStatus <> 1 |
| 5576 | + AND PR.PayDate <= PL.ExpiryDate |
| 5577 | + GROUP BY PL.ProdID, PL.ExpiryDate, PR.PayDate,PL.EffectiveDate)Alc |
| 5578 | + GROUP BY ProdId; |
| 5579 | + |
| 5580 | + |
| 5581 | + DECLARE @ReportData TABLE ( |
| 5582 | + RegionCode VARCHAR(MAX), |
| 5583 | + RegionName VARCHAR(MAX), |
| 5584 | + DistrictCode VARCHAR(MAX), |
| 5585 | + DistrictName VARCHAR(MAX), |
| 5586 | + HFCode VARCHAR(MAX), |
| 5587 | + HFName VARCHAR(MAX), |
| 5588 | + AccCode VARCHAR(MAX), |
| 5589 | + HFLevel VARCHAR(MAX), |
| 5590 | + HFSublevel VARCHAR(MAX), |
| 5591 | + TotalPopulation DECIMAL(18, 6), |
| 5592 | + TotalFamilies DECIMAL(18, 6), |
| 5593 | + TotalInsuredInsuree DECIMAL(18, 6), |
| 5594 | + TotalInsuredFamilies DECIMAL(18, 6), |
| 5595 | + TotalClaims DECIMAL(18, 6), |
| 5596 | + TotalAdjusted DECIMAL(18, 6), |
| 5597 | + |
| 5598 | + PaymentCathment DECIMAL(18, 6), |
| 5599 | + AlcContriPopulation DECIMAL(18, 6), |
| 5600 | + AlcContriNumFamilies DECIMAL(18, 6), |
| 5601 | + AlcContriInsPopulation DECIMAL(18, 6), |
| 5602 | + AlcContriInsFamilies DECIMAL(18, 6), |
| 5603 | + AlcContriVisits DECIMAL(18, 6), |
| 5604 | + AlcContriAdjustedAmount DECIMAL(18, 6), |
| 5605 | + UPPopulation DECIMAL(18, 6), |
| 5606 | + UPNumFamilies DECIMAL(18, 6), |
| 5607 | + UPInsPopulation DECIMAL(18, 6), |
| 5608 | + UPInsFamilies DECIMAL(18, 6), |
| 5609 | + UPVisits DECIMAL(18, 6), |
| 5610 | + UPAdjustedAmount DECIMAL(18, 6) |
| 5611 | + |
| 5612 | + |
| 5613 | + ); |
| 5614 | + |
| 5615 | + DECLARE @ClaimValues TABLE ( |
| 5616 | + HFID INT, |
| 5617 | + ProdId INT, |
| 5618 | + TotalAdjusted DECIMAL(18, 6), |
| 5619 | + TotalClaims DECIMAL(18, 6) |
| 5620 | + ); |
| 5621 | + |
| 5622 | + INSERT INTO @ClaimValues |
| 5623 | + SELECT HFID, @ProdId ProdId, SUM(TotalAdjusted)TotalAdjusted, COUNT(DISTINCT ClaimId)TotalClaims FROM |
| 5624 | + ( |
| 5625 | + SELECT HFID, SUM(PriceValuated)TotalAdjusted, ClaimId |
| 5626 | + FROM |
| 5627 | + (SELECT HFID,c.ClaimId, PriceValuated FROM tblClaim C WITH (NOLOCK) |
| 5628 | + LEFT JOIN tblClaimItems ci ON c.ClaimID = ci.ClaimID and ProdId = @ProdId AND (@WeightAdjustedAmount > 0.0) |
| 5629 | + WHERE CI.ValidityTo IS NULL AND C.ValidityTo IS NULL |
| 5630 | + AND C.ClaimStatus > 4 |
| 5631 | + AND YEAR(C.DateProcessed) = @Year |
| 5632 | + AND MONTH(C.DateProcessed) = @Month |
| 5633 | + AND C.HFID in (SELECT id FROM @listOfHF)and ci.ValidityTo IS NULL |
| 5634 | + UNION ALL |
| 5635 | + SELECT HFID, c.ClaimId, PriceValuated FROM tblClaim C WITH (NOLOCK) |
| 5636 | + LEFT JOIN tblClaimServices cs ON c.ClaimID = cs.ClaimID and ProdId = @ProdId AND (@WeightAdjustedAmount > 0.0) |
| 5637 | + WHERE cs.ValidityTo IS NULL AND C.ValidityTo IS NULL |
| 5638 | + AND C.ClaimStatus > 4 |
| 5639 | + AND YEAR(C.DateProcessed) = @Year |
| 5640 | + AND MONTH(C.DateProcessed) = @Month |
| 5641 | + AND C.HFID in (SELECT id FROM @listOfHF) and CS.ValidityTo IS NULL |
| 5642 | + ) claimdetails GROUP BY HFID,ClaimId |
| 5643 | + )claims GROUP by HFID |
| 5644 | + |
| 5645 | + INSERT INTO @ReportData |
| 5646 | + SELECT L.RegionCode, L.RegionName, L.DistrictCode, L.DistrictName, HF.HFCode, HF.HFName, Hf.AccCode, |
| 5647 | + HL.Name HFLevel, |
| 5648 | + SL.HFSublevelDesc HFSublevel, |
| 5649 | + PF.[TotalPopulation] TotalPopulation, PF.TotalFamilies TotalFamilies, II.TotalInsuredInsuree, IFam.TotalInsuredFamilies, CV.TotalClaims, CV.TotalAdjusted |
| 5650 | + ,( |
| 5651 | + ISNULL(ISNULL(PF.[TotalPopulation], 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightPopulation)) / NULLIF(SUM(PF.[TotalPopulation])OVER(),0),0) |
| 5652 | + + ISNULL(ISNULL(PF.TotalFamilies, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightNumberFamilies)) /NULLIF(SUM(PF.[TotalFamilies])OVER(),0),0) |
| 5653 | + + ISNULL(ISNULL(II.TotalInsuredInsuree, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightInsuredPopulation)) /NULLIF(SUM(II.TotalInsuredInsuree)OVER(),0),0) |
| 5654 | + + ISNULL(ISNULL(IFam.TotalInsuredFamilies, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightNumberInsuredFamilies)) /NULLIF(SUM(IFam.TotalInsuredFamilies)OVER(),0),0) |
| 5655 | + + ISNULL(ISNULL(CV.TotalClaims, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightNumberVisits)) /NULLIF(SUM(CV.TotalClaims)OVER() ,0),0) |
| 5656 | + + ISNULL(ISNULL(CV.TotalAdjusted, 0) * (A.Allocated * (0.01 * @ShareContribution) * (0.01 * @WeightAdjustedAmount)) /NULLIF(SUM(CV.TotalAdjusted)OVER(),0),0) |
| 5657 | + |
| 5658 | + ) PaymentCathment |
| 5659 | + |
| 5660 | + , A.Allocated * (0.01 * @WeightPopulation) * (0.01 * @ShareContribution) AlcContriPopulation |
| 5661 | + , A.Allocated * (0.01 * @WeightNumberFamilies) * (0.01 * @ShareContribution) AlcContriNumFamilies |
| 5662 | + , A.Allocated * (0.01 * @WeightInsuredPopulation) * (0.01 * @ShareContribution) AlcContriInsPopulation |
| 5663 | + , A.Allocated * (0.01 * @WeightNumberInsuredFamilies) * (0.01 * @ShareContribution) AlcContriInsFamilies |
| 5664 | + , A.Allocated * (0.01 * @WeightNumberVisits) * (0.01 * @ShareContribution) AlcContriVisits |
| 5665 | + , A.Allocated * (0.01 * @WeightAdjustedAmount) * (0.01 * @ShareContribution) AlcContriAdjustedAmount |
| 5666 | + |
| 5667 | + , ISNULL((A.Allocated * (0.01 * @WeightPopulation) * (0.01 * @ShareContribution))/ NULLIF(SUM(PF.[TotalPopulation]) OVER(),0),0) UPPopulation |
| 5668 | + , ISNULL((A.Allocated * (0.01 * @WeightNumberFamilies) * (0.01 * @ShareContribution))/NULLIF(SUM(PF.TotalFamilies) OVER(),0),0) UPNumFamilies |
| 5669 | + , ISNULL((A.Allocated * (0.01 * @WeightInsuredPopulation) * (0.01 * @ShareContribution))/NULLIF(SUM(II.TotalInsuredInsuree) OVER(),0),0) UPInsPopulation |
| 5670 | + , ISNULL((A.Allocated * (0.01 * @WeightNumberInsuredFamilies) * (0.01 * @ShareContribution))/ NULLIF(SUM(IFam.TotalInsuredFamilies) OVER(),0),0) UPInsFamilies |
| 5671 | + , ISNULL((A.Allocated * (0.01 * @WeightNumberVisits) * (0.01 * @ShareContribution)) / NULLIF(SUM(CV.TotalClaims) OVER(),0),0) UPVisits |
| 5672 | + , ISNULL((A.Allocated * (0.01 * @WeightAdjustedAmount) * (0.01 * @ShareContribution))/ NULLIF(SUM(CV.TotalAdjusted) OVER(),0),0) UPAdjustedAmount |
| 5673 | + |
| 5674 | + FROM tblHF HF |
| 5675 | + INNER JOIN @HFLevel HL ON HL.Code = HF.HFLevel |
| 5676 | + LEFT OUTER JOIN tblHFSublevel SL ON SL.HFSublevel = HF.HFSublevel |
| 5677 | + LEFT JOIN @LocationTemp L ON L.LocationId = HF.LocationId |
| 5678 | + LEFT OUTER JOIN @TotalPopFam PF ON PF.HFID = HF.HfID |
| 5679 | + LEFT OUTER JOIN @InsuredInsuree II ON II.HFID = HF.HfID |
| 5680 | + LEFT OUTER JOIN @InsuredFamilies IFam ON IFam.HFID = HF.HfID |
| 5681 | + -- LEFT OUTER JOIN @Claims C ON C.HFID = HF.HfID |
| 5682 | + LEFT OUTER JOIN @ClaimValues CV ON CV.HFID = HF.HfID |
| 5683 | + LEFT OUTER JOIN @Allocation A ON A.ProdID = @ProdId |
| 5684 | + |
| 5685 | + WHERE HF.ValidityTo IS NULL |
| 5686 | + AND (((L.RegionId = @RegionId OR @RegionId IS NULL) AND (L.DistrictId = @DistrictId OR @DistrictId IS NULL)) OR CV.ProdID IS NOT NULL OR II.ProdId IS NOT NULL) |
| 5687 | + AND (HF.HFLevel IN (@Level1, @Level2, @Level3, @Level4) OR (@Level1 IS NULL AND @Level2 IS NULL AND @Level3 IS NULL AND @Level4 IS NULL)) |
| 5688 | + AND( |
| 5689 | + ((HF.HFLevel = @Level1 OR @Level1 IS NULL) AND (HF.HFSublevel = @Sublevel1 OR @Sublevel1 IS NULL)) |
| 5690 | + OR ((HF.HFLevel = @Level2 ) AND (HF.HFSublevel = @Sublevel2 OR @Sublevel2 IS NULL)) |
| 5691 | + OR ((HF.HFLevel = @Level3) AND (HF.HFSublevel = @Sublevel3 OR @Sublevel3 IS NULL)) |
| 5692 | + OR ((HF.HFLevel = @Level4) AND (HF.HFSublevel = @Sublevel4 OR @Sublevel4 IS NULL)) |
| 5693 | + ); |
| 5694 | + |
| 5695 | + SELECT MAX (RegionCode)RegionCode, |
| 5696 | + MAX(RegionName)RegionName, |
| 5697 | + MAX(DistrictCode)DistrictCode, |
| 5698 | + MAX(DistrictName)DistrictName, |
| 5699 | + HFCode, |
| 5700 | + MAX(HFName)HFName, |
| 5701 | + MAX(AccCode)AccCode, |
| 5702 | + MAX(HFLevel)HFLevel, |
| 5703 | + MAX(HFSublevel)HFSublevel, |
| 5704 | + ISNULL(SUM([TotalPopulation]),0)[Population], |
| 5705 | + ISNULL(SUM(TotalFamilies),0)TotalFamilies, |
| 5706 | + ISNULL(SUM(TotalInsuredInsuree),0)TotalInsuredInsuree, |
| 5707 | + ISNULL(SUM(TotalInsuredFamilies),0)TotalInsuredFamilies, |
| 5708 | + ISNULL(MAX(TotalClaims), 0)TotalClaims, |
| 5709 | + ISNULL(SUM(AlcContriPopulation),0)AlcContriPopulation, |
| 5710 | + ISNULL(SUM(AlcContriNumFamilies),0)AlcContriNumFamilies, |
| 5711 | + ISNULL(SUM(AlcContriInsPopulation),0)AlcContriInsPopulation, |
| 5712 | + ISNULL(SUM(AlcContriInsFamilies),0)AlcContriInsFamilies, |
| 5713 | + ISNULL(SUM(AlcContriVisits),0)AlcContriVisits, |
| 5714 | + ISNULL(SUM(AlcContriAdjustedAmount),0)AlcContriAdjustedAmount, |
| 5715 | + ISNULL(SUM(UPPopulation),0)UPPopulation, |
| 5716 | + ISNULL(SUM(UPNumFamilies),0)UPNumFamilies, |
| 5717 | + ISNULL(SUM(UPInsPopulation),0)UPInsPopulation, |
| 5718 | + ISNULL(SUM(UPInsFamilies),0)UPInsFamilies, |
| 5719 | + ISNULL(SUM(UPVisits),0)UPVisits, |
| 5720 | + ISNULL(SUM(UPAdjustedAmount),0)UPAdjustedAmount, |
| 5721 | + ISNULL(SUM(PaymentCathment),0)PaymentCathment, |
| 5722 | + ISNULL(SUM(TotalAdjusted),0)TotalAdjusted |
| 5723 | + |
| 5724 | + FROM @ReportData |
| 5725 | + |
| 5726 | + GROUP BY HFCode |
| 5727 | +END |
| 5728 | +GO |
| 5729 | + |
5378 | 5730 | IF OBJECT_ID('[uspLastDateForPayment]', 'P') IS NOT NULL |
5379 | 5731 | DROP PROCEDURE [uspLastDateForPayment] |
5380 | 5732 | GO |
@@ -5424,4 +5776,3 @@ BEGIN |
5424 | 5776 | SELECT DATEADD(DAY, -1, @LastDate) LastDate; |
5425 | 5777 | END |
5426 | 5778 | GO |
5427 | | - |
|
0 commit comments