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.

268 lines
17 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_sendValidation] 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_sendValidation]
  9. @agentId INT = NULL
  10. ,@senIdType VARCHAR(50) = NULL
  11. ,@senIdNo VARCHAR(50) = NULL
  12. ,@senIdValidDate VARCHAR(50) = NULL
  13. ,@senDob VARCHAR(50) = NULL
  14. ,@senAddress VARCHAR(200) = NULL
  15. ,@senCity VARCHAR(100) = NULL
  16. ,@senContact VARCHAR(100) = NULL
  17. ,@senOccupation VARCHAR(100) = NULL
  18. ,@senCompany VARCHAR(100) = NULL
  19. ,@senSalaryRange VARCHAR(50) = NULL
  20. ,@purposeOfRemittance VARCHAR(100) = NULL
  21. ,@sourceOfFund VARCHAR(100) = NULL
  22. ,@recIdType VARCHAR(50) = NULL
  23. ,@recIdNo VARCHAR(50) = NULL
  24. ,@recPlaceOfIssue VARCHAR(100) = NULL
  25. ,@recAddress VARCHAR(200) = NULL
  26. ,@recCity VARCHAR(100) = NULL
  27. ,@recContact VARCHAR(100) = NULL
  28. ,@recRelationship VARCHAR(100) = NULL
  29. ,@senNativeCountry VARCHAR(100) = NULL
  30. ,@recDob VARCHAR(50) = NULL
  31. ,@recIdValidDate VARCHAR(50) = NULL
  32. ,@paymentMethod VARCHAR(50) = NULL
  33. ,@deliveryMethodId INT = NULL
  34. ,@pBank INT = NULL
  35. ,@pBankBranchName VARCHAR(100) = NULL
  36. ,@accountNo VARCHAR(50) = NULL
  37. ,@pAgent INT = NULL
  38. ,@pAgentLocation VARCHAR(200) = NULL
  39. ,@pBankType CHAR(1) = NULL
  40. ,@pCountryId INT = NULL
  41. ,@sCountryId INT = NULL
  42. ,@checkExpiryDate CHAR(1) = NULL
  43. AS
  44. DECLARE @id CHAR(1), @idValidDate CHAR(1), @dob CHAR(1), @address CHAR(1), @city CHAR(1), @contact CHAR(1), @occupation CHAR(1), @company CHAR(1),
  45. @salaryRange CHAR(1), @por CHAR(1), @sof CHAR(1), @rId CHAR(1), @rPlaceOfIssue CHAR(1), @rAddress CHAR(1), @rCity CHAR(1), @rContact CHAR(1),
  46. @rRelationShip CHAR(1), @nativeCountry CHAR(1), @rowId INT
  47. SELECT @rowId = rowId FROM sendPayTable WITH(NOLOCK) WHERE agent = @agentId AND ISNULL(isDeleted, 'N') = 'N'
  48. IF @rowId IS NULL
  49. SELECT @rowId = rowId FROM sendPayTable WITH(NOLOCK) WHERE country = @sCountryId AND agent IS NULL AND ISNULL(isDeleted, 'N') = 'N'
  50. SELECT
  51. @id = id
  52. ,@idValidDate = iDValidDate
  53. ,@dob = dob
  54. ,@address = address
  55. ,@city = city
  56. ,@contact = contact
  57. ,@occupation = occupation
  58. ,@company = company
  59. ,@salaryRange = salaryRange
  60. ,@por = purposeofRemittance
  61. ,@sof = sourceofFund
  62. ,@rId = rId
  63. ,@rPlaceOfIssue = rPlaceOfIssue
  64. ,@rAddress = raddress
  65. ,@rCity = rcity
  66. ,@rContact = rContact
  67. ,@rRelationShip = rRelationShip
  68. ,@nativeCountry = nativeCountry
  69. FROM sendPayTable spt WITH(NOLOCK) WHERE rowId = @rowId
  70. --SELECT * FROM receiveTranLimit WITH(NOLOCK)
  71. IF @pBankType = 'I'
  72. BEGIN
  73. DECLARE @rtlId INT
  74. SELECT @rtlId = rtlId FROM receiveTranLimit WITH(NOLOCK) WHERE agentId = @pBank AND tranType = @deliveryMethodId AND ISNULL(isActive, 'N') = 'Y' AND ISNULL(isDeleted, 'N') = 'N'
  75. IF @rtlId IS NULL
  76. SELECT @rtlId = rtlId FROM receiveTranLimit WITH(NOLOCK) WHERE agentId = @pBank AND tranType IS NULL AND ISNULL(isActive, 'N') = 'Y' AND ISNULL(isDeleted, 'N') = 'N'
  77. IF @rtlId IS NULL
  78. SELECT @rtlId = rtlId FROM receiveTranLimit WITH(NOLOCK) WHERE agentId IS NULL AND countryId = @pCountryId AND tranType = @deliveryMethodId AND ISNULL(isActive, 'N') = 'Y' AND ISNULL(isDeleted, 'N') = 'N'
  79. IF @rtlId IS NULL
  80. SELECT @rtlId = rtlId FROM receiveTranLimit WITH(NOLOCK) WHERE agentId IS NULL AND countryId = @pCountryId AND tranType IS NULL AND ISNULL(isActive, 'N') = 'Y' AND ISNULL(isDeleted, 'N') = 'N'
  81. DECLARE @branchSelection VARCHAR(20), @acLengthFrom INT, @acLengthTo INT, @acNumberType VARCHAR(10)
  82. SELECT
  83. @branchSelection = branchSelection
  84. ,@rId = ISNULL(benificiaryIdReq, @rId)
  85. ,@rContact = ISNULL(benificiaryContactReq, @rContact)
  86. ,@acLengthFrom = ISNULL(acLengthFrom, 0)
  87. ,@acLengthTo = ISNULL(acLengthTo, 0)
  88. ,@acNumberType = acNumberType
  89. FROM receiveTranLimit WITH(NOLOCK)
  90. WHERE rtlId = @rtlId
  91. END
  92. ELSE IF @pBankType = 'E'
  93. BEGIN
  94. --SELECT * FROM externalBank
  95. SELECT
  96. @branchSelection = IsBranchSelectionRequired
  97. FROM externalBank WITH(NOLOCK)
  98. WHERE extBankId = @pBank
  99. END
  100. ELSE
  101. BEGIN
  102. SELECT @rtlId = rtlId FROM receiveTranLimit WITH(NOLOCK) WHERE agentId IS NULL AND countryId = @pCountryId AND tranType = @deliveryMethodId AND ISNULL(isActive, 'N') = 'Y' AND ISNULL(isDeleted, 'N') = 'N'
  103. IF @rtlId IS NULL
  104. SELECT @rtlId = rtlId FROM receiveTranLimit WITH(NOLOCK) WHERE agentId IS NULL AND countryId = @pCountryId AND tranType IS NULL AND ISNULL(isActive, 'N') = 'Y' AND ISNULL(isDeleted, 'N') = 'N'
  105. SELECT
  106. @branchSelection = branchSelection
  107. ,@rId = ISNULL(benificiaryIdReq, @rId)
  108. ,@rContact = ISNULL(benificiaryContactReq, @rContact)
  109. ,@acLengthFrom = ISNULL(acLengthFrom, 0)
  110. ,@acLengthTo = ISNULL(acLengthTo, 0)
  111. ,@acNumberType = acNumberType
  112. FROM receiveTranLimit WITH(NOLOCK)
  113. WHERE rtlId = @rtlId
  114. END
  115. IF @paymentMethod IN ('Bank Deposit', 'Account Deposit to Other Bank')
  116. BEGIN
  117. IF @pBank IS NULL
  118. BEGIN
  119. EXEC proc_errorHandler 1, 'Bank is missing', NULL
  120. RETURN
  121. END
  122. IF ISNULL(@accountNo, '') = ''
  123. BEGIN
  124. EXEC proc_errorHandler 1, 'Account number cannot be blank', NULL
  125. RETURN
  126. END
  127. IF @branchSelection = 'Select' AND ISNULL(@pBankBranchName, '') = ''
  128. BEGIN
  129. EXEC proc_errorHandler 1, 'Bank branch is missing', NULL
  130. RETURN
  131. END
  132. /*
  133. IF LEN(@accountNo) NOT BETWEEN @acLengthFrom AND @acLengthTo
  134. BEGIN
  135. EXEC proc_errorHandler 1, 'Account number is not valid', NULL
  136. RETURN
  137. END
  138. IF @acNumberType = 'Numeric' AND ISNUMERIC(@accountNo) = 0
  139. BEGIN
  140. EXEC proc_errorHandler 1, 'Account number is not valid', NULL
  141. RETURN
  142. END
  143. */
  144. END
  145. ELSE IF @paymentMethod IN ('Cash Payment to Other Bank')
  146. BEGIN
  147. IF @pBank IS NULL
  148. BEGIN
  149. EXEC proc_errorHandler 1, 'Bank is missing', NULL
  150. RETURN
  151. END
  152. IF @pAgent IS NULL
  153. BEGIN
  154. EXEC proc_errorHandler 1, 'Please choose route through agent', NULL
  155. RETURN
  156. END
  157. END
  158. DECLARE @agentSelection CHAR(1)
  159. SELECT @agentSelection = agentSelection FROM countryReceivingMode WITH(NOLOCK) WHERE countryId = @pCountryId AND receivingMode = @deliveryMethodId
  160. IF @agentSelection = 'M' AND @pBank IS NULL
  161. BEGIN
  162. EXEC proc_errorHandler 1, 'Payout Agent is missing', NULL
  163. RETURN
  164. END
  165. IF @id = 'M' AND (ISNULL(@senIdType, '') = '' OR ISNULL(@senIdNo, '') = '')
  166. BEGIN
  167. EXEC proc_errorHandler 1, 'Sender ID Detail is missing', NULL
  168. RETURN
  169. END
  170. /*
  171. IF @idValidDate = 'M' AND ISNULL(@senIdValidDate, '') = '' AND @senIdType <> 'NRIC'
  172. BEGIN
  173. EXEC proc_errorHandler 1, 'Sender ID Expiry Date is missing', NULL
  174. RETURN
  175. END
  176. IF ISNULL(@checkExpiryDate, 'Y') = 'Y'
  177. BEGIN
  178. IF DATEDIFF(D, GETDATE(), @senIdValidDate) < 0
  179. BEGIN
  180. EXEC proc_errorHandler 1, 'Sender ID is expired', NULL
  181. RETURN;
  182. END
  183. END
  184. */
  185. IF @dob = 'M' AND ISNULL(@senDob, '') = ''
  186. BEGIN
  187. EXEC proc_errorHandler 1, 'Sender DOB is missing', NULL
  188. RETURN
  189. END
  190. IF @senDob IS NOT NULL AND DATEDIFF(YEAR, @senDob, GETDATE()) < 18
  191. BEGIN
  192. EXEC proc_errorHandler 1, 'DOB Issue : Customer not eligible. Customer must be at least 18 years', NULL
  193. RETURN
  194. END
  195. IF @address = 'M' AND ISNULL(@senAddress, '') = ''
  196. BEGIN
  197. EXEC proc_errorHandler 1, 'Sender address is missing', NULL
  198. RETURN
  199. END
  200. IF @city = 'M' AND ISNULL(@senCity, '') = ''
  201. BEGIN
  202. EXEC proc_errorHandler 1, 'Sender city is missing', NULL
  203. RETURN
  204. END
  205. IF @contact = 'M' AND ISNULL(@senContact, '') = ''
  206. BEGIN
  207. EXEC proc_errorHandler 1, 'Sender contact number is missing', NULL
  208. RETURN
  209. END
  210. /*
  211. IF @occupation = 'M' AND ISNULL(@senOccupation, '') = ''
  212. BEGIN
  213. EXEC proc_errorHandler 1, 'Sender occupation is missing', NULL
  214. RETURN
  215. END
  216. IF @rId = 'M' AND (ISNULL(@recIdType, '') = '' OR ISNULL(@recIdNo, '') = '')
  217. BEGIN
  218. EXEC proc_errorHandler 1, 'Receiver ID detail is missing', NULL
  219. RETURN
  220. END
  221. */
  222. IF @rAddress = 'M' AND ISNULL(@recAddress, '') = ''
  223. BEGIN
  224. EXEC proc_errorHandler 1, 'Receiver address is missing', NULL
  225. RETURN
  226. END
  227. IF @rCity = 'M' AND ISNULL(@recCity, '') = ''
  228. BEGIN
  229. EXEC proc_errorHandler 1, 'Receiver city is missing', NULL
  230. RETURN
  231. END
  232. IF @rContact = 'M' AND ISNULL(@recContact, '') = ''
  233. BEGIN
  234. EXEC proc_errorHandler 1, 'Receiver contact number is missing', NULL
  235. RETURN
  236. END
  237. EXEC proc_errorHandler 0, 'Validation Sucessful', NULL
  238. GO