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.

272 lines
15 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_customerDocument] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER OFF
  7. GO
  8. CREATE proc [dbo].[proc_customerDocument]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@isHoUser VARCHAR(30) = NULL
  12. ,@cdId VARCHAR(30) = NULL
  13. ,@cdIds VARCHAR(MAX) = NULL
  14. ,@customerId VARCHAR(50) = NULL
  15. ,@agentId VARCHAR(50) = NULL
  16. ,@branchId VARCHAR(50) = NULL
  17. ,@fileName VARCHAR(50) = NULL
  18. ,@fileDescription VARCHAR(100) = NULL
  19. ,@fileType VARCHAR(10) = NULL
  20. ,@sortBy VARCHAR(50) = NULL
  21. ,@sortOrder VARCHAR(5) = NULL
  22. ,@pageSize INT = NULL
  23. ,@pageNumber INT = NULL
  24. AS
  25. SET NOCOUNT ON
  26. SET XACT_ABORT ON
  27. BEGIN TRY
  28. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  29. DECLARE
  30. @sql VARCHAR(MAX)
  31. ,@oldValue VARCHAR(MAX)
  32. ,@newValue VARCHAR(MAX)
  33. ,@module VARCHAR(10)
  34. ,@tableAlias VARCHAR(100)
  35. ,@logIdentifier VARCHAR(50)
  36. ,@logParamMod VARCHAR(100)
  37. ,@logParamMain VARCHAR(100)
  38. ,@table VARCHAR(MAX)
  39. ,@select_field_list VARCHAR(MAX)
  40. ,@extra_field_list VARCHAR(MAX)
  41. ,@sql_filter VARCHAR(MAX)
  42. ,@modType VARCHAR(6)
  43. ,@MSG VARCHAR(MAX)
  44. SELECT
  45. @logIdentifier = 'cdId'
  46. ,@logParamMain = 'customerDocument'
  47. ,@logParamMod = 'customerDocumentMod'
  48. ,@module = '20'
  49. ,@tableAlias = ''
  50. IF @flag = 'id'
  51. BEGIN
  52. SELECT @customerId = customerId FROM customers WITH(NOLOCK) WHERE idNumber = @customerId
  53. SELECT TOP 1
  54. fileName
  55. FROM customerDocument
  56. WHERE
  57. customerId = @customerId
  58. --AND fileDescription = 'ID'
  59. ORDER BY createdDate DESC
  60. RETURN
  61. END
  62. IF @flag = 'idm'
  63. BEGIN
  64. SELECT
  65. fileName,fileDescription,createdBy
  66. FROM customerDocument WITH(NOLOCK)
  67. WHERE
  68. customerId = @customerId AND ISNULL(isDeleted,'N')<>'Y'
  69. ORDER BY createdDate DESC
  70. RETURN
  71. END
  72. IF @flag = 'idh'
  73. BEGIN
  74. SELECT TOP 1
  75. fileName
  76. FROM customerDocument
  77. WHERE cdId = @cdId
  78. RETURN
  79. END
  80. IF @flag = 'i'
  81. BEGIN
  82. IF EXISTS (SELECT 'X' FROM customerDocument with(nolock)
  83. WHERE customerId = @customerId and fileDescription = @fileDescription)
  84. BEGIN
  85. EXEC proc_errorHandler 1, 'Document already uploaded, Please check.', @customerId
  86. RETURN;
  87. END
  88. IF @isHoUser = 'Y'
  89. BEGIN
  90. SET @agentID = '1001';
  91. SET @branchId = '1001';
  92. END
  93. BEGIN TRANSACTION
  94. SELECT @fileName = REPLACE(NEWID(), '-', '_') + '.' + @fileType
  95. INSERT INTO customerDocument (
  96. customerId
  97. ,agentId
  98. ,branchId
  99. ,[fileName]
  100. ,fileDescription
  101. ,fileType
  102. ,createdBy
  103. ,createdDate
  104. )
  105. SELECT
  106. @customerId
  107. ,@agentId
  108. ,@branchId
  109. ,@fileName
  110. ,@fileDescription
  111. ,@fileType
  112. ,@user
  113. ,GETDATE()
  114. IF EXISTS(SELECT 'X' FROM customerMaster cm WITH(NOLOCK) WHERE customerId = @customerId AND customerStatus = 'Complain')
  115. BEGIN
  116. UPDATE customerMaster SET customerStatus ='Updated' WHERE customerId = @customerId
  117. END
  118. SET @cdId = SCOPE_IDENTITY()
  119. SET @modType = 'Insert'
  120. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @cdId , @newValue OUTPUT
  121. INSERT INTO #msg(errorCode, msg, id)
  122. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @cdId, @user, @oldValue, @newValue
  123. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  124. BEGIN
  125. IF @@TRANCOUNT > 0
  126. ROLLBACK TRANSACTION
  127. EXEC proc_errorHandler 1, 'Failed to add new record.', @cdId
  128. RETURN
  129. END
  130. IF @@TRANCOUNT > 0
  131. COMMIT TRANSACTION
  132. DECLARE @string VARCHAR(100)
  133. SET @string = case when @fileDescription ='IdCard' then 'ID Card' else 'Enrollment Form' end +' Uploaded Successfully.'
  134. EXEC proc_errorHandler 0, @string, @fileName
  135. END
  136. ELSE IF @flag = 'a'
  137. BEGIN
  138. SELECT * FROM customerDocument WITH(NOLOCK) WHERE cdId = @cdId
  139. END
  140. ELSE IF @flag = 'u'
  141. BEGIN
  142. IF EXISTS (SELECT 'X' FROM customerDocument WITH(NOLOCK)
  143. WHERE customerId = @customerId
  144. AND fileDescription = @fileDescription)
  145. BEGIN
  146. SET @MSG = @fileDescription+' has been uploaded already.'
  147. EXEC proc_errorHandler 1, @MSG, @customerId
  148. RETURN;
  149. END
  150. IF EXISTS (SELECT 'X' FROM customers
  151. WHERE customerId = @customerId
  152. AND approvedBy IS NOT NULL)
  153. BEGIN
  154. EXEC proc_errorHandler 1, 'Approved Record Can not updated!', @customerId
  155. RETURN;
  156. END
  157. IF @isHoUser = 'Y'
  158. BEGIN
  159. SET @agentID = '1001';
  160. SET @branchId = '1001';
  161. END
  162. BEGIN TRANSACTION
  163. UPDATE customerDocument SET
  164. agentId=@agentId
  165. ,branchId=@branchId
  166. ,fileDescription = @fileDescription
  167. ,modifiedBy = @user
  168. ,modifiedDate = GETDATE()
  169. WHERE cdId = @cdId
  170. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @cdId, @newValue OUTPUT
  171. INSERT INTO #msg(errorCode, msg, id)
  172. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @cdId, @user, @oldValue, @newValue
  173. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  174. BEGIN
  175. IF @@TRANCOUNT > 0
  176. ROLLBACK TRANSACTION
  177. EXEC proc_errorHandler 1, 'Failed to update record.', @cdId
  178. RETURN
  179. END
  180. IF @@TRANCOUNT > 0
  181. COMMIT TRANSACTION
  182. EXEC proc_errorHandler 0, 'Record updated successfully.', @cdId
  183. END
  184. ELSE IF @flag = 'd'
  185. BEGIN
  186. IF EXISTS (SELECT 'X' FROM customers
  187. WHERE customerId IN (SELECT customerId FROM customerDocument WHERE cdId IN( @cdIds ) )
  188. AND approvedBy IS NOT NULL
  189. )
  190. BEGIN
  191. EXEC proc_errorHandler 1, 'Approved Record Can not Delete!', @customerId
  192. RETURN;
  193. END
  194. BEGIN TRANSACTION
  195. --SELECT CAST(cdId AS VARCHAR) + '.' + fileType AS [fileName] from customerDocument WHERE cdId IN (@cdIds)
  196. SET @sql='SELECT fileName FROM customerDocument WHERE cdId IN (' + @cdIds + ')'
  197. EXEC(@sql)
  198. SET @sql='DELETE FROM customerDocument where cdId in (' + @cdIds + ')'
  199. EXEC(@sql)
  200. SET @modType = 'Delete'
  201. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @cdId, @oldValue OUTPUT
  202. INSERT INTO #msg(errorCode, msg, id)
  203. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @cdId, @user, @oldValue, @newValue
  204. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  205. BEGIN
  206. IF @@TRANCOUNT > 0
  207. ROLLBACK TRANSACTION
  208. RETURN
  209. END
  210. IF @@TRANCOUNT > 0
  211. COMMIT TRANSACTION
  212. END
  213. ELSE IF @flag = 's'
  214. BEGIN
  215. SELECT
  216. cdId
  217. ,customerId
  218. ,[fileName]
  219. ,fileDescription = CASE WHEN fileDescription ='IdCard' THEN 'ID Card -1' WHEN fileDescription ='IdCard_2' THEN 'ID Card -2' WHEN fileDescription ='Photo' THEN 'Photo' ELSE ISNULL(fileDescription,'Enrollment Form') END
  220. ,fileType
  221. ,createdBy
  222. ,createdDate
  223. ,isDeleted
  224. FROM customerDocument WITH(NOLOCK)
  225. WHERE customerId = @customerId
  226. AND isKycDoc IS null
  227. END
  228. ELSE IF @flag='idImgDelete'
  229. BEGIN
  230. UPDATE customerDocument SET isDeleted='Y'
  231. WHERE fileName = @fileName AND customerId = @customerId
  232. EXEC proc_errorHandler 0, 'Image Deleted Successfully', @customerId
  233. RETURN;
  234. END
  235. END TRY
  236. BEGIN CATCH
  237. IF @@TRANCOUNT > 0
  238. ROLLBACK TRANSACTION
  239. DECLARE @errorMessage VARCHAR(MAX)
  240. SET @errorMessage = ERROR_MESSAGE()
  241. EXEC proc_errorHandler 1, @errorMessage, @cdId
  242. END CATCH
  243. GO