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.

270 lines
17 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_customerIdentity] 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_customerIdentity]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@cIdentityId VARCHAR(30) = NULL
  12. ,@idType INT = NULL
  13. ,@idNumber VARCHAR(50) = NULL
  14. ,@customerId INT = NULL
  15. ,@issueCountry INT = NULL
  16. ,@placeOfIssue VARCHAR(50) = NULL
  17. ,@issuedDate DATETIME = NULL
  18. ,@validDate DATETIME = NULL
  19. ,@expiryType CHAR(1) = NULL
  20. ,@isPrimary CHAR(1) = NULL
  21. ,@sortBy VARCHAR(50) = NULL
  22. ,@sortOrder VARCHAR(5) = NULL
  23. ,@pageSize INT = NULL
  24. ,@pageNumber INT = NULL
  25. AS
  26. SET NOCOUNT ON
  27. SET XACT_ABORT ON
  28. BEGIN TRY
  29. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  30. DECLARE
  31. @sql VARCHAR(MAX)
  32. ,@oldValue VARCHAR(MAX)
  33. ,@newValue VARCHAR(MAX)
  34. ,@module VARCHAR(10)
  35. ,@tableAlias VARCHAR(100)
  36. ,@logIdentifier VARCHAR(50)
  37. ,@logParamMod VARCHAR(100)
  38. ,@logParamMain VARCHAR(100)
  39. ,@table VARCHAR(MAX)
  40. ,@select_field_list VARCHAR(MAX)
  41. ,@extra_field_list VARCHAR(MAX)
  42. ,@sql_filter VARCHAR(MAX)
  43. ,@modType VARCHAR(6)
  44. SELECT
  45. @logIdentifier = 'cIdentityId'
  46. ,@logParamMain = 'customerIdentity'
  47. ,@logParamMod = 'customerIdentityMod'
  48. ,@module = '20'
  49. ,@tableAlias = 'Customer Identity'
  50. IF @flag = 'i'
  51. BEGIN
  52. IF EXISTS(SELECT 'X' FROM customerIdentity WITH(NOLOCK)
  53. WHERE customerId = @customerId AND idType = @idType AND ISNULL(isDeleted, 'N') <> 'Y')
  54. BEGIN
  55. EXEC proc_errorHandler 1, 'Identity Type already exists', @customerId
  56. RETURN
  57. END
  58. IF (EXISTS(SELECT 'X' FROM customerIdentity WITH(NOLOCK)
  59. WHERE customerId = @customerId AND isPrimary = 'Y' AND ISNULL(isDeleted, 'N') <> 'Y') AND @isPrimary = 'Y')
  60. BEGIN
  61. EXEC proc_errorHandler 1, 'Primary Identity Already Exists', @customerId
  62. RETURN
  63. END
  64. BEGIN TRANSACTION
  65. INSERT INTO customerIdentity (
  66. idType
  67. ,idNumber
  68. ,customerId
  69. ,issueCountry
  70. ,placeOfIssue
  71. ,issuedDate
  72. ,validDate
  73. ,expiryType
  74. ,isPrimary
  75. ,createdBy
  76. ,createdDate
  77. )
  78. SELECT
  79. @idType
  80. ,@idNumber
  81. ,@customerId
  82. ,@issueCountry
  83. ,@placeOfIssue
  84. ,@issuedDate
  85. ,@validDate
  86. ,@expiryType
  87. ,@isPrimary
  88. ,@user
  89. ,GETDATE()
  90. SET @cIdentityId = SCOPE_IDENTITY()
  91. SET @modType = 'Insert'
  92. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @cIdentityId , @newValue OUTPUT
  93. INSERT INTO #msg(errorCode, msg, id)
  94. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @cIdentityId, @user, @oldValue, @newValue
  95. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  96. BEGIN
  97. IF @@TRANCOUNT > 0
  98. ROLLBACK TRANSACTION
  99. EXEC proc_errorHandler 1, 'Failed to add new record.', @cIdentityId
  100. RETURN
  101. END
  102. IF @@TRANCOUNT > 0
  103. COMMIT TRANSACTION
  104. EXEC proc_errorHandler 0, 'Record has been added successfully.', @cIdentityId
  105. END
  106. ELSE IF @flag = 'a'
  107. BEGIN
  108. SELECT
  109. i.customerId
  110. ,idNumber
  111. ,idType
  112. ,expiryType
  113. ,i.issueCountry
  114. ,i.placeOfIssue
  115. ,isActive = ISNULL(isActive, 'N')
  116. ,CONVERT(VARCHAR,validDate,101)validDate1
  117. ,CONVERT(VARCHAR,issuedDate,101)issuedDate1
  118. ,isPrimary = ISNULL(isPrimary, 'N')
  119. ,createdBy = c.createdBy
  120. ,approvedBy = c.approvedBy
  121. FROM customerIdentity i WITH(NOLOCK)
  122. JOIN customers c WITH(NOLOCK) ON i.customerId = c.customerId
  123. WHERE cIdentityId = @cIdentityId
  124. END
  125. ELSE IF @flag = 'u'
  126. BEGIN
  127. IF EXISTS(SELECT 'X' FROM customerIdentity WITH(NOLOCK)
  128. WHERE cIdentityId <> @cIdentityId AND customerId = @customerId AND idType = @idType AND ISNULL(isDeleted, 'N') <> 'Y')
  129. BEGIN
  130. EXEC proc_errorHandler 1, 'Identity Type already exists', @customerId
  131. RETURN
  132. END
  133. IF (EXISTS(SELECT 'X' FROM customerIdentity WITH(NOLOCK)
  134. WHERE cIdentityId <> @cIdentityId AND customerId = @customerId AND isPrimary = 'Y' AND ISNULL(isDeleted, 'N') <> 'Y') AND @isPrimary = 'Y')
  135. BEGIN
  136. EXEC proc_errorHandler 1, 'Primary Identity Already Exists', @customerId
  137. RETURN
  138. END
  139. BEGIN TRANSACTION
  140. UPDATE customerIdentity SET
  141. idType = @idType
  142. ,idNumber = @idNumber
  143. ,customerId = @customerId
  144. ,issueCountry = @issueCountry
  145. ,placeOfIssue = @placeOfIssue
  146. ,issuedDate = @issuedDate
  147. ,validDate = @validDate
  148. ,expiryType = @expiryType
  149. ,isPrimary = @isPrimary
  150. ,modifiedBy = @user
  151. ,modifiedDate = GETDATE()
  152. WHERE cIdentityId = @cIdentityId
  153. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @cIdentityId, @newValue OUTPUT
  154. INSERT INTO #msg(errorCode, msg, id)
  155. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @cIdentityId, @user, @oldValue, @newValue
  156. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  157. BEGIN
  158. IF @@TRANCOUNT > 0
  159. ROLLBACK TRANSACTION
  160. EXEC proc_errorHandler 1, 'Failed to update record.', @cIdentityId
  161. RETURN
  162. END
  163. IF @@TRANCOUNT > 0
  164. COMMIT TRANSACTION
  165. EXEC proc_errorHandler 0, 'Record updated successfully.', @cIdentityId
  166. END
  167. ELSE IF @flag = 'd'
  168. BEGIN
  169. IF NOT EXISTS (SELECT 'x' FROM customers WHERE customerId = @customerId
  170. and approvedBy is null)
  171. BEGIN
  172. EXEC proc_errorHandler 1, 'Approved Record Can not Delete!', @customerId
  173. RETURN
  174. END
  175. BEGIN TRANSACTION
  176. UPDATE customerIdentity SET
  177. isDeleted = 'Y'
  178. ,modifiedDate = GETDATE()
  179. ,modifiedBy = @user
  180. WHERE cIdentityId = @cIdentityId
  181. SET @modType = 'Delete'
  182. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @cIdentityId, @oldValue OUTPUT
  183. INSERT INTO #msg(errorCode, msg, id)
  184. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @cIdentityId, @user, @oldValue, @newValue
  185. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  186. BEGIN
  187. IF @@TRANCOUNT > 0
  188. ROLLBACK TRANSACTION
  189. EXEC proc_errorHandler 1, 'Failed to delete record.', @cIdentityId
  190. RETURN
  191. END
  192. IF @@TRANCOUNT > 0
  193. COMMIT TRANSACTION
  194. EXEC proc_errorHandler 0, 'Record deleted successfully.', @cIdentityId
  195. END
  196. ELSE IF @flag IN ('s')
  197. BEGIN
  198. IF @sortBy IS NULL
  199. SET @sortBy = 'cIdentityId'
  200. IF @sortOrder IS NULL
  201. SET @sortOrder = 'ASC'
  202. SET @table = '(
  203. SELECT
  204. ci.cIdentityId
  205. ,ci.idNumber
  206. ,placeOfIssue = CASE WHEN ci.isPrimary = ''Y'' THEN ''<b>'' + ci.placeOfIssue + ''</b>'' ELSE ci.placeOfIssue END
  207. ,validDate = CASE WHEN ci.isPrimary = ''Y'' THEN ''<b>'' + CONVERT(VARCHAR,ci.validDate,101) + ''</b>'' ELSE CONVERT(VARCHAR,ci.validDate,101) END
  208. ,issuedDate = CASE WHEN ci.isPrimary = ''Y'' THEN ''<b>'' + CONVERT(VARCHAR,ci.issuedDate,101) + ''</b>'' ELSE CONVERT(VARCHAR,ci.issuedDate,101) END
  209. ,detailTitle = CASE WHEN ci.isPrimary = ''Y'' THEN ''<b>'' + sdv.detailTitle + ''</b>'' + ''<img src="../../../../Images/primary.png" title="Primary Id" />'' ELSE sdv.detailTitle END
  210. ,ci.isDeleted
  211. ,expiryType = CASE WHEN expiryType = ''N'' THEN ''Never expires'' ELSE ''Specify'' END
  212. FROM customerIdentity ci
  213. LEFT JOIN staticDataValue sdv ON ci.idType = sdv.valueId
  214. WHERE ci.customerId = ' + CAST(@customerId AS VARCHAR) + '
  215. ) x'
  216. SET @sql_filter = ''
  217. SET @sql_filter = @sql_filter + ' AND ISNULL(isDeleted, '''') <> ''Y'''
  218. IF @idNumber IS NOT NULL
  219. SET @sql_filter = @sql_filter + ' AND idNumber = ' + CAST(@idNumber AS VARCHAR(50))
  220. SET @select_field_list ='
  221. cIdentityId
  222. ,idNumber
  223. ,placeOfIssue
  224. ,issuedDate
  225. ,validDate
  226. ,expiryType
  227. ,detailTitle
  228. '
  229. EXEC dbo.proc_paging
  230. @table
  231. ,@sql_filter
  232. ,@select_field_list
  233. ,@extra_field_list
  234. ,@sortBy
  235. ,@sortOrder
  236. ,@pageSize
  237. ,@pageNumber
  238. END
  239. END TRY
  240. BEGIN CATCH
  241. IF @@TRANCOUNT > 0
  242. ROLLBACK TRANSACTION
  243. DECLARE @errorMessage VARCHAR(MAX)
  244. SET @errorMessage = ERROR_MESSAGE()
  245. EXEC proc_errorHandler 1, @errorMessage, @cIdentityId
  246. END CATCH
  247. GO