USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[PROC_REFERALSETUP] Script Date: 4/3/2024 10:34:05 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROC [dbo].[PROC_REFERALSETUP] @FLAG VARCHAR(20) ,@user VARCHAR(50) = NULL ,@pageSize VARCHAR(50) = NULL ,@pageNumber VARCHAR(50) = NULL ,@sortBy VARCHAR(50) = NULL ,@sortOrder VARCHAR(50) = NULL ,@agentID BIGINT = NULL ,@referralName VARCHAR(50) = NULL ,@referralAddress VARCHAR(100) = NULL ,@referralMobile VARCHAR(50) = NULL ,@referralEmail VARCHAR(50) = NULL ,@isActive CHAR(1) = NULL ,@rowId INT = NULL ,@REFERRAL_CODE VARCHAR(30) = NULL ,@AGENTNAME VARCHAR(30) = NULL ,@REFERRAL_NAME VARCHAR(30) = NULL ,@REFERRAL_MOBILE VARCHAR(30) = NULL ,@REFERRAL_ADDRESS VARCHAR(30) = NULL ,@REFERRAL_EMAIL VARCHAR(50) = NULL ,@IS_ACTIVE VARCHAR(30) = NULL ,@referralTypecode VARCHAR(30) = NULL ,@referralType VARCHAR(50) = NULL ,@branchId VARCHAR(30) = NULL ,@referralCode VARCHAR(30) = NULL ,@ruleType CHAR(1) = NULL ,@cashHoldLimitAmount VARCHAR(30) = NULL ,@DEDUCT_TAX_ON_SC BIT = NULL ,@DEDUCT_P_COMM_ON_SC BIT = NULL ,@partnerId INT = Null ,@commissionPercent DECIMAL(10,4) = NULL ,@forexPercent DECIMAL(10,4) = NULL ,@flatTxnWise MONEY = NULL ,@NewCustomer MONEY = NULL ,@effectiveFrom DATETIME = NULL ,@referralId INT = NULL ,@ROW_ID INT = NULL ,@applyFxPercentOn VARCHAR(10) = NULL ,@androidDeviceIMEI VARCHAR(30) = NULL AS --- #1269 - Agent Id Missing SET NOCOUNT ON; SET XACT_ABORT ON; BEGIN DECLARE @table VARCHAR(MAX) ,@select_field_list VARCHAR(MAX) ,@extra_field_list VARCHAR(MAX) ,@sql_filter VARCHAR(MAX) ,@ACC_NUM VARCHAR(30) IF @FLAG = 'S' BEGIN --SET @sortBy = 'createdDate' --SET @sortOrder = 'desc' SET @table = '(SELECT ROW_ID ,REFERRAL_CODE ,REFERRAL_NAME ,REFERRAL_MOBILE ,REFERRAL_ADDRESS ,REFERRAL_EMAIL ,BRANCH_ID ,REFERRAL_TYPE ,REFERRAL_TYPE_CODE ,AM.agentName BranchName ,createdDate ,CASE WHEN IS_ACTIVE = ''1'' THEN ''Yes'' else ''No'' END IS_ACTIVE --,CASE WHEN RULE_TYPE = ''H'' THEN ''Hold'' else ''Block'' END RULE_TYPE ,CASE WHEN RULE_TYPE = ''1'' THEN ''Yes'' else ''No'' END RULE_TYPE ,REFERRAL_LIMIT FROM REFERRAL_AGENT_WISE RA (NOLOCK) LEFT JOIN agentMaster AM ON AM.agentId = RA.BRANCH_ID' SET @sql_filter = '' SET @table = @table + ')x' IF @referralName IS NOT NULL SET @sql_filter = @sql_filter +' And REFERRAL_NAME LIKE '''+@referralName+'%'+'''' IF @referralCode IS NOT NULL SET @sql_filter = @sql_filter +' And REFERRAL_CODE LIKE '''+@referralCode+'%'+'''' IF @branchId IS NOT NULL SET @sql_filter = @sql_filter +' And BRANCH_ID = '''+@branchId+'''' IF @referralTypecode IS NOT NULL SET @sql_filter = @sql_filter +' And REFERRAL_TYPE_CODE = '''+@referralTypecode+'''' SET @select_field_list = ' REFERRAL_CODE,REFERRAL_NAME,REFERRAL_MOBILE,REFERRAL_ADDRESS,REFERRAL_EMAIL,IS_ACTIVE,ROW_ID, BranchName,REFERRAL_TYPE,REFERRAL_TYPE_CODE,createdDate,RULE_TYPE,REFERRAL_LIMIT' EXEC dbo.proc_paging @table, @sql_filter, @select_field_list, @extra_field_list , @sortBy, @sortOrder, @pageSize, @pageNumber END IF @FLAG = 'S-STAFF-VISIT' BEGIN --SET @sortBy = 'createdDate' --SET @sortOrder = 'desc' SET @table = '(SELECT ROW_ID ,REFERRAL_CODE ,REFERRAL_NAME ,REFERRAL_MOBILE ,REFERRAL_ADDRESS ,REFERRAL_EMAIL ,BRANCH_ID ,REFERRAL_TYPE ,REFERRAL_TYPE_CODE ,AM.agentName BranchName ,createdDate ,CASE WHEN IS_ACTIVE = ''1'' THEN ''Yes'' else ''No'' END IS_ACTIVE ,CASE WHEN RULE_TYPE = ''H'' THEN ''Hold'' else ''Block'' END RULE_TYPE ,REFERRAL_LIMIT FROM REFERRAL_AGENT_WISE RA (NOLOCK) LEFT JOIN agentMaster AM ON AM.agentId = RA.BRANCH_ID WHERE STAFF_VISIT = 1 ' SET @sql_filter = '' SET @table = @table + ')x' IF @referralName IS NOT NULL SET @sql_filter = @sql_filter +' And REFERRAL_NAME LIKE '''+@referralName+'%'+'''' IF @referralCode IS NOT NULL SET @sql_filter = @sql_filter +' And REFERRAL_CODE LIKE '''+@referralCode+'%'+'''' IF @branchId IS NOT NULL SET @sql_filter = @sql_filter +' And BRANCH_ID = '''+@branchId+'''' IF @referralTypecode IS NOT NULL SET @sql_filter = @sql_filter +' And REFERRAL_TYPE_CODE = '''+@referralTypecode+'''' SET @select_field_list = ' REFERRAL_CODE,REFERRAL_NAME,REFERRAL_MOBILE,REFERRAL_ADDRESS,REFERRAL_EMAIL,IS_ACTIVE,ROW_ID, BranchName,REFERRAL_TYPE,REFERRAL_TYPE_CODE,createdDate,RULE_TYPE,REFERRAL_LIMIT' EXEC dbo.proc_paging @table, @sql_filter, @select_field_list, @extra_field_list , @sortBy, @sortOrder, @pageSize, @pageNumber END ELSE IF @FLAG = 'i' BEGIN IF EXISTS ( SELECT 1 FROM REFERRAL_AGENT_WISE WHERE REFERRAL_NAME = @referralName AND REFERRAL_MOBILE = @referralMobile ) BEGIN EXEC proc_errorHandler 1 ,'Referral with same name and mobile No. already exists' ,NULL RETURN END DECLARE @LATEST_ID INT INSERT INTO REFERRAL_AGENT_WISE ( AGENT_ID ,REFERRAL_CODE ,REFERRAL_NAME ,REFERRAL_ADDRESS ,REFERRAL_MOBILE ,REFERRAL_EMAIL ,IS_ACTIVE ,CREATED_BY ,CREATED_DATE ,BRANCH_ID ,REFERRAL_TYPE_CODE ,REFERRAL_TYPE ,RULE_TYPE ,REFERRAL_LIMIT ,STAFF_VISIT ) VALUES ( 0 ,@referralCode ,@referralName ,@referralAddress ,@referralMobile ,@referralEmail ,@isActive ,@user ,GETDATE() ,@branchId ,@referralTypecode ,@referralType ,@ruleType ,@cashHoldLimitAmount ,0 ) SET @LATEST_ID = @@IDENTITY --SELECT @REFERRAL_CODE = 'JME' + RIGHT('0000000000' + CAST(@LATEST_ID AS VARCHAR), 4) --UPDATE REFERRAL_AGENT_WISE --SET REFERRAL_CODE = @REFERRAL_CODE --WHERE ROW_ID = @LATEST_ID SELECT '0' ErrorCode ,'Referral has been added successfully.' Msg ,@LATEST_ID id; DECLARE @ACC_NUM_COMM VARCHAR(30) ----INSERT INTO AGENT_BRANCH_RUNNING_BALANCE --INSERT INTO AGENT_BRANCH_RUNNING_BALANCE --VALUES ( -- @LATEST_ID -- ,'R' -- ,@referralName -- ,0 -- ,0 -- ,0 -- ,0 -- ) --SELECT @ACC_NUM = MAX(CAST(ACCT_NUM AS BIGINT)) + 1 --FROM FastMoneyPro_Account.dbo.ac_master --WHERE GL_CODE = 0 -- AND ACCT_RPT_CODE = 'RA' --SELECT @ACC_NUM_COMM = MAX(CAST(ACCT_NUM AS BIGINT)) + 1 --FROM FastMoneyPro_Account.dbo.ac_master --WHERE GL_CODE = 0 -- AND ACCT_RPT_CODE = 'RAC' ------## AUTO CREATE LEDGER FOR REFERRAL (COMM AND PRINCIPLE ACC) --INSERT INTO FastMoneyPro_Account.dbo.ac_master ( -- acct_num -- ,acct_name -- ,gl_code -- ,agent_id -- ,acct_ownership -- ,dr_bal_lim -- ,acct_rpt_code -- ,acct_opn_date -- ,clr_bal_amt -- ,system_reserved_amt -- ,lien_amt -- ,utilised_amt -- ,available_amt -- ,created_date -- ,created_by -- ,company_id -- ,ac_currency -- ) --SELECT @ACC_NUM -- ,@referralCode -- ,'0' -- ,@LATEST_ID -- ,'o' -- ,0 -- ,'RA' -- ,getdate() -- ,0 -- ,0 -- ,0 -- ,0 -- ,0 -- ,getdate() -- ,@user -- ,1 -- ,'GBP' --UNION ALL --SELECT @ACC_NUM_COMM -- ,ISNULL(@referralName, @referralCode) + '- Comm Payable Account' -- ,'0' -- ,@LATEST_ID -- ,'o' -- ,0 -- ,'RAC' -- ,getdate() -- ,0 -- ,0 -- ,0 -- ,0 -- ,0 -- ,getdate() -- ,@user -- ,1 -- ,'GBP' --RETURN ----##AUTO CREATE AGENT LOGIN DETAILS INSERT INTO REFERRAL_APPLICATION_USER ( referalCode ,pwd ,isLocked ,lockedDate ,IsActive ,IpAddress ,IsDeleted ,DeletedDate ,DeletedBy ,LastPwdChangedDate ,isforceChangePwd ,pwdChangeDays ,pwdChangeWarningDays ,lastLoginDate ,wrongPwdCount ,androidDeviceIMEI ) SELECT @referralCode ,DBO.FNAENCRYPTSTRING('London@12345') ,0 ,NULL ,1 ,NULL ,0 ,NULL ,NULL ,NULL ,1 ,30 ,30 ,NULL ,0 ,@androidDeviceIMEI END ELSE IF @FLAG = 'create-user' BEGIN DECLARE @maxUserId varchar(10),@maxRowId INT,@newUserId varchar(10),@newUserIdNo varchar(10) select @maxRowId = max(rowId) from REFERRAL_APPLICATION_USER select @maxUserId = userId from REFERRAL_APPLICATION_USER where rowId = @maxRowId IF @maxUserId IS NULL BEGIN SELECT @maxUserId = substring('STF00000',4,7) set @maxUserId = @maxUserId + 1 SELECT @newUserIdNo = RIGHT('0000' + @maxUserId,5) select @newUserId = 'STF' + CAST(@newUserIdNo AS VARCHAR) END ELSE BEGIN SELECT @maxUserId = substring(@maxUserId,4,7) set @maxUserId = @maxUserId + 1 SELECT @newUserIdNo = RIGHT('0000' + @maxUserId,5) select @newUserId = 'STF' + CAST(@newUserIdNo AS VARCHAR) END IF EXISTS(SELECT * FROM REFERRAL_APPLICATION_USER (NOLOCK) WHERE referalCode = @REFERRAL_CODE) BEGIN UPDATE REFERRAL_APPLICATION_USER SET androidDeviceIMEI = @androidDeviceIMEI WHERE referalCode = @REFERRAL_CODE SELECT '0' ErrorCode ,'Referral has been updated successfully.' Msg ,NULL ID RETURN END INSERT INTO REFERRAL_APPLICATION_USER(referalCode,pwd,isLocked,lockedDate,IsActive,IpAddress,IsDeleted,DeletedDate,DeletedBy,LastPwdChangedDate ,isforceChangePwd,pwdChangeDays,pwdChangeWarningDays,lastLoginDate,wrongPwdCount,androidDeviceIMEI,userId) SELECT @REFERRAL_CODE, DBO.FNAENCRYPTSTRING('japan@12345'),0,null,1,null,0,null,null,null,1,30,30,null,0, @androidDeviceIMEI,@newUserId SELECT '0' ErrorCode ,'Referral has been updated successfully.' Msg ,NULL ID END ELSE IF @FLAG = 'agentNames' BEGIN select agentId,AgentName from agentmaster where actasbranch= 'N' and parentid='393877' END ELSE IF @FLAG = 'branchNameForFilter' BEGIN SELECT null value, 'Select' [text] UNION ALL select agentId as value,AgentName as text from agentMaster WHERE agentType = 2903 AND parentId= 393877 AND actAsBranch = 'Y' END ELSE IF @FLAG = 'getData' BEGIN SELECT AGENT_ID,REFERRAL_NAME,REFERRAL_ADDRESS,REFERRAL_EMAIL,IS_ACTIVE,REFERRAL_MOBILE,REFERRAL_TYPE_CODE,REFERRAL_TYPE,BRANCH_ID,RULE_TYPE,REFERRAL_LIMIT,DEDUCT_TAX_ON_SC, REFERRAL_CODE FROM REFERRAL_AGENT_WISE (NOLOCK) WHERE ROW_ID = @rowId END ELSE IF @FLAG = 'getData-referral' BEGIN SELECT AGENT_ID,REFERRAL_NAME,REFERRAL_ADDRESS,REFERRAL_EMAIL,IS_ACTIVE ,REFERRAL_MOBILE,REFERRAL_TYPE_CODE,REFERRAL_TYPE,BRANCH_ID, AM.AGENTNAME ,RULE_TYPE,REFERRAL_LIMIT,DEDUCT_TAX_ON_SC, REFERRAL_CODE, RA.androidDeviceIMEI FROM REFERRAL_AGENT_WISE R(NOLOCK) INNER JOIN AGENTMASTER AM(NOLOCK) ON AM.AGENTID = R.BRANCH_ID LEFT JOIN REFERRAL_APPLICATION_USER RA(NOLOCK) ON RA.referalCode = R.REFERRAL_CODE WHERE ROW_ID = @rowId END ELSE IF @FLAG = 'u' BEGIN DECLARE @AGENT_ID INT SELECT @AGENT_ID = AGENT_ID FROM REFERRAL_AGENT_WISE (NOLOCK) WHERE ROW_ID = @rowId UPDATE REFERRAL_AGENT_WISE SET AGENT_ID = @AGENT_ID ,REFERRAL_NAME = @referralName ,REFERRAL_ADDRESS = @referralAddress ,REFERRAL_MOBILE = @referralMobile ,REFERRAL_EMAIL = @referralEmail ,IS_ACTIVE = @isActive ,BRANCH_ID = @branchId ,REFERRAL_TYPE = @referralType ,REFERRAL_TYPE_CODE = @referralTypecode ,RULE_TYPE = @ruleType ,REFERRAL_LIMIT = @cashHoldLimitAmount where ROW_ID = @rowId SELECT '0' ErrorCode ,'Referral has been updated successfully.' Msg , @agentID id; END ELSE IF @FLAG = 'delete' BEGIN DELETE FROM REFERRAL_AGENT_WISE WHERE ROW_ID = @rowId SELECT '0' ErrorCode ,'Referral has been deleted successfully.' Msg , null id; END ELSE IF @FLAG = 'branchList' BEGIN select * FROM agentMaster WHERE agentType = 2903 AND parentId= 393877 AND actAsBranch = 'N' END ELSE IF @FLAG = 'referalType' BEGIN SELECT null value, 'Select' [text] UNION ALL SELECT 'RB' VALUE,'JME Referral Branches' [text] UNION ALL SELECT 'RC' VALUE,'Referral''S with no comm' [text] UNION ALL SELECT 'RR' VALUE,'Regular Referral Agent''s' [text] END ELSE IF @FLAG = 'S-commList' BEGIN --SET @sortBy = 'createdDate' --SET @sortOrder = 'desc' SET @table = '( SELECT ISRW.REFERRAL_ID ,AM.AGENTID ,REFERRAL_NAME = RA.REFERRAL_NAME + '' - '' + RA.REFERRAL_CODE ,AM.agentName ,COMM_PCNT ,FX_PCNT ,FLAT_TXN_WISE ,NEW_CUSTOMER ,EFFECTIVE_FROM ,CASE WHEN ISRW.IS_ACTIVE = ''1'' THEN ''Yes'' else ''No'' END IS_ACTIVE ,ISRW.ROW_ID ,DEDUCT_P_COMM_ON_SC = CASE WHEN ISRW.DEDUCT_P_COMM_ON_SC = ''1'' THEN ''Yes'' else ''No'' END ,DEDUCT_TAX_ON_SC = CASE WHEN ISRW.DEDUCT_TAX_ON_SC = ''1'' THEN ''Yes'' else ''No'' END ,RA.REFERRAL_CODE ,APPLY_FX_PERCENT_ON = CASE WHEN APPLY_FX_PERCENT_ON = ''tAmt'' THEN ''Transfer Amt'' ELSE ''FX Gain/Loss'' END FROM dbo.INCENTIVE_SETUP_REFERRAL_WISE ISRW INNER JOIN dbo.agentMaster AM ON AM.agentId = ISRW.PARTNER_ID LEFT JOIN REFERRAL_AGENT_WISE RA ON RA.ROW_ID = ISRW.REFERRAL_ID WHERE RA.REFERRAL_CODE = '''+@REFERRAL_CODE+'''' SET @sql_filter = '' SET @table = @table + ')x' SET @select_field_list = 'REFERRAL_ID,APPLY_FX_PERCENT_ON,ROW_ID,AGENTID,REFERRAL_NAME,agentName,FX_PCNT,COMM_PCNT,FLAT_TXN_WISE,NEW_CUSTOMER,EFFECTIVE_FROM,IS_ACTIVE,DEDUCT_TAX_ON_SC,DEDUCT_P_COMM_ON_SC,REFERRAL_CODE' EXEC dbo.proc_paging @table, @sql_filter, @select_field_list, @extra_field_list , @sortBy, @sortOrder, @pageSize, @pageNumber END ELSE IF @FLAG = 'getCommissionRule' BEGIN SELECT PARTNER_ID,COMM_PCNT,FX_PCNT,FLAT_TXN_WISE,NEW_CUSTOMER,EFFECTIVE_FROM,IS_ACTIVE, DEDUCT_P_COMM_ON_SC, DEDUCT_TAX_ON_SC,APPLY_FX_PERCENT_ON FROM INCENTIVE_SETUP_REFERRAL_WISE WHERE ROW_ID = @ROW_ID END ELSE IF @FLAG = 'saveCommission' BEGIN IF(@referralId IS NULL) SELECT @referralId = ROW_ID, @partnerId = BRANCH_ID FROM dbo.REFERRAL_AGENT_WISE WHERE REFERRAL_CODE = @referralCode --IF EXISTS(SELECT 1 FROM dbo.INCENTIVE_SETUP_REFERRAL_WISE WHERE REFERRAL_ID = @referralId AND PARTNER_ID = @partnerId) --BEGIN -- SELECT '0' ErrorCode, 'Commission Already Defined for this partner and referral' Msg,@referralId id -- RETURN --END INSERT INTO dbo.INCENTIVE_SETUP_REFERRAL_WISE ( REFERRAL_ID , PARTNER_ID , AGENT_ID , COMM_PCNT , FX_PCNT , FLAT_TXN_WISE , NEW_CUSTOMER , EFFECTIVE_FROM , IS_ACTIVE , CREATED_BY , CREATED_DATE, DEDUCT_TAX_ON_SC, DEDUCT_P_COMM_ON_SC, APPLY_FX_PERCENT_ON ) VALUES ( @referralId , -- REFERRAL_ID - int @partnerId , -- PARTNER_ID - int 0 , -- AGENT_ID - int @commissionPercent , -- COMM_PCNT - decimal(5, 2) @forexPercent , -- FX_PCNT - decimal(5, 2) @flatTxnWise , -- FLAT_TXN_WISE - money @NewCustomer , -- NEW_CUSTOMER - money @effectiveFrom , -- EFFECTIVE_FROM - datetime @isActive , -- IS_ACTIVE - bit @user , -- CREATED_BY - varchar(80) GETDATE(), -- CREATED_DATE - datetime @DEDUCT_TAX_ON_SC, @DEDUCT_P_COMM_ON_SC, @applyFxPercentOn ) SELECT '0' ErrorCode, 'Record inserted successfully' Msg,@referralId id END ELSE IF @FLAG = 'updateCommission' BEGIN IF EXISTS(SELECT 1 FROM dbo.INCENTIVE_SETUP_REFERRAL_WISE WHERE ROW_ID = @ROW_ID) BEGIN UPDATE dbo.INCENTIVE_SETUP_REFERRAL_WISE SET COMM_PCNT = @commissionPercent ,FX_PCNT = @forexPercent ,FLAT_TXN_WISE = @flatTxnWise ,NEW_CUSTOMER = @NewCustomer ,EFFECTIVE_FROM = @effectiveFrom ,IS_ACTIVE = @isActive ,MODIFIED_BY = @USER ,MODIFIED_DATE = GETDATE() ,DEDUCT_TAX_ON_SC = @DEDUCT_TAX_ON_SC ,DEDUCT_P_COMM_ON_SC = @DEDUCT_P_COMM_ON_SC ,APPLY_FX_PERCENT_ON = @applyFxPercentOn WHERE ROW_ID = @ROW_ID SELECT '0' ErrorCode, 'Record updated successfully' Msg,@referralId id return END SELECT '1' ErrorCode, 'No record found!' Msg,@referralId id END END --select * from INCENTIVE_SETUP_REFERRAL_WISE