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.

799 lines
48 KiB

9 months ago
9 months ago
9 months ago
9 months ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[ProcMobileConfig] Script Date: 2/28/2024 4:12:16 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROC [dbo].[ProcMobileConfig]
  9. (
  10. @Flag VARCHAR(30)
  11. ,@User VARCHAR(80) = NULL
  12. ,@GroupName VARCHAR(100) = NULL
  13. ,@GroupDetail VARCHAR(150) = NULL
  14. ,@BroadcastTypeId INT = NULL
  15. ,@CustomerGroupIds VARCHAR(200) = NULL
  16. ,@Title NVARCHAR(100) = NULL
  17. ,@Body NVARCHAR(MAX) = NULL
  18. ,@ImageURL VARCHAR(150) = NULL
  19. ,@ScheduleDate VARCHAR(30) = NULL
  20. ,@SortBy VARCHAR(50) = NULL
  21. ,@SortOrder VARCHAR(5) = NULL
  22. ,@PageSize INT = NULL
  23. ,@PageNumber INT = NULL
  24. ,@RowId INT = NULL
  25. ,@Xml XML = NULL
  26. ,@CustomerId BIGINT = NULL
  27. ,@isRepush VARCHAR(1) = NULL
  28. ,@notificationType VARCHAR(50) = NULL
  29. ,@msgType VARCHAR(25) = NULL
  30. ,@customerType VARCHAR(25) = NULL
  31. ,@nativeCountry VARCHAR(3) = NULL
  32. ,@postCode VARCHAR(100) = NULL
  33. )
  34. AS
  35. ;
  36. ------------------------------------------------
  37. -- #101 - Mobile Changes
  38. -- Delete customer from group
  39. -- #1048 - BROADCAST FOR SINGLE CUSTOMER , changes in @flag = 'I-BROADCAST' , 'U-BROADCAST' , 'RE-PUSH'
  40. -- #9490 - puch -notification for individual customers
  41. -- #20484- broadcast by country , @flag = groupForCountry\
  42. -- #26000 - add post code in push notification
  43. ------------------------------------------------
  44. SET NOCOUNT ON;
  45. SET XACT_ABORT ON;
  46. BEGIN
  47. DECLARE @SelectFieldList VARCHAR(MAX)
  48. ,@ExtraFieldList VARCHAR(MAX)
  49. ,@Table VARCHAR(MAX)
  50. ,@SqlFilter VARCHAR(MAX)
  51. DECLARE @customerIdForPush VARCHAR(50) , @deviceId VARCHAR(MAX) , @entrytype varchar(20)
  52. IF @BroadCastTypeId = '0'
  53. SET @BroadCastTypeId = NULL
  54. IF @Flag = 'I'
  55. BEGIN
  56. SELECT 'A'
  57. END
  58. ELSE IF @Flag = 'I-GROUP'
  59. BEGIN
  60. INSERT INTO CustomerGroup(GroupName, GroupDetail, BroadcastTypeId, CreatedBy, CreatedDate, IsActive)
  61. SELECT @GroupName, @GroupDetail, @BroadcastTypeId, @User, GETDATE(), 1
  62. SELECT 0, 'Success', NULL
  63. END
  64. ELSE IF @Flag = 'S-GROUP-SINGLE'
  65. BEGIN
  66. SELECT *
  67. FROM CustomerGroup (NOLOCK)
  68. WHERE RowId = @RowId
  69. END
  70. ELSE IF @Flag = 'U-GROUP'
  71. BEGIN
  72. UPDATE CustomerGroup
  73. SET GroupName = @GroupName, GroupDetail = @GroupDetail, BroadcastTypeId = @BroadcastTypeId, ModifiedBy = @User, ModifiedDate = GETDATE()
  74. WHERE RowId = @RowId
  75. SELECT 0, 'Success', NULL
  76. END
  77. ELSE IF @Flag = 'DDL-GROUP'
  78. BEGIN
  79. SELECT GroupName, RowId
  80. FROM CustomerGroup (NOLOCK)
  81. WHERE IsActive = 1
  82. END
  83. ELSE IF @Flag = 'DDL-STATIC'
  84. BEGIN
  85. SELECT '0' [value], 'Select' [text]
  86. UNION ALL
  87. SELECT valueId [value], detailTitle [text]
  88. FROM staticDataValue (NOLOCK)
  89. WHERE ISNULL(IsActive, 'Y') = 'Y'
  90. AND ISNULL(IS_DELETE, 'N') = 'N'
  91. AND typeId = 8105
  92. END
  93. ELSE IF @Flag = 'DELETE'
  94. BEGIN
  95. SELECT @BroadcastTypeId = BroadcastTypeId
  96. FROM BroadCastNotification (NOLOCK)
  97. WHERE RowId = @RowId
  98. UPDATE BroadCastNotification
  99. SET IsActive = CASE WHEN IsActive = 0 THEN 1 ELSE 0 END, ModifiedBy = @User, ModifiedDate = GETDATE()
  100. WHERE RowId = @RowId
  101. INSERT INTO BroadCastNotificationLog(BroadCastId,CreatedBy,CreatedDate, ResponseMessage)
  102. values (@RowId, @user , GETDATE() , @BroadcastTypeId )
  103. SELECT 0, 'Success', NULL
  104. END
  105. ELSE IF @Flag = 'DELETE-GROUP'
  106. BEGIN
  107. UPDATE CustomerGroup
  108. SET IsActive = CASE WHEN IsActive = 0 THEN 1 ELSE 0 END, ModifiedBy = @User, ModifiedDate = GETDATE()
  109. WHERE RowId = @RowId
  110. SELECT 0, 'Success', NULL
  111. END
  112. ELSE IF @Flag = 'I-BROADCAST'
  113. BEGIN
  114. IF @CustomerGroupIds IS NULL
  115. BEGIN
  116. SET @CustomerGroupIds = '0'
  117. END
  118. INSERT INTO BroadCastNotification(BroadcastTypeId, CustomerGroupIds, Title, Body, ImageURL, IsSent, CreatedBy
  119. , CreatedDate, ScheduleDate, IsActive, customerId, notificationType, messageType)
  120. SELECT @BroadcastTypeId, @CustomerGroupIds, @Title, @Body, @ImageURL, 0, @User
  121. , GETDATE(), @ScheduleDate, 1 , @CustomerId, @notificationType, @msgType
  122. SET @RowId = @@IDENTITY
  123. IF @CustomerId IS NOT NULL
  124. BEGIN
  125. INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category,url, isClickable)
  126. select @customerid, @Body,@Title,getdate(),'',@RowId,0,0,0,0,@msgType,@ImageURL,IIF(@ImageURL IS NULL,'N','Y')
  127. END
  128. ELSE
  129. BEGIN
  130. INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category,url, isClickable)
  131. select distinct customerid, @Body,@Title,getdate(),'',@RowId,0,0,0,0,@msgType,@ImageURL,IIF(@ImageURL IS NULL,'N','Y')
  132. FROM CustomerGroupDetail WHERE GroupId=@CustomerGroupIds
  133. END
  134. --INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category,url, isClickable)
  135. --select ISNULL(@customerid,@CustomerGroupIds),@Body,@Title,getdate(),'',@RowId,0,0,0,0,@msgType,@ImageURL,IIF(@ImageURL IS NULL,'N','Y')
  136. SELECT 0, 'Success', @RowId
  137. END
  138. ELSE IF @Flag = 'U-BROADCAST'
  139. BEGIN
  140. IF @CustomerGroupIds IS NULL
  141. BEGIN
  142. SET @CustomerGroupIds = '0'
  143. END
  144. UPDATE BroadCastNotification
  145. SET BroadcastTypeId = @BroadcastTypeId, Title = @Title, Body = @Body, ImageURL = @ImageURL
  146. , ModifiedBy = @User, ModifiedDate = GETDATE(), notificationType = @notificationType
  147. , messageType = @msgType
  148. WHERE RowId = @RowId
  149. SELECT 0, 'Success', NULL
  150. END
  151. ELSE IF @Flag = 'U-B-GROUP'
  152. BEGIN
  153. UPDATE BroadCastNotification
  154. SET CustomerGroupIds = @CustomerGroupIds, ModifiedBy = @User, ModifiedDate = GETDATE()
  155. WHERE RowId = @RowId
  156. SELECT 0, 'Success', NULL
  157. END
  158. ELSE IF @Flag = 'S-BROADCAST-SINGLE'
  159. BEGIN
  160. SELECT *
  161. FROM BroadCastNotification (NOLOCK)
  162. WHERE RowId = @RowId
  163. END
  164. ELSE IF @Flag = 'S-BROADCAST'
  165. BEGIN
  166. IF @SortBy IS NULL
  167. SET @SortBy = 'CreatedDate'
  168. IF @SortOrder IS NULL
  169. SET @SortOrder = 'DESC'
  170. SET @table = '(
  171. SELECT BN.RowId
  172. ,customer = CASE WHEN bn.customerid is not null then cm.fullName else cg.GroupName END
  173. ,BN.Title
  174. ,BN.ImageURL
  175. ,IsSent = CASE WHEN IsSent = 0 THEN ''No'' WHEN IsSent = 1 THEN ''Yes'' ELSE ''Failed'' END
  176. ,BN.CreatedDate
  177. ,BN.ScheduleDate
  178. ,BN.CreatedBy
  179. ,IsActive = CASE WHEN BN.IsActive = 0 THEN ''No'' ELSE ''Yes'' END
  180. ,BroadCastType = SV.DetailTitle
  181. ,BN.CustomerGroupIds
  182. ,BN.BroadcastTypeId
  183. FROM BroadCastNotification BN (NOLOCK)
  184. INNER JOIN dbo.StaticDataValue SV (NOLOCK) ON BN.BroadcastTypeId = SV.ValueId
  185. LEFT JOIN dbo.CustomerGroup CG(NOLOCK) ON cg.RowId = BN.customerGroupIds
  186. LEFT JOIN dbo.CustomerMaster CM (NOLOCK) ON cm.customerId = ISNULL(BN.customerId,'''')
  187. WHERE 1 = 1 AND BN.isActive = 1 AND ISNULL(BN.entryType,'''') = ''''
  188. )x'
  189. SET @SqlFilter = ''
  190. IF @BroadCastTypeId IS NOT NULL
  191. SET @SqlFilter += ' AND X.BroadcastTypeId = ''' + CAST(@BroadcastTypeId AS VARCHAR) + ''''
  192. IF @Title IS NOT NULL
  193. SET @SqlFilter += ' AND X.Title LIKE ''' + @Title + '%'''
  194. SET @SelectFieldList ='RowId, Title, ImageURL, IsSent, CreatedBy, CreatedDate, ScheduleDate, IsActive
  195. ,BroadCastType, CustomerGroupIds, customer'
  196. EXEC dbo.proc_paging
  197. @table
  198. ,@SqlFilter
  199. ,@SelectFieldList
  200. ,@ExtraFieldList
  201. ,@sortBy
  202. ,@sortOrder
  203. ,@pageSize
  204. ,@pageNumber
  205. END
  206. ELSE IF @Flag = 'S-GROUP'
  207. BEGIN
  208. IF @SortBy IS NULL
  209. SET @SortBy = 'CreatedDate'
  210. IF @SortOrder IS NULL
  211. SET @SortOrder = 'DESC'
  212. SET @table = '(
  213. SELECT CG.RowId
  214. ,CG.GroupName
  215. ,CG.GroupDetail
  216. ,CG.CreatedDate
  217. ,CG.CreatedBy
  218. ,IsActive = CASE WHEN CG.IsActive = 0 THEN ''No'' ELSE ''Yes'' END
  219. ,BroadCastType = SV.DetailTitle
  220. ,BroadcastTypeId
  221. FROM CustomerGroup CG (NOLOCK)
  222. INNER JOIN dbo.StaticDataValue SV (NOLOCK) ON CG.BroadcastTypeId = SV.ValueId
  223. WHERE 1 = 1
  224. )x'
  225. SET @SqlFilter = ''
  226. IF @BroadCastTypeId IS NOT NULL
  227. SET @SqlFilter += ' AND X.BroadcastTypeId = ''' + CAST(@BroadcastTypeId AS VARCHAR) + ''''
  228. IF @GroupName IS NOT NULL
  229. SET @SqlFilter += ' AND X.GroupName LIKE ''' + @GroupName + '%'''
  230. SET @SelectFieldList ='RowId, GroupName, GroupDetail, CreatedDate, CreatedBy, IsActive, BroadCastType'
  231. EXEC dbo.proc_paging
  232. @table
  233. ,@SqlFilter
  234. ,@SelectFieldList
  235. ,@ExtraFieldList
  236. ,@sortBy
  237. ,@sortOrder
  238. ,@pageSize
  239. ,@pageNumber
  240. END
  241. ELSE IF @Flag = 'GROUP-LIST'
  242. BEGIN
  243. IF @RowId IS NULL
  244. BEGIN
  245. SELECT CG.GroupName, CG.RowId, IsSelected = 'N'
  246. FROM CustomerGroup CG(NOLOCK)
  247. WHERE CG.IsActive = 1
  248. AND CG.BroadcastTypeId = @BroadcastTypeId
  249. RETURN;
  250. END
  251. IF @BroadcastTypeId IS NULL
  252. SELECT @BroadcastTypeId = BroadcastTypeId FROM BroadCastNotification(NOLOCK) WHERE RowId = @RowId
  253. SELECT B.RowId, SPL.value customerGroupId
  254. INTO #GROUP_MAPPED
  255. FROM BroadCastNotification B
  256. CROSS APPLY DBO.Split(',', B.CustomerGroupIds) SPL
  257. WHERE B.RowId = @RowId
  258. SELECT CG.GroupName, CG.RowId, IsSelected = CASE WHEN G.RowId IS NULL THEN 'N' ELSE 'Y' END
  259. FROM CustomerGroup CG(NOLOCK)
  260. LEFT JOIN #GROUP_MAPPED G ON CG.RowId = G.customerGroupId
  261. WHERE CG.IsActive = 1
  262. AND CG.BroadcastTypeId = @BroadcastTypeId
  263. END
  264. ELSE IF @Flag = 'UPLOAD-CUSTOMER'
  265. BEGIN
  266. IF @RowId IS NULL
  267. BEGIN
  268. SELECT 1, 'Invalid Customer group type!', NULL
  269. RETURN
  270. END
  271. SELECT membershipId = p.value('@membershipid', 'VARCHAR(100)')
  272. INTO #TEMP_CUSTOMER
  273. FROM @xml.nodes('/root/row') AS tmp ( p );
  274. DELETE TMP
  275. FROM #TEMP_CUSTOMER TMP
  276. INNER JOIN customerMaster CM(NOLOCK) ON CM.membershipId = TMP.membershipId
  277. INNER JOIN CustomerGroupDetail CD(NOLOCK) ON CD.CustomerId = CM.customerId
  278. WHERE CD.GroupId= @RowId
  279. INSERT INTO CustomerGroupDetail(GroupId, CustomerId, CreatedBy, CreatedDate)
  280. SELECT @RowId, CM.customerId, @User, GETDATE()
  281. FROM #TEMP_CUSTOMER T
  282. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.membershipId = T.membershipId
  283. SELECT 0, 'Success', NULL
  284. END
  285. ELSE IF @Flag = 'UPLOAD-CUSTOMER-SINGLE'
  286. BEGIN
  287. IF @RowId IS NULL
  288. BEGIN
  289. SELECT 1, 'Invalid Customer group type!', NULL
  290. RETURN
  291. END
  292. IF NOT EXISTS(SELECT * FROM CUSTOMERMASTER (NOLOCK) WHERE CUSTOMERID = @CustomerId)
  293. BEGIN
  294. SELECT 1, 'Invalid customer!', NULL
  295. RETURN
  296. END
  297. IF EXISTS(SELECT * FROM CustomerGroupDetail (NOLOCK) WHERE CustomerId = @CustomerId AND GroupId = @RowId)
  298. BEGIN
  299. SELECT 1, 'Customer Already added!', NULL
  300. RETURN
  301. END
  302. INSERT INTO CustomerGroupDetail(GroupId, CustomerId, CreatedBy, CreatedDate)
  303. SELECT @RowId, @CustomerId, @User, GETDATE()
  304. SELECT 0, 'Success', NULL
  305. END
  306. ELSE IF @Flag = 'CUSTOMER-LIST'
  307. BEGIN
  308. SELECT FullName = CM.FullName + ' | ' + CM.membershipId , RowId = RowId
  309. FROM CustomerGroupDetail CD(NOLOCK)
  310. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.customerId = CD.CustomerId
  311. WHERE GroupId = @RowId
  312. END
  313. ELSE IF @Flag = 'BROADCAST-DETAIL'
  314. BEGIN
  315. SELECT RowId, Title = SV.detailTitle + ': ' + BC.Title, BC.Body
  316. FROM BroadCastNotification BC(NOLOCK)
  317. INNER JOIN dbo.StaticDataValue SV (NOLOCK) ON BC.BroadcastTypeId = SV.ValueId
  318. WHERE RowId = @RowId
  319. END
  320. ELSE IF @Flag = 'DELETE-CUSTOMER-FROM-GROUP' --added on feb 26
  321. BEGIN
  322. DELETE
  323. FROM CustomerGroupDetail
  324. WHERE RowId = @rowid
  325. IF @@ROWCOUNT = 0
  326. PRINT 'Customer ID not found'
  327. ELSE
  328. SELECT 0 ErrorCode
  329. , 'Customer Deleted Successfully' Msg
  330. , @rowid RowId
  331. RETURN
  332. END
  333. ELSE IF @Flag = 'RE-PUSH'
  334. BEGIN
  335. SELECT @BroadcastTypeId = BroadcastTypeId, @ImageURL=ImageURL,@Body=Body,@Title=Title,@CustomerGroupIds=CustomerGroupIds , @msgType = messageType, @entrytype = entryType
  336. FROM BroadCastNotification (NOLOCK)
  337. WHERE RowId = @RowId
  338. IF @BroadcastTypeId IS NULL
  339. BEGIN
  340. SELECT 1, 'Invalid data!', NULL
  341. RETURN
  342. END
  343. SELECT @CustomerId = CUSTOMERID FROM BroadCastNotification BC(NOLOCK) WHERE RowId = @RowId
  344. IF @CustomerId IS NOT NULL
  345. BEGIN
  346. SELECT RowId, BC.Title, BC.Body, IsBulkNotification = 'false' , SV.detailTitle as BroadcastTypeId , BC.ImageURL as NavigateURL, BC.notificationType AS ClickActivity --added on 25th feb
  347. ,BC.messageType AS MessageType
  348. FROM BroadCastNotification BC(NOLOCK)
  349. INNER JOIN dbo.StaticDataValue SV (NOLOCK) ON BC.BroadcastTypeId = SV.ValueId
  350. WHERE RowId = @RowId
  351. IF @BroadcastTypeId = 11430 --EMAIL
  352. BEGIN
  353. SELECT SendTo = CM.userName, DeviceType = ISNULL(USR.DeviceType, 'Android')
  354. FROM CUSTOMERMASTER CM(NOLOCK)
  355. LEFT JOIN mobile_userRegistration USR(NOLOCK) ON USR.customerId = CM.customerId
  356. WHERE cm.customerId = @CustomerId
  357. END
  358. ELSE IF @BroadcastTypeId = 11429 --PUSH
  359. BEGIN
  360. SELECT SendTo = USR.deviceId, DeviceType = ISNULL(USR.DeviceType, 'Android')
  361. FROM CUSTOMERMASTER CM(NOLOCK)
  362. LEFT JOIN mobile_userRegistration USR(NOLOCK) ON USR.customerId = CM.customerId
  363. WHERE cm.customerId = @CustomerId
  364. END
  365. END
  366. ELSE
  367. BEGIN
  368. PRINT @BroadcastTypeId;
  369. SELECT RowId, BC.Title, BC.Body, IsBulkNotification = 'true', SV.detailTitle as BroadcastTypeId , BC.ImageURL as NavigateURL, BC.notificationType AS ClickActivity --added on 25th feb
  370. , BC.messageType AS MessageType
  371. FROM BroadCastNotification BC(NOLOCK)
  372. INNER JOIN dbo.StaticDataValue SV (NOLOCK) ON BC.BroadcastTypeId = SV.ValueId
  373. WHERE RowId = @RowId
  374. SELECT BN.RowId, SPL.value customerGroupId
  375. INTO #TmpCustomerGroupIds
  376. FROM BroadCastNotification BN(NOLOCK)
  377. CROSS APPLY DBO.Split(',', BN.CustomerGroupIds) SPL
  378. WHERE BN.RowId = @RowId
  379. IF @BroadcastTypeId = 11430 --EMAIL
  380. BEGIN
  381. SELECT SendTo = CM.userName, DeviceType = ISNULL(USR.DeviceType, 'Android')
  382. FROM #TmpCustomerGroupIds TMP
  383. INNER JOIN CustomerGroupDetail CGD(NOLOCK) ON CGD.GroupId = TMP.customerGroupId
  384. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.CUSTOMERID = CGD.CustomerId
  385. LEFT JOIN mobile_userRegistration USR(NOLOCK) ON USR.customerId = CM.customerId
  386. END
  387. ELSE IF @BroadcastTypeId = 11429 --PUSH
  388. BEGIN
  389. IF EXISTS (select top 1 1 from countryMaster (nolock) where countryId = @entrytype)
  390. BEGIN
  391. SELECT customerId
  392. into #tempCustomer FROM pushNotificationHistroy WHERE sentId = @RowId
  393. SELECT SendTo = USR.deviceId, DeviceType = ISNULL(USR.DeviceType, 'Android')
  394. INTO #Finaltbl1
  395. FROM #tempCustomer TMP
  396. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.CUSTOMERID = TMP.CustomerId
  397. LEFT JOIN mobile_userRegistration USR(NOLOCK) ON USR.customerId = CM.customerId
  398. AND usr.deviceId is not null
  399. SELECT * FROM
  400. (
  401. SELECT *,
  402. RANK() OVER(PARTITION BY SendTo
  403. ORDER BY DeviceType) rank
  404. FROM #Finaltbl1
  405. ) T
  406. WHERE rank = 1
  407. END
  408. ELSE
  409. BEGIN
  410. SELECT SendTo = USR.deviceId, DeviceType = ISNULL(USR.DeviceType, 'Android')
  411. INTO #Finaltbl
  412. FROM #TmpCustomerGroupIds TMP
  413. INNER JOIN CustomerGroupDetail CGD(NOLOCK) ON CGD.GroupId = TMP.customerGroupId
  414. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.CUSTOMERID = CGD.CustomerId
  415. LEFT JOIN mobile_userRegistration USR(NOLOCK) ON USR.customerId = CM.customerId
  416. AND usr.deviceId is not null
  417. SELECT * FROM
  418. (
  419. SELECT *,
  420. RANK() OVER(PARTITION BY SendTo
  421. ORDER BY DeviceType) rank
  422. FROM #Finaltbl
  423. ) T
  424. WHERE rank = 1
  425. END
  426. END
  427. END
  428. IF @isRepush = 'Y'
  429. BEGIN
  430. PRINT @BroadcastTypeId;
  431. INSERT INTO BroadCastNotificationLog(BroadCastId,CreatedBy,CreatedDate, ResponseMessage)
  432. values (@RowId, @user , GETDATE() , @BroadcastTypeId )
  433. IF @BroadcastTypeId = 11429 -- add notify
  434. BEGIN
  435. IF @CustomerId IS NOT NULL
  436. BEGIN
  437. INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category,url, isClickable)
  438. select @customerid, @Body,@Title,getdate(),'',@RowId,0,0,0,0,@msgType,@ImageURL,IIF(@ImageURL IS NULL,'N','Y')
  439. END
  440. ELSE
  441. BEGIN
  442. INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category,url, isClickable)
  443. select distinct customerid, @Body,@Title,getdate(),'',@RowId,0,0,0,0,@msgType,@ImageURL,IIF(@ImageURL IS NULL,'N','Y')
  444. FROM CustomerGroupDetail WHERE GroupId=@CustomerGroupIds
  445. END
  446. END
  447. END
  448. END
  449. ELSE IF @Flag = 'IN-BROADCAST'
  450. BEGIN
  451. IF @customerType = 'nativeCountry'
  452. BEGIN
  453. INSERT INTO BroadCastNotification (
  454. BroadcastTypeId
  455. ,CustomerGroupIds
  456. ,Title
  457. ,Body
  458. ,ImageURL
  459. ,IsSent
  460. ,CreatedBy
  461. ,CreatedDate
  462. ,ScheduleDate
  463. ,IsActive
  464. ,customerId
  465. ,notificationType
  466. ,messageType
  467. ,entryType
  468. )
  469. SELECT '11429'
  470. ,'0'
  471. ,'IME London Notification'
  472. ,@Body
  473. ,@ImageURL
  474. ,0
  475. ,@User
  476. ,GETDATE()
  477. ,@ScheduleDate
  478. ,1
  479. ,@CustomerId
  480. ,'OPEN_ACTIVITY_DASHBOARD'
  481. ,@msgType
  482. ,cast(@nativeCountry AS VARCHAR)
  483. SET @RowId = @@IDENTITY
  484. SELECT DISTINCT deviceId
  485. ,cm.customerid
  486. ,isInserted = 0
  487. INTO #tempCustomer1
  488. FROM CUSTOMERMASTER(NOLOCK) cm
  489. INNER JOIN mobile_userRegistration(NOLOCK) MU ON mu.customerId = cm.customerId
  490. WHERE CASE @nativeCountry
  491. WHEN 'ALL'
  492. THEN 1
  493. ELSE CAST(cm.country AS VARCHAR)
  494. END = CASE @nativeCountry
  495. WHEN 'ALL'
  496. THEN 1
  497. ELSE @nativeCountry
  498. END
  499. AND isnull(isactive, 'N') = 'Y'
  500. AND mu.deviceId IS NOT NULL
  501. AND cm.mobileApprovedDate IS NOT NULL
  502. --and email in( 'Kewal@imelondon.uk.co','stha@yopmail.com')
  503. WHILE EXISTS (
  504. SELECT TOP 1 1
  505. FROM #tempCustomer1
  506. WHERE isInserted = 0
  507. )
  508. BEGIN
  509. PRINT 'a'
  510. SELECT @customerIdForPush = customerId
  511. ,@deviceId = deviceId
  512. FROM #tempCustomer1(NOLOCK)
  513. WHERE isInserted = 0
  514. INSERT INTO pushNotificationHistroy (
  515. customerId
  516. ,body
  517. ,title
  518. ,createDate
  519. ,imageURL
  520. ,sentId
  521. ,Type
  522. ,isReservation
  523. ,isRead
  524. ,isSend
  525. ,category
  526. ,url
  527. ,isClickable
  528. )
  529. SELECT @customerIdForPush
  530. ,@Body
  531. ,'IME London Notification'
  532. ,getdate()
  533. ,''
  534. ,@RowId
  535. ,0
  536. ,0
  537. ,0
  538. ,0
  539. ,@msgType
  540. ,@ImageURL
  541. ,IIF(@ImageURL IS NULL, 'N', 'Y')
  542. UPDATE #tempCustomer1
  543. SET isInserted = 1
  544. WHERE customerId = @customerIdForPush
  545. END
  546. SELECT 0
  547. ,'Success'
  548. ,@RowId
  549. END
  550. ELSE IF @customerType = 'ALL'
  551. BEGIN
  552. INSERT INTO BroadCastNotification(BroadcastTypeId, CustomerGroupIds, Title, Body, ImageURL, IsSent, CreatedBy
  553. , CreatedDate, ScheduleDate, IsActive, customerId, notificationType, messageType, entryType)
  554. SELECT '11429', '0', 'IME London Notification', @Body, @ImageURL, 0, @User
  555. , GETDATE(), @ScheduleDate, 1 , '1000', 'OPEN_ACTIVITY_DASHBOARD', @msgType , 'Non-Group'
  556. SET @RowId = @@IDENTITY
  557. INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category,url, isClickable)
  558. select '1000', @Body,'IME London Notification',getdate(),'',@RowId,0,0,0,0,@msgType,@ImageURL,IIF(@ImageURL IS NULL,'N','Y')
  559. SELECT 0, 'Success', @RowId
  560. END
  561. ELSE IF @customerType = 'postcode'
  562. BEGIN
  563. INSERT INTO BroadCastNotification (
  564. BroadcastTypeId
  565. ,CustomerGroupIds
  566. ,Title
  567. ,Body
  568. ,ImageURL
  569. ,IsSent
  570. ,CreatedBy
  571. ,CreatedDate
  572. ,ScheduleDate
  573. ,IsActive
  574. ,customerId
  575. ,notificationType
  576. ,messageType
  577. ,entryType
  578. )
  579. SELECT '11429'
  580. ,'0'
  581. ,'IME London Notification'
  582. ,@Body
  583. ,@ImageURL
  584. ,0
  585. ,@User
  586. ,GETDATE()
  587. ,@ScheduleDate
  588. ,1
  589. ,@CustomerId
  590. ,'OPEN_ACTIVITY_DASHBOARD'
  591. ,@msgType
  592. ,cast(@nativeCountry AS VARCHAR)
  593. SET @RowId = @@IDENTITY
  594. SELECT DISTINCT deviceId
  595. ,cm.customerid
  596. ,isInserted = 0
  597. INTO #tempCust
  598. FROM CUSTOMERMASTER(NOLOCK) cm
  599. INNER JOIN mobile_userRegistration(NOLOCK) MU ON mu.customerId = cm.customerId
  600. WHERE LEFT(cm.zipCode, 3) = LEFT(@postCode, 3)
  601. AND isnull(isactive, 'N') = 'Y'
  602. AND mu.deviceId IS NOT NULL
  603. AND cm.mobileApprovedDate IS NOT NULL
  604. --and email in( 'Kewal@imelondon.uk.co','stha@yopmail.com')
  605. WHILE EXISTS (
  606. SELECT TOP 1 1
  607. FROM #tempCust
  608. WHERE isInserted = 0
  609. )
  610. BEGIN
  611. PRINT 'a'
  612. SELECT @customerIdForPush = customerId
  613. ,@deviceId = deviceId
  614. FROM #tempCust(NOLOCK)
  615. WHERE isInserted = 0
  616. INSERT INTO pushNotificationHistroy (
  617. customerId
  618. ,body
  619. ,title
  620. ,createDate
  621. ,imageURL
  622. ,sentId
  623. ,Type
  624. ,isReservation
  625. ,isRead
  626. ,isSend
  627. ,category
  628. ,url
  629. ,isClickable
  630. )
  631. SELECT @customerIdForPush
  632. ,@Body
  633. ,'IME London Notification'
  634. ,getdate()
  635. ,''
  636. ,@RowId
  637. ,0
  638. ,0
  639. ,0
  640. ,0
  641. ,@msgType
  642. ,@ImageURL
  643. ,IIF(@ImageURL IS NULL, 'N', 'Y')
  644. UPDATE #tempCust
  645. SET isInserted = 1
  646. WHERE customerId = @customerIdForPush
  647. END
  648. SELECT 0
  649. ,'Success'
  650. ,@RowId
  651. END
  652. ELSE
  653. BEGIN
  654. INSERT INTO BroadCastNotification(BroadcastTypeId, CustomerGroupIds, Title, Body, ImageURL, IsSent, CreatedBy
  655. , CreatedDate, ScheduleDate, IsActive, customerId, notificationType, messageType, entryType)
  656. SELECT '11429', '0', 'IME London Notification', @Body, @ImageURL, 0, @User
  657. , GETDATE(), @ScheduleDate, 1 , @CustomerId, 'OPEN_ACTIVITY_DASHBOARD', @msgType , 'Non-Group'
  658. SET @RowId = @@IDENTITY
  659. INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category,url, isClickable)
  660. select @customerid, @Body,'IME London Notification',getdate(),'',@RowId,0,0,0,0,@msgType,@ImageURL,IIF(@ImageURL IS NULL,'N','Y')
  661. SELECT 0, 'Success', @RowId
  662. END
  663. END
  664. --select * from BroadCastNotification order by rowid desc
  665. ELSE IF @Flag = 'UN-BROADCAST'
  666. BEGIN
  667. UPDATE BroadCastNotification
  668. SET Body = @Body
  669. , ModifiedBy = @User, ModifiedDate = GETDATE()
  670. , messageType = @msgType
  671. WHERE RowId = @RowId
  672. SELECT 0, 'Success', NULL
  673. END
  674. ELSE IF @Flag = 'SN-BROADCAST'
  675. BEGIN
  676. IF @SortBy IS NULL
  677. SET @SortBy = 'CreatedDate'
  678. IF @SortOrder IS NULL
  679. SET @SortOrder = 'DESC'
  680. SET @table = '(
  681. SELECT BN.RowId
  682. ,fullName = ISNULL(CM.fullName,c.countryname)
  683. ,IsSent = CASE WHEN IsSent = 0 THEN ''No'' WHEN IsSent = 1 THEN ''Yes'' ELSE ''Failed'' END
  684. ,BN.CreatedDate as CreatedDate
  685. ,mobileNumber = cm.mobile
  686. ,message = BN.body
  687. ,email = cm.email
  688. ,title = bn.title
  689. ,BN.BroadcastTypeId
  690. ,BN.createdby
  691. FROM BroadCastNotification BN (NOLOCK)
  692. INNER JOIN dbo.StaticDataValue SV (NOLOCK) ON BN.BroadcastTypeId = SV.ValueId
  693. LEFT JOIN dbo.CustomerMaster CM (NOLOCK) ON cm.customerId = ISNULL(BN.customerId,'''')
  694. LEFT JOIN Countrymaster c (nolock) ON BN.entryType = CAST(c.countryid as varchar)
  695. WHERE 1 = 1 AND BN.isActive = 1 AND bn.entryType IS NOT NULL
  696. )x'
  697. --print @table
  698. -- SET @SqlFilter = ''
  699. -- IF @BroadCastTypeId IS NOT NULL
  700. -- SET @SqlFilter += ' AND X.BroadcastTypeId = ''' + CAST(@BroadcastTypeId AS VARCHAR) + ''''
  701. -- IF @Title IS NOT NULL
  702. -- SET @SqlFilter += ' AND X.Title LIKE ''' + @Title + '%'''
  703. SET @SelectFieldList ='RowId, IsSent, CreatedDate, message, email,fullName,mobileNumber,title,BroadcastTypeId,createdby'
  704. EXEC dbo.proc_paging
  705. @table
  706. ,@SqlFilter
  707. ,@SelectFieldList
  708. ,@ExtraFieldList
  709. ,@sortBy
  710. ,@sortOrder
  711. ,@pageSize
  712. ,@pageNumber
  713. END
  714. END