You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

350 lines
20 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_imeRemitCardReIssue] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[proc_imeRemitCardReIssue](
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(20) = NULL
  11. ,@rowId VARCHAR(20) = NULL
  12. ,@customerName varchar(40) = NULL
  13. ,@oldRemitCardNo varchar(40) = NULL
  14. ,@newRemitCardNo varchar(40) = NULL
  15. ,@remark VARCHAR(200) = NULL
  16. ,@requestFor VARCHAR(10) = NULL
  17. ,@modType VARCHAR(10) = NULL
  18. ,@sortBy VARCHAR(50) = NULL
  19. ,@sortOrder VARCHAR(5) = NULL
  20. ,@pageSize INT = NULL
  21. ,@pageNumber INT = NULL
  22. ,@isApproved CHAR(1) = NULL
  23. )AS
  24. BEGIN
  25. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), membershipId INT)
  26. DECLARE
  27. @sql VARCHAR(MAX)
  28. ,@oldValue VARCHAR(MAX)
  29. ,@newValue VARCHAR(MAX)
  30. ,@module VARCHAR(10)
  31. ,@tableAlias VARCHAR(100)
  32. ,@logIdentifier VARCHAR(50)
  33. ,@logParamMod VARCHAR(100)
  34. ,@logParamMain VARCHAR(100)
  35. ,@errorMsg VARCHAR(MAX)
  36. SELECT
  37. @logIdentifier = 'rowId'
  38. ,@logParamMain = 'IME Remit Card Reissue'
  39. ,@module = '20'
  40. ,@tableAlias = 'imeRemitCardReIssueRequest'
  41. IF @flag = 's'
  42. BEGIN
  43. DECLARE
  44. @selectFieldList VARCHAR(MAX)
  45. ,@extraFieldList VARCHAR(MAX)
  46. ,@table VARCHAR(MAX)
  47. ,@sqlFilter VARCHAR(MAX)
  48. DECLARE @hasRight CHAR(1)
  49. SET @hasRight = dbo.FNAHasRight(@user, '20832430')
  50. IF @sortBy IS NULL
  51. SET @sortBy = 'CustomerName'
  52. IF @sortOrder IS NULL
  53. SET @sortOrder = 'DESC'
  54. SET @table = '(SELECT
  55. r.rowId
  56. ,requestingFor = case when requestFor = ''C'' then ''IME Remit Card Loss'' else ''PIN Number Loss'' end
  57. ,oldRemitCardNo = r.oldRemitCardNo
  58. ,newRemitCardNo = r.newRemitCardNo
  59. ,CustomerName = r.customerName
  60. ,createdBy = r.createdBy
  61. ,createdDate = r.createdDate
  62. ,haschanged = CASE WHEN r.approvedBy IS NULL THEN ''Y'' ELSE ''N'' END
  63. ,modifiedBy = ISNULL(r.modifiedBy,r.createdBy)
  64. ,isApproved = CASE WHEN (r.approvedBy IS NULL) THEN ''N'' ELSE ''Y'' END
  65. FROM imeRemitCardReIssueRequest r WITH(NOLOCK)
  66. WHERE 1=1
  67. )x'
  68. SET @sqlFilter = ''
  69. IF @customerName is not null
  70. SET @sqlFilter=@sqlFilter+'AND CustomerName LIKE ''%'+@customerName+'%'''
  71. IF @oldRemitCardNo is not null
  72. SET @sqlFilter=@sqlFilter+'AND oldRemitCardNo = '''+@oldRemitCardNo+''''
  73. IF @newRemitCardNo is not null
  74. SET @sqlFilter=@sqlFilter+'AND newRemitCardNo = '''+@newRemitCardNo+''''
  75. IF @isApproved IS NOT NULL
  76. SET @sqlFilter = @sqlFilter + ' AND isApproved = ''' + @isApproved + ''''
  77. SET @selectFieldList = '
  78. rowId
  79. , requestingFor
  80. , oldRemitCardNo
  81. , newRemitCardNo
  82. , CustomerName
  83. , createdBy
  84. , createdDate
  85. , haschanged
  86. , modifiedBy
  87. , isApproved
  88. '
  89. EXEC dbo.proc_paging
  90. @table
  91. ,@sqlFilter
  92. ,@selectFieldList
  93. ,@extraFieldList
  94. ,@sortBy
  95. ,@sortOrder
  96. ,@pageSize
  97. ,@pageNumber
  98. RETURN
  99. END
  100. IF @flag='i'
  101. BEGIN
  102. IF NOT EXISTS(SELECT 'X' FROM imeRemitCardMaster WITH(NOLOCK)
  103. WHERE cardStatus IN ('Enrolled','Reserved') AND remitCardNo = @oldRemitCardNo)
  104. BEGIN
  105. SELECT '1' errorCode,'IME Remit Card has not been issued yet.' msg,null
  106. RETURN
  107. END
  108. --IF @requestFor = 'C'
  109. --BEGIN
  110. -- IF NOT EXISTS(SELECT 'X' FROM imeRemitCardMaster WITH(NOLOCK) WHERE cardStatus='Available' AND remitCardNo=@newRemitCardNo)
  111. -- BEGIN
  112. -- SELECT '1' errorCode,'New IME Remit Card not found.' msg,null
  113. -- RETURN
  114. -- END
  115. --END
  116. IF NOT EXISTS(SELECT 'X' FROM kycMaster km WITH(NOLOCK) WHERE remitCardNo = @oldRemitCardNo AND approvedDate IS NOT NULL)
  117. BEGIN
  118. SELECT '1' errorCode,'KYC cutomer not found.' msg,@oldRemitCardNo
  119. RETURN
  120. END
  121. IF EXISTS(SELECT 'X' FROM imeRemitCardReIssueRequest WITH(NOLOCK)
  122. WHERE oldRemitCardNo = @oldRemitCardNo AND approvedDate is null)
  123. BEGIN
  124. SELECT '1' errorCode,'Earlier Request made has not been approved yet: '+@oldRemitCardNo+'.' msg,null
  125. RETURN
  126. END
  127. IF EXISTS(SELECT 'x' FROM dbo.kycMaster km WITH(NOLOCK)
  128. WHERE approvedDate IS not NULL AND remitCardNo = @newRemitCardNo)
  129. BEGIN
  130. SELECT '1' errorCode,'New Remit Card already in use, Please check once.' msg,null
  131. RETURN
  132. END
  133. INSERT INTO imeRemitCardMaster (remitCardNo,accountNo,cardStatus,createdBy,createdDate)
  134. SELECT @newRemitCardNo,accountNo,'Available',@user,GETDATE()
  135. FROM imeRemitCardMaster WITH(NOLOCK) WHERE remitCardNo = @oldRemitCardNo
  136. INSERT INTO imeRemitCardReIssueRequest(
  137. oldRemitCardNo
  138. ,newRemitCardNo
  139. ,requestRemarks
  140. ,requestFor
  141. ,createdBy
  142. ,createdDate
  143. ,customerName
  144. )SELECT
  145. @oldRemitCardNo
  146. ,@newRemitCardNo
  147. ,@remark
  148. ,@requestFor
  149. ,@user
  150. ,GETDATE()
  151. ,ISNULL(km.firstName, '') + ISNULL( ' ' + km.middleName, '')+ ISNULL( ' ' + km.lastName, '')
  152. FROM kycMaster km with(nolock) where km.remitCardNo = @oldRemitCardNo
  153. SELECT '0' errorCode,'New IME Remit Card request has been made successfully. Waiting for approval.' msg,null
  154. RETURN
  155. END
  156. IF @flag='a'
  157. BEGIN
  158. SELECT
  159. id=rowId
  160. ,oldRemitCardNo
  161. ,newRemitCardNo
  162. ,Remarks=requestRemarks
  163. ,createdBy
  164. ,approvedDate
  165. ,requestFor
  166. FROM imeRemitCardReIssueRequest WITH(NOLOCK) WHERE rowId=@rowId
  167. RETURN
  168. END
  169. IF @flag='u'
  170. BEGIN
  171. IF EXISTS (SELECT 'X' FROM imeRemitCardReIssueRequest WITH(NOLOCK) WHERE rowId = @rowId AND approvedBy IS NULL AND createdBy <> @user)
  172. BEGIN
  173. EXEC proc_errorHandler 1, 'You can not modify this record. Previous Modification has not been approved yet.', @rowId
  174. RETURN
  175. END
  176. IF EXISTS (SELECT 'X' FROM imeRemitCardReIssueRequestMod WITH(NOLOCK) WHERE reqId = @rowId AND createdBy <> @user)
  177. BEGIN
  178. EXEC proc_errorHandler 1, 'You can not modify this record. Previous Modification has not been approved yet.', @rowId
  179. RETURN
  180. END
  181. IF NOT EXISTS(SELECT 'X' FROM imeRemitCardMaster WITH(NOLOCK) WHERE cardStatus IN ('Reserved','Enrolled') AND remitCardNo=@oldRemitCardNo)
  182. BEGIN
  183. SELECT '1' errorCode,'IME Remit Card has not been issued yet.' msg,null
  184. RETURN
  185. END
  186. IF NOT EXISTS(SELECT 'X' FROM kycMaster km WITH(NOLOCK) WHERE remitCardNo = @oldRemitCardNo AND approvedDate IS NOT NULL)
  187. BEGIN
  188. SELECT '1' errorCode,'KYC cutomer not found.' msg,@oldRemitCardNo
  189. RETURN
  190. END
  191. IF @requestFor = 'C'
  192. BEGIN
  193. IF NOT EXISTS(SELECT 'X' FROM imeRemitCardMaster WITH(NOLOCK) WHERE cardStatus='Available' AND remitCardNo = @newRemitCardNo)
  194. BEGIN
  195. SELECT '1' errorCode,'New IME Remit Card not found.' msg,null
  196. RETURN
  197. END
  198. END
  199. IF EXISTS(SELECT 'x' FROM dbo.kycMaster km WITH(NOLOCK)
  200. WHERE approvedDate IS not NULL AND remitCardNo = @newRemitCardNo)
  201. BEGIN
  202. SELECT '1' errorCode,'New Remit Card already in use, Please check once.' msg,null
  203. RETURN
  204. END
  205. BEGIN TRANSACTION
  206. if not exists(select 'x' from imeRemitCardMaster with(nolock) where remitCardNo = @newRemitCardNo)
  207. begin
  208. INSERT INTO imeRemitCardMaster (remitCardNo,accountNo,cardStatus,createdBy,createdDate)
  209. SELECT @newRemitCardNo,accountNo,'Available',@user,GETDATE()
  210. FROM imeRemitCardMaster WITH(NOLOCK) WHERE remitCardNo = @oldRemitCardNo
  211. end
  212. UPDATE imeRemitCardReIssueRequest
  213. SET oldRemitCardNo =@oldRemitCardNo
  214. ,newRemitCardNo =@newRemitCardNo
  215. ,requestRemarks =@Remark
  216. ,modifiedBy =@user
  217. ,modifiedDate =GETDATE()
  218. ,requestFor =@requestFor
  219. ,customerName = ''
  220. FROM imeRemitCardReIssueRequest A,
  221. (
  222. SELECT remitCardNo,customerName = ISNULL(km.firstName, '') + ISNULL( ' ' + km.middleName, '')+ ISNULL( ' ' + km.lastName, '')
  223. FROM kycMaster km WITH(NOLOCK) WHERE km.remitCardNo = @oldRemitCardNo
  224. )B WHERE B.remitCardNo = @oldRemitCardNo AND A.rowId=@rowId
  225. IF @@ERROR = 0
  226. BEGIN
  227. COMMIT TRANSACTION
  228. SELECT '0' errorCode,'Your request has been modified successfully.' msg,null
  229. RETURN
  230. END
  231. ELSE
  232. BEGIN
  233. ROLLBACK TRANSACTION
  234. EXEC proc_errorHandler 1, 'Modification Failed', @rowId
  235. RETURN
  236. END
  237. RETURN
  238. END
  239. IF @flag='reject'
  240. BEGIN
  241. UPDATE imeRemitCardReIssueRequest SET
  242. rejectedBy =@user
  243. ,rejectedDate =GETDATE()
  244. WHERE rowId=@rowId
  245. SELECT '0' errorCode,'Your request has been rejected successfully.' msg,null
  246. RETURN
  247. END
  248. IF @flag = 'approve'
  249. BEGIN
  250. DECLARE @remitCardNo VARCHAR(20)=''
  251. IF NOT EXISTS(SELECT 'X' FROM imeRemitCardReIssueRequest WITH(NOLOCK) WHERE rowId = @rowId AND approvedDate IS NULL)
  252. BEGIN
  253. EXEC proc_errorHandler 1, 'Request not found.', NULL
  254. RETURN
  255. END
  256. BEGIN TRANSACTION
  257. SELECT
  258. @remitCardNo=newRemitCardNo
  259. ,@oldRemitCardNo=oldRemitCardNo
  260. ,@requestFor=LTRIM(requestFor)
  261. FROM imeRemitCardReIssueRequest WITH(NOLOCK)
  262. WHERE rowId=@rowId
  263. IF @requestFor='C'
  264. BEGIN
  265. UPDATE kycMaster SET
  266. remitCardNo = @remitCardNo
  267. WHERE remitCardNo = @oldRemitCardNo
  268. UPDATE customerMaster SET membershipId = @remitCardNo
  269. WHERE membershipId = @oldRemitCardNo
  270. END
  271. update imeRemitCardMaster set cardStatus = 'Enrolled' where remitCardNo = @remitCardNo
  272. UPDATE imeRemitCardReIssueRequest SET
  273. approvedBy = @user,approvedDate = GETDATE()
  274. WHERE rowId=@rowId
  275. IF @@ERROR = 0
  276. BEGIN
  277. COMMIT TRANSACTION
  278. EXEC proc_errorHandler 0, 'Record approved successfully.', @rowId
  279. RETURN
  280. END
  281. ELSE
  282. BEGIN
  283. ROLLBACK TRANSACTION
  284. EXEC proc_errorHandler 1, 'Failed to approve record.', @rowId
  285. RETURN
  286. END
  287. RETURN
  288. END
  289. IF @flag='a-agent'
  290. BEGIN
  291. SELECT TOP 1
  292. rowId
  293. ,oldRemitCardNo
  294. ,newRemitCardNo
  295. ,requestRemarks
  296. ,createdBy
  297. ,approvedDate
  298. ,requestFor
  299. FROM imeRemitCardReIssueRequest WITH(NOLOCK)
  300. WHERE oldRemitCardNo = @oldRemitCardNo
  301. AND approvedDate IS NULL
  302. AND rejectedDate IS NULL
  303. RETURN
  304. END
  305. END
  306. GO