@@ -13142,6 +13142,80 @@ FINISH:
1314213142
1314313143 END CATCH
1314413144END
13145+ GO
1314513146
13146-
13147+ IF OBJECT_ID('[uspInsertFeedback]', 'P') IS NOT NULL
13148+ DROP PROCEDURE [uspInsertFeedback]
1314713149GO
13150+ CREATE PROCEDURE [dbo].[uspInsertFeedback]
13151+ (
13152+ @XML XML
13153+ )
13154+ /*
13155+ -1: Fatal Error
13156+ 0: All OK
13157+ 1: Invalid Officer code
13158+ 2: Claim does not exist
13159+ 3: Invalid CHFID
13160+ 4: FeedBack Exists
13161+
13162+ */
13163+ AS
13164+ BEGIN
13165+
13166+ BEGIN TRY
13167+ DECLARE @Query NVARCHAR(3000)
13168+
13169+ DECLARE @OfficerCode NVARCHAR(8)
13170+ DECLARE @OfficerID INT
13171+ DECLARE @ClaimID INT
13172+ DECLARE @CHFID VARCHAR(12)
13173+ DECLARE @Answers VARCHAR(5)
13174+ DECLARE @FeedbackDate DATE
13175+
13176+ SELECT
13177+ @OfficerCode = feedback.value('(Officer)[1]','NVARCHAR(8)'),
13178+ @ClaimID = feedback.value('(ClaimID)[1]','NVARCHAR(8)'),
13179+ @CHFID = feedback.value('(CHFID)[1]','VARCHAR(12)'),
13180+ @Answers = feedback.value('(Answers)[1]','VARCHAR(5)'),
13181+ @FeedbackDate = feedback.value('(Date)[1]','VARCHAR(10)')
13182+ FROM @XML.nodes('feedback') AS T(feedback)
13183+
13184+ DECLARE @ClaimCode NVARCHAR(8)
13185+
13186+ SELECT @ClaimCode = ClaimCode FROM tblClaim WHERE ClaimID = @ClaimID AND ValidityTo IS NULL
13187+
13188+ IF NOT EXISTS(SELECT * FROM tblOfficer WHERE Code = @OfficerCode AND ValidityTo IS NULL)
13189+ RETURN 1
13190+ ELSE
13191+ SELECT @OfficerID = OfficerID FROM tblOfficer WHERE Code = @OfficerCode AND ValidityTo IS NULL
13192+
13193+ IF NOT EXISTS(SELECT * FROM tblClaim WHERE ClaimCode = @ClaimCode AND ValidityTo IS NULL)
13194+ RETURN 2
13195+
13196+ IF NOT EXISTS(SELECT C.ClaimID FROM tblClaim C INNER JOIN tblInsuree I ON C.InsureeID = I.InsureeID WHERE C.ClaimID = @ClaimID AND I.CHFID = @CHFID)
13197+ RETURN 3
13198+
13199+ IF EXISTS(SELECT 1 FROM tblFeedback WHERE ClaimID = @ClaimID AND ValidityTo IS NULL)
13200+ RETURN 4
13201+
13202+ DECLARE @CareRendered BIT = SUBSTRING(@Answers,1,1)
13203+ DECLARE @PaymentAsked BIT = SUBSTRING(@Answers,2,1)
13204+ DECLARE @DrugPrescribed BIT = SUBSTRING(@Answers,3,1)
13205+ DECLARE @DrugReceived BIT = SUBSTRING(@Answers,4,1)
13206+ DECLARE @Asessment TINYINT = SUBSTRING(@Answers,5,1)
13207+
13208+ INSERT INTO tblFeedback(ClaimID,CareRendered,PaymentAsked,DrugPrescribed,DrugReceived,Asessment,CHFOfficerCode,FeedbackDate,ValidityFrom,AuditUserID)
13209+ VALUES(@ClaimID,@CareRendered,@PaymentAsked,@DrugPrescribed,@DrugReceived,@Asessment,@OfficerID,@FeedbackDate,GETDATE(),-1);
13210+
13211+ UPDATE tblClaim SET FeedbackStatus = 8 WHERE ClaimID = @ClaimID;
13212+
13213+ END TRY
13214+ BEGIN CATCH
13215+ SELECT ERROR_MESSAGE()
13216+ RETURN -1
13217+ END CATCH
13218+
13219+ RETURN 0
13220+ END
13221+ GO
0 commit comments