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.

232 lines
8.9 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[mobile_proc_customerMaster] Script Date: 9/10/2019 10:20:25 AM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROCEDURE MOBILE_PROC_CUSTOMERMASTER_V4
  9. @flag VARCHAR(30)
  10. ,@userId VARCHAR(100) = NULL
  11. ,@type INT = NULL
  12. ,@fullName VARCHAR(200) = NULL
  13. ,@gender VARCHAR(15) = NULL
  14. ,@dob VARCHAR(10) = NULL
  15. ,@email VARCHAR(100) = NULL
  16. ,@city VARCHAR(50) = NULL
  17. ,@address VARCHAR(150) = NULL
  18. ,@nativeCountry VARCHAR(20) = NULL
  19. ,@bankId VARCHAR(200) = NULL
  20. ,@bankAccount VARCHAR(100) = NULL
  21. ,@passportNumber VARCHAR(100) = NULL
  22. ,@passportIssueDate DATETIME = NULL
  23. ,@passportExpiryDate DATETIME = NULL
  24. ,@anotherIDType VARCHAR(20) = NULL
  25. ,@anotherIDNumber VARCHAR(20) = NULL
  26. ,@anotherIDIssueDate DATETIME = NULL
  27. ,@anotherIDExpiryDate DATETIME = NULL
  28. ,@branch VARCHAR(20) = NULL
  29. ,@referralCode VARCHAR(100) = NULL
  30. ,@passportPicture VARCHAR(200) = NULL
  31. ,@anotherIDPicture VARCHAR(200) = NULL
  32. ,@Occupation VARCHAR(100) = NULL
  33. AS
  34. SET NOCOUNT ON;
  35. SET XACT_ABORT ON;
  36. BEGIN TRY
  37. DECLARE @errorMsg VARCHAR(MAX)
  38. ,@customerId BIGINT
  39. ,@cust BIGINT = NULL
  40. ,@vAction VARCHAR(10)
  41. ,@Custdob VARCHAR(10)
  42. ,@IdType VARCHAR(100)
  43. ,@country INT
  44. SET @Custdob =@dob
  45. SET @country=118
  46. SET @fullName=UPPER(@fullName)
  47. IF @flag = 'i-V4'
  48. BEGIN
  49. SELECT TOP 1 @customerId = customerId FROM customerMasterTemp WITH (NOLOCK) WHERE username = @userId
  50. DECLARE @verificationCode varchar(40)
  51. SET @verificationCode = LEFT(NEWID(), 7);
  52. SET @IdType='10997'
  53. IF @nativeCountry='JP'
  54. BEGIN
  55. SET @passportNumber = @anotherIDNumber
  56. SET @passportIssueDate = @anotherIDIssueDate
  57. SET @passportExpiryDate = @anotherIDExpiryDate
  58. SET @IdType = @anotherIDType
  59. SET @passportPicture = @anotherIDPicture
  60. END
  61. IF @passportNumber IS NOT NULL
  62. BEGIN
  63. IF EXISTS(SELECT TOP 1 'x' FROM dbo.customerMaster(NOLOCK) WHERE idNumber = @passportNumber AND email<>@userId )
  64. OR
  65. EXISTS(SELECT TOP 1 'x' FROM dbo.customerMasterTemp(NOLOCK) WHERE idNumber = @passportNumber AND username <> @userId)
  66. BEGIN
  67. SELECT '1' ErrorCode, 'Passport Id number already exist. Please contact GME HO.' Msg, NULL Id, NULL Extra, NULL Extra2
  68. RETURN
  69. END
  70. END
  71. IF @anotherIDType IS NOT NULL AND @anotherIDNumber IS NOT NULL
  72. BEGIN
  73. IF EXISTS(SELECT 'x' FROM dbo.customerMaster(NOLOCK) WHERE anotherIDNumber = @anotherIDNumber AND email<>@userId )
  74. OR
  75. EXISTS(SELECT 'x' FROM dbo.customerMasterTemp(NOLOCK) WHERE anotherIDNumber = @anotherIDNumber AND username<>@userId)
  76. BEGIN
  77. SELECT '1' ErrorCode, 'Another Id number already exist. Please contact GME HO.' Msg, NULL Id, NULL Extra, NULL Extra2
  78. RETURN
  79. END
  80. END
  81. IF(ISDATE(@Custdob)=0) or @Custdob IS NULL
  82. BEGIN
  83. EXEC dbo.proc_errorHandler 1,'Invalid DOB found ',@customerId
  84. RETURN;
  85. END
  86. IF @bankId IN(4,23)
  87. BEGIN
  88. SELECT @bankId = CASE WHEN LEFT(@bankAccount,3) IN ('351','352','356','355', '354','360','384','394','398', '398') THEN '23' ELSE '4' END
  89. END
  90. IF @customerId IS NULL
  91. BEGIN
  92. IF NOT EXISTS (SELECT TOP 1 'A' FROM dbo.customerMaster(NOLOCK) WHERE EMAIL = @userId)
  93. BEGIN
  94. EXEC proc_errorHandler 1, 'Customer doesnot exist in system', @userId
  95. RETURN
  96. END
  97. IF EXISTS(SELECT TOP 1 'A' FROM customerMaster(NOLOCK) WHERE EMAIL = @userId)
  98. BEGIN
  99. UPDATE dbo.customerMaster SET
  100. fullName = @fullName,
  101. firstName = @fullName,
  102. middleName = '',
  103. lastName1 = '',
  104. gender = CASE WHEN UPPER(@gender) = 'M' THEN '97' WHEN UPPER(@gender) = 'F' THEN '98' ELSE '99' END ,
  105. dob = @Custdob,
  106. customerEmail = ISNULL(@email,customeremail),
  107. homePhone = ISNULL(@passportNumber,homePhone),
  108. city = ISNULL(@city,city),
  109. [address] = ISNULL(@address,address),
  110. occupation = ISNULL(@Occupation,occupation),
  111. bankName = ISNULL(@bankId,bankName),
  112. bankAccountNo = ISNULL(@bankAccount,bankAccountNo),
  113. idNumber = ISNULL(@passportNumber,idNumber),
  114. idType = CASE WHEN ISNULL(@passportNumber,idType) IS NOT NULL THEN @IdType ELSE NULL END,
  115. idIssueDate = ISNULL(@passportIssueDate,idIssueDate),
  116. idExpiryDate = ISNULL(@passportExpiryDate,idExpiryDate),
  117. anotherIdType = @anotherIDType ,
  118. anotherIDNumber = @anotherIDNumber ,
  119. anotherIDIssueDate= @anotherIDIssueDate,
  120. anotherIDExpiryDate=@anotherIDExpiryDate,
  121. branchId = ISNULL(@branch,branchId),
  122. referelCode = ISNULL(@referralCode,referelCode) ,
  123. verifyDoc1 = @passportPicture,
  124. verifyDoc2 = @anotherIDPicture,
  125. agreeYn = agreeYn,
  126. country = @country,
  127. modifiedBy = @userId,
  128. modifiedDate = GETDATE()
  129. WHERE EMAIL = @userId
  130. END
  131. END
  132. ELSE
  133. BEGIN
  134. UPDATE dbo.customerMasterTemp SET
  135. fullName = @fullName,
  136. firstName = @fullName,
  137. gender = CASE WHEN UPPER(@gender) = 'M' THEN '97' WHEN UPPER(@gender) = 'F' THEN '98' ELSE '99' END ,
  138. dob = @Custdob,
  139. customerEmail = ISNULL(@email,customeremail),
  140. homePhone = ISNULL(@passportNumber,homePhone),
  141. city = ISNULL(@city,city),
  142. [address] = ISNULL(@address,address),
  143. occupation = ISNULL(@Occupation,occupation),
  144. bankName = ISNULL(@bankId,bankName),
  145. bankAccountNo = ISNULL(@bankAccount,bankAccountNo),
  146. idNumber = ISNULL(@passportNumber,idNumber),
  147. idType = CASE WHEN ISNULL(@passportNumber,idType) IS NOT NULL THEN @IdType ELSE NULL END,
  148. idIssueDate = ISNULL(@passportIssueDate,idIssueDate),
  149. idExpiryDate = ISNULL(@passportExpiryDate,idExpiryDate),
  150. anotherIdType = @anotherIDType ,
  151. anotherIDNumber = @anotherIDNumber ,
  152. anotherIDIssueDate= @anotherIDIssueDate,
  153. anotherIDExpiryDate=@anotherIDExpiryDate,
  154. branchId = ISNULL(@branch,branchId),
  155. referelCode = ISNULL(@referralCode,referelCode) ,
  156. verifyDoc1 = @passportPicture,
  157. verifyDoc2 = @anotherIDPicture,
  158. modifiedBy = @userId,
  159. modifiedDate = GETDATE(),
  160. agreeYn = agreeYn,
  161. country = @country
  162. WHERE customerId = @customerId
  163. IF @type IN(1,2)
  164. BEGIN
  165. IF EXISTS(SELECT TOP 1 'X' FROM customerMaster with (nolock) WHERE email = @userId and ISNULL(onlineUser, 'N')='Y' and isnull(isDeleted,'N')='N' )
  166. BEGIN
  167. SELECT @errorMsg = 'Customer with same ID ' + @userId + ' already exist.'
  168. EXEC proc_errorHandler 1, @errorMsg, @customerId
  169. RETURN
  170. END
  171. IF EXISTS(SELECT TOP 1 'X' FROM customerMaster with (nolock) WHERE replace(idNumber,'-','') = replace(@passportNumber, '-', '') )
  172. BEGIN
  173. SELECT @errorMsg = 'Customer with idnumber ' + @passportNumber + ' already exist.'
  174. EXEC proc_errorHandler 1, @errorMsg, @customerId
  175. RETURN
  176. END
  177. -- check for customer with same Name and same DOB
  178. IF EXISTS(SELECT TOP 1 'X' FROM customerMaster WITH(NOLOCK) WHERE fullName =@fullName AND dob=@dob AND
  179. ISNULL(onlineUser, 'N')='Y' and isnull(isDeleted,'N')='N')
  180. BEGIN
  181. SELECT @errorMsg = 'It looks like you have already registered with GME. <br>
  182. Please contact us on +02-3673-5559 or e-mail us at support@gmeremit.com for any assistance.'
  183. EXEC proc_errorHandler 1, @errorMsg, @customerId
  184. RETURN
  185. END
  186. INSERT INTO dbo.customerMaster
  187. (
  188. fullName,firstName,middleName,lastName1,lastname2,mobile,email,customerEmail,gender,dob,nativeCountry,city,[address],country,bankName,bankAccountNo,idType,idNumber,homePhone,idIssueDate
  189. ,idExpiryDate,sourceOfFund,verifyDoc1,verifyDoc2,referelCode,createdBy,createdDate,isActive,onlineUser,customerPassword
  190. ,customerType ,verificationCode,anotherIDType,anotherIDNumber,anotherIDIssueDate,anotherIDExpiryDate, agreeYn,occupation
  191. )
  192. SELECT fullName,CMT.firstName,CMT.middleName,CMT.lastName1,lastname2,mobile,email,customerEmail,gender,dob,nativeCountry,CMT.city,CMT.address,118,bankName,bankAccountNo,idType,idNumber,CMT.homePhone,
  193. CMT.idIssueDate,idExpiryDate,sourceOfFund,verifyDoc1,verifyDoc2,CMT.referelCode,CMT.createdBy,GETDATE(),'Y','Y',customerPassword
  194. ,4701 ,@verificationCode ,anotherIDType,anotherIDNumber,anotherIDIssueDate,anotherIDExpiryDate, agreeYn,CMT.occupation
  195. FROM dbo.CustomerMasterTemp AS CMT(NOLOCK)
  196. WHERE CMT.customerId = @customerId
  197. SET @cust = @@IDENTITY
  198. UPDATE dbo.mobile_userRegistration SET customerId=@cust WHERE username=@userId
  199. DELETE FROM customerMasterTemp WHERE username=@userId
  200. END
  201. END
  202. SELECT 0 as ERRORCODE, 'KYC Submitted successfully' AS MSG, @userId AS ID,@cust AS EXTRA
  203. RETURN
  204. END
  205. EXEC proc_errorHandler 1, 'Failed to Submit KYC', @userId
  206. RETURN
  207. END TRY
  208. BEGIN CATCH
  209. IF @@TRANCOUNT > 0
  210. ROLLBACK TRANSACTION
  211. DECLARE @errorMessage VARCHAR(MAX)
  212. SET @errorMessage = ERROR_MESSAGE()
  213. SELECT '1' ErrorCode, @errorMessage Msg ,NULL ID
  214. END CATCH