@@ -9377,3 +9377,111 @@ IF COL_LENGTH(N'tblPayment', N'PhoneNumber') IS NOT NULL
93779377 ALTER TABLE tblPayment
93789378 ALTER COLUMN PhoneNumber NVARCHAR (50 ) NULL
93799379GO
9380+
9381+ -- OTC-492
9382+
9383+ IF OBJECT_ID (' uspSSRSGetClaimOverview' , ' P' ) IS NOT NULL
9384+ DROP PROCEDURE uspSSRSGetClaimOverview
9385+ GO
9386+
9387+ CREATE PROCEDURE [dbo].[uspSSRSGetClaimOverview]
9388+ (
9389+ @HFID INT ,
9390+ @LocationId INT ,
9391+ @ProdId INT ,
9392+ @StartDate DATE ,
9393+ @EndDate DATE ,
9394+ @ClaimStatus INT = NULL ,
9395+ @ClaimRejReason xClaimRejReasons READONLY ,
9396+ @Scope INT = NULL
9397+ )
9398+ AS
9399+ BEGIN
9400+ -- no scope -1
9401+ -- claim only 0
9402+ -- claimand rejection 1
9403+ -- all 2
9404+ ;WITH TotalForItems AS
9405+ (
9406+ SELECT C .ClaimId , SUM (CI .PriceAsked * CI .QtyProvided )Claimed,
9407+ SUM (ISNULL (CI .PriceApproved , CI .PriceAsked ) * ISNULL (CI .QtyApproved , CI .QtyProvided )) Approved,
9408+ SUM (CI .PriceValuated )Adjusted,
9409+ SUM (CI .RemuneratedAmount )Remunerated
9410+ FROM tblClaim C LEFT OUTER JOIN tblClaimItems CI ON C .ClaimId = CI .ClaimID
9411+ WHERE C .ValidityTo IS NULL
9412+ AND CI .ValidityTo IS NULL
9413+ GROUP BY C .ClaimID
9414+ ), TotalForServices AS
9415+ (
9416+ SELECT C .ClaimId , SUM (CS .PriceAsked * CS .QtyProvided )Claimed,
9417+ SUM (ISNULL (CS .PriceApproved , CS .PriceAsked ) * ISNULL (CS .QtyApproved , CS .QtyProvided )) Approved,
9418+ SUM (CS .PriceValuated )Adjusted,
9419+ SUM (CS .RemuneratedAmount )Remunerated
9420+ FROM tblClaim C
9421+ LEFT OUTER JOIN tblClaimServices CS ON C .ClaimId = CS .ClaimID
9422+ WHERE C .ValidityTo IS NULL
9423+ AND CS .ValidityTo IS NULL
9424+ GROUP BY C .ClaimID
9425+ )
9426+
9427+ SELECT C .DateClaimed , C .ClaimID , I .ItemId , S .ServiceID , HF .HFCode , HF .HFName , C .ClaimCode , C .DateClaimed , CA .LastName + ' ' + CA .OtherNames ClaimAdminName,
9428+ C .DateFrom , C .DateTo , Ins .CHFID , Ins .LastName + ' ' + Ins .OtherNames InsureeName,
9429+ CASE C .ClaimStatus WHEN 1 THEN N ' Rejected' WHEN 2 THEN N ' Entered' WHEN 4 THEN N ' Checked' WHEN 8 THEN N ' Processed' WHEN 16 THEN N ' Valuated' END ClaimStatus,
9430+ C .RejectionReason , COALESCE (TFI .Claimed + TFS .Claimed , TFI .Claimed , TFS .Claimed ) Claimed,
9431+ COALESCE (TFI .Approved + TFS .Approved , TFI .Approved , TFS .Approved ) Approved,
9432+ COALESCE (TFI .Adjusted + TFS .Adjusted , TFI .Adjusted , TFS .Adjusted ) Adjusted,
9433+ COALESCE (TFI .Remunerated + TFS .Remunerated , TFI .Remunerated , TFS .Remunerated )Paid,
9434+ CASE WHEN @Scope = 2 OR CI .RejectionReason <> 0 THEN I .ItemCode ELSE NULL END RejectedItem, CI .RejectionReason ItemRejectionCode,
9435+ CASE WHEN @Scope = 2 OR CS .RejectionReason <> 0 THEN S .ServCode ELSE NULL END RejectedService, CS .RejectionReason ServiceRejectionCode,
9436+ CASE WHEN @Scope = 2 OR CI .QtyProvided <> COALESCE (CI .QtyApproved ,CI .QtyProvided ) THEN I .ItemCode ELSE NULL END AdjustedItem,
9437+ CASE WHEN @Scope = 2 OR CI .QtyProvided <> COALESCE (CI .QtyApproved ,CI .QtyProvided ) THEN ISNULL (CI .QtyProvided ,0 ) ELSE NULL END OrgQtyItem,
9438+ CASE WHEN @Scope = 2 OR CI .QtyProvided <> COALESCE (CI .QtyApproved ,CI .QtyProvided ) THEN ISNULL (CI .QtyApproved ,0 ) ELSE NULL END AdjQtyItem,
9439+ CASE WHEN @Scope = 2 OR CS .QtyProvided <> COALESCE (CS .QtyApproved ,CS .QtyProvided ) THEN S .ServCode ELSE NULL END AdjustedService,
9440+ CASE WHEN @Scope = 2 OR CS .QtyProvided <> COALESCE (CS .QtyApproved ,CS .QtyProvided ) THEN ISNULL (CS .QtyProvided ,0 ) ELSE NULL END OrgQtyService,
9441+ CASE WHEN @Scope = 2 OR CS .QtyProvided <> COALESCE (CS .QtyApproved ,CS .QtyProvided ) THEN ISNULL (CS .QtyApproved ,0 ) ELSE NULL END AdjQtyService,
9442+ C .Explanation ,
9443+ -- ALL claims
9444+ CASE WHEN @Scope = 2 THEN CS .QtyApproved ELSE NULL END ServiceQtyApproved,
9445+ CASE WHEN @Scope = 2 THEN CI .QtyApproved ELSE NULL END ItemQtyApproved,
9446+ CASE WHEN @Scope = 2 THEN cs .PriceAsked ELSE NULL END ServicePrice,
9447+ CASE WHEN @Scope = 2 THEN CI .PriceAsked ELSE NULL END ItemPrice,
9448+ CASE WHEN @Scope = 2 THEN ISNULL (cs .PriceApproved ,0 ) ELSE NULL END ServicePriceApproved,
9449+ CASE WHEN @Scope = 2 THEN ISNULL (ci .PriceApproved ,0 ) ELSE NULL END ItemPriceApproved,
9450+ CASE WHEN @Scope = 2 THEN ISNULL (cs .Justification ,NULL ) ELSE NULL END ServiceJustification,
9451+ CASE WHEN @Scope = 2 THEN ISNULL (CI .Justification ,NULL ) ELSE NULL END ItemJustification,
9452+ CASE WHEN @Scope = 2 THEN cs .ClaimServiceID ELSE NULL END ClaimServiceID,
9453+ CASE WHEN @Scope = 2 THEN CI .ClaimItemID ELSE NULL END ClaimItemID,
9454+ -- ,cs.PriceApproved ServicePriceApproved,ci.PriceApproved ItemPriceApproved--,
9455+ CASE WHEN @Scope > 0 THEN CONCAT (CS .RejectionReason ,' - ' , XCS .Name ) ELSE NULL END ServiceRejectionReason,
9456+ CASE WHEN @Scope > 0 THEN CONCAT (CI .RejectionReason , ' - ' , XCI .Name ) ELSE NULL END ItemRejectionReason
9457+
9458+ -- end all claims
9459+
9460+
9461+ FROM tblClaim C LEFT OUTER JOIN tblClaimItems CI ON C .ClaimId = CI .ClaimID
9462+ LEFT OUTER JOIN tblClaimServices CS ON C .ClaimId = CS .ClaimID
9463+ LEFT OUTER JOIN tblItems I ON CI .ItemId = I .ItemID
9464+ LEFT OUTER JOIN tblServices S ON CS .ServiceID = S .ServiceID
9465+ -- INNER JOIN tblProduct PROD ON PROD.ProdID = CS.ProdID AND PROD.ProdID = CI.ProdID
9466+ INNER JOIN tblHF HF ON C .HFID = HF .HfID
9467+ LEFT OUTER JOIN tblLocations L ON HF .LocationId = L .LocationId
9468+ LEFT OUTER JOIN tblClaimAdmin CA ON C .ClaimAdminId = CA .ClaimAdminId
9469+ INNER JOIN tblInsuree Ins ON C .InsureeId = Ins .InsureeId
9470+ LEFT OUTER JOIN TotalForItems TFI ON C .ClaimId = TFI .ClaimID
9471+ LEFT OUTER JOIN TotalForServices TFS ON C .ClaimId = TFS .ClaimId
9472+ -- all claims
9473+ LEFT JOIN @ClaimRejReason XCI ON XCI .ID = CI .RejectionReason
9474+ LEFT JOIN @ClaimRejReason XCS ON XCS .ID = CS .RejectionReason
9475+ -- and all claims
9476+ WHERE C .ValidityTo IS NULL
9477+ AND L .ValidityTo IS NULL
9478+ AND HF .ValidityTo IS NULL
9479+ AND CA .ValidityTo IS NULL
9480+ AND ISNULL (C .DateTo ,C .DateFrom ) BETWEEN @StartDate AND @EndDate
9481+ AND (C .ClaimStatus = @ClaimStatus OR @ClaimStatus IS NULL )
9482+ AND (L .LocationId = @LocationId OR L .ParentLocationId = @LocationId OR @LocationId = 0 )
9483+ AND (HF .HFID = @HFID OR @HFID = 0 )
9484+ AND (CI .ProdID = @ProdId OR CS .ProdID = @ProdId
9485+ OR COALESCE (CS .ProdID , CI .ProdId ) IS NULL OR @ProdId = 0 )
9486+ END
9487+ GO
0 commit comments