-- ====================================================================== -- 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