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.

80 lines
2.0 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_CouponOperation] Script Date: 7/4/2019 11:35:48 AM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROC [dbo].[proc_CouponOperation]
  9. (
  10. @schemeId VARCHAR(20)=NULL,
  11. @flag VARCHAR(20)=NULL,
  12. @serviceCharge MONEY = NULL
  13. )
  14. AS
  15. BEGIN
  16. IF(@flag='SearchCoupon')
  17. BEGIN
  18. DECLARE @CurrentCount int = 0,
  19. @discountvalue MONEY = 0,
  20. @discountType VARCHAR(2) = NULL
  21. IF ISNULL(@schemeId,'') <> ''
  22. BEGIN
  23. IF EXISTS (SELECT '1'
  24. FROM CouponIssue(NOLOCK) AS CI
  25. INNER JOIN CouponSetup(NOLOCK) AS CS
  26. ON CI.couponId = CS.rowId
  27. WHERE CI.rowId = @schemeId
  28. AND CI.endDate >= GETDATE()
  29. AND CI.isActive = 'Y'
  30. AND CS.endDate >= GETDATE()
  31. AND CS.isActive = 'Y'
  32. AND CS.couponType = '1'
  33. AND (ISNULL(CS.usageLimit,0) = 0
  34. OR ISNULL(CS.usageLimit,0) > ISNULL(CI.usedCount,0))
  35. )
  36. BEGIN
  37. SELECT TOP(1)
  38. (CASE CS.discountType WHEN '1' THEN @serviceCharge * (CS.discountValue/100)
  39. WHEN '2' THEN CS.discountValue END) AS discountValue
  40. FROM CouponIssue(NOLOCK) CI
  41. INNER JOIN CouponSetup CS
  42. ON CI.couponId = CS.rowId
  43. WHERE CI.isActive = 'Y'
  44. AND CI.endDate >= GETDATE()
  45. AND CS.endDate >= GETDATE()
  46. AND CS.isActive = 'Y'
  47. AND CS.couponType = '1'
  48. AND CI.rowId = @schemeId
  49. AND (ISNULL(CS.usageLimit,0) = 0
  50. OR ISNULL(CS.usageLimit,0) > ISNULL(CI.usedCount,0))
  51. ORDER BY CI.rowId ASC
  52. END
  53. ELSE
  54. SELECT 0 AS discountValue
  55. END
  56. ELSE
  57. SELECT 0 AS discountValue
  58. END
  59. ELSE IF @flag = 'GetCouponList'
  60. BEGIN
  61. SELECT CI.rowId, CS.endDate, CS.couponName, CS.couponType, CS.discountType,
  62. CAST(CS.discountValue AS INT) AS discountValue, CI.startDate
  63. FROM CouponIssue CI (NOLOCK)
  64. INNER JOIN CouponSetup AS CS
  65. ON CI.couponId = CS.rowId
  66. WHERE CI.customerId = @customerId
  67. AND CI.endDate > GETDATE()
  68. AND CS.endDATE > GETDATE()
  69. AND CI.isActive = 'Y'
  70. AND CS.isActive = 'Y'
  71. AND CS.usageLimit > CI.usedCount
  72. RETURN
  73. END
  74. END
  75. GO