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.

423 lines
17 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. ALTER PROCEDURE [dbo].[mobile_proc_receiverSetup]
  4. (
  5. @flag VARCHAR (50) = NULL
  6. ,@userId VARCHAR (50) = NULL
  7. ,@customerId VARCHAR (100) = NULL
  8. ,@firstName VARCHAR(50) = NULL
  9. ,@middleName VARCHAR(50) = NULL
  10. ,@lastName VARCHAR(50) = NULL
  11. ,@country VARCHAR(100) = NULL
  12. ,@address VARCHAR(500) = NULL
  13. ,@state VARCHAR(100) = NULL
  14. ,@district VARCHAR(100) = NULL
  15. ,@city VARCHAR(100) = NULL
  16. ,@email VARCHAR(100) = NULL
  17. ,@mobile VARCHAR(30) = NULL
  18. ,@relation VARCHAR(50) = NULL
  19. ,@recipientId VARCHAR (50) = NULL --receiver Id
  20. ,@purpose VARCHAR(500) = NULL
  21. ,@idType VARCHAR(500) = NULL
  22. ,@idNumber VARCHAR(500) = NULL
  23. ,@page INT = NULL
  24. ,@size INT = NULL
  25. ,@search VARCHAR (50) = NULL
  26. )
  27. AS
  28. BEGIN
  29. DECLARE @totalReceiverCount INT,@recMobile VARCHAR(50),@countryId VARCHAR(10),@stateName VARCHAR(50),@districtName VARCHAR(50)
  30. ,@stateText VARCHAR(50),@districtText VARCHAR(50),@stateId BIGINT,@districtId BIGINT;
  31. SET @totalReceiverCount = 0;
  32. IF @flag='i'
  33. BEGIN
  34. SELECT
  35. @customerId=cust.customerId
  36. FROM customermaster(NOLOCK) cust
  37. WHERE cust.email=@userId
  38. SELECT @country = CM.countryName,@countryId = CM.countryId
  39. FROM dbo.countryMaster(NOLOCK) AS CM
  40. WHERE CM.countryId = @country OR cm.countryName=@country
  41. IF ISNULL(@customerId,'')=''
  42. BEGIN
  43. SELECT '1' errorCode,'The user with '+@userId+' does not exists.' msg,null id
  44. RETURN
  45. END
  46. IF EXISTS(SELECT 'X' FROM receiverInformation WITH(NOLOCK) WHERE mobile=@mobile and customerId=@customerId and firstName = @firstName and lastName1 = @lastName and isActive = 1)
  47. BEGIN
  48. SELECT '1' errorCode,'The receiver with mobile Number '+@mobile+' already exists.' msg,null id
  49. RETURN
  50. END
  51. SET @stateText =CASE WHEN @countryId='151' then (SELECT Replace(stateName,char(9),'') FROM dbo.countriesStates rcs WITH(NOLOCK)
  52. INNER JOIN dbo.countryMaster cm WITH(NOLOCK) ON cm.countryCode = rcs.countryCode WHERE countryId = '151' AND rcs.rowId=@state)
  53. WHEN NOT EXISTS(SELECT 'A' FROM tblServicewiseLocation (NOLOCK) WHERE countryId = @countryId) THEN 'Any State'
  54. ELSE (SELECT location FROM tblServicewiseLocation loc (NOLOCK) WHERE countryId = @countryId AND isActive = 1 AND loc.rowId=@state)
  55. END
  56. SET @districtText =CASE WHEN @countryId='151' then (SELECT Replace(stateName,char(9),'') FROM dbo.countriesStates rcs WITH(NOLOCK)
  57. INNER JOIN dbo.countryMaster cm WITH(NOLOCK) ON cm.countryCode = rcs.countryCode WHERE countryId = '151' AND rcs.rowId=@district)
  58. WHEN NOT EXISTS(SELECT 'A' FROM tblSubLocation (NOLOCK) WHERE locationId = @state) THEN 'Any location'
  59. ELSE (SELECT subLocation FROM tblSubLocation (NOLOCK) WHERE locationId = @state AND rowId=@district AND isActive = 1)
  60. END
  61. INSERT INTO receiverInformation
  62. ( customerId,firstName,middleName ,lastName1 ,country,[address],[state],district ,city,email ,mobile,relationship,purposeOfRemit,isActive,idType,idNumber )
  63. SELECT
  64. @customerId ,@firstName ,@middleName,@lastName,@country,@address,@stateText,@districtText,@city,@email ,@mobile
  65. ,(SELECT sv.detailTitle FROM dbo.staticDataValue sv(NOLOCK) WHERE sv.valueId=@relation)
  66. ,(SELECT sv.detailTitle FROM dbo.staticDataValue sv(NOLOCK) WHERE sv.valueId=@purpose),1,@idType,@idNumber
  67. SET @recipientId=SCOPE_IDENTITY()
  68. SELECT TOP 1 errorCode = '0'
  69. ,recipientId = receiverId
  70. ,firstname
  71. ,middlename
  72. ,lastname = ISNULL(lastName1,'')+ISNULL(' '+lastName2,'')
  73. ,fullname = firstname +ISNULL(' ' + middlename,'') + ISNULL(' ' + lastName1,'')
  74. ,[address] = [address]
  75. ,city
  76. ,ISNULL([state],'Any State')
  77. ,stateId = @state
  78. ,ISNULL(district,'Any District')
  79. ,districtId = @district
  80. ,country
  81. ,countryId = cm.countryId
  82. ,relation = relationship
  83. ,relationId = rel.valueId
  84. ,mobile
  85. ,email
  86. ,transferReason = purposeOfRemit
  87. ,reasonId = rsn.valueId
  88. ,dpUrl = ''
  89. ,userId = @userId
  90. ,countryCode = cm.countryCode
  91. ,idType = rec.idType
  92. ,idNumber = rec.idNumber
  93. FROM receiverInformation rec(NOLOCK)
  94. LEFT JOIN staticdatavalue rel (NOLOCK) ON rec.relationship=rel.detailTitle
  95. LEFT JOIN staticdatavalue rsn (NOLOCK) ON rec.purposeOfRemit=rsn.detailTitle
  96. LEFT JOIN countryMaster cm(NOLOCK) ON rec.country=cm.countryName
  97. WHERE receiverId =@recipientId AND ISNULL(rec.isActive,1) = 1
  98. RETURN
  99. END
  100. ELSE IF @flag='u'
  101. BEGIN
  102. /*================= check if contact details of recipient matches to detail of existing recipient while updating ###STARTS ============*/
  103. SELECT @customerId = ri.customerId
  104. FROM dbo.receiverInformation ri(NOLOCK)
  105. WHERE ri.receiverId=@recipientId AND ISNULL(isActive,1) = 1
  106. --IF ISNULL(@mobile,'') <> ''
  107. --BEGIN
  108. --IF EXISTS(SELECT 'X' FROM receiverInformation WITH(NOLOCK) WHERE mobile=@mobile AND customerId=@customerId)
  109. --BEGIN
  110. -- SELECT '1' errorCode,'The contact details already exists.Please re-enter correct contact details.' msg,null id
  111. -- RETURN
  112. --END
  113. --END
  114. /*================= ###ENDS ============*/
  115. IF EXISTS(SELECT 'X' FROM receiverInformation (NOLOCK) WHERE receiverId=@recipientId)
  116. BEGIN
  117. DECLARE @provinceId VARCHAR(50);
  118. SELECT @userId=ur.username ,@countryId=cm.countryId,@stateName=ri.state,@districtName=ri.district
  119. FROM mobile_userRegistration ur(NOLOCK)
  120. INNER JOIN receiverInformation ri (NOLOCK) ON ur.customerId=ri.customerId
  121. INNER JOIN dbo.countryMaster cm(NOLOCK) ON UPPER(cm.countryName)=UPPER(ri.country)
  122. WHERE ri.receiverId=@recipientId
  123. --PRINT @userId
  124. IF @country IS NOT NULL
  125. BEGIN
  126. SET @countryId=@country
  127. --SELECT @countryId=CM.countryName FROM dbo.countryMaster(NOLOCK) AS CM WHERE CM.countryId=@country
  128. END
  129. IF @state IS NOT NULL
  130. BEGIN
  131. SET @stateText =CASE WHEN @countryId='151' then
  132. (SELECT Replace(stateName,char(9),'')
  133. FROM dbo.countriesStates rcs WITH(NOLOCK)
  134. INNER JOIN dbo.countryMaster cm WITH(NOLOCK) ON cm.countryCode = rcs.countryCode
  135. WHERE countryId = '151' AND rcs.rowId=@state)
  136. WHEN NOT EXISTS(SELECT 'A' FROM tblServicewiseLocation (NOLOCK) WHERE countryId = @countryId) THEN 'Any State'
  137. ELSE (SELECT location FROM tblServicewiseLocation loc (NOLOCK) WHERE countryId = @countryId AND isActive = 1 AND loc.rowId=@state)
  138. END
  139. SET @stateName=@stateText;
  140. END
  141. IF @district IS NOT NULL
  142. BEGIN
  143. SET @districtText =CASE WHEN @countryId='151' then
  144. (SELECT Replace(stateName,char(9),'')
  145. FROM dbo.countriesStates rcs WITH(NOLOCK) INNER JOIN dbo.countryMaster cm WITH(NOLOCK) ON cm.countryCode = rcs.countryCode
  146. WHERE countryId = '151' AND rcs.rowId=@district)
  147. WHEN NOT EXISTS(SELECT 'A' FROM tblSubLocation (NOLOCK) WHERE rowId = @district) THEN 'Any location'
  148. ELSE (SELECT subLocation FROM tblSubLocation (NOLOCK) WHERE rowId=@district AND isActive = 1)
  149. END
  150. SET @districtName=@districtText;
  151. END
  152. SET @stateId =CASE WHEN @countryId='151' then
  153. (SELECT rcs.rowId
  154. FROM dbo.countriesStates rcs WITH(NOLOCK) INNER JOIN dbo.countryMaster cm WITH(NOLOCK) ON cm.countryCode = rcs.countryCode
  155. WHERE countryId = '151' AND UPPER(Replace(rcs.stateName,char(9),''))=UPPER(@stateName))
  156. WHEN NOT EXISTS(SELECT 'A' FROM tblServicewiseLocation (NOLOCK) WHERE countryId = @countryId) THEN '0'
  157. ELSE (SELECT rowId FROM tblServicewiseLocation (NOLOCK) WHERE countryId = @countryId AND isActive = 1 AND location=@stateName)
  158. END;
  159. SET @districtId =CASE WHEN @countryId='151' then
  160. (SELECT rcs.rowId
  161. FROM dbo.countriesStates rcs WITH(NOLOCK) INNER JOIN dbo.countryMaster cm WITH(NOLOCK) ON cm.countryCode = rcs.countryCode
  162. WHERE countryId = '151' AND UPPER(Replace(rcs.stateName,char(9),''))=UPPER(@districtName))
  163. WHEN NOT EXISTS(SELECT 'A' FROM tblSubLocation (NOLOCK) WHERE locationId = @stateId) THEN '0'
  164. ELSE (SELECT rowId FROM tblSubLocation (NOLOCK) WHERE locationId = @stateId AND subLocation=@districtName AND isActive = 1)
  165. END;
  166. UPDATE receiverInformation SET
  167. firstName = @firstName
  168. ,middleName = @middleName
  169. ,lastName1 = @lastName
  170. ,lastName2 = ''
  171. ,country = CASE WHEN @country IS NOT NULL THEN (SELECT cm.countryName FROM dbo.countryMaster cm(NOLOCK) WHERE cm.countryId=@country)
  172. ELSE country
  173. END
  174. ,[address] = @address
  175. ,[state] = CASE WHEN @state IS NOT NULL THEN @stateText ELSE [state] END
  176. ,district = CASE WHEN @district IS NOT NULL THEN @districtText ELSE [district] END
  177. ,city = @city
  178. ,email = @email
  179. ,purposeOfRemit = CASE WHEN @purpose IS NOT NULL THEN (SELECT sv.detailTitle FROM dbo.staticDataValue sv(NOLOCK) WHERE sv.valueId=@purpose)
  180. ELSE purposeOfRemit
  181. END
  182. ,mobile = @mobile
  183. ,relationship = CASE WHEN @relation IS NOT NULL THEN (SELECT sv.detailTitle FROM dbo.staticDataValue sv(NOLOCK) WHERE sv.valueId=@relation)
  184. ELSE relationship
  185. END
  186. ,idType = @idType
  187. ,idNumber = @idNumber
  188. WHERE receiverId = @recipientId
  189. SELECT TOP 1 errorCode = '0'
  190. ,recipientId = receiverId
  191. ,firstname
  192. ,middlename
  193. ,lastname = ISNULL(lastName1,'')+ISNULL(' '+lastName2,'')
  194. ,fullname = firstname +ISNULL(' ' + middlename,'') + ISNULL(' ' + lastName1,'')
  195. ,[address] = [address]
  196. ,city
  197. ,[state]
  198. ,[stateId] = ISNULL(@state,@stateId)
  199. ,district
  200. ,districtId = ISNULL(@district,@districtId)
  201. ,country
  202. ,countryId = cm.countryId
  203. ,relation = relationship
  204. ,relationId = rel.valueId
  205. ,mobile
  206. ,email
  207. ,transferReason = purposeOfRemit
  208. ,reasonId = rsn.valueId
  209. ,dpUrl = ''
  210. ,userId = @userId
  211. ,countryCode = cm.countryCode
  212. ,idType = rec.idType
  213. ,idNumber = rec.idNumber
  214. FROM receiverInformation rec(NOLOCK)
  215. LEFT JOIN staticdatavalue rel (NOLOCK) ON rec.relationship=rel.detailTitle
  216. LEFT JOIN staticdatavalue rsn (NOLOCK) ON rec.purposeOfRemit=rsn.detailTitle
  217. LEFT JOIN countryMaster cm(NOLOCK) ON rec.country=cm.countryName
  218. WHERE receiverId =@recipientId
  219. RETURN
  220. END
  221. ELSE
  222. BEGIN
  223. SELECT '1' errorCode,'Receiver with '+@recipientId+' not found.' msg,id=@recipientId
  224. END
  225. END
  226. ELSE IF @flag='d'
  227. BEGIN
  228. --DELETE FROM receiverInformation WHERE receiverId=@recipientId
  229. UPDATE receiverInformation SET isActive = 0, DeletedBy = 'Customer:Mobile App', DeletedDate = GETDATE(), IsDeleted = 'Y' WHERE receiverId=@recipientId
  230. SELECT '0' errorCode,'Receiver Deleted Successfully.' msg,id=@recipientId
  231. RETURN
  232. END
  233. ELSE IF @flag='s_id'
  234. BEGIN
  235. SELECT @userId=ur.username,@countryId=cm.countryId,@stateName=ri.state,@districtName=ri.district
  236. FROM mobile_userRegistration ur(NOLOCK)
  237. INNER JOIN receiverInformation ri (NOLOCK) ON ur.customerId=ri.customerId
  238. INNER JOIN dbo.countryMaster cm(NOLOCK) ON UPPER(cm.countryName)=UPPER(ri.country)
  239. WHERE ri.receiverId=@recipientId AND ISNULL(ri.isActive,1) = 1
  240. SET @stateId =CASE WHEN @countryId='151' then
  241. (SELECT rcs.rowId
  242. FROM dbo.countriesStates rcs WITH(NOLOCK) INNER JOIN dbo.countryMaster cm WITH(NOLOCK) ON cm.countryCode = rcs.countryCode
  243. WHERE countryId = '151' AND UPPER(Replace(rcs.stateName,char(9),''))=UPPER(@stateName))
  244. WHEN NOT EXISTS(SELECT 'A' FROM tblServicewiseLocation (NOLOCK) WHERE countryId = @countryId) THEN '0'
  245. ELSE (SELECT rowId FROM tblServicewiseLocation (NOLOCK) WHERE countryId = @countryId AND isActive = 1 AND location=@stateName)
  246. END;
  247. SET @districtId =CASE WHEN @countryId='151' then
  248. (SELECT rcs.rowId
  249. FROM dbo.countriesStates rcs WITH(NOLOCK) INNER JOIN dbo.countryMaster cm WITH(NOLOCK) ON cm.countryCode = rcs.countryCode
  250. WHERE countryId = '151' AND UPPER(Replace(rcs.stateName,char(9),''))=UPPER(@districtName))
  251. WHEN NOT EXISTS(SELECT 'A' FROM tblSubLocation (NOLOCK) WHERE locationId = @stateId) THEN '0'
  252. ELSE (SELECT rowId FROM tblSubLocation (NOLOCK) WHERE locationId = @stateId AND subLocation=@districtName AND isActive = 1)
  253. END;
  254. SELECT TOP 1 errorCode = '0'
  255. ,recipientId = receiverId
  256. ,firstname
  257. ,middlename
  258. ,lastname = ISNULL(lastName1,'')+ISNULL(' '+lastName2,'')
  259. ,fullname = firstname +ISNULL(' ' + middlename,'') + ISNULL(' ' + lastName1,'')+ISNULL(' '+lastName2,'')
  260. ,[address] = [address]
  261. ,city
  262. ,[state]
  263. ,[stateId] = @stateId
  264. ,district
  265. ,districtId = @districtId
  266. ,country
  267. ,countryId = cm.countryId
  268. ,relation = relationship
  269. ,relationId = rel.valueId
  270. ,mobile
  271. ,email
  272. ,transferReason = purposeOfRemit
  273. ,reasonId = rsn.valueId
  274. ,dpUrl = ''
  275. ,userId = rec.customerId
  276. ,countryCode = cm.countryCode
  277. ,idType = rec.idType
  278. ,idNumber = rec.idNumber
  279. FROM receiverInformation rec(NOLOCK)
  280. LEFT JOIN staticdatavalue rel (NOLOCK) ON rec.relationship=rel.detailTitle
  281. LEFT JOIN staticdatavalue rsn (NOLOCK) ON rec.purposeOfRemit=rsn.detailTitle
  282. LEFT JOIN countryMaster cm(NOLOCK) ON rec.country=cm.countryName
  283. WHERE receiverId =@recipientId AND ISNULL(rec.isActive,1) = 1
  284. RETURN
  285. END
  286. ELSE IF @flag='s_all'
  287. BEGIN
  288. SELECT @customerId=cm.customerId
  289. FROM dbo.customerMaster(NOLOCK) cm
  290. WHERE cm.email = @userId
  291. --OR cm.mobile=@userId
  292. IF @customerId IS NULL
  293. SET @customerId = -1
  294. IF NULLIF(@size, 0) IS NULL
  295. SET @size = -1
  296. IF NULLIF(@page, 0) IS NULL
  297. SET @page = 1
  298. ELSE
  299. SET @page += 1
  300. DECLARE @sql VARCHAR(MAX)
  301. SET @sql = '
  302. SELECT recipientId
  303. ,firstname
  304. ,middlename
  305. ,lastname
  306. ,fullname
  307. ,[address]
  308. ,city
  309. ,[state]
  310. ,[stateId]
  311. ,district
  312. ,districtId
  313. ,country
  314. ,countryId
  315. ,relation
  316. ,relationId
  317. ,mobile
  318. ,email
  319. ,transferReason
  320. ,reasonId
  321. ,dpUrl
  322. ,userId
  323. ,countryCode
  324. ,idType
  325. ,idNumber
  326. FROM (
  327. SELECT ROW_NUMBER() OVER (ORDER BY receiverId DESC) rowid_by_ROW_NUMBER
  328. ,recipientId = receiverId
  329. ,firstname
  330. ,middlename
  331. ,lastname = lastName1+ ISNULL('' '' + lastName2,'''')
  332. ,fullname =firstname +ISNULL('' '' + middlename,'''') + ISNULL('' '' + lastName1,'''')+ ISNULL('' '' + lastName2,'''')
  333. ,[address] = [address]
  334. ,city
  335. ,[state]
  336. ,stateId = CASE WHEN cm.countryId=''151'' THEN rcs.rowId
  337. WHEN NOT EXISTS(SELECT ''A'' FROM tblServicewiseLocation (NOLOCK) WHERE countryId = cm.countryId) THEN ''0''
  338. ELSE (SELECT top 1 rowId FROM tblServicewiseLocation (NOLOCK) WHERE countryId = cm.countryId AND isActive = 1 AND location=rec.state)
  339. END
  340. ,district
  341. ,[districtId] = CASE WHEN cm.countryId=''151'' THEN rcd.rowId
  342. WHEN NOT EXISTS(SELECT ''A'' FROM tblSubLocation (NOLOCK) WHERE subLocation = rec.district) THEN ''0''
  343. ELSE (SELECT top 1 rowId FROM tblSubLocation (NOLOCK) WHERE subLocation = rec.district AND locationId=swl.rowId AND isActive = 1)
  344. END
  345. ,country
  346. ,countryId = cm.countryId
  347. ,relation = relationship
  348. ,relationId = rel.valueId
  349. ,mobile
  350. ,email
  351. ,transferReason = purposeOfRemit
  352. ,reasonId = rsn.valueId
  353. ,dpUrl =''''
  354. ,userId = '''+@userId+'''
  355. ,countryCode = cm.countryCode
  356. ,idType = rec.idType
  357. ,idNumber = rec.idNumber
  358. FROM receiverInformation rec(NOLOCK)
  359. LEFT JOIN staticdatavalue rel (NOLOCK) ON rec.relationship=rel.detailTitle and rel.IS_DELETE is null
  360. LEFT JOIN staticdatavalue rsn (NOLOCK) ON rec.purposeOfRemit=rsn.detailTitle and rsn.IS_DELETE is null and rsn.typeID = 3800
  361. LEFT JOIN countryMaster cm(NOLOCK) ON rec.country=cm.countryName
  362. LEFT JOIN countriesStates rcs(nolock) on UPPER(Replace(rcs.stateName,char(9),''''))=UPPER(rec.state)
  363. LEFT JOIN countriesStates rcd(nolock) on UPPER(Replace(rcd.stateName,char(9),''''))=UPPER(rec.district)
  364. LEFT JOIN tblServiceWiseLocation swl(nolock) on UPPER(swl.location)=UPPER(rec.state)
  365. WHERE customerId = '''+@customerId+''' and rec.isActive=1
  366. ) x where 1=1 '
  367. + CASE
  368. WHEN @size <> -1 THEN '
  369. and rowid_by_ROW_NUMBER BETWEEN '
  370. + CAST(((@page - 1) * @size + 1) AS VARCHAR(50))
  371. + ' AND ' + CAST((@page * @size) AS VARCHAR(50))
  372. ELSE ''
  373. END
  374. IF @search IS NOT NULL
  375. BEGIN
  376. SET @sql = @sql + ' AND (x.fullName LIKE ''%'+@search+'%'' OR x.mobile LIKE ''%'+@search+'%'' )'
  377. END
  378. SET @sql = @sql + ' ORDER BY x.recipientId DESC'
  379. --PRINT @sql
  380. EXEC (@sql)
  381. --SELECT '0' errorCode,'Success.' msg,id=@customerId
  382. ----EXEC mobile_proc_receiverSetup @flag = 's_all',@userId = 'kamalbhusal2010@gmail.com' , @page = 0, @size =10,@search = 'K'
  383. RETURN
  384. END
  385. END