@@ -14,41 +14,46 @@ CREATE PROCEDURE [dbo].[uspSSRSProcessBatchWithClaim]
1414 )
1515 AS
1616 BEGIN
17+ IF @LocationId= - 1
18+ BEGIN
19+ SET @LocationId = NULL
20+ END
1721
18- IF @DateFrom = ' ' OR @DateFrom IS NULL OR @DateTo = ' ' OR @DateTo IS NULL
19- BEGIN
20- SET @DateFrom = N ' 1900-01-01'
21- SET @DateTo = N ' 3000-12-31'
22- END
22+ IF @DateFrom = ' ' OR @DateFrom IS NULL OR @DateTo = ' ' OR @DateTo IS NULL
23+ BEGIN
24+ SET @DateFrom = N ' 1900-01-01'
25+ SET @DateTo = N ' 3000-12-31'
26+ END
2327
24- ;WITH CDetails AS
25- (
26- SELECT CI .ClaimId , CI .ProdId ,
27- SUM (ISNULL (CI .PriceApproved , CI .PriceAsked ) * ISNULL (CI .QtyApproved , CI .QtyProvided )) PriceApproved,
28- SUM (CI .PriceValuated ) PriceAdjusted, SUM (CI .RemuneratedAmount )RemuneratedAmount
29- FROM tblClaimItems CI
30- WHERE CI .ValidityTo IS NULL
31- AND CI .ClaimItemStatus = 1
32- GROUP BY CI .ClaimId , CI .ProdId
33- UNION ALL
3428
35- SELECT CS .ClaimId , CS .ProdId ,
36- SUM (ISNULL (CS .PriceApproved , CS .PriceAsked ) * ISNULL (CS .QtyApproved , CS .QtyProvided )) PriceApproved,
37- SUM (CS .PriceValuated ) PriceValuated, SUM (CS .RemuneratedAmount ) RemuneratedAmount
29+ ;WITH CDetails AS
30+ (
31+ SELECT CI .ClaimId , CI .ProdId ,
32+ SUM (ISNULL (CI .PriceApproved , CI .PriceAsked ) * ISNULL (CI .QtyApproved , CI .QtyProvided )) PriceApproved,
33+ SUM (CI .PriceValuated ) PriceAdjusted, SUM (CI .RemuneratedAmount )RemuneratedAmount
34+ FROM tblClaimItems CI
35+ WHERE CI .ValidityTo IS NULL
36+ AND CI .ClaimItemStatus = 1
37+ GROUP BY CI .ClaimId , CI .ProdId
38+ UNION ALL
3839
39- FROM tblClaimServices CS
40- WHERE CS .ValidityTo IS NULL
41- AND CS .ClaimServiceStatus = 1
42- GROUP BY CS .CLaimId , CS .ProdId
43- )
40+ SELECT CS .ClaimId , CS .ProdId ,
41+ SUM (ISNULL (CS .PriceApproved , CS .PriceAsked ) * ISNULL (CS .QtyApproved , CS .QtyProvided )) PriceApproved,
42+ SUM (CS .PriceValuated ) PriceValuated, SUM (CS .RemuneratedAmount ) RemuneratedAmount
43+
44+ FROM tblClaimServices CS
45+ WHERE CS .ValidityTo IS NULL
46+ AND CS .ClaimServiceStatus = 1
47+ GROUP BY CS .CLaimId , CS .ProdId
48+ )
4449 SELECT C .ClaimCode , C .DateClaimed , CA .OtherNames OtherNamesAdmin, CA .LastName LastNameAdmin, C .DateFrom , C .DateTo , I .CHFID , I .OtherNames ,
4550 I .LastName , C .HFID , HF .HFCode , HF .HFName , HF .AccCode , Prod .ProdID , Prod .ProductCode , Prod .ProductName ,
4651 C .Claimed PriceAsked, SUM (CDetails .PriceApproved )PriceApproved, SUM (CDetails .PriceAdjusted )PriceAdjusted, SUM (CDetails .RemuneratedAmount )RemuneratedAmount,
4752 D .DistrictID , D .DistrictName , R .RegionId , R .RegionName
4853
4954 FROM tblClaim C
50- LEFT OUTER JOIN tblClaimAdmin CA ON CA .ClaimAdminId = C .ClaimAdminId
5155 INNER JOIN tblInsuree I ON I .InsureeId = C .InsureeID
56+ LEFT OUTER JOIN tblClaimAdmin CA ON CA .ClaimAdminId = C .ClaimAdminId
5257 INNER JOIN tblHF HF ON HF .HFID = C .HFID
5358 INNER JOIN CDetails ON CDetails .ClaimId = C .ClaimID
5459 INNER JOIN tblProduct Prod ON Prod .ProdId = CDetails .ProdID
@@ -61,10 +66,23 @@ CREATE PROCEDURE [dbo].[uspSSRSProcessBatchWithClaim]
6166 WHERE C .ValidityTo IS NULL
6267 AND (Prod .LocationId = @LocationId OR @LocationId = 0 OR Prod .LocationId IS NULL )
6368 AND (Prod .ProdId = @ProdId OR @ProdId = 0 )
64- AND (C .RunId IS NULL )
69+ AND (C .RunId = @RunId OR @RunId = 0 )
6570 AND (HF .HFId = @HFID OR @HFId = 0 )
6671 AND (HF .HFLevel = @HFLevel OR @HFLevel = N ' ' )
6772 AND (C .DateTo BETWEEN @DateFrom AND @DateTo)
73+ -- TO AVOID DOUBLE COUNT WITH CAPITATION
74+ AND CONCAT (HF .HFLevel ,' .' ,HF .HFSublevel ) NOT IN (
75+ SELECT CONCAT (HFlevel,' .' ,HFSublevel)
76+ FROM (values (' H' ), (' C' ), (' D' )) v(HFLevel)
77+ JOIN tblHFSublevel on 1 = 1
78+ INNER JOIN tblProduct Prod on prodid = @ProdID
79+ and (
80+ ((HF .HFLevel = prod .Level1 ) AND (HF .HFSublevel = Prod .SubLevel1 OR Prod .SubLevel1 IS NULL ))
81+ OR ((HF .HFLevel = Prod .Level2 ) AND (HF .HFSublevel = Prod .SubLevel2 OR Prod .SubLevel2 IS NULL ))
82+ OR ((HF .HFLevel = Prod .Level3 ) AND (HF .HFSublevel = Prod .SubLevel3 OR Prod .SubLevel3 IS NULL ))
83+ OR ((HF .HFLevel = Prod .Level4 ) AND (HF .HFSublevel = Prod .SubLevel4 OR Prod .SubLevel4 IS NULL ))
84+ )
85+ )
6886
6987 GROUP BY C .ClaimCode , C .DateClaimed , CA .OtherNames , CA .LastName , C .DateFrom , C .DateTo , I .CHFID , I .OtherNames ,
7088 I .LastName , C .HFID , HF .HFCode , HF .HFName , HF .AccCode , Prod .ProdID , Prod .ProductCode , Prod .ProductName , C .Claimed ,
0 commit comments