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.

280 lines
19 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_customersUpload] 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_customersUpload]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(50) = NULL
  11. ,@xml XML = NULL
  12. ,@sortBy VARCHAR(50) = NULL
  13. ,@sortOrder VARCHAR(5) = NULL
  14. ,@gender VARCHAR(10) = NULL
  15. ,@pageSize INT = NULL
  16. ,@pageNumber INT = NULL
  17. ,@searchValue VARCHAR(200) = NULL
  18. ,@searchBy VARCHAR(50) = NULL
  19. ,@country INT = NULL
  20. ,@isBlackList CHAR(1) = NULL
  21. ,@customerId VARCHAR(30) = NULL
  22. ,@agentId VARCHAR(30) = NULL
  23. ,@branchId VARCHAR(30) = NULL
  24. ,@senderId VARCHAR(30) = NULL
  25. ,@membershipId VARCHAR(20) = NULL
  26. ,@placeOfIssue VARCHAR(50) = NULL
  27. ,@fullName VARCHAR(200) = NULL
  28. ,@firstName VARCHAR(50) = NULL
  29. ,@middleName VARCHAR(50) = NULL
  30. ,@lastName1 VARCHAR(50) = NULL
  31. ,@lastName2 VARCHAR(50) = NULL
  32. ,@customerIdType VARCHAR(30) = NULL
  33. ,@customerIdNo VARCHAR(50) = NULL
  34. ,@address VARCHAR(100) = NULL
  35. ,@state VARCHAR(50) = NULL
  36. ,@zipCode VARCHAR(50) = NULL
  37. ,@district INT = NULL
  38. ,@city VARCHAR(50) = NULL
  39. ,@email VARCHAR(150) = NULL
  40. ,@homePhone VARCHAR(15) = NULL
  41. ,@workPhone VARCHAR(15) = NULL
  42. ,@mobile VARCHAR(15) = NULL
  43. ,@nativeCountry INT = NULL
  44. ,@dob DATETIME = NULL
  45. ,@customerType INT = NULL
  46. ,@occupation INT = NULL
  47. ,@relationId INT = NULL
  48. ,@relativeName VARCHAR(100) = NULL
  49. ,@companyName VARCHAR(100) = NULL
  50. ,@idType INT = NULL
  51. ,@idNumber VARCHAR(200) = NULL
  52. AS
  53. SET NOCOUNT ON
  54. SET XACT_ABORT ON
  55. BEGIN TRY
  56. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  57. DECLARE
  58. @sql VARCHAR(MAX)
  59. ,@oldValue VARCHAR(MAX)
  60. ,@newValue VARCHAR(MAX)
  61. ,@module VARCHAR(10)
  62. ,@tableAlias VARCHAR(100)
  63. ,@logIdentifier VARCHAR(50)
  64. ,@logParamMod VARCHAR(100)
  65. ,@logParamMain VARCHAR(100)
  66. ,@table VARCHAR(MAX)
  67. ,@select_field_list VARCHAR(MAX)
  68. ,@extra_field_list VARCHAR(MAX)
  69. ,@sql_filter VARCHAR(MAX)
  70. ,@modType VARCHAR(6)
  71. ,@errorMsg VARCHAR(MAX)
  72. SELECT
  73. @logIdentifier = 'customerId'
  74. ,@logParamMain = 'customers'
  75. ,@module = '20'
  76. ,@tableAlias = 'Customers'
  77. --ALTER TABLE customers ADD isUploaded CHAR(1)
  78. IF @flag = 'i'
  79. BEGIN
  80. --ALTER TABLE customers ADD isUploaded CHAR(1)
  81. DECLARE @temp_table
  82. table(
  83. FirstName VARCHAR(200),MiddleName VARCHAR(200),LastName VARCHAR(200),
  84. Gender VARCHAR(50),PassportNo VARCHAR(100),Country VARCHAR(100),District VARCHAR(100), CompanyName VARCHAR(200),Email VARCHAR(100)
  85. )
  86. INSERT @temp_table(FirstName,MiddleName,LastName,Gender,PassportNo,Country,District,CompanyName,Email)
  87. SELECT
  88. p.value('@FirstName','VARCHAR(200)'),
  89. p.value('@MiddleName','VARCHAR(200)'),
  90. p.value('@LastName','VARCHAR(200)'),
  91. p.value('@Gender','VARCHAR(50)'),
  92. p.value('@PassportNo','VARCHAR(100)'),
  93. p.value('@Country','VARCHAR(100)'),
  94. p.value('@District','VARCHAR(200)'),
  95. p.value('@CompanyName','VARCHAR(200)'),
  96. p.value('@Email','VARCHAR(200)')
  97. FROM @xml.nodes('/root/row') as tmp(p)
  98. BEGIN TRANSACTION
  99. INSERT INTO dbo.customers(firstName,middleName,lastName1,country,address,idType,idNumber,gender,companyName,email,isUploaded,customerType,fullName)
  100. SELECT FirstName,MiddleName,LastName,CASE WHEN country ='Nepal' THEN 151 ELSE NULL END,District, '1302',PassportNo,
  101. CASE WHEN Gender ='Male' THEN 1801 ELSE '1802' END,CompanyName,Email,'Y','4700',
  102. ISNULL(firstName, '') + ISNULL( ' ' + middleName, '')+ ISNULL( ' ' + LastName, '')
  103. FROM @temp_table
  104. IF @@TRANCOUNT > 0
  105. COMMIT TRANSACTION
  106. EXEC proc_errorHandler 0, 'Record has been added successfully.', @user
  107. END
  108. IF @flag = 's'
  109. BEGIN
  110. IF @sortBy IS NULL
  111. SET @sortBy = 'customerId'
  112. IF @sortOrder IS NULL
  113. SET @sortOrder = 'ASC'
  114. SET @table = '(
  115. SELECT
  116. main.customerId
  117. ,main.membershipId
  118. ,name = ISNULL(main.firstName, '''') + ISNULL( '' '' + main.middleName, '''')+ ISNULL( '' '' + main.lastName1, '''') + ISNULL( '' '' + main.lastName2, '''')
  119. ,main.firstName
  120. ,main.lastName1
  121. ,main.middleName
  122. ,country = ccm1.countryName
  123. ,main.address
  124. ,main.state
  125. ,main.zipCode
  126. ,main.district
  127. ,main.city
  128. ,main.email
  129. ,main.companyName
  130. ,idType = sdv.detailTitle
  131. ,main.idNumber
  132. ,main.homePhone
  133. ,main.workPhone
  134. ,main.mobile
  135. ,nativeCountry = ccm.countryName
  136. ,main.dob
  137. ,main.placeOfIssue
  138. ,main.customerType
  139. ,main.occupation
  140. ,isBlackListed = CASE WHEN main.isBlackListed = ''Y'' THEN ''Yes'' ELSE ''-'' END
  141. ,main.createdBy
  142. ,main.createdDate
  143. ,main.isDeleted
  144. ,isBlackListed1 = main.isBlackListed
  145. ,countryId = main.country
  146. FROM customers main WITH(NOLOCK)
  147. LEFT JOIN countryMaster ccm ON main.nativeCountry = ccm.countryId
  148. LEFT JOIN countryMaster ccm1 ON main.country = ccm1.countryId
  149. LEFT JOIN staticDataValue sdv with(nolock) on sdv.valueId = main.idType
  150. WHERE 1 = 1 AND ISNULL(main.isDeleted, '''') <> ''Y'' AND isUploaded = ''Y''
  151. ) x'
  152. SET @sql_filter = ''
  153. if @searchBy is not null and @searchValue is null
  154. SET @sql_filter = @sql_filter + ' and 1=2'
  155. if @country is not null
  156. SET @sql_filter = @sql_filter + ' and countryId = ''' + cast(@country as varchar) + ''''
  157. IF @searchBy = 'name' and @searchValue IS NOT NULL
  158. SET @sql_filter = @sql_filter + ' and name LIKE ''%' + @searchValue + '%'''
  159. IF @searchBy = 'mobile' and @searchValue IS NOT NULL
  160. SET @sql_filter = @sql_filter + ' AND ISNULL(mobile, '''') = ''' + @searchValue + ''''
  161. IF @searchBy IN ('membershipId','PassportNo','NRIC') AND @searchValue IS NOT NULL
  162. SET @sql_filter = @sql_filter + ' AND (membershipId = ''' + CAST(@searchValue AS VARCHAR) + ''' or idNumber = ''' + CAST(@searchValue AS VARCHAR) + ''')'
  163. SET @select_field_list ='
  164. customerId
  165. ,membershipId
  166. ,name
  167. ,address
  168. ,country
  169. ,idType
  170. ,idNumber
  171. ,district
  172. ,city
  173. ,email
  174. ,companyName
  175. ,homePhone
  176. ,workPhone
  177. ,mobile'
  178. EXEC dbo.proc_paging
  179. @table
  180. ,@sql_filter
  181. ,@select_field_list
  182. ,@extra_field_list
  183. ,@sortBy
  184. ,@sortOrder
  185. ,@pageSize
  186. ,@pageNumber
  187. END
  188. IF @flag = 'u'
  189. BEGIN
  190. IF @mobile IS NULL
  191. BEGIN
  192. EXEC proc_errorHandler 1, 'Invalid Mobile Number', NULL
  193. RETURN
  194. END
  195. IF (YEAR(GETDATE()) - YEAR(@dob) < 16)
  196. BEGIN
  197. EXEC proc_errorHandler 1, 'Customer Not Eligible', @customerId
  198. RETURN
  199. END
  200. IF EXISTS(SELECT 'X' FROM customers WHERE customerId <> @customerId AND membershipId = @membershipId AND ISNULL(isDeleted, 'N') <> 'Y')
  201. BEGIN
  202. EXEC proc_errorHandler 1, 'Membership Id already in use', @customerId
  203. RETURN
  204. END
  205. BEGIN TRANSACTION
  206. UPDATE customers SET
  207. firstName = @firstName
  208. ,middleName = @middleName
  209. ,lastName1 = @lastName1
  210. ,lastName2 = @lastName2
  211. ,fullName = @firstName + ISNULL(' ' + @middleName, '') + ISNULL(' ' + @lastName1, '') + ISNULL(' ' + @lastName2, '')
  212. ,country = @country
  213. ,[address] = @address
  214. ,[STATE] = @state
  215. ,zipCode = @zipCode
  216. ,district = @district
  217. ,city = @city
  218. ,email = @email
  219. ,homePhone = @homePhone
  220. ,workPhone = @workPhone
  221. ,mobile = @mobile
  222. ,nativeCountry = @nativeCountry
  223. ,dob = @dob
  224. ,placeOfIssue = @placeOfIssue
  225. ,customerType = @customerType
  226. ,occupation = @occupation
  227. ,isBlackListed = @isBlackList
  228. ,relationId = @relationId
  229. ,relativeName = @relativeName
  230. ,modifiedBy = @user
  231. ,modifiedDate = GETDATE()
  232. ,gender = @gender
  233. ,companyName = @companyName
  234. ,agentId = @agentId
  235. ,branchId = @branchId
  236. ,idType = @idType
  237. ,idNumber = @idNumber
  238. WHERE customerId = @customerId
  239. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @customerId, @newValue OUTPUT
  240. INSERT INTO #msg(errorCode, msg, id)
  241. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @customerId, @user, @oldValue, @newValue
  242. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  243. BEGIN
  244. IF @@TRANCOUNT > 0
  245. ROLLBACK TRANSACTION
  246. EXEC proc_errorHandler 1, 'Failed to update record.', @customerId
  247. RETURN
  248. END
  249. IF @@TRANCOUNT > 0
  250. COMMIT TRANSACTION
  251. EXEC proc_errorHandler 0, 'Record updated successfully.', @customerId
  252. END
  253. END TRY
  254. BEGIN CATCH
  255. IF @@TRANCOUNT > 0
  256. ROLLBACK TRANSACTION
  257. DECLARE @errorMessage VARCHAR(MAX)
  258. SET @errorMessage = ERROR_MESSAGE()
  259. EXEC proc_errorHandler 1, @errorMessage, @user
  260. END CATCH
  261. GO