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.
364 lines
20 KiB
364 lines
20 KiB
-- ======================================================================
|
|
-- Description: "Coupon Issue" in Core System
|
|
-- ======================================================================
|
|
CREATE OR ALTER PROCEDURE [dbo].[PROC_COUPONISSUE]
|
|
(
|
|
@flag VARCHAR(50),
|
|
|
|
@serviceType CHAR = NULL,
|
|
@searchBy VARCHAR(50) = NULL,
|
|
@searchValue VARCHAR(MAX) = NULL,
|
|
@couponFilter CHAR = NULL,
|
|
|
|
@email VARCHAR(150) = NULL,
|
|
@coupon INT = NULL,
|
|
@idNumber VARCHAR(50) = NULL,
|
|
@anotherIDNumber VARCHAR(50) = NULL,
|
|
@rowId INT = NULL,
|
|
@agentID VARCHAR(150) = NULL,
|
|
|
|
@sortBy VARCHAR(100) = NULL,
|
|
@sortOrder VARCHAR(5) = NULL,
|
|
@pageSize INT = NULL,
|
|
@pageNumber INT = NULL,
|
|
@user VARCHAR(50) = NULL
|
|
)
|
|
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
BEGIN TRY
|
|
|
|
DECLARE
|
|
@table VARCHAR(MAX) = NULL
|
|
,@sqlFilter VARCHAR(MAX) = ''
|
|
,@selectFieldList VARCHAR(MAX) = NULL
|
|
,@extraFieldList VARCHAR(MAX) = NULL
|
|
,@noPaging CHAR(1) = NULL
|
|
,@today DATETIME = getDate()
|
|
,@searchValues VARCHAR(MAX) = NULL
|
|
|
|
IF @flag = 'loadGrid'
|
|
BEGIN
|
|
SET @table =
|
|
N'(SELECT cm.customerId as ''Customer_ID'',
|
|
cm.email as ''User_ID'',
|
|
cm.fullName as ''Name'',
|
|
com.countryName as ''Nationality'',
|
|
cm.walletAccountNo as ''Virtual_Acc_No'',
|
|
cm.mobile as ''Mobile_No'',
|
|
sd1.detailTitle as ''ID_Type'',
|
|
cm.idNumber as ''ID_No'',
|
|
sd2.detailTitle as ''Another_ID_Type'',
|
|
cm.anotherIDNumber as ''Another_ID_No'',
|
|
ci.createdBy as ''Created_By'',
|
|
ci.createdDate as ''Created_Date'',
|
|
cm.isLoan as ''IsLoan'',
|
|
cs.couponName as ''Coupon_Name'',
|
|
ci.rowId as ''Row_ID'',
|
|
(CASE WHEN ci.isActive is NULL THEN ''N'' ELSE ci.isActive END) as ''Active_Coupon'',
|
|
cm.createdDate
|
|
FROM dbo.customerMaster cm(nolock)
|
|
LEFT JOIN dbo.staticDataValue sd1(nolock) ON sd1.valueId = cm.idType
|
|
LEFT JOIN dbo.staticDataValue sd2(nolock) ON sd2.valueId = cm.anotherIDType
|
|
INNER JOIN dbo.countryMaster com(nolock) ON com.countryId = cm.nativeCountry
|
|
LEFT JOIN dbo.couponIssue ci(nolock) ON ci.customerId = cm.customerId
|
|
LEFT JOIN dbo.couponSetup cs(nolock) ON cs.rowId = ci.couponId
|
|
WHERE cm.approvedDate is not null AND cm.isActive = ''Y''
|
|
AND ((cm.isBlackListed is null) or (cm.isBlackListed = ''N''))
|
|
AND ((cm.isDeleted is null) or (cm.isDeleted = ''N''))
|
|
AND ((cm.islocked is null) or (cm.islocked = ''N''))';
|
|
|
|
IF @serviceType = 'X'
|
|
SET @table += ' AND cm.isLoan IS NULL)x';
|
|
ELSE
|
|
SET @table += ' AND cm.isLoan = ''' + @serviceType + ''')x';
|
|
|
|
IF @searchBy = 'email'
|
|
SET @sqlFilter += ' AND x.User_ID like ''%' + @searchValue + '%''';
|
|
ELSE IF @searchBy = 'fullName'
|
|
SET @sqlFilter += ' AND x.Name like ''%' + @searchValue + '%''';
|
|
ELSE IF @searchBy = 'walletAccountNo'
|
|
SET @sqlFilter += ' AND x.Virtual_Acc_No = ''' + @searchValue + '''';
|
|
ELSE IF @searchBy = 'idNumber'
|
|
BEGIN
|
|
CREATE TABLE #searchValues (search VARCHAR(MAX))
|
|
INSERT INTO #searchValues EXEC PROC_SPLITSTRING @string=@searchValue, @seperator=',';
|
|
SELECT @searchValues = CONCAT(@searchValues + ',', '') + '''' + search + '''' FROM #searchValues
|
|
SET @sqlFilter += ' AND (x.ID_No in (' + @searchValues + ')' + ' OR x.Another_ID_No in (' + @searchValues + '))';
|
|
END
|
|
ELSE IF @searchBy = 'mobile'
|
|
SET @sqlFilter += ' AND REPLACE(x.Mobile_No, ''-'', '''') =''' + Replace(@searchValue, '-', '') + '''';
|
|
|
|
IF @couponFilter IS NOT NULL
|
|
BEGIN
|
|
IF @couponFilter = 'Y'
|
|
SET @sqlFilter += ' AND x.Active_Coupon=''Y''';
|
|
ELSE IF @couponFilter = 'N'
|
|
SET @sqlFilter += ' AND x.Active_Coupon=''N''';
|
|
END
|
|
|
|
SET @selectFieldList = 'Customer_ID, User_ID, Name, Nationality, Virtual_Acc_No, Mobile_No, ID_Type, ID_No, Another_ID_Type, Another_ID_No, IsLoan, Row_ID, Coupon_Name, Active_Coupon, Created_By, Created_Date'
|
|
|
|
IF @sortBy IS NULL
|
|
SET @sortBy = 'createdDate'
|
|
|
|
IF @sortOrder IS NULL
|
|
SET @sortOrder = 'DESC'
|
|
|
|
EXEC dbo.Proc_paging
|
|
@table,
|
|
@sqlFilter,
|
|
@selectFieldList,
|
|
@extraFieldList,
|
|
@sortBy,
|
|
@sortOrder,
|
|
@pageSize,
|
|
@pageNumber,
|
|
@noPaging
|
|
RETURN
|
|
END
|
|
|
|
IF @flag = 'setServiceType'
|
|
BEGIN
|
|
SELECT 'X' as [VALUE], 'GME Remit Only' as [TEXT]
|
|
UNION ALL
|
|
SELECT 'Y', 'GME Loan Active'
|
|
UNION ALL
|
|
SELECT 'N', 'GME Loan Inactive'
|
|
END
|
|
|
|
IF @flag = 'setSearchBy'
|
|
BEGIN
|
|
SELECT 'email' as [VALUE], 'User ID' as [TEXT]
|
|
UNION ALL
|
|
SELECT 'fullName', 'Name'
|
|
UNION ALL
|
|
SELECT 'walletAccountNo', 'Virtual Acc No'
|
|
UNION ALL
|
|
SELECT 'idNumber', 'ID No'
|
|
UNION ALL
|
|
SELECT 'mobile', 'Mobile No'
|
|
END
|
|
|
|
IF @flag = 'setControlType'
|
|
BEGIN
|
|
SELECT 'Y'as [VALUE], 'Activate GME Loan' as [TEXT]
|
|
UNION ALL
|
|
SELECT 'N', 'Deactivate GME Loan'
|
|
UNION ALL
|
|
SELECT 'X', 'Eliminate GME Loan'
|
|
END
|
|
|
|
IF @flag = 'setCouponList'
|
|
BEGIN
|
|
SELECT rowid as [VALUE], couponName as [TEXT]
|
|
FROM CouponSetup
|
|
END
|
|
|
|
IF @flag = 'setCouponFilter'
|
|
BEGIN
|
|
SELECT 'Y'as [VALUE], 'Active User' as [TEXT]
|
|
UNION ALL
|
|
SELECT 'N', 'Inactive User'
|
|
END
|
|
|
|
IF @flag = 'enableLoan'
|
|
BEGIN
|
|
IF @idNumber IS NOT NULL
|
|
BEGIN
|
|
SELECT @searchValue = customerId FROM customerMaster
|
|
WHERE idNumber = @idNumber AND approvedDate is not null
|
|
AND isActive = 'Y'
|
|
AND ((isBlackListed is null) or (isBlackListed = 'N'))
|
|
AND ((isDeleted is null) or (isDeleted = 'N'))
|
|
AND ((islocked is null) or (islocked = 'N'))
|
|
|
|
IF (@searchValue IS NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Invalid ID Number.', NULL
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE customerMaster SET isLoan='Y' WHERE customerid=@searchValue AND idNumber=@idNumber
|
|
END
|
|
EXEC proc_errorHandler 0, 'Success.', NULL
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT @searchValue = customerId FROM customerMaster
|
|
WHERE anotherIDNumber = @anotherIDNumber AND approvedDate is not null
|
|
AND isActive = 'Y'
|
|
AND ((isBlackListed is null) or (isBlackListed = 'N'))
|
|
AND ((isDeleted is null) or (isDeleted = 'N'))
|
|
AND ((islocked is null) or (islocked = 'N'))
|
|
|
|
IF (@searchValue IS NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Invalid Another ID Number.', NULL
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE customerMaster SET isLoan='Y' WHERE customerid=@searchValue AND anotherIDNumber=@anotherIDNumber
|
|
END
|
|
EXEC proc_errorHandler 0, 'Success.', NULL
|
|
END
|
|
END
|
|
|
|
IF @flag = 'disableLoan'
|
|
BEGIN
|
|
IF @idNumber IS NOT NULL
|
|
BEGIN
|
|
SELECT @searchValue = customerId FROM customerMaster
|
|
WHERE idNumber = @idNumber AND approvedDate is not null
|
|
AND isActive = 'Y'
|
|
AND ((isBlackListed is null) or (isBlackListed = 'N'))
|
|
AND ((isDeleted is null) or (isDeleted = 'N'))
|
|
AND ((islocked is null) or (islocked = 'N'))
|
|
|
|
IF (@searchValue IS NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Invalid ID Number.', NULL
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE customerMaster SET isLoan='N' WHERE customerid=@searchValue AND idNumber=@idNumber
|
|
END
|
|
EXEC proc_errorHandler 0, 'Success.', NULL
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT @searchValue = customerId FROM customerMaster
|
|
WHERE anotherIDNumber = @anotherIDNumber AND approvedDate is not null
|
|
AND isActive = 'Y'
|
|
AND ((isBlackListed is null) or (isBlackListed = 'N'))
|
|
AND ((isDeleted is null) or (isDeleted = 'N'))
|
|
AND ((islocked is null) or (islocked = 'N'))
|
|
|
|
IF (@searchValue IS NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Invalid Another ID Number.', NULL
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE customerMaster SET isLoan='N' WHERE customerid=@searchValue AND anotherIDNumber=@anotherIDNumber
|
|
END
|
|
EXEC proc_errorHandler 0, 'Success.', NULL
|
|
END
|
|
END
|
|
|
|
IF @flag = 'deleteLoan'
|
|
BEGIN
|
|
IF @idNumber IS NOT NULL
|
|
BEGIN
|
|
SELECT @searchValue = customerId FROM customerMaster
|
|
WHERE idNumber = @idNumber AND approvedDate is not null
|
|
AND isActive = 'Y'
|
|
AND ((isBlackListed is null) or (isBlackListed = 'N'))
|
|
AND ((isDeleted is null) or (isDeleted = 'N'))
|
|
AND ((islocked is null) or (islocked = 'N'))
|
|
|
|
IF (@searchValue IS NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Invalid ID Number.', NULL
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE customerMaster SET isLoan=NULL WHERE customerid=@searchValue AND idNumber=@idNumber
|
|
END
|
|
EXEC proc_errorHandler 0, 'Success.', NULL
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT @searchValue = customerId FROM customerMaster
|
|
WHERE anotherIDNumber = @anotherIDNumber AND approvedDate is not null
|
|
AND isActive = 'Y'
|
|
AND ((isBlackListed is null) or (isBlackListed = 'N'))
|
|
AND ((isDeleted is null) or (isDeleted = 'N'))
|
|
AND ((islocked is null) or (islocked = 'N'))
|
|
|
|
IF (@searchValue IS NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Invalid Another ID Number.', NULL
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE customerMaster SET isLoan=NULL WHERE customerid=@searchValue AND anotherIDNumber=@anotherIDNumber
|
|
END
|
|
EXEC proc_errorHandler 0, 'Success.', NULL
|
|
END
|
|
END
|
|
|
|
IF @flag = 'issueCoupon'
|
|
BEGIN
|
|
SELECT @searchValue = COUNT(rowId) FROM CouponSetup
|
|
WHERE rowId = @coupon AND isActive = 'Y'
|
|
AND @today BETWEEN startDate AND endDate
|
|
IF (@searchValue IS NULL) OR (@searchValue = 0)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Invalid Coupon.', NULL
|
|
RETURN
|
|
END
|
|
|
|
SELECT @searchValue = customerId FROM customerMaster WHERE email = @email
|
|
IF (@searchValue IS NULL) OR (@email IS NULL)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Invalid Email.', NULL
|
|
RETURN
|
|
END
|
|
|
|
INSERT CouponIssue
|
|
SELECT @searchValue,
|
|
rowId,
|
|
NULL,
|
|
startDate,
|
|
endDate,
|
|
NULL,
|
|
NULL,
|
|
@today,
|
|
@agentID,
|
|
'Y',
|
|
0
|
|
FROM CouponSetup
|
|
WHERE rowid = @coupon AND isActive = 'Y' AND @today BETWEEN startDate and endDate
|
|
|
|
EXEC proc_errorHandler 0, 'Success.', NULL
|
|
END
|
|
|
|
IF @flag = 'withdrawCoupon'
|
|
BEGIN
|
|
|
|
IF @coupon = ''
|
|
BEGIN
|
|
UPDATE CouponIssue
|
|
SET isActive = 'N', createdBy = @agentID, createdDate = @today
|
|
WHERE rowId = @rowId
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE CouponIssue
|
|
SET isActive = 'N', createdBy = @agentID, createdDate = @today
|
|
WHERE rowId = @rowId AND couponId = @coupon
|
|
END
|
|
|
|
EXEC proc_errorHandler 0, 'Success.', NULL
|
|
END
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0
|
|
ROLLBACK TRANSACTION
|
|
DECLARE @errorMessage VARCHAR(max)
|
|
SET @errorMessage = Error_message()
|
|
EXEC Proc_errorhandler 1, @errorMessage, NULL
|
|
END CATCH
|
|
END
|