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.

1229 lines
53 KiB

  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[ProcMobileConfig] Script Date: 3/7/2024 9:54:09 AM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROC [dbo].[ProcMobileConfig] (
  9. @Flag VARCHAR(30)
  10. ,@User VARCHAR(80) = NULL
  11. ,@GroupName VARCHAR(100) = NULL
  12. ,@GroupDetail VARCHAR(150) = NULL
  13. ,@BroadcastTypeId INT = NULL
  14. ,@CustomerGroupIds VARCHAR(200) = NULL
  15. ,@Title NVARCHAR(100) = NULL
  16. ,@Body NVARCHAR(MAX) = NULL
  17. ,@ImageURL VARCHAR(150) = NULL
  18. ,@ScheduleDate VARCHAR(30) = NULL
  19. ,@SortBy VARCHAR(50) = NULL
  20. ,@SortOrder VARCHAR(5) = NULL
  21. ,@PageSize INT = NULL
  22. ,@PageNumber INT = NULL
  23. ,@RowId INT = NULL
  24. ,@Xml XML = NULL
  25. ,@CustomerId BIGINT = NULL
  26. ,@isRepush VARCHAR(1) = NULL
  27. ,@notificationType VARCHAR(50) = NULL
  28. ,@msgType VARCHAR(25) = NULL
  29. ,@customerType VARCHAR(25) = NULL
  30. ,@nativeCountry VARCHAR(3) = NULL
  31. ,@postCode VARCHAR(100) = NULL
  32. )
  33. AS
  34. ;
  35. ------------------------------------------------
  36. -- #101 - Mobile Changes
  37. -- Delete customer from group
  38. -- #1048 - BROADCAST FOR SINGLE CUSTOMER , changes in @flag = 'I-BROADCAST' , 'U-BROADCAST' , 'RE-PUSH'
  39. -- #9490 - puch -notification for individual customers
  40. -- #20484- broadcast by country , @flag = groupForCountry\
  41. -- #26000 - add post code in push notification
  42. ------------------------------------------------
  43. SET NOCOUNT ON;
  44. SET XACT_ABORT ON;
  45. BEGIN
  46. DECLARE @SelectFieldList VARCHAR(MAX)
  47. ,@ExtraFieldList VARCHAR(MAX)
  48. ,@Table VARCHAR(MAX)
  49. ,@SqlFilter VARCHAR(MAX)
  50. DECLARE @customerIdForPush VARCHAR(50)
  51. ,@deviceId VARCHAR(MAX)
  52. ,@entrytype VARCHAR(20)
  53. IF @BroadCastTypeId = '0'
  54. SET @BroadCastTypeId = NULL
  55. IF @Flag = 'I'
  56. BEGIN
  57. SELECT 'A'
  58. END
  59. ELSE IF @Flag = 'I-GROUP'
  60. BEGIN
  61. INSERT INTO CustomerGroup (
  62. GroupName
  63. ,GroupDetail
  64. ,BroadcastTypeId
  65. ,CreatedBy
  66. ,CreatedDate
  67. ,IsActive
  68. )
  69. SELECT @GroupName
  70. ,@GroupDetail
  71. ,@BroadcastTypeId
  72. ,@User
  73. ,GETDATE()
  74. ,1
  75. SELECT 0
  76. ,'Success'
  77. ,NULL
  78. END
  79. ELSE IF @Flag = 'S-GROUP-SINGLE'
  80. BEGIN
  81. SELECT *
  82. FROM CustomerGroup(NOLOCK)
  83. WHERE RowId = @RowId
  84. END
  85. ELSE IF @Flag = 'U-GROUP'
  86. BEGIN
  87. UPDATE CustomerGroup
  88. SET GroupName = @GroupName
  89. ,GroupDetail = @GroupDetail
  90. ,BroadcastTypeId = @BroadcastTypeId
  91. ,ModifiedBy = @User
  92. ,ModifiedDate = GETDATE()
  93. WHERE RowId = @RowId
  94. SELECT 0
  95. ,'Success'
  96. ,NULL
  97. END
  98. ELSE IF @Flag = 'DDL-GROUP'
  99. BEGIN
  100. SELECT GroupName
  101. ,RowId
  102. FROM CustomerGroup(NOLOCK)
  103. WHERE IsActive = 1
  104. END
  105. ELSE IF @Flag = 'DDL-STATIC'
  106. BEGIN
  107. SELECT '0' [value]
  108. ,'Select' [text]
  109. UNION ALL
  110. SELECT valueId [value]
  111. ,detailTitle [text]
  112. FROM staticDataValue(NOLOCK)
  113. WHERE ISNULL(IsActive, 'Y') = 'Y'
  114. AND ISNULL(IS_DELETE, 'N') = 'N'
  115. AND typeId = 8105
  116. END
  117. ELSE IF @Flag = 'DELETE'
  118. BEGIN
  119. SELECT @BroadcastTypeId = BroadcastTypeId
  120. FROM BroadCastNotification(NOLOCK)
  121. WHERE RowId = @RowId
  122. UPDATE BroadCastNotification
  123. SET IsActive = CASE
  124. WHEN IsActive = 0
  125. THEN 1
  126. ELSE 0
  127. END
  128. ,ModifiedBy = @User
  129. ,ModifiedDate = GETDATE()
  130. WHERE RowId = @RowId
  131. INSERT INTO BroadCastNotificationLog (
  132. BroadCastId
  133. ,CreatedBy
  134. ,CreatedDate
  135. ,ResponseMessage
  136. )
  137. VALUES (
  138. @RowId
  139. ,@user
  140. ,GETDATE()
  141. ,@BroadcastTypeId
  142. )
  143. SELECT 0
  144. ,'Success'
  145. ,NULL
  146. END
  147. ELSE IF @Flag = 'DELETE-GROUP'
  148. BEGIN
  149. UPDATE CustomerGroup
  150. SET IsActive = CASE
  151. WHEN IsActive = 0
  152. THEN 1
  153. ELSE 0
  154. END
  155. ,ModifiedBy = @User
  156. ,ModifiedDate = GETDATE()
  157. WHERE RowId = @RowId
  158. SELECT 0
  159. ,'Success'
  160. ,NULL
  161. END
  162. ELSE IF @Flag = 'I-BROADCAST'
  163. BEGIN
  164. IF @CustomerGroupIds IS NULL
  165. BEGIN
  166. SET @CustomerGroupIds = '0'
  167. END
  168. INSERT INTO BroadCastNotification (
  169. BroadcastTypeId
  170. ,CustomerGroupIds
  171. ,Title
  172. ,Body
  173. ,ImageURL
  174. ,IsSent
  175. ,CreatedBy
  176. ,CreatedDate
  177. ,ScheduleDate
  178. ,IsActive
  179. ,customerId
  180. ,notificationType
  181. ,messageType
  182. )
  183. SELECT @BroadcastTypeId
  184. ,@CustomerGroupIds
  185. ,@Title
  186. ,@Body
  187. ,@ImageURL
  188. ,0
  189. ,@User
  190. ,GETDATE()
  191. ,@ScheduleDate
  192. ,1
  193. ,@CustomerId
  194. ,@notificationType
  195. ,@msgType
  196. SET @RowId = @@IDENTITY
  197. IF @CustomerId IS NOT NULL
  198. BEGIN
  199. INSERT INTO pushNotificationHistroy (
  200. customerId
  201. ,body
  202. ,title
  203. ,createDate
  204. ,imageURL
  205. ,sentId
  206. ,Type
  207. ,isReservation
  208. ,isRead
  209. ,isSend
  210. ,category
  211. ,url
  212. ,isClickable
  213. )
  214. SELECT @customerid
  215. ,@Body
  216. ,@Title
  217. ,getdate()
  218. ,''
  219. ,@RowId
  220. ,0
  221. ,0
  222. ,0
  223. ,0
  224. ,@msgType
  225. ,@ImageURL
  226. ,IIF(@ImageURL IS NULL, 'N', 'Y')
  227. END
  228. ELSE
  229. BEGIN
  230. INSERT INTO pushNotificationHistroy (
  231. customerId
  232. ,body
  233. ,title
  234. ,createDate
  235. ,imageURL
  236. ,sentId
  237. ,Type
  238. ,isReservation
  239. ,isRead
  240. ,isSend
  241. ,category
  242. ,url
  243. ,isClickable
  244. )
  245. SELECT DISTINCT customerid
  246. ,@Body
  247. ,@Title
  248. ,getdate()
  249. ,''
  250. ,@RowId
  251. ,0
  252. ,0
  253. ,0
  254. ,0
  255. ,@msgType
  256. ,@ImageURL
  257. ,IIF(@ImageURL IS NULL, 'N', 'Y')
  258. FROM CustomerGroupDetail
  259. WHERE GroupId = @CustomerGroupIds
  260. END
  261. --INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category,url, isClickable)
  262. --select ISNULL(@customerid,@CustomerGroupIds),@Body,@Title,getdate(),'',@RowId,0,0,0,0,@msgType,@ImageURL,IIF(@ImageURL IS NULL,'N','Y')
  263. SELECT 0
  264. ,'Success'
  265. ,@RowId
  266. END
  267. ELSE IF @Flag = 'U-BROADCAST'
  268. BEGIN
  269. IF @CustomerGroupIds IS NULL
  270. BEGIN
  271. SET @CustomerGroupIds = '0'
  272. END
  273. UPDATE BroadCastNotification
  274. SET BroadcastTypeId = @BroadcastTypeId
  275. ,Title = @Title
  276. ,Body = @Body
  277. ,ImageURL = @ImageURL
  278. ,ModifiedBy = @User
  279. ,ModifiedDate = GETDATE()
  280. ,notificationType = @notificationType
  281. ,messageType = @msgType
  282. WHERE RowId = @RowId
  283. SELECT 0
  284. ,'Success'
  285. ,NULL
  286. END
  287. ELSE IF @Flag = 'U-B-GROUP'
  288. BEGIN
  289. UPDATE BroadCastNotification
  290. SET CustomerGroupIds = @CustomerGroupIds
  291. ,ModifiedBy = @User
  292. ,ModifiedDate = GETDATE()
  293. WHERE RowId = @RowId
  294. SELECT 0
  295. ,'Success'
  296. ,NULL
  297. END
  298. ELSE IF @Flag = 'S-BROADCAST-SINGLE'
  299. BEGIN
  300. SELECT *
  301. FROM BroadCastNotification(NOLOCK)
  302. WHERE RowId = @RowId
  303. END
  304. ELSE IF @Flag = 'S-BROADCAST'
  305. BEGIN
  306. IF @SortBy IS NULL
  307. SET @SortBy = 'CreatedDate'
  308. IF @SortOrder IS NULL
  309. SET @SortOrder = 'DESC'
  310. SET @table = '(
  311. SELECT BN.RowId
  312. ,customer = CASE WHEN bn.customerid is not null then cm.fullName else cg.GroupName END
  313. ,BN.Title
  314. ,BN.ImageURL
  315. ,IsSent = CASE WHEN IsSent = 0 THEN ''No'' WHEN IsSent = 1 THEN ''Yes'' ELSE ''Failed'' END
  316. ,BN.CreatedDate
  317. ,BN.ScheduleDate
  318. ,BN.CreatedBy
  319. ,IsActive = CASE WHEN BN.IsActive = 0 THEN ''No'' ELSE ''Yes'' END
  320. ,BroadCastType = SV.DetailTitle
  321. ,BN.CustomerGroupIds
  322. ,BN.BroadcastTypeId
  323. FROM BroadCastNotification BN (NOLOCK)
  324. INNER JOIN dbo.StaticDataValue SV (NOLOCK) ON BN.BroadcastTypeId = SV.ValueId
  325. LEFT JOIN dbo.CustomerGroup CG(NOLOCK) ON cg.RowId = BN.customerGroupIds
  326. LEFT JOIN dbo.CustomerMaster CM (NOLOCK) ON cm.customerId = ISNULL(BN.customerId,'''')
  327. WHERE 1 = 1 AND BN.isActive = 1 AND ISNULL(BN.entryType,'''') = ''''
  328. )x'
  329. SET @SqlFilter = ''
  330. IF @BroadCastTypeId IS NOT NULL
  331. SET @SqlFilter += ' AND X.BroadcastTypeId = ''' + CAST(@BroadcastTypeId AS VARCHAR) + ''''
  332. IF @Title IS NOT NULL
  333. SET @SqlFilter += ' AND X.Title LIKE ''' + @Title + '%'''
  334. SET @SelectFieldList = 'RowId, Title, ImageURL, IsSent, CreatedBy, CreatedDate, ScheduleDate, IsActive
  335. ,BroadCastType, CustomerGroupIds, customer'
  336. EXEC dbo.proc_paging @table
  337. ,@SqlFilter
  338. ,@SelectFieldList
  339. ,@ExtraFieldList
  340. ,@sortBy
  341. ,@sortOrder
  342. ,@pageSize
  343. ,@pageNumber
  344. END
  345. ELSE IF @Flag = 'S-GROUP'
  346. BEGIN
  347. IF @SortBy IS NULL
  348. SET @SortBy = 'CreatedDate'
  349. IF @SortOrder IS NULL
  350. SET @SortOrder = 'DESC'
  351. SET @table = '(
  352. SELECT CG.RowId
  353. ,CG.GroupName
  354. ,CG.GroupDetail
  355. ,CG.CreatedDate
  356. ,CG.CreatedBy
  357. ,IsActive = CASE WHEN CG.IsActive = 0 THEN ''No'' ELSE ''Yes'' END
  358. ,BroadCastType = SV.DetailTitle
  359. ,BroadcastTypeId
  360. FROM CustomerGroup CG (NOLOCK)
  361. INNER JOIN dbo.StaticDataValue SV (NOLOCK) ON CG.BroadcastTypeId = SV.ValueId
  362. WHERE 1 = 1
  363. )x'
  364. SET @SqlFilter = ''
  365. IF @BroadCastTypeId IS NOT NULL
  366. SET @SqlFilter += ' AND X.BroadcastTypeId = ''' + CAST(@BroadcastTypeId AS VARCHAR) + ''''
  367. IF @GroupName IS NOT NULL
  368. SET @SqlFilter += ' AND X.GroupName LIKE ''' + @GroupName + '%'''
  369. SET @SelectFieldList = 'RowId, GroupName, GroupDetail, CreatedDate, CreatedBy, IsActive, BroadCastType'
  370. EXEC dbo.proc_paging @table
  371. ,@SqlFilter
  372. ,@SelectFieldList
  373. ,@ExtraFieldList
  374. ,@sortBy
  375. ,@sortOrder
  376. ,@pageSize
  377. ,@pageNumber
  378. END
  379. ELSE IF @Flag = 'GROUP-LIST'
  380. BEGIN
  381. IF @RowId IS NULL
  382. BEGIN
  383. SELECT CG.GroupName
  384. ,CG.RowId
  385. ,IsSelected = 'N'
  386. FROM CustomerGroup CG(NOLOCK)
  387. WHERE CG.IsActive = 1
  388. AND CG.BroadcastTypeId = @BroadcastTypeId
  389. RETURN;
  390. END
  391. IF @BroadcastTypeId IS NULL
  392. SELECT @BroadcastTypeId = BroadcastTypeId
  393. FROM BroadCastNotification(NOLOCK)
  394. WHERE RowId = @RowId
  395. SELECT B.RowId
  396. ,SPL.value customerGroupId
  397. INTO #GROUP_MAPPED
  398. FROM BroadCastNotification B
  399. CROSS APPLY DBO.Split(',', B.CustomerGroupIds) SPL
  400. WHERE B.RowId = @RowId
  401. SELECT CG.GroupName
  402. ,CG.RowId
  403. ,IsSelected = CASE
  404. WHEN G.RowId IS NULL
  405. THEN 'N'
  406. ELSE 'Y'
  407. END
  408. FROM CustomerGroup CG(NOLOCK)
  409. LEFT JOIN #GROUP_MAPPED G ON CG.RowId = G.customerGroupId
  410. WHERE CG.IsActive = 1
  411. AND CG.BroadcastTypeId = @BroadcastTypeId
  412. END
  413. ELSE IF @Flag = 'UPLOAD-CUSTOMER'
  414. BEGIN
  415. IF @RowId IS NULL
  416. BEGIN
  417. SELECT 1
  418. ,'Invalid Customer group type!'
  419. ,NULL
  420. RETURN
  421. END
  422. SELECT membershipId = p.value('@membershipid', 'VARCHAR(100)')
  423. INTO #TEMP_CUSTOMER
  424. FROM @xml.nodes('/root/row') AS tmp(p);
  425. DELETE TMP
  426. FROM #TEMP_CUSTOMER TMP
  427. INNER JOIN customerMaster CM(NOLOCK) ON CM.membershipId = TMP.membershipId
  428. INNER JOIN CustomerGroupDetail CD(NOLOCK) ON CD.CustomerId = CM.customerId
  429. WHERE CD.GroupId = @RowId
  430. INSERT INTO CustomerGroupDetail (
  431. GroupId
  432. ,CustomerId
  433. ,CreatedBy
  434. ,CreatedDate
  435. )
  436. SELECT @RowId
  437. ,CM.customerId
  438. ,@User
  439. ,GETDATE()
  440. FROM #TEMP_CUSTOMER T
  441. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.membershipId = T.membershipId
  442. SELECT 0
  443. ,'Success'
  444. ,NULL
  445. END
  446. ELSE IF @Flag = 'UPLOAD-CUSTOMER-SINGLE'
  447. BEGIN
  448. IF @RowId IS NULL
  449. BEGIN
  450. SELECT 1
  451. ,'Invalid Customer group type!'
  452. ,NULL
  453. RETURN
  454. END
  455. IF NOT EXISTS (
  456. SELECT *
  457. FROM CUSTOMERMASTER(NOLOCK)
  458. WHERE CUSTOMERID = @CustomerId
  459. )
  460. BEGIN
  461. SELECT 1
  462. ,'Invalid customer!'
  463. ,NULL
  464. RETURN
  465. END
  466. IF EXISTS (
  467. SELECT *
  468. FROM CustomerGroupDetail(NOLOCK)
  469. WHERE CustomerId = @CustomerId
  470. AND GroupId = @RowId
  471. )
  472. BEGIN
  473. SELECT 1
  474. ,'Customer Already added!'
  475. ,NULL
  476. RETURN
  477. END
  478. INSERT INTO CustomerGroupDetail (
  479. GroupId
  480. ,CustomerId
  481. ,CreatedBy
  482. ,CreatedDate
  483. )
  484. SELECT @RowId
  485. ,@CustomerId
  486. ,@User
  487. ,GETDATE()
  488. SELECT 0
  489. ,'Success'
  490. ,NULL
  491. END
  492. ELSE IF @Flag = 'CUSTOMER-LIST'
  493. BEGIN
  494. SELECT FullName = CM.FullName + ' | ' + CM.membershipId
  495. ,RowId = RowId
  496. FROM CustomerGroupDetail CD(NOLOCK)
  497. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.customerId = CD.CustomerId
  498. WHERE GroupId = @RowId
  499. END
  500. ELSE IF @Flag = 'BROADCAST-DETAIL'
  501. BEGIN
  502. SELECT RowId
  503. ,Title = SV.detailTitle + ': ' + BC.Title
  504. ,BC.Body
  505. FROM BroadCastNotification BC(NOLOCK)
  506. INNER JOIN dbo.StaticDataValue SV(NOLOCK) ON BC.BroadcastTypeId = SV.ValueId
  507. WHERE RowId = @RowId
  508. END
  509. ELSE IF @Flag = 'DELETE-CUSTOMER-FROM-GROUP' --added on feb 26
  510. BEGIN
  511. DELETE
  512. FROM CustomerGroupDetail
  513. WHERE RowId = @rowid
  514. IF @@ROWCOUNT = 0
  515. PRINT 'Customer ID not found'
  516. ELSE
  517. SELECT 0 ErrorCode
  518. ,'Customer Deleted Successfully' Msg
  519. ,@rowid RowId
  520. RETURN
  521. END
  522. ELSE IF @Flag = 'RE-PUSH'
  523. BEGIN
  524. SELECT @BroadcastTypeId = BroadcastTypeId
  525. ,@ImageURL = ImageURL
  526. ,@Body = Body
  527. ,@Title = Title
  528. ,@CustomerGroupIds = CustomerGroupIds
  529. ,@msgType = messageType
  530. ,@entrytype = entryType
  531. FROM BroadCastNotification(NOLOCK)
  532. WHERE RowId = @RowId
  533. IF @BroadcastTypeId IS NULL
  534. BEGIN
  535. SELECT 1
  536. ,'Invalid data!'
  537. ,NULL
  538. RETURN
  539. END
  540. SELECT @CustomerId = CUSTOMERID
  541. FROM BroadCastNotification BC(NOLOCK)
  542. WHERE RowId = @RowId
  543. IF @CustomerId IS NOT NULL
  544. BEGIN
  545. SELECT RowId
  546. ,BC.Title
  547. ,BC.Body
  548. ,IsBulkNotification = 'false'
  549. ,SV.detailTitle AS BroadcastTypeId
  550. ,BC.ImageURL AS NavigateURL
  551. ,BC.notificationType AS ClickActivity --added on 25th feb
  552. ,BC.messageType AS MessageType
  553. FROM BroadCastNotification BC(NOLOCK)
  554. INNER JOIN dbo.StaticDataValue SV(NOLOCK) ON BC.BroadcastTypeId = SV.ValueId
  555. WHERE RowId = @RowId
  556. IF @BroadcastTypeId = 11430 --EMAIL
  557. BEGIN
  558. SELECT SendTo = CM.userName
  559. ,DeviceType = ISNULL(USR.DeviceType, 'Android')
  560. FROM CUSTOMERMASTER CM(NOLOCK)
  561. LEFT JOIN mobile_userRegistration USR(NOLOCK) ON USR.customerId = CM.customerId
  562. WHERE cm.customerId = @CustomerId
  563. END
  564. ELSE IF @BroadcastTypeId = 11429 --PUSH
  565. BEGIN
  566. SELECT SendTo = USR.deviceId
  567. ,DeviceType = ISNULL(USR.DeviceType, 'Android')
  568. FROM CUSTOMERMASTER CM(NOLOCK)
  569. LEFT JOIN mobile_userRegistration USR(NOLOCK) ON USR.customerId = CM.customerId
  570. WHERE cm.customerId = @CustomerId
  571. END
  572. END
  573. ELSE
  574. BEGIN
  575. PRINT @BroadcastTypeId;
  576. SELECT RowId
  577. ,BC.Title
  578. ,BC.Body
  579. ,IsBulkNotification = 'true'
  580. ,SV.detailTitle AS BroadcastTypeId
  581. ,BC.ImageURL AS NavigateURL
  582. ,BC.notificationType AS ClickActivity --added on 25th feb
  583. ,BC.messageType AS MessageType
  584. FROM BroadCastNotification BC(NOLOCK)
  585. INNER JOIN dbo.StaticDataValue SV(NOLOCK) ON BC.BroadcastTypeId = SV.ValueId
  586. WHERE RowId = @RowId
  587. SELECT BN.RowId
  588. ,SPL.value customerGroupId
  589. INTO #TmpCustomerGroupIds
  590. FROM BroadCastNotification BN(NOLOCK)
  591. CROSS APPLY DBO.Split(',', BN.CustomerGroupIds) SPL
  592. WHERE BN.RowId = @RowId
  593. IF @BroadcastTypeId = 11430 --EMAIL
  594. BEGIN
  595. SELECT SendTo = CM.userName
  596. ,DeviceType = ISNULL(USR.DeviceType, 'Android')
  597. FROM #TmpCustomerGroupIds TMP
  598. INNER JOIN CustomerGroupDetail CGD(NOLOCK) ON CGD.GroupId = TMP.customerGroupId
  599. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.CUSTOMERID = CGD.CustomerId
  600. LEFT JOIN mobile_userRegistration USR(NOLOCK) ON USR.customerId = CM.customerId
  601. END
  602. ELSE IF @BroadcastTypeId = 11429 --PUSH
  603. BEGIN
  604. IF EXISTS (
  605. SELECT TOP 1 1
  606. FROM countryMaster(NOLOCK)
  607. WHERE CAST(countryId AS VARCHAR) = @entrytype
  608. )
  609. BEGIN
  610. SELECT customerId
  611. INTO #tempCustomer
  612. FROM pushNotificationHistroy
  613. WHERE sentId = @RowId
  614. SELECT SendTo = USR.deviceId
  615. ,DeviceType = ISNULL(USR.DeviceType, 'Android')
  616. INTO #Finaltbl1
  617. FROM #tempCustomer TMP
  618. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.CUSTOMERID = TMP.CustomerId
  619. LEFT JOIN mobile_userRegistration USR(NOLOCK) ON USR.customerId = CM.customerId
  620. AND usr.deviceId IS NOT NULL
  621. SELECT *
  622. FROM (
  623. SELECT *
  624. ,RANK() OVER (
  625. PARTITION BY SendTo ORDER BY DeviceType
  626. ) rank
  627. FROM #Finaltbl1
  628. ) T
  629. WHERE rank = 1
  630. END
  631. ELSE IF @entrytype = 'ALL_CNTRY'
  632. BEGIN
  633. SELECT customerId
  634. INTO #tempCustomer4
  635. FROM pushNotificationHistroy
  636. WHERE sentId = @RowId
  637. SELECT SendTo = USR.deviceId
  638. ,DeviceType = ISNULL(USR.DeviceType, 'Android')
  639. INTO #Finaltbl4
  640. FROM #tempCustomer4 TMP
  641. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.CUSTOMERID = TMP.CustomerId
  642. LEFT JOIN mobile_userRegistration USR(NOLOCK) ON USR.customerId = CM.customerId
  643. AND usr.deviceId IS NOT NULL
  644. SELECT *
  645. FROM (
  646. SELECT *
  647. ,RANK() OVER (
  648. PARTITION BY SendTo ORDER BY DeviceType
  649. ) rank
  650. FROM #Finaltbl4
  651. ) T
  652. WHERE rank = 1
  653. END
  654. ELSE
  655. BEGIN
  656. SELECT SendTo = USR.deviceId
  657. ,DeviceType = ISNULL(USR.DeviceType, 'Android')
  658. INTO #Finaltbl
  659. FROM #TmpCustomerGroupIds TMP
  660. INNER JOIN CustomerGroupDetail CGD(NOLOCK) ON CGD.GroupId = TMP.customerGroupId
  661. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.CUSTOMERID = CGD.CustomerId
  662. LEFT JOIN mobile_userRegistration USR(NOLOCK) ON USR.customerId = CM.customerId
  663. AND usr.deviceId IS NOT NULL
  664. SELECT *
  665. FROM (
  666. SELECT *
  667. ,RANK() OVER (
  668. PARTITION BY SendTo ORDER BY DeviceType
  669. ) rank
  670. FROM #Finaltbl
  671. ) T
  672. WHERE rank = 1
  673. END
  674. END
  675. END
  676. IF @isRepush = 'Y'
  677. BEGIN
  678. PRINT @BroadcastTypeId;
  679. INSERT INTO BroadCastNotificationLog (
  680. BroadCastId
  681. ,CreatedBy
  682. ,CreatedDate
  683. ,ResponseMessage
  684. )
  685. VALUES (
  686. @RowId
  687. ,@user
  688. ,GETDATE()
  689. ,@BroadcastTypeId
  690. )
  691. IF @BroadcastTypeId = 11429 -- add notify
  692. BEGIN
  693. IF @CustomerId IS NOT NULL
  694. BEGIN
  695. INSERT INTO pushNotificationHistroy (
  696. customerId
  697. ,body
  698. ,title
  699. ,createDate
  700. ,imageURL
  701. ,sentId
  702. ,Type
  703. ,isReservation
  704. ,isRead
  705. ,isSend
  706. ,category
  707. ,url
  708. ,isClickable
  709. )
  710. SELECT @customerid
  711. ,@Body
  712. ,@Title
  713. ,getdate()
  714. ,''
  715. ,@RowId
  716. ,0
  717. ,0
  718. ,0
  719. ,0
  720. ,@msgType
  721. ,@ImageURL
  722. ,IIF(@ImageURL IS NULL, 'N', 'Y')
  723. END
  724. ELSE
  725. BEGIN
  726. INSERT INTO pushNotificationHistroy (
  727. customerId
  728. ,body
  729. ,title
  730. ,createDate
  731. ,imageURL
  732. ,sentId
  733. ,Type
  734. ,isReservation
  735. ,isRead
  736. ,isSend
  737. ,category
  738. ,url
  739. ,isClickable
  740. )
  741. SELECT DISTINCT customerid
  742. ,@Body
  743. ,@Title
  744. ,getdate()
  745. ,''
  746. ,@RowId
  747. ,0
  748. ,0
  749. ,0
  750. ,0
  751. ,@msgType
  752. ,@ImageURL
  753. ,IIF(@ImageURL IS NULL, 'N', 'Y')
  754. FROM CustomerGroupDetail
  755. WHERE GroupId = @CustomerGroupIds
  756. END
  757. END
  758. END
  759. END
  760. ELSE IF @Flag = 'IN-BROADCAST'
  761. BEGIN
  762. IF @customerType IN (
  763. 'nativeCountry'
  764. ,'ALL'
  765. )
  766. BEGIN
  767. INSERT INTO BroadCastNotification (
  768. BroadcastTypeId
  769. ,CustomerGroupIds
  770. ,Title
  771. ,Body
  772. ,ImageURL
  773. ,IsSent
  774. ,CreatedBy
  775. ,CreatedDate
  776. ,ScheduleDate
  777. ,IsActive
  778. ,customerId
  779. ,notificationType
  780. ,messageType
  781. ,entryType
  782. )
  783. SELECT '11429'
  784. ,'0'
  785. ,'IME London Notification'
  786. ,@Body
  787. ,@ImageURL
  788. ,0
  789. ,@User
  790. ,GETDATE()
  791. ,@ScheduleDate
  792. ,1
  793. ,@CustomerId
  794. ,'OPEN_ACTIVITY_DASHBOARD'
  795. ,@msgType
  796. ,CASE cast(@nativeCountry AS VARCHAR)
  797. WHEN 'ALL'
  798. THEN 'ALL_CNTRY'
  799. ELSE cast(@nativeCountry AS VARCHAR)
  800. END
  801. SET @RowId = @@IDENTITY
  802. SELECT DISTINCT deviceId
  803. ,cm.customerid
  804. ,isInserted = 0
  805. INTO #tempCustomer1
  806. FROM CUSTOMERMASTER(NOLOCK) cm
  807. INNER JOIN mobile_userRegistration(NOLOCK) MU ON mu.customerId = cm.customerId
  808. WHERE CASE @nativeCountry
  809. WHEN 'ALL'
  810. THEN 1
  811. ELSE CAST(cm.country AS VARCHAR)
  812. END = CASE @nativeCountry
  813. WHEN 'ALL'
  814. THEN 1
  815. ELSE @nativeCountry
  816. END
  817. AND isnull(isactive, 'N') = 'Y'
  818. AND mu.deviceId IS NOT NULL
  819. AND cm.mobileApprovedDate IS NOT NULL
  820. --and email in( 'Kewal@imelondon.uk.co','stha@yopmail.com', 'baidar@yopmail.com')
  821. WHILE EXISTS (
  822. SELECT TOP 1 1
  823. FROM #tempCustomer1
  824. WHERE isInserted = 0
  825. )
  826. BEGIN
  827. PRINT 'a'
  828. SELECT @customerIdForPush = customerId
  829. ,@deviceId = deviceId
  830. FROM #tempCustomer1(NOLOCK)
  831. WHERE isInserted = 0
  832. INSERT INTO pushNotificationHistroy (
  833. customerId
  834. ,body
  835. ,title
  836. ,createDate
  837. ,imageURL
  838. ,sentId
  839. ,Type
  840. ,isReservation
  841. ,isRead
  842. ,isSend
  843. ,category
  844. ,url
  845. ,isClickable
  846. )
  847. SELECT @customerIdForPush
  848. ,@Body
  849. ,'IME London Notification'
  850. ,getdate()
  851. ,''
  852. ,@RowId
  853. ,0
  854. ,0
  855. ,0
  856. ,0
  857. ,@msgType
  858. ,@ImageURL
  859. ,IIF(@ImageURL IS NULL, 'N', 'Y')
  860. UPDATE #tempCustomer1
  861. SET isInserted = 1
  862. WHERE customerId = @customerIdForPush
  863. END
  864. SELECT 0
  865. ,'Success'
  866. ,@RowId
  867. END
  868. ELSE IF @customerType = 'ALL'
  869. BEGIN
  870. INSERT INTO BroadCastNotification (
  871. BroadcastTypeId
  872. ,CustomerGroupIds
  873. ,Title
  874. ,Body
  875. ,ImageURL
  876. ,IsSent
  877. ,CreatedBy
  878. ,CreatedDate
  879. ,ScheduleDate
  880. ,IsActive
  881. ,customerId
  882. ,notificationType
  883. ,messageType
  884. ,entryType
  885. )
  886. SELECT '11429'
  887. ,'0'
  888. ,'IME London Notification'
  889. ,@Body
  890. ,@ImageURL
  891. ,0
  892. ,@User
  893. ,GETDATE()
  894. ,@ScheduleDate
  895. ,1
  896. ,'1000'
  897. ,'OPEN_ACTIVITY_DASHBOARD'
  898. ,@msgType
  899. ,'Non-Group'
  900. SET @RowId = @@IDENTITY
  901. INSERT INTO pushNotificationHistroy (
  902. customerId
  903. ,body
  904. ,title
  905. ,createDate
  906. ,imageURL
  907. ,sentId
  908. ,Type
  909. ,isReservation
  910. ,isRead
  911. ,isSend
  912. ,category
  913. ,url
  914. ,isClickable
  915. )
  916. SELECT '1000'
  917. ,@Body
  918. ,'IME London Notification'
  919. ,getdate()
  920. ,''
  921. ,@RowId
  922. ,0
  923. ,0
  924. ,0
  925. ,0
  926. ,@msgType
  927. ,@ImageURL
  928. ,IIF(@ImageURL IS NULL, 'N', 'Y')
  929. SELECT 0
  930. ,'Success'
  931. ,@RowId
  932. END
  933. ELSE IF @customerType = 'postCode'
  934. BEGIN
  935. INSERT INTO BroadCastNotification (
  936. BroadcastTypeId
  937. ,CustomerGroupIds
  938. ,Title
  939. ,Body
  940. ,ImageURL
  941. ,IsSent
  942. ,CreatedBy
  943. ,CreatedDate
  944. ,ScheduleDate
  945. ,IsActive
  946. ,customerId
  947. ,notificationType
  948. ,messageType
  949. ,entryType
  950. )
  951. SELECT '11429'
  952. ,'0'
  953. ,'IME London Notification'
  954. ,@Body
  955. ,@ImageURL
  956. ,0
  957. ,@User
  958. ,GETDATE()
  959. ,@ScheduleDate
  960. ,1
  961. ,@CustomerId
  962. ,'OPEN_ACTIVITY_DASHBOARD'
  963. ,@msgType
  964. ,cast(@postCode AS VARCHAR)
  965. SET @RowId = @@IDENTITY
  966. SELECT DISTINCT deviceId
  967. ,cm.customerid
  968. ,isInserted = 0
  969. INTO #tempCust
  970. FROM CUSTOMERMASTER(NOLOCK) cm
  971. INNER JOIN mobile_userRegistration(NOLOCK) MU ON mu.customerId = cm.customerId
  972. WHERE LEFT(cm.zipCode, 3) = LEFT(@postCode, 3)
  973. AND isnull(isactive, 'N') = 'Y'
  974. AND mu.deviceId IS NOT NULL
  975. AND cm.mobileApprovedDate IS NOT NULL
  976. --and email = 'baidar@yopmail.com'
  977. WHILE EXISTS (
  978. SELECT TOP 1 1
  979. FROM #tempCust
  980. WHERE isInserted = 0
  981. )
  982. BEGIN
  983. PRINT 'a'
  984. SELECT @customerIdForPush = customerId
  985. ,@deviceId = deviceId
  986. FROM #tempCust(NOLOCK)
  987. WHERE isInserted = 0
  988. --select @customerIdForPush
  989. --select @deviceId
  990. --return
  991. INSERT INTO pushNotificationHistroy (
  992. customerId
  993. ,body
  994. ,title
  995. ,createDate
  996. ,imageURL
  997. ,sentId
  998. ,Type
  999. ,isReservation
  1000. ,isRead
  1001. ,isSend
  1002. ,category
  1003. ,url
  1004. ,isClickable
  1005. )
  1006. SELECT @customerIdForPush
  1007. ,@Body
  1008. ,'IME London Notification'
  1009. ,getdate()
  1010. ,''
  1011. ,@RowId
  1012. ,0
  1013. ,0
  1014. ,0
  1015. ,0
  1016. ,@msgType
  1017. ,@ImageURL
  1018. ,IIF(@ImageURL IS NULL, 'N', 'Y')
  1019. UPDATE #tempCust
  1020. SET isInserted = 1
  1021. WHERE customerId = @customerIdForPush
  1022. END
  1023. SELECT 0
  1024. ,'Success'
  1025. ,@RowId
  1026. END
  1027. ELSE
  1028. BEGIN
  1029. INSERT INTO BroadCastNotification (
  1030. BroadcastTypeId
  1031. ,CustomerGroupIds
  1032. ,Title
  1033. ,Body
  1034. ,ImageURL
  1035. ,IsSent
  1036. ,CreatedBy
  1037. ,CreatedDate
  1038. ,ScheduleDate
  1039. ,IsActive
  1040. ,customerId
  1041. ,notificationType
  1042. ,messageType
  1043. ,entryType
  1044. )
  1045. SELECT '11429'
  1046. ,'0'
  1047. ,'IME London Notification'
  1048. ,@Body
  1049. ,@ImageURL
  1050. ,0
  1051. ,@User
  1052. ,GETDATE()
  1053. ,@ScheduleDate
  1054. ,1
  1055. ,@CustomerId
  1056. ,'OPEN_ACTIVITY_DASHBOARD'
  1057. ,@msgType
  1058. ,'Non-Group'
  1059. SET @RowId = @@IDENTITY
  1060. INSERT INTO pushNotificationHistroy (
  1061. customerId
  1062. ,body
  1063. ,title
  1064. ,createDate
  1065. ,imageURL
  1066. ,sentId
  1067. ,Type
  1068. ,isReservation
  1069. ,isRead
  1070. ,isSend
  1071. ,category
  1072. ,url
  1073. ,isClickable
  1074. )
  1075. SELECT @customerid
  1076. ,@Body
  1077. ,'IME London Notification'
  1078. ,getdate()
  1079. ,''
  1080. ,@RowId
  1081. ,0
  1082. ,0
  1083. ,0
  1084. ,0
  1085. ,@msgType
  1086. ,@ImageURL
  1087. ,IIF(@ImageURL IS NULL, 'N', 'Y')
  1088. SELECT 0
  1089. ,'Success'
  1090. ,@RowId
  1091. END
  1092. END
  1093. --select * from BroadCastNotification order by rowid desc
  1094. ELSE IF @Flag = 'UN-BROADCAST'
  1095. BEGIN
  1096. UPDATE BroadCastNotification
  1097. SET Body = @Body
  1098. ,ModifiedBy = @User
  1099. ,ModifiedDate = GETDATE()
  1100. ,messageType = @msgType
  1101. WHERE RowId = @RowId
  1102. SELECT 0
  1103. ,'Success'
  1104. ,NULL
  1105. END
  1106. ELSE IF @Flag = 'SN-BROADCAST'
  1107. BEGIN
  1108. IF @SortBy IS NULL
  1109. SET @SortBy = 'CreatedDate'
  1110. IF @SortOrder IS NULL
  1111. SET @SortOrder = 'DESC'
  1112. SET @table = '(
  1113. SELECT BN.RowId
  1114. ,fullName = ISNULL(CM.fullName,c.countryname)
  1115. ,IsSent = CASE WHEN IsSent = 0 THEN ''No'' WHEN IsSent = 1 THEN ''Yes'' ELSE ''Failed'' END
  1116. ,BN.CreatedDate as CreatedDate
  1117. ,mobileNumber = cm.mobile
  1118. ,message = BN.body
  1119. ,email = cm.email
  1120. ,title = bn.title
  1121. ,BN.BroadcastTypeId
  1122. ,BN.createdby
  1123. FROM BroadCastNotification BN (NOLOCK)
  1124. INNER JOIN dbo.StaticDataValue SV (NOLOCK) ON BN.BroadcastTypeId = SV.ValueId
  1125. LEFT JOIN dbo.CustomerMaster CM (NOLOCK) ON cm.customerId = ISNULL(BN.customerId,'''')
  1126. LEFT JOIN Countrymaster c (nolock) ON BN.entryType = CAST(c.countryid as varchar)
  1127. WHERE 1 = 1 AND BN.isActive = 1 AND bn.entryType IS NOT NULL
  1128. )x'
  1129. --print @table
  1130. -- SET @SqlFilter = ''
  1131. -- IF @BroadCastTypeId IS NOT NULL
  1132. -- SET @SqlFilter += ' AND X.BroadcastTypeId = ''' + CAST(@BroadcastTypeId AS VARCHAR) + ''''
  1133. -- IF @Title IS NOT NULL
  1134. -- SET @SqlFilter += ' AND X.Title LIKE ''' + @Title + '%'''
  1135. SET @SelectFieldList = 'RowId, IsSent, CreatedDate, message, email,fullName,mobileNumber,title,BroadcastTypeId,createdby'
  1136. EXEC dbo.proc_paging @table
  1137. ,@SqlFilter
  1138. ,@SelectFieldList
  1139. ,@ExtraFieldList
  1140. ,@sortBy
  1141. ,@sortOrder
  1142. ,@pageSize
  1143. ,@pageNumber
  1144. END
  1145. END