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.

106 lines
6.8 KiB

  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_CheckPromoValidity] Script Date: 3/22/2024 3:11:02 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROCEDURE [dbo].[proc_CheckPromoValidity]
  9. @flag VARCHAR(50),
  10. @countryId INT,
  11. @pmode VARCHAR(50) = NULL,
  12. @promoCode VARCHAR(100) = NULL
  13. AS
  14. BEGIN
  15. SET NOCOUNT ON;
  16. DECLARE @PromotionalCode VARCHAR(50),
  17. @PromotionalMsg VARCHAR(255),
  18. @PromotionType VARCHAR(50),
  19. @PromotionValue MONEY,
  20. @startDate DATETIME,
  21. @endDate DATETIME,
  22. @isValid VARCHAR(20),
  23. @minAmt MONEY,
  24. @rowId INT
  25. IF @flag = 'chk-availability'
  26. BEGIN
  27. IF EXISTS (SELECT 1
  28. FROM dbo.TBL_PROMOTIONAL_CAMAPAIGN
  29. WHERE COUNTRY_ID = @countryId AND (@pmode IS NULL OR ISNULL(PAYMENT_METHOD, @pmode) = @pmode)
  30. AND (CONVERT(DATE, GETDATE()) BETWEEN START_DT AND END_DT))
  31. BEGIN
  32. SELECT
  33. @PromotionalCode = PROMOTIONAL_CODE,
  34. @PromotionalMsg = PROMOTIONAL_MSG,
  35. @PromotionType = PROMOTION_TYPE,
  36. @PromotionValue = PROMOTION_VALUE
  37. FROM dbo.TBL_PROMOTIONAL_CAMAPAIGN
  38. WHERE COUNTRY_ID = @countryId AND (@pmode IS NULL OR ISNULL(PAYMENT_METHOD, @pmode) = @pmode)
  39. SELECT
  40. PROMOTIONAL_CODE = @PromotionalCode,
  41. PROMOTIONAL_MSG = @PromotionalMsg,
  42. PROMOTION_TYPE = @PromotionType,
  43. PROMOTION_VALUE = @PromotionValue
  44. RETURN
  45. END
  46. ELSE
  47. BEGIN
  48. EXEC proc_errorHandler 1, 'No valid promo code for the day.', @countryId
  49. RETURN
  50. END
  51. END
  52. ELSE IF @flag = 'chk-validity'
  53. BEGIN
  54. IF NOT EXISTS(SELECT 1
  55. FROM dbo.TBL_PROMOTIONAL_CAMAPAIGN
  56. WHERE COUNTRY_ID = @countryId AND PROMOTIONAL_CODE = @promoCode AND (@pmode IS NULL OR ISNULL(PAYMENT_METHOD, @pmode) = @pmode)
  57. AND (CONVERT(DATE, GETDATE()) BETWEEN START_DT AND END_DT))
  58. BEGIN
  59. --EXEC proc_errorHandler 1, 'Please enter valid promo code.', @promoCode
  60. SELECT
  61. IS_VALID = 'INVALID',
  62. ROW_ID = '',
  63. PROMOTIONAL_CODE = 0,
  64. PROMOTIONAL_MSG = 'Please enter valid promo code.',
  65. -- PROMOTION_TYPE = @PromotionType,
  66. PROMOTION_VALUE = 0,
  67. MIN_SENDING_AMT = 0,
  68. START_DT = NULL,
  69. END_DT = NULL
  70. RETURN
  71. END
  72. ELSE
  73. BEGIN
  74. SELECT
  75. --@isValid = 'VALID',
  76. @rowId = ROW_ID,
  77. @PromotionalCode = PROMOTIONAL_CODE,
  78. @PromotionalMsg = PROMOTIONAL_MSG,
  79. --@PromotionType = PROMOTION_TYPE,
  80. @PromotionValue = PROMOTION_VALUE,
  81. @minAmt = MIN_SENDING_AMT,
  82. @startDate = CONVERT(DATETIME,START_DT),
  83. @endDate = CONVERT(DATETIME,END_DT)
  84. FROM dbo.TBL_PROMOTIONAL_CAMAPAIGN
  85. WHERE COUNTRY_ID = @countryId AND PROMOTIONAL_CODE = @promoCode AND (@pmode IS NULL OR ISNULL(PAYMENT_METHOD, @pmode) = @pmode)
  86. SELECT
  87. IS_VALID = 'VALID',
  88. ROW_ID = @rowId,
  89. PROMOTIONAL_CODE = @PromotionalCode,
  90. PROMOTIONAL_MSG = @PromotionalMsg,
  91. -- PROMOTION_TYPE = @PromotionType,
  92. PROMOTION_VALUE = @PromotionValue,
  93. MIN_SENDING_AMT = @minAmt,
  94. START_DT = @startDate,
  95. END_DT = @endDate
  96. RETURN
  97. END
  98. END
  99. END