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.

304 lines
11 KiB

1 year ago
  1. ALTER PROC PROC_CUSTOMERMODIFYLOG
  2. (
  3. @flag VARCHAR(30),
  4. @email VARCHAR(100) = NULL,
  5. @idNumber VARCHAR(20) = NULL,
  6. @bank VARCHAR(5) = NULL,
  7. @accNumber VARCHAR(30) = NULL,
  8. @customerId BIGINT = NULL,
  9. @mobileNumber varchar(20) = NULL,
  10. @user VARCHAR(100) = NULL,
  11. @idType varchar(40) = null, --new added by dhan
  12. @dob varchar(40) = null,
  13. @issueDate varchar(40) = null,
  14. @expiryDate varchar(40) = NULL, --new added by dhan
  15. @address varchar(200) = NULL,
  16. @city VARCHAR(100) = NULL,
  17. @nativeCountry VARCHAR(100) = NULL,
  18. @verifyDoc1 VARCHAR(300) = NULL,
  19. @verifyDoc2 VARCHAR(300) = NULL,
  20. @verifyDoc3 VARCHAR(300) = NULL,
  21. @verifyDoc4 VARCHAR(300) = NULL,
  22. @fullName VARCHAR(50) = NULL,
  23. @searchKey varchar(20) = NULL,
  24. @searchValue varchar(100) = NULL,
  25. @startDate VARCHAR(30) = NULL,
  26. @endDate VARCHAR(30) = NULL,
  27. @sortBy VARCHAR(50) = NULL,
  28. @sortOrder VARCHAR(5) = NULL,
  29. @orderBy VARCHAR(100) = NULL,
  30. @pageSize VARCHAR(50) = NULL,
  31. @pageNumber VARCHAR(50) = NULL,
  32. @customerEmail VARCHAR(100) = NULL
  33. )
  34. AS
  35. SET NOCOUNT ON;
  36. SET XACT_ABORT ON;
  37. BEGIN
  38. IF @flag = 'i'
  39. BEGIN
  40. DECLARE @oldEmail VARCHAR(100), @oldIdNumber VARCHAR(20), @oldBank VARCHAR(5), @oldAccNumber VARCHAR(30), @oldMobileNumber VARCHAR(20),
  41. @oldDob varchar(40) = null, --new added by dhan
  42. @oldIssueDate varchar(40) = null,
  43. @oldExpiryDate varchar(40) = NULL, --new added by dhan
  44. @oldAddress varchar(200) = NULL,
  45. @oldCity VARCHAR(200) = NULL,
  46. @oldNativeCountry varchar(200) = NULL,
  47. @oldVerifyDoc1 VARCHAR(300) = NULL,
  48. @oldVerifyDoc2 VARCHAR(300) = NULL,
  49. @oldVerifyDoc3 VARCHAR(300) = NULL,
  50. @oldVerifyDoc4 VARCHAR(300) = NULL,
  51. @oldFullName VARCHAR(50) = NULL,
  52. @oldIdType VARCHAR(50) = NULL,
  53. @oldCustomerEmail VARCHAR(100) = NULL
  54. SELECT @oldEmail = email,
  55. @oldIdNumber = idNumber,
  56. @oldBank = bankName,
  57. @oldAccNumber = bankAccountNo,
  58. @oldMobileNumber = mobile,
  59. @oldDob = CONVERT(VARCHAR(10), dob,101),
  60. @oldIssueDate = CONVERT(VARCHAR(10), idIssueDate,101),
  61. @oldExpiryDate = CONVERT(VARCHAR(10), idExpiryDate,101),
  62. @oldAddress = [address],
  63. @oldCity = city,
  64. @oldNativeCountry = nativeCountry,
  65. @oldVerifyDoc1 = verifyDoc1,
  66. @oldVerifyDoc2 = verifyDoc2,
  67. @oldVerifyDoc3 = verifyDoc3,
  68. @oldVerifyDoc4 = selfieDoc,
  69. @oldFullName = firstName,
  70. @oldIdType = idType,
  71. @oldCustomerEmail= customerEmail
  72. FROM customerMaster (NOLOCK)
  73. WHERE customerId = @customerId
  74. IF @oldEmail is null
  75. RETURN
  76. IF @oldEmail <> @email
  77. BEGIN
  78. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  79. SELECT @customerId, 'email', @oldEmail, @user, GETDATE()
  80. END
  81. IF @oldIdNumber <> @idNumber
  82. BEGIN
  83. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  84. SELECT @customerId, 'idNumber', @oldIdNumber, @user, GETDATE()
  85. END
  86. IF @oldIdType <> @idType
  87. BEGIN
  88. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  89. SELECT @customerId, 'idType', @oldIdType, @user, GETDATE()
  90. END
  91. IF @oldBank <> @bank
  92. BEGIN
  93. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  94. SELECT @customerId, 'bankName', @oldBank, @user, GETDATE()
  95. END
  96. IF @oldAccNumber <> @accNumber
  97. BEGIN
  98. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  99. SELECT @customerId, 'bankAccountNo', @oldAccNumber, @user, GETDATE()
  100. END
  101. IF @oldMobileNumber <> @mobileNumber
  102. BEGIN
  103. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  104. SELECT @customerId, 'mobile', @oldMobileNumber, @user, GETDATE()
  105. END
  106. IF @oldIssueDate <> Convert(VARCHAR(10),@issueDate,101)
  107. BEGIN
  108. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  109. SELECT @customerId, 'idIssueDate', ISNULL(@oldIssueDate,''), @user, GETDATE()
  110. END
  111. IF @idType <> '8008'
  112. BEGIN
  113. --IF @oldIssueDate <> Convert(VARCHAR(10),@issueDate,101)
  114. --BEGIN
  115. -- INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  116. -- SELECT @customerId, 'idIssueDate', ISNULL(@oldIssueDate,''), @user, GETDATE()
  117. -- END
  118. IF @oldExpiryDate <> Convert(VARCHAR(10),@expiryDate,101)
  119. BEGIN
  120. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  121. SELECT @customerId, 'idExpiryDate', ISNULL(@oldExpiryDate,''), @user, GETDATE()
  122. END
  123. END
  124. IF @oldDob <> Convert(VARCHAR(10),@dob,101)
  125. BEGIN
  126. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  127. SELECT @customerId, 'dob', ISNULL(@oldDob,''), @user, GETDATE()
  128. END
  129. IF @oldAddress <> @address
  130. BEGIN
  131. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  132. SELECT @customerId, 'address', @oldAddress, @user, GETDATE()
  133. END
  134. IF @oldCity <> @city
  135. BEGIN
  136. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  137. SELECT @customerId, 'city', @oldCity, @user, GETDATE()
  138. END
  139. IF @oldNativeCountry <> @nativeCountry
  140. BEGIN
  141. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  142. SELECT @customerId, 'nativeCountry', @oldNativeCountry, @user, GETDATE()
  143. END
  144. IF @oldVerifyDoc1 <> @verifyDoc1
  145. BEGIN
  146. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  147. SELECT @customerId, 'national/alien card front', @oldVerifyDoc1, @user, GETDATE()
  148. END
  149. IF @oldVerifyDoc2 <> @verifyDoc2
  150. BEGIN
  151. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  152. SELECT @customerId, 'national/alien card back', @oldVerifyDoc2, @user, GETDATE()
  153. END
  154. IF @oldVerifyDoc3 <> @verifyDoc3
  155. BEGIN
  156. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  157. SELECT @customerId, 'passbook', @oldVerifyDoc3, @user, GETDATE()
  158. END
  159. IF @oldVerifyDoc4 <> @verifyDoc4
  160. BEGIN
  161. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  162. SELECT @customerId, 'selfieDoc', @oldVerifyDoc4, @user, GETDATE()
  163. END
  164. IF @oldFullName <> @fullName
  165. BEGIN
  166. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  167. SELECT @customerId, 'fullName', @oldFullName, @user, GETDATE()
  168. END
  169. IF @oldCustomerEmail <> @customerEmail
  170. BEGIN
  171. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  172. SELECT @customerId, 'customer email', @oldCustomerEmail, @user, GETDATE()
  173. END
  174. END
  175. ELSE IF @flag = 'i-new' --if update is not full(if only few fields are allowed to modify)
  176. BEGIN
  177. SELECT @oldEmail = email,
  178. @oldMobileNumber = mobile
  179. FROM customerMaster (NOLOCK)
  180. WHERE customerId = @customerId
  181. IF @oldEmail is null
  182. RETURN
  183. IF @oldEmail <> @email
  184. BEGIN
  185. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  186. SELECT @customerId, 'email', @oldEmail, @user, GETDATE()
  187. END
  188. IF @oldMobileNumber <> @mobileNumber
  189. BEGIN
  190. INSERT INTO TBLCUSTOMERMODIFYLOGS(customerId, columnName, newValue, modifiedBy, modifiedDate)
  191. SELECT @customerId, 'mobile', @oldMobileNumber, @user, GETDATE()
  192. END
  193. END
  194. ELSE IF @flag = 'modify-log'
  195. BEGIN
  196. DECLARE @table VARCHAR(MAX);
  197. IF LOWER(@searchKey) = 'email'
  198. BEGIN
  199. SELECT @customerId = customerId FROM customermaster cm(NOLOCK)
  200. WHERE email=@searchValue
  201. IF NOT EXISTS(SELECT 'x' FROM dbo.customerMaster CM(NOLOCK) WHERE customerId = @customerId)
  202. BEGIN
  203. SELECT '1' errorCode, @searchValue + ' does not exists.' Msg, NULL Id
  204. SELECT '1' errorCode, @searchValue + ' does not exists.' Msg, NULL Id
  205. RETURN;
  206. END
  207. END
  208. ELSE IF(@searchKey) = 'idnumber'
  209. BEGIN
  210. SELECT @customerId = customerId FROM customermaster cm(NOLOCK)
  211. WHERE idnumber = @searchValue
  212. IF NOT EXISTS(SELECT 'x' FROM dbo.customerMaster CM(NOLOCK) WHERE customerId = @customerId)
  213. BEGIN
  214. SELECT '1' errorCode, 'Id Number ' + @searchValue + ' does not exists.' Msg, NULL Id
  215. SELECT '1' errorCode, 'Id Number ' + @searchValue + ' does not exists.' Msg, NULL Id
  216. RETURN;
  217. END
  218. END
  219. ELSE
  220. BEGIN
  221. SELECT @customerId = null;
  222. END
  223. SET @table =
  224. 'SELECT
  225. rowId,
  226. [Customer Email ID] = cm.email,
  227. [Field Modified] = tcml.columnName,
  228. [Previous Value] = case when tcml.columnName = ''nativeCountry'' then (select ctm.countryName from countryMaster ctm(nolock) where ctm.countryId=tcml.newValue)
  229. when tcml.columnName = ''bankName'' then (select bl.BankName from koreanbanklist bl(nolock) where bl.bankCode = tcml.newValue)
  230. when tcml.columnName = ''idType'' then (select sdv.detailTitle from staticDataValue sdv(nolock) where sdv.valueId = tcml.newValue)
  231. else tcml.newValue
  232. end,
  233. [Modified Date] = CONVERT(VARCHAR(10),tcml.modifiedDate,102),
  234. Modifier = tcml.modifiedBy
  235. FROM TBLCUSTOMERMODIFYLOGS tcml(NOLOCK)
  236. INNER JOIN customerMaster cm(NOLOCK) ON tcml.customerId = cm.customerId
  237. WHERE tcml.customerId = '+convert(varchar,ISNULL(CAST(@customerId AS VARCHAR(MAX)),'cm.customerId'))+''
  238. --used this for fetching previous value but in uat invalid datetime type is causing issue
  239. --PreviousValue = case when tcml.columnName in (''idExpiryDate'',''dob'',''idIssueDate'') then CONVERT(VARCHAR(10),Cast(tcml.newValue as date),102)
  240. -- else tcml.newValue
  241. -- end,
  242. IF @startDate IS NOT NULL and @endDate is not NULL
  243. BEGIN
  244. SET @table = @table + ' AND tcml.modifiedDate BETWEEN ''' + @startDate + ''' AND ''' + @endDate + ' 23:59:59'''
  245. END
  246. DECLARE @sql AS VARCHAR(MAX);
  247. SET @sql='
  248. SELECT COUNT(''x'') AS TXNCOUNT,'+@pageSize+' PAGESIZE,'+@pageNumber+' PAGENUMBER FROM ('+ @table+') AS tmp;
  249. SELECT * FROM
  250. (
  251. SELECT ROW_NUMBER() OVER (ORDER BY [rowId] DESC) AS [S.N.],*
  252. FROM
  253. (
  254. '+ @table +'
  255. )A
  256. )B WHERE 1 = 1 AND B.[S.N.] BETWEEN (('+@pageNumber+' - 1) * '+@pageSize+' + 1) AND '+@pageNumber+' * '+@pageSize+'
  257. '
  258. PRINT(@sql)
  259. EXEC(@sql)
  260. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  261. SELECT 'From Date' head, @startDate value union all
  262. SELECT 'To Date' head, @endDate value UNION all
  263. SELECT 'Search By' head, @searchKey UNION ALL
  264. SELECT 'Search Value' head, @searchValue
  265. SELECT 'Customer Modification Log Report' title
  266. END
  267. END