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.

558 lines
33 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_customerSetup] 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_customerSetup]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@customerId VARCHAR(30) = NULL
  12. ,@fullName VARCHAR(200) = NULL
  13. ,@passportNo VARCHAR(30) = NULL
  14. ,@mobile VARCHAR(30) = NULL
  15. ,@firstName VARCHAR(100) = NULL
  16. ,@middleName VARCHAR(100) = NULL
  17. ,@lastName1 VARCHAR(100) = NULL
  18. ,@lastName2 VARCHAR(100) = NULL
  19. ,@customerIdType VARCHAR(30) = NULL
  20. ,@customerIdNo VARCHAR(50) = NULL
  21. ,@custIdValidDate VARCHAR(30) = NULL
  22. ,@custDOB VARCHAR(30) = NULL
  23. ,@custTelNo VARCHAR(30) = NULL
  24. ,@custMobile VARCHAR(30) = NULL
  25. ,@custCity VARCHAR(100) = NULL
  26. ,@custPostal VARCHAR(30) = NULL
  27. ,@companyName VARCHAR(100) = NULL
  28. ,@custAdd1 VARCHAR(100) = NULL
  29. ,@custAdd2 VARCHAR(100) = NULL
  30. ,@country VARCHAR(30) = NULL
  31. ,@custNativecountry VARCHAR(30) = NULL
  32. ,@custEmail VARCHAR(50) = NULL
  33. ,@custGender VARCHAR(30) = NULL
  34. ,@custSalary VARCHAR(30) = NULL
  35. ,@memberId VARCHAR(30) = NULL
  36. ,@occupation VARCHAR(30) = NULL
  37. ,@state VARCHAR(30) = NULL
  38. ,@zipCode VARCHAR(30) = NULL
  39. ,@district VARCHAR(30) = NULL
  40. ,@homePhone VARCHAR(30) = NULL
  41. ,@workPhone VARCHAR(30) = NULL
  42. ,@placeOfIssue VARCHAR(30) = NULL
  43. ,@customerType VARCHAR(30) = NULL
  44. ,@isBlackListed VARCHAR(30) = NULL
  45. ,@relativeName VARCHAR(30) = NULL
  46. ,@relationId VARCHAR(30) = NULL
  47. ,@lastTranId VARCHAR(30) = NULL
  48. ,@receiverName VARCHAR(100) = NULL
  49. ,@tranId VARCHAR(20) = NULL
  50. ,@ICN VARCHAR(50) = NULL
  51. ,@bank VARCHAR(100) = NULL
  52. ,@mapCodeInt VARCHAR(10) = NULL
  53. ,@sortBy VARCHAR(50) = NULL
  54. ,@sortOrder VARCHAR(5) = NULL
  55. ,@pageSize INT = NULL
  56. ,@pageNumber INT = NULL
  57. ,@isMemberIssued CHAR(1) = NULL
  58. ,@agent VARCHAR(50) = NULL
  59. ,@branch VARCHAR(50) = NULL
  60. ,@branchId VARCHAR(50) = NULL
  61. AS
  62. SET NOCOUNT ON;
  63. SET XACT_ABORT ON;
  64. BEGIN TRY
  65. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  66. DECLARE
  67. @sql VARCHAR(MAX)
  68. ,@oldValue VARCHAR(MAX)
  69. ,@newValue VARCHAR(MAX)
  70. ,@module VARCHAR(10)
  71. ,@tableAlias VARCHAR(100)
  72. ,@logIdentifier VARCHAR(50)
  73. ,@logParamMod VARCHAR(100)
  74. ,@logParamMain VARCHAR(100)
  75. ,@table VARCHAR(MAX)
  76. ,@select_field_list VARCHAR(MAX)
  77. ,@extra_field_list VARCHAR(MAX)
  78. ,@sql_filter VARCHAR(MAX)
  79. ,@modType VARCHAR(6)
  80. ,@errorMsg VARCHAR(MAX)
  81. SELECT
  82. @logIdentifier = 'customerId'
  83. ,@logParamMain = 'customers'
  84. ,@module = '20'
  85. ,@tableAlias = 'Customers'
  86. IF @flag = 'idType'
  87. BEGIN
  88. SELECT [value], [text] FROM (
  89. SELECT NULL [value], 'Select' [text] UNION ALL
  90. SELECT
  91. [value] = SV.valueId
  92. ,[text] = SV.detailTitle
  93. FROM countryIdType CID WITH(NOLOCK)
  94. INNER JOIN staticDataValue SV WITH(NOLOCK) ON CID.IdTypeId = SV.valueId
  95. WHERE countryId = @country AND ISNULL(isDeleted, 'N') = 'N'
  96. AND (spFlag IS NULL OR ISNULL(spFlag, 0) = 5200)
  97. ) x ORDER BY CASE WHEN x.[value] IS NULL THEN CAST(x.[value] AS VARCHAR) ELSE x.[text] END
  98. END
  99. ELSE IF @flag = 'i'
  100. BEGIN
  101. IF @customerIdType IS NOT NULL
  102. SELECT @customerIdType = value FROM dbo.Split('|', @customerIdType) WHERE id = 1
  103. IF EXISTS(SELECT 'X' FROM customers WHERE membershipId = @memberId AND ISNULL(isDeleted, 'N') <> 'Y')
  104. BEGIN
  105. EXEC proc_errorHandler 1, 'Membership Id already in use', @customerId
  106. RETURN
  107. END
  108. IF EXISTS(SELECT 'X' FROM customers WHERE mobile = @custMobile AND ISNULL(isDeleted, 'N') <> 'Y')
  109. BEGIN
  110. SELECT @errorMsg = 'Customer with mobile number ' + @custMobile + ' already exist'
  111. EXEC proc_errorHandler 1, @errorMsg, @customerId
  112. RETURN
  113. END
  114. BEGIN TRANSACTION
  115. INSERT INTO customers (
  116. membershipId
  117. ,firstName
  118. ,middleName
  119. ,lastName1
  120. ,lastName2
  121. ,country
  122. ,[address]
  123. ,[state]
  124. ,zipCode
  125. ,district
  126. ,city
  127. ,email
  128. ,homePhone
  129. ,workPhone
  130. ,mobile
  131. ,nativeCountry
  132. ,dob
  133. ,placeOfIssue
  134. ,customerType
  135. ,occupation
  136. ,isBlackListed
  137. ,lastTranId
  138. ,relationId
  139. ,relativeName
  140. ,gender
  141. ,companyName
  142. ,salaryRange
  143. ,address2
  144. ,fullName
  145. ,createdBy
  146. ,createdDate
  147. ,postalCode
  148. ,idExpiryDate
  149. ,idType
  150. ,idNumber
  151. ,telNo
  152. ,memberIDissuedDate
  153. ,memberIDissuedByUser
  154. ,memberIDissuedAgentId
  155. ,memberIDissuedBranchId
  156. ,agentId
  157. ,branchId
  158. )
  159. SELECT
  160. --@memberId
  161. CASE WHEN @isMemberIssued ='Y' THEN @memberId ELSE NULL END
  162. ,@firstName
  163. ,@middleName
  164. ,@lastName1
  165. ,@lastName2
  166. ,@country
  167. ,@custAdd1
  168. ,@state
  169. ,@zipCode
  170. ,@district
  171. ,@custCity
  172. ,@custEmail
  173. ,@homePhone
  174. ,@workPhone
  175. ,@custMobile
  176. ,@custNativecountry
  177. ,@custDOB
  178. ,@placeOfIssue
  179. ,@customerType
  180. ,@occupation
  181. ,@isBlackListed
  182. ,@lastTranId
  183. ,@relationId
  184. ,@relativeName
  185. ,@custGender
  186. ,@companyName
  187. ,@custSalary
  188. ,@custAdd2
  189. ,ISNULL(@firstName, '') + ISNULL(' ' + @middleName, '') + ISNULL(' ' + @lastName1, '') + ISNULL(' ' + @lastName2, '')
  190. ,@user
  191. ,GETDATE()
  192. ,@custPostal
  193. ,@custIdValidDate
  194. ,@customerIdType
  195. ,@customerIdNo
  196. ,@custTelNo
  197. ,CASE WHEN @isMemberIssued ='Y' THEN GETDATE() ELSE NULL END
  198. ,CASE WHEN @isMemberIssued ='Y' THEN @user ELSE NULL END
  199. ,CASE WHEN @isMemberIssued ='Y' THEN @agent ELSE NULL END
  200. ,CASE WHEN @isMemberIssued ='Y' THEN @branch ELSE NULL END
  201. ,@agent
  202. ,@branch
  203. SET @customerId = SCOPE_IDENTITY()
  204. SET @modType = 'Insert'
  205. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @customerId , @newValue OUTPUT
  206. INSERT INTO #msg(errorCode, msg, id)
  207. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @customerId, @user, @oldValue, @newValue
  208. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  209. BEGIN
  210. IF @@TRANCOUNT > 0
  211. ROLLBACK TRANSACTION
  212. EXEC proc_errorHandler 1, 'Failed to add new record.', @customerId
  213. RETURN
  214. END
  215. IF @@TRANCOUNT > 0
  216. COMMIT TRANSACTION
  217. EXEC proc_errorHandler 0, 'Record has been added successfully.', @customerId
  218. END
  219. ELSE IF @flag = 's'
  220. BEGIN
  221. IF @sortBy IS NULL
  222. SET @sortBy = 'customerId'
  223. IF @sortOrder IS NULL
  224. SET @sortOrder = 'ASC'
  225. SET @table = '
  226. SELECT
  227. main.customerId
  228. ,main.membershipId
  229. ,name = ISNULL(main.firstName, '''') + ISNULL( '' '' + main.middleName, '''')+ ISNULL( '' '' + main.lastName1, '''') + ISNULL( '' '' + main.lastName2, '''')
  230. ,companyName = main.companyName
  231. ,main.firstName
  232. ,main.lastName1
  233. ,main.middleName
  234. ,country = ccm1.countryName
  235. ,address = main.address
  236. ,main.state
  237. ,main.zipCode
  238. ,main.district
  239. ,main.city
  240. ,main.email
  241. ,idType = sdv.detailTitle
  242. ,passportNo = main.idNumber
  243. ,main.mobile
  244. ,nativeCountry = ccm.countryName
  245. ,main.dob
  246. ,main.placeOfIssue
  247. ,main.customerType
  248. ,main.occupation
  249. ,isBlackListed = CASE WHEN main.isBlackListed = ''Y'' THEN ''Yes'' ELSE ''-'' END
  250. ,main.createdBy
  251. ,main.createdDate
  252. ,main.isDeleted
  253. ,lastIdUploadDate
  254. FROM customers main WITH(NOLOCK)
  255. LEFT JOIN staticDataValue sdv WITH(NOLOCK) ON main.idType = sdv.valueId
  256. LEFT JOIN countryMaster ccm WITH(NOLOCK) ON main.nativeCountry = ccm.countryId
  257. LEFT JOIN countryMaster ccm1 WITH(NOLOCK) ON main.country = ccm1.countryId
  258. LEFT JOIN (
  259. SELECT customerId, MAX(createdDate) as lastIdUploadDate FROM customerDocument WITH(NOLOCK) GROUP BY customerId
  260. )cusDoc on cusDoc.customerId = main.customerId
  261. WHERE ISNULL(main.isDeleted, ''N'') = ''N'' '
  262. IF @passportNo IS NOT NULL
  263. SET @table = @table + ' AND ISNULL(main.idNumber, '''') = ''' + @passportNo + ''''
  264. IF @customerIdType IS NOT NULL AND @customerIdNo IS NOT NULL
  265. SET @table = @table + ' AND ISNULL(main.idType, 0) = ' + @customerIdType + ' AND ISNULL(main.idNumber, '''') = ''' + @customerIdNo + ''''
  266. IF @memberId IS NOT NULL
  267. SET @table = @table + ' AND ISNULL(main.membershipId, '''') = ''' + @memberId + ''''
  268. IF @country IS NOT NULL
  269. SET @table = @table + ' AND ISNULL(main.country, '''') = ''' + @country + ''''
  270. IF @mobile IS NOT NULL
  271. SET @table = @table + ' AND ISNULL(main.mobile, '''') = ''' + @mobile + ''''
  272. SET @sql_filter = ''
  273. SET @sql = '('+ @table+')X'
  274. IF @fullName IS NOT NULL
  275. SET @sql_filter = @sql_filter + ' and name LIKE ''%' + @fullName + '%'''
  276. IF (@fullName IS NULL AND @passportNo IS NULL AND @mobile IS NULL)
  277. SET @sql_filter = @sql_filter + ' AND 1<>1'
  278. --PRINT @sql
  279. SET @select_field_list ='
  280. customerId
  281. ,membershipId
  282. ,name
  283. ,companyName
  284. ,address
  285. ,country
  286. ,state
  287. ,zipCode
  288. ,district
  289. ,city
  290. ,email
  291. ,idType
  292. ,passportNo
  293. ,mobile
  294. ,nativeCountry
  295. ,dob
  296. ,placeOfIssue
  297. ,customerType
  298. ,occupation
  299. ,isBlackListed
  300. ,createdBy
  301. ,createdDate
  302. ,isDeleted
  303. ,lastIdUploadDate'
  304. EXEC dbo.proc_paging
  305. @sql
  306. ,@sql_filter
  307. ,@select_field_list
  308. ,@extra_field_list
  309. ,@sortBy
  310. ,@sortOrder
  311. ,@pageSize
  312. ,@pageNumber
  313. END
  314. ELSE IF @flag = 'u'
  315. BEGIN
  316. IF @customerIdType IS NOT NULL
  317. SELECT @customerIdType = value FROM dbo.Split('|', @customerIdType) WHERE id = 1
  318. IF (YEAR(GETDATE()) - YEAR(@custDOB) < 16)
  319. BEGIN
  320. EXEC proc_errorHandler 1, 'Customer Not Eligible', @customerId
  321. RETURN
  322. END
  323. IF EXISTS(SELECT 'X' FROM customers WHERE customerId <> @customerId AND membershipId = @memberId AND ISNULL(isDeleted, 'N') <> 'Y')
  324. BEGIN
  325. EXEC proc_errorHandler 1, 'Membership Id already in use', @customerId
  326. RETURN
  327. END
  328. IF EXISTS(SELECT 'X' FROM customers WHERE customerId <> @customerId AND mobile = @mobile AND ISNULL(isDeleted, 'N') <> 'Y')
  329. BEGIN
  330. SELECT @errorMsg = 'Customer with mobile number ' + @mobile + ' already exist'
  331. EXEC proc_errorHandler 1, @errorMsg, @customerId
  332. RETURN
  333. END
  334. BEGIN TRANSACTION
  335. UPDATE customers SET
  336. firstName = @firstName
  337. ,middleName = @middleName
  338. ,lastName1 = @lastName1
  339. ,lastName2 = @lastName2
  340. --,country = @country
  341. ,[address] = @custAdd1
  342. ,[state] = @state
  343. ,zipCode = @zipCode
  344. ,district = @district
  345. ,city = @custCity
  346. ,email = @custEmail
  347. ,homePhone = @homePhone
  348. ,workPhone = @workPhone
  349. ,mobile = @custMobile
  350. ,nativeCountry = @custNativecountry
  351. ,dob = @custDOB
  352. ,placeOfIssue = @placeOfIssue
  353. ,customerType = @customerType
  354. ,occupation = @occupation
  355. ,isBlackListed = @isBlackListed
  356. ,lastTranId = @lastTranId
  357. ,relationId = @relationId
  358. ,relativeName = @relativeName
  359. ,gender = @custGender
  360. ,companyName = @companyName
  361. ,salaryRange = @custSalary
  362. ,address2 = @custAdd2
  363. ,fullName = ISNULL(@firstName, '') + ISNULL(' ' + @middleName, '') + ISNULL(' ' + @lastName1, '') + ISNULL(' ' + @lastName2, '')
  364. ,modifiedBy = @user
  365. ,modifiedDate = GETDATE()
  366. ,postalCode = @custPostal
  367. ,idExpiryDate = @custIdValidDate
  368. ,idType = @customerIdType
  369. ,idNumber = @customerIdNo
  370. ,telNo = @custTelNo
  371. ,membershipId = CASE WHEN @isMemberIssued ='Y' AND membershipId IS NULL THEN @memberId ELSE membershipId END
  372. ,memberIDissuedDate = CASE WHEN @isMemberIssued ='Y' AND memberIDissuedDate IS NULL THEN GETDATE() ELSE memberIDissuedDate END
  373. ,memberIDissuedByUser = CASE WHEN @isMemberIssued ='Y' AND memberIDissuedByUser IS NULL THEN @user ELSE memberIDissuedByUser END
  374. ,memberIDissuedAgentId = CASE WHEN @isMemberIssued ='Y' AND memberIDissuedAgentId IS NULL THEN @agent ELSE memberIDissuedAgentId END
  375. ,memberIDissuedBranchId = CASE WHEN @isMemberIssued ='Y' AND memberIDissuedBranchId IS NULL THEN @branch ELSE memberIDissuedAgentId END
  376. ,agentId = @agent
  377. ,branchId = @branch
  378. WHERE customerId = @customerId
  379. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @customerId, @newValue OUTPUT
  380. INSERT INTO #msg(errorCode, msg, id)
  381. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @customerId, @user, @oldValue, @newValue
  382. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  383. BEGIN
  384. IF @@TRANCOUNT > 0
  385. ROLLBACK TRANSACTION
  386. EXEC proc_errorHandler 1, 'Failed to update record.', @customerId
  387. RETURN
  388. END
  389. IF @@TRANCOUNT > 0
  390. COMMIT TRANSACTION
  391. SELECT '0' errCode , 'Record updated successfully.' msg , @customerId id
  392. END
  393. ELSE IF @flag = 'a'
  394. BEGIN
  395. SELECT
  396. idExpiryDate = CONVERT(VARCHAR,c.idExpiryDate,101)
  397. ,dob = CONVERT(VARCHAR,c.dob,101)
  398. ,idType1 = CAST(SV.valueId AS VARCHAR) + '|' + ISNULL(CID.expiryType, 'E')
  399. ,c.*
  400. FROM customers c WITH(NOLOCK)
  401. LEFT JOIN staticDataValue SV WITH(NOLOCK) ON c.IdType = SV.valueId
  402. LEFT JOIN countryIdType CID WITH(NOLOCK) ON CID.IdTypeId = SV.valueId
  403. WHERE c.customerId = @customerId
  404. --SELECT
  405. -- idExpiryDate = CONVERT(VARCHAR,c.idExpiryDate,101)
  406. -- ,dob = CONVERT(VARCHAR,c.dob,101)
  407. -- ,Convert(VARCHAR,c.dob,101)dob
  408. -- ,ci.idType
  409. -- ,ci.idNumber
  410. -- ,c.*
  411. --FROM customers c
  412. -- LEFT JOIN (SELECT * FROM customerIdentity ci WITH(NOLOCK) where ISNULL(isPrimary,'N')='Y' AND customerId = @customerId)ci
  413. -- ON c.customerId = ci.customerId
  414. --WHERE c.customerId = @customerId
  415. END
  416. ELSE IF @flag = 'd'
  417. BEGIN
  418. UPDATE customers SET
  419. isDeleted = 'Y'
  420. WHERE customerId = @customerId
  421. SET @modType = 'delete'
  422. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @customerId , @newValue OUTPUT
  423. INSERT INTO #msg(errorCode, msg, id)
  424. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @customerId, @user, @oldValue, @newValue
  425. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  426. BEGIN
  427. IF @@TRANCOUNT > 0
  428. ROLLBACK TRANSACTION
  429. EXEC proc_errorHandler 1, 'Failed to delete record.', @customerId
  430. RETURN
  431. END
  432. EXEC proc_errorHandler 0, 'Record deleted successfully.', @customerId
  433. RETURN
  434. END
  435. ELSE IF @flag = 'custImage'
  436. BEGIN
  437. SELECT TOP 1
  438. customerId
  439. ,fileName
  440. FROM customerDocument
  441. WHERE
  442. customerId = @customerId
  443. AND ISNULL(isDeleted,'N')<>'Y'
  444. ORDER BY createdDate DESC
  445. END
  446. ELSE IF @flag = 'custHistory'
  447. BEGIN
  448. SET @sortBy = 'tranId'
  449. SET @sortOrder = 'desc'
  450. SET @table = '
  451. SELECT
  452. tranId = ms.Tranno
  453. ,receiverName = ms.ReceiverName
  454. ,tAmt = ms.paidAmt
  455. ,createdDate = CONVERT(VARCHAR , ms.confirmDate, 101)
  456. ,ICN = ''<a href=#><span onclick ="ViewTranDetail('' + dbo.FNADecryptString(ms.refno) + '');">'' + dbo.FNADecryptString(ms.refno) + ''</span></a>''
  457. ,payMode = ms.paymentType
  458. ,bank = ms.rBankName
  459. ,bankBranch = ms.rBankBranch
  460. ,acNo = ms.rBankACNo
  461. FROM irh_ime_plus_01.dbo.moneySend ms WITH(NOLOCK)'
  462. SET @table = @table + ' WHERE ms.senderPassport = ''' + @customerIdNo + ''''
  463. IF @tranId IS NOT NULL
  464. SET @table = @table + ' AND cast(ms.Tranno as varchar) = ''' + @tranId + ''''
  465. IF @ICN IS NOT NULL
  466. SET @table = @table + ' AND ms.refno = ''' + dbo.FNAEncryptString(@ICN) + ''''
  467. IF @receiverName IS NOT NULL
  468. SET @table = @table + ' AND ms.ReceiverName LIKE ''%' + @receiverName + '%'''
  469. IF @bank IS NOT NULL
  470. SET @table = @table + ' AND ms.rBankName LIKE ''%' + @bank + '%'''
  471. SET @sql_filter = ''
  472. SET @sql = '('+ @table+')X'
  473. PRINT @sql
  474. SET @select_field_list ='
  475. tranId
  476. ,receiverName
  477. ,tAmt
  478. ,createdDate
  479. ,ICN
  480. ,payMode
  481. ,bank
  482. ,bankBranch
  483. ,acNo'
  484. EXEC dbo.proc_paging
  485. @sql
  486. ,@sql_filter
  487. ,@select_field_list
  488. ,@extra_field_list
  489. ,@sortBy
  490. ,@sortOrder
  491. ,@pageSize
  492. ,@pageNumber
  493. END
  494. END TRY
  495. BEGIN CATCH
  496. IF @@TRANCOUNT > 0
  497. ROLLBACK TRANSACTION
  498. DECLARE @errorMessage VARCHAR(MAX)
  499. SET @errorMessage = ERROR_MESSAGE()
  500. EXEC proc_errorHandler 1, @errorMessage, @customerId
  501. END CATCH
  502. GO