From d951871c21b60b3cae2c113444ae67646ebf68a6 Mon Sep 17 00:00:00 2001 From: shakun Date: Mon, 4 Sep 2023 16:25:46 +0545 Subject: [PATCH] added script for refer n earn --- ReferEarn/FNA_GET_RUNNING_BALANCE_POINT.sql | 13 + ReferEarn/Tables_Referral.sql | 39 + ReferEarn/proc_InsertRewardPoints.sql | 114 ++ ReferEarn/proc_SendTransaction.sql | 1605 +++++++++++++++++ ReferEarn/proc_get_exRate_master.sql | 917 ++++++++++ .../JsonRx_Proc_UserRegistration_V2.sql | Bin 20420 -> 20418 bytes StoredProc/PROC_GENERATE_MEMBERSHIP_ID.sql | Bin 6294 -> 6384 bytes StoredProc/proc_SendTransaction.sql | 1598 ++++++++++++++++ StoredProc/proc_get_exrate_master.sql | Bin 45246 -> 22130 bytes insertAC.sql | 9 + 10 files changed, 4295 insertions(+) create mode 100644 ReferEarn/FNA_GET_RUNNING_BALANCE_POINT.sql create mode 100644 ReferEarn/Tables_Referral.sql create mode 100644 ReferEarn/proc_InsertRewardPoints.sql create mode 100644 ReferEarn/proc_SendTransaction.sql create mode 100644 ReferEarn/proc_get_exRate_master.sql create mode 100644 StoredProc/proc_SendTransaction.sql create mode 100644 insertAC.sql diff --git a/ReferEarn/FNA_GET_RUNNING_BALANCE_POINT.sql b/ReferEarn/FNA_GET_RUNNING_BALANCE_POINT.sql new file mode 100644 index 0000000..19680f4 --- /dev/null +++ b/ReferEarn/FNA_GET_RUNNING_BALANCE_POINT.sql @@ -0,0 +1,13 @@ + +ALTER FUNCTION [dbo].[FNA_GET_AVAILABLE_BALANCE_POINTS](@CustomerId BIGINT) +RETURNS MONEY +AS +BEGIN + DECLARE @BALANCE MONEY + + SELECT @BALANCE = ISNULL(SUM(CASE WHEN tranType = 'CR' THEN amount ELSE -1 * amount END), 0) + FROM Customer_Promotion CP(NOLOCK) + WHERE sourceCustomerId = @CustomerId + + RETURN ISNULL(@BALANCE, 0) +END \ No newline at end of file diff --git a/ReferEarn/Tables_Referral.sql b/ReferEarn/Tables_Referral.sql new file mode 100644 index 0000000..40b3867 --- /dev/null +++ b/ReferEarn/Tables_Referral.sql @@ -0,0 +1,39 @@ +select * from Customer_Promotion + +CREATE TABLE TBL_PROMOTION_MASTER_SETUP +( + RowId TINYINT NOT NULL IDENTITY(1, 1) PRIMARY KEY + , Points INT NOT NULL + , IsActive BIT NOT NULL DEFAULT(1) + , UpdatedBy VARCHAR(40) NULL + , UpdatedDate DATETIME NULL +); + +select * from TBL_PROMOTION_MASTER_SETUP +ALTER TABLE Customer_Promotion ADD EquivalentPoints INT + +insert into TBL_PROMOTION_MASTER_SETUP +select 100, 1, null, null + +CREATE TABLE TBL_PROMOTION_SETUP +( + RowId INT NOT NULL IDENTITY(1, 1) PRIMARY KEY + , Points INT NOT NULL + , PromotionType VARCHAR(15) NOT NULL + , IsActive BIT NOT NULL DEFAULT(1) + , UpdatedBy VARCHAR(40) NULL + , UpdatedDate DATETIME NULL +); + +INSERT INTO TBL_PROMOTION_SETUP +SELECT 100, 'REGISTRATION', 1, NULL, NULL UNION +SELECT 400, 'TRANSACTION', 1, NULL, NULL + + +SELECT * FROM TBL_PROMOTION_SETUP + +SELECT * FROM staticDataValue (NOLOCK) + WHERE typeId = 8106 + AND isActive = 'Y' + + diff --git a/ReferEarn/proc_InsertRewardPoints.sql b/ReferEarn/proc_InsertRewardPoints.sql new file mode 100644 index 0000000..1f94b88 --- /dev/null +++ b/ReferEarn/proc_InsertRewardPoints.sql @@ -0,0 +1,114 @@ + + +ALTER PROC [dbo].[proc_InsertRewardPoints] ( + @Flag VARCHAR(20) + ,@TranId BIGINT = NULL + ,@CustomerId BIGINT = NULL + ,@ReferralId BIGINT = NULL + ,@rewardPoints INT = NULL + ,@rewardValue MONEY = NULL + ) +AS; +SET NOCOUNT ON; +SET XACT_ABORT ON; +-- #1526 - Post production fixes for Redeem & Earn +BEGIN + DECLARE @sourceCustomerId INT, @destinationCustomerId INT, @code NVARCHAR(50), @runningBalance MONEY, @totalDrAmount MONEY + , @totalCrAmount MONEY , @transactionPoints INT, @registrationPoints INT, @EquivalentPointsForOne INT, @AvailableBalance MONEY + + SELECT @transactionPoints = Points + FROM TBL_PROMOTION_SETUP (NOLOCK) + WHERE PromotionType = 'REGISTRATION' + AND IsActive = 1 + + SELECT @registrationPoints = Points + FROM TBL_PROMOTION_SETUP (NOLOCK) + WHERE PromotionType = 'TRANSACTION' + AND IsActive = 1 + + SELECT @EquivalentPointsForOne = Points + FROM TBL_PROMOTION_MASTER_SETUP (NOLOCK) + WHERE IsActive = 1 + + IF @Flag = 'REGISTER' + BEGIN + --@CustomerId = Customer who is newly registering in the system + --@ReferralId = Customer who is already in the system/ who have referred @CustomerId + --EXEC proc_InsertRewardPoints @Flag = 'REGISTER', @CustomerId = 1, @ReferralId = 2 + INSERT INTO Customer_Promotion(sourceCustomerId, destinationCustomerId, code, codeType, referenceId, rewardType, amount, createdDate, status, approvedDate, tranType, runningBalance, EquivalentPoints) + SELECT @CustomerId, @ReferralId, membershipId, 'REGISTRATION', @ReferralId, 'REFER_EARN', @registrationPoints/@EquivalentPointsForOne, GETDATE(), 1, GETDATE(), 'CR' + , DBO.FNA_GET_AVAILABLE_BALANCE_POINTS(@CustomerId) + (@registrationPoints/@EquivalentPointsForOne), @registrationPoints + FROM customerMaster (NOLOCK) + WHERE customerId = @CustomerId + + UNION + + SELECT @ReferralId, @ReferralId, membershipId, 'REGISTRATION', @ReferralId, 'REFER_EARN', @registrationPoints/@EquivalentPointsForOne, GETDATE(), 1, GETDATE(), 'CR' + , DBO.FNA_GET_AVAILABLE_BALANCE_POINTS(@ReferralId) + (@registrationPoints/@EquivalentPointsForOne), @registrationPoints + FROM customerMaster (NOLOCK) + WHERE customerId = @ReferralId + + UPDATE customerMaster SET bonusPoint = ISNULL(bonusPoint, 0) + @registrationPoints WHERE customerId = @CustomerId + UPDATE customerMaster SET bonusPoint = ISNULL(bonusPoint, 0) + @registrationPoints WHERE customerId = @ReferralId + END + ELSE IF @Flag = 'TRANSACTION' + BEGIN + --@CustomerId = Customer who is doing transaction + --EXEC proc_InsertRewardPoints @Flag = 'TRANSACTION', @CustomerId = 1, @TranId = 1234567890 + IF EXISTS(SELECT 'X' FROM REMITTRAN(NOLOCK) WHERE ID = @TranId AND CAMT <= 100) + BEGIN + SELECT @sourceCustomerId = sourceCustomerId, @destinationCustomerId = destinationCustomerId + FROM Customer_Promotion (NOLOCK) + WHERE sourceCustomerId = @CustomerId + and code = 'REGISTRATION' + + IF ISNULL(@destinationCustomerId, 0) <> 0 + BEGIN + IF NOT EXISTS(SELECT 'X' FROM Customer_Promotion(NOLOCK) WHERE code = 'FIRST_TXN' AND sourceCustomerId = @CustomerId) + BEGIN + INSERT INTO Customer_Promotion(sourceCustomerId, destinationCustomerId, code, codeType, referenceId, rewardType, amount, createdDate, status, approvedDate, tranType, runningBalance, EquivalentPoints) + SELECT @sourceCustomerId, @destinationCustomerId, membershipId, 'FIRST_TXN', @TranId, 'REFER_EARN', @transactionPoints/@EquivalentPointsForOne, GETDATE(), 1, GETDATE(), 'CR' + , DBO.FNA_GET_AVAILABLE_BALANCE_POINTS(@sourceCustomerId) + (@transactionPoints/@EquivalentPointsForOne), @transactionPoints + FROM customerMaster (NOLOCK) + WHERE customerId = @sourceCustomerId + + UNION + + SELECT @destinationCustomerId, @sourceCustomerId, membershipId, 'FIRST_TXN', @TranId, 'REFER_EARN', @transactionPoints/@EquivalentPointsForOne, GETDATE(), 1, GETDATE(), 'CR' + , DBO.FNA_GET_AVAILABLE_BALANCE_POINTS(@destinationCustomerId) + (@transactionPoints/@EquivalentPointsForOne), @transactionPoints + FROM customerMaster (NOLOCK) + WHERE customerId = @destinationCustomerId + + UPDATE customerMaster SET bonusPoint = ISNULL(bonusPoint, 0) + @transactionPoints WHERE customerId = @sourceCustomerId + UPDATE customerMaster SET bonusPoint = ISNULL(bonusPoint, 0) + @transactionPoints WHERE customerId = @destinationCustomerId + END + END + END + END + ELSE IF @Flag = 'DEBIT' + BEGIN + IF ISNULL(@rewardPoints, 0) > 0 + BEGIN + --@CustomerId = Customer who is doing transaction + --EXEC proc_InsertRewardPoints @Flag = 'DEBIT', @CustomerId = 1, @rewardPoints = 100, @TranId = 1234567890 + + SELECT @AvailableBalance = DBO.FNA_GET_AVAILABLE_BALANCE_POINTS(@CustomerId) + + IF ISNULL(@rewardPoints, 0) > ISNULL(@AvailableBalance, 0) + BEGIN + SELECT 1 Code, 'Insufficient Balance For Rededem!' msg, NULL id + RETURN; + END + + INSERT INTO Customer_Promotion(sourceCustomerId, destinationCustomerId, code, codeType, referenceId, rewardType, amount, createdDate, status, approvedDate, tranType, runningBalance, EquivalentPoints) + SELECT @CustomerId, 0, membershipId, 'REDEEM', @TranId, 'REFER_EARN', @rewardValue, GETDATE(), 1, GETDATE(), 'DR' + , DBO.FNA_GET_AVAILABLE_BALANCE_POINTS(@CustomerId) - @rewardValue, @rewardValue * @EquivalentPointsForOne + FROM customerMaster (NOLOCK) + WHERE customerId = @CustomerId + + UPDATE customerMaster SET bonusPoint = ISNULL(bonusPoint, 0) - @rewardPoints WHERE customerId = @CustomerId + END + END +END + + diff --git a/ReferEarn/proc_SendTransaction.sql b/ReferEarn/proc_SendTransaction.sql new file mode 100644 index 0000000..074ceaa --- /dev/null +++ b/ReferEarn/proc_SendTransaction.sql @@ -0,0 +1,1605 @@ + + +ALTER PROC [dbo].[proc_SendTransaction] + @User VARCHAR(100) = NULL + ,@SenderId INT = NULL + ,@sIpAddress VARCHAR(20) = NULL + ,@ReceiverId INT = NULL + ,@rFirstName VARCHAR(50) = NULL + ,@rMiddleName VARCHAR(50) = NULL + ,@rLastName VARCHAR(50) = NULL + ,@rIdType VARCHAR(50) = NULL + ,@rIdNo VARCHAR(30) = NULL + ,@rIdIssue VARCHAR(10) = NULL + ,@rIdExpiry VARCHAR(10) = NULL + ,@rDob VARCHAR(10) = NULL + ,@rMobileNo VARCHAR(20) = NULL + ,@rNativeCountry VARCHAR(50) = NULL + ,@rStateId INT = NULL + ,@rDistrictId INT = NULL + ,@rAddress VARCHAR(100) = NULL + ,@rCity VARCHAR(50) = NULL + ,@rEmail VARCHAR(50) = NULL + ,@rAccountNo VARCHAR(50) = NULL + ,@sCountryId INT = NULL + ,@pCountryId INT = NULL + ,@deliveryMethodId INT = NULL + ,@pBankId BIGINT = NULL + ,@pBranchId BIGINT = NULL + ,@collCurr VARCHAR(3) = NULL + ,@payoutCurr VARCHAR(3) = NULL + ,@collAmt MONEY = NULL + ,@payoutAmt MONEY = NULL + ,@transferAmt MONEY = NULL + ,@exRate MONEY = NULL + ,@calBy CHAR(1) = NULL + ,@tpExRate DECIMAL(30, 12) = NULL + ,@payOutPartnerId BIGINT = NULL + ,@forexSessionId VARCHAR(40) = NULL + ,@kftcLogId BIGINT = NULL + ,@paymentType VARCHAR(20) = NULL + ,@scDiscount MONEY = NULL + ,@PurposeOfRemittance VARCHAR(100) = NULL + ,@SourceOfFund VARCHAR(100) = NULL + ,@PurposeOfRemittanceOther VARCHAR(100) = NULL + ,@SourceOfFundOther VARCHAR(100) = NULL + ,@RelWithSender VARCHAR(200) = NULL + ,@SourceType CHAR(1) = NULL + ,@schemeId BIGINT = NULL + ,@processId VARCHAR(40) = NULL + ,@flag VARCHAR(100) + ,@controlNo VARCHAR(20) = NULL + ,@PartnerPin VARCHAR(20) = NULL + ,@PartnerId VARCHAR(20) = NULL + ,@tranId BIGINT = NULL + ,@errorCode INT = NULL + ,@Message NVARCHAR(500) = NULL + ,@sAdd2 NVARCHAR(150) = NULL + ,@goodsOrigin VARCHAR(100) = NULL + ,@goodsType VARCHAR(100) = NULL + ,@portOfShipment VARCHAR(100) = NULL + ,@discountedFee MONEY = NULL +AS +----------------------------------------------------------- +-- For Broadcast notification , @flag = 'send' +-- #101 - MOBILE CHANGES , #361 - MULTI-LINGUAL +-- #476 - Changes in dotransaction Payment of Import Good +-- #101 - set error code as 19 for unapproved customer +-- Disable ProcBroadCastMobile @Flag='TRANSACTION_SUCCESS' +-- #495 Added condition for @sourceOfFundOther and @purposeOfRemittanceOther +-- Fix issue related with Bank id invalid add @pBankId_O,@payOutPartnerId_O +--#643 Mobile transaction wrongly flag for Questionnaire require due to Visa Status +-- #717 - insert visaStatus in tranSendersTemp +-- check mobileApprovedDate instead of approved date +-- #756 Duplicate pin generated +-- insert into controllist for M +--#767 Relationship displayed blank for mobile transaction. +-- #767 relationship other +-- #790 Change column to store relationship others for Mobile transaction +--#810 Missing sending commission in mobile Txn voucher +--#831 Disabled customer allowed to do Mobile txn +--#820 Donga wrong commission for mobile txn +--#Bug #1192 Sender Expiry not check from Mobile Transaction +-- #1003 - Reward Points, @flag = 'Send' +-- #1498 - TF NO Balance +-- #1590 - Customer Loyalty +-- #11358 - show branch routing number for mobile transaction in search transaction , pbankBranchName +-- #12985 - invalid routing no case +----------------------------------------------------------- +SET NOCOUNT ON; +SET XACT_ABORT ON; + +BEGIN TRY + DECLARE @complianceRuleId INT + ,@cAmtUSD MONEY + ,@complienceMessage VARCHAR(1000) = NULL + ,@shortMsg VARCHAR(100) = NULL + ,@complienceErrorCode TINYINT = NULL + ,@compErrorCode INT + ,@discountType VARCHAR(2) = NULL + ,@discountvalue MONEY = NULL + ,@couponType VARCHAR(3) = NULL + ,@discountPercent MONEY = NULL + ,@couponName VARCHAR(20) = NULL + ,@ServiceCharge_Temp MONEY = NULL + ,@schemePremium MONEY = NULL + ,@customerType INT = NULL + ,@msg VARCHAR(MAX) = NULL + ,@pBankId_O BIGINT = @pBankId + ,@payOutPartnerId_O BIGINT = @payOutPartnerId + ,@RelWithSenderOthers VARCHAR(200) = NULL + ,@receiverName VARCHAR(100) = NULL + ,@createdFrom VARCHAR(10) = NULL + ,@tranCount INT = NULL + ,@schemeCount INT = NULL + ,@isEligible CHAR(1) = NULL + ,@schemeCodeId INT = NULL + ,@isFirstTran CHAR(1) = 'N' + ,@introducer VARCHAR(25) = NULL + + IF EXISTS ( + SELECT * + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @RelWithSender + AND TYPEID = 2100 + AND isActive = 'N' + ) + BEGIN + SELECT TOP 1 @receiverName = ISNULL(firstName, '') + ISNULL(' ' + middleName, '') + ISNULL(' ' + lastName1, '') + ISNULL(' ' + lastName2, '') + FROM dbo.receiverInformation RI(NOLOCK) + WHERE receiverId = @receiverId + + SET @msg = 'Please update the details of receiver [ ' + @receiverName + ' ] before performing transaction!'; + + EXEC proc_errorHandler 21 + ,@msg + ,NULL; + Rollback Transaction + RETURN; + END + + IF EXISTS ( + SELECT * + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @PurposeOfRemittance + AND TYPEID = 3800 + AND isActive = 'Y' + ) + BEGIN + SELECT @PurposeOfRemittance = detailTitle + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @PurposeOfRemittance + AND TYPEID = 3800 + END + + IF EXISTS ( + SELECT * + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @sourceOfFund + AND TYPEID = 3900 + AND isActive = 'Y' + ) + BEGIN + SELECT @sourceOfFund = detailTitle + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @sourceOfFund + AND TYPEID = 3900 + END + + SELECT @pcountryId = cm.countryId + ,@RelWithSenderOthers = ISNULL(relationOther, otherRelationDesc) + FROM receiverInformation RI(NOLOCK) + INNER JOIN countryMaster CM(NOLOCK) ON CM.countryName = RI.country + WHERE RI.receiverId = @ReceiverId + + IF EXISTS ( + SELECT * + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @RelWithSender + AND TYPEID = 2100 + AND isActive = 'Y' + ) + BEGIN + IF (@RelWithSender = '11339') + BEGIN + SET @RelWithSender = 'Other (please specify) :' + ISNULL(@RelWithSenderOthers, ''); + END + ELSE + BEGIN + SELECT @RelWithSender = detailTitle + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @RelWithSender + AND TYPEID = 2100 + END + END + + DECLARE @isRealTime BIT = 0 , @TRANSFER_MODE varchar(10)=''; + + + SELECT @payOutPartnerId = AGENTID + ,@isRealTime = isRealTime + FROM TblPartnerwiseCountry(NOLOCK) + WHERE CountryId = @pCountryId + AND IsActive = 1 + AND ISNULL(PaymentMethod, @deliveryMethodId) = @deliveryMethodId + AND IsMobileEnabled = 1 + + IF @payOutPartnerId IS NULL + BEGIN + EXEC proc_errorHandler 3 + ,'Oops, something went wrong! Please perform the transaction again. Route is missing.' + ,NULL + + RETURN; + END + + IF EXISTS ( + SELECT * + FROM API_BANK_LIST_MASTER(NOLOCK) + WHERE MASTER_BANK_ID = @pBankId + AND IS_ACTIVE = '1' + ) + BEGIN + SELECT @pBankId = AB.BANK_ID ,@TRANSFER_MODE= ab.TRANSFER_MODE + FROM API_BANK_LIST AB(NOLOCK) + INNER JOIN API_BANK_LIST_MASTER ABM(NOLOCK) ON AB.JME_BANK_CODE = ABM.JME_BANK_CODE + WHERE MASTER_BANK_ID = @pBankId + AND ABM.IS_ACTIVE = '1' + AND AB.API_PARTNER_ID = @payOutPartnerId + END + + IF @flag = 'SEND' + BEGIN + IF NOT EXISTS ( + SELECT TOP 1 'X' + FROM dbo.customerMaster(NOLOCK) + WHERE username = @user + AND mobileApprovedDate IS NOT NULL + ) + BEGIN + EXEC proc_errorHandler 19 + ,'You are not authorized to perform transaction, please contact JME Support!' + ,NULL; + + RETURN; + END + + DECLARE @remittanceAllowed int,@idExpiryDate DATETIME + + SELECT @remittanceAllowed = remittanceAllowed,@idExpiryDate=idExpiryDate FROM customerMaster(NOLOCK) + WHERE CUSTOMERID = @SenderId + + IF ISNULL(@remittanceAllowed, 0) = '0' + BEGIN + SELECT @MSG = 'You are not authorized to perform transaction, please contact JME Support!' + + EXEC proc_errorHandler 19 + ,@MSG + ,NULL + + RETURN + END + + IF @idExpiryDate < GETDATE() + BEGIN + SELECT @MSG = 'Your ID with us has expired. Please upload new ID details in “Renew ID” or contact JME support.' + EXEC proc_errorHandler 22 + ,@MSG + ,NULL + RETURN; + END + DECLARE @kycStatus INT + + SELECT @kycStatus = kycStatus + FROM TBL_CUSTOMER_KYC(NOLOCK) + WHERE CUSTOMERID = @senderId + AND ISDELETED = 0 + --AND kycStatus=11044 + ORDER BY KYC_DATE + + IF ISNULL(@kycStatus, 0) <> 11044 + BEGIN + IF @kycStatus IS NOT NULL + SELECT @MSG = 'KYC for selected customer is not completed, it is in status:' + detailTitle + FROM staticDataValue(NOLOCK) + WHERE valueId = @kycStatus + ELSE + SELECT @MSG = 'Please complete KYC status first' + + EXEC proc_errorHandler 2 + ,@MSG + ,NULL; + + RETURN + END + + IF @paymentType IS NULL + SET @paymentType = 'WALLET' + + DECLARE @sCurrCostRate FLOAT + ,@sCurrHoMargin FLOAT + ,@pCurrCostRate FLOAT + ,@customerRate MONEY + ,@agentCrossSettRate FLOAT + ,@iServiceCharge MONEY + ,@iTAmt MONEY + ,@iPAmt MONEY + ,@place INT + ,@currDecimal INT + ,@agentAvlLimit MONEY + ,@serviceCharge MONEY + ,@sCountry VARCHAR(50) = 'Japan' + ,@sAgent BIGINT + ,@sAgentName VARCHAR(100) + ,@sBranch INT + ,@sBranchName VARCHAR(100) + ,@sSuperAgent INT + ,@sSuperAgentName VARCHAR(100) + ,@senderName VARCHAR(100) + ,@sIdNo VARCHAR(50) + ,@sIdType VARCHAR(50) + ,@sMobile VARCHAR(15) + ,@pAgent BIGINT + ,@pSuperAgent BIGINT + ,@pSuperAgentName VARCHAR(100) + ,@pAgentName VARCHAR(100) + ,@controlNoEncrypted VARCHAR(30) + ,@tempCompId BIGINT + ,@pBranch INT + ,@pBranchName VARCHAR(100) + ,@pCountry VARCHAR(100) + ,@RcreatedFrom VARCHAR(5) + ,@ROtpVerified BIT + + SELECT @sCountryId = 113 + ,@sBranch = 394395 + + SELECT @SenderId = customerId , + @createdFrom = createdFrom + FROM customerMaster(NOLOCK) + WHERE USERNAME = @User + + + IF NOT EXISTS(SELECT 1 FROM + (SELECT TOP 1 customerId FROM TRANSENDERS TS (NOLOCK) + inner join remittran (nolock) rt on rt.id = ts.tranId + WHERE customerId = @SenderId AND rt.tranStatus <> 'CANCEL' AND RT.tranType='M' + UNION ALL + SELECT TOP 1 customerId FROM TRANSENDERSTEMP TT (NOLOCK) + inner join remittrantemp (nolock) rt on rt.id = tt.tranId + WHERE customerId = @SenderId AND rt.tranStatus <> 'CANCEL' AND rt.tranType='M' + ) a where customerId = @SenderId + ) + BEGIN + SET @isFirstTran = 'Y' + END + + + SELECT @sAgent = sAgent + ,@sAgentName = sAgentName + ,@sBranch = sBranch + ,@sBranchName = sBranchName + ,@sSuperAgent = sSuperAgent + ,@sSuperAgentName = sSuperAgentName + FROM dbo.FNAGetBranchFullDetails(@sBranch) + + SELECT @pCountry = COUNTRYNAME + FROM COUNTRYMASTER(NOLOCK) + WHERE COUNTRYID = @pCountryId + + SELECT TOP 1 @pAgent = AM.agentId + --,@pCountryId = AM.agentCountryId + FROM agentMaster AM(NOLOCK) + WHERE AM.parentId = @payOutPartnerId + AND agentType = 2903 + AND AM.isSettlingAgent = 'Y' + AND AM.isApiPartner = 1 + + SELECT @pSuperAgentName = sSuperAgentName + ,@pSuperAgent = sSuperAgent + ,@pAgent = sAgent + ,@pAgentName = sAgentName + FROM dbo.FNAGetBranchFullDetails(@pAgent) + + SELECT @pBranch = @pAgent + ,@pBranchName = @pAgentName + + DECLARE @StateId INT + ,@DistrictId INT + + IF @receiverId IS NOT NULL + BEGIN + IF NOT EXISTS ( + SELECT '1' + FROM dbo.receiverInformation(NOLOCK) + WHERE receiverId = @ReceiverId + ) + BEGIN + EXEC proc_errorHandler 4 + ,'Receiver Data Not Match !' + ,NULL; + + RETURN; + END + + SELECT TOP 1 @receiverName = ISNULL(firstName, '') + ISNULL(' ' + middleName, '') + ISNULL(' ' + lastName1, '') + ISNULL(' ' + lastName2, '') + ,@StateId = AI.STATE_ID + ,@DistrictId = AC.CITY_ID + ,@RcreatedFrom = ISNULL(ri.createdFrom, 'C') + ,@ROtpVerified = ISNULL(ri.isOTPVerified, 0) + FROM dbo.receiverInformation RI(NOLOCK) + LEFT JOIN API_STATE_LIST AI(NOLOCK) ON AI.STATE_NAME = RI.STATE + AND AI.API_PARTNER_ID = @payOutPartnerId + LEFT JOIN API_CITY_LIST AC(NOLOCK) ON AC.STATE_ID = AI.STATE_ID + AND AC.CITY_NAME = RI.DISTRICT + WHERE receiverId = @receiverId + + IF(@RcreatedFrom='M' AND @ROtpVerified=0 ) + BEGIN + EXEC proc_errorHandler 4 + ,'Receiver Data Not Match !' + ,NULL; + RETURN; + END + END + ELSE + SET @receiverName = ISNULL(@rFirstName, '') + ISNULL(' ' + @rMiddleName, '') + ISNULL(' ' + @rLastName, '') + + IF @rFirstName IS NULL + AND @receiverId IS NULL + BEGIN + EXEC proc_errorHandler 5 + ,'Receiver name cannot be empty' + ,NULL; + + RETURN; + END + + IF ISNULL(@exRate, 0) = 0 + BEGIN + EXEC proc_errorHandler 6 + ,'Transaction cannot be proceed.Exchange Rate not defined' + ,NULL + + RETURN + END + + IF @pAgent IS NULL + BEGIN + EXEC proc_errorHandler 3 + ,'Oops, something went wrong.Please perform the transaction again' + ,NULL + + RETURN; + END + + DECLARE @OccupationId INT + ,@sNaCountryId INT + ,@visaStatusId INT + DECLARE @visaStatusText VARCHAR(200) + + SELECT TOP 1 @agentAvlLimit = dbo.FNAGetCustomerAvailableBalance(@SenderId) + ,@senderName = fullName + ,@sIdNo = idNumber + ,@sIdType = idType + ,@sMobile = mobile + ,@customerType = customerType + ,@OccupationId = OCCUPATION + ,@sNaCountryId = NATIVECOUNTRY + ,@visaStatusId = VISASTATUS + ,@visaStatusText = SV.detailTitle + ,@sAdd2 = ISNULL(additionalAddress, '') + FROM customerMaster CM(NOLOCK) + LEFT JOIN STATICDATAVALUE SV(NOLOCK) ON SV.valueId = CM.visaStatus + WHERE username = @User + AND customerId = @SenderId + + IF ISNULL(@paymentType, '') NOT IN ('wallet') + BEGIN + EXEC proc_errorHandler 7 + ,'Invalid payment method.Please perform the transaction again!' + ,NULL; + + RETURN; + END + + IF @user IN ('demo.gme@gmeremit.com') + BEGIN + EXEC proc_errorHandler 8 + ,'You can not send money through test GME acocunt :(' + ,NULL; + + RETURN; + END + + IF ISNULL(@collAmt, 0) = 0 + BEGIN + EXEC proc_errorHandler 9 + ,'Collection Amount is missing. Cannot send transaction' + ,NULL; + + RETURN; + END; + + SET @controlNo = '21' + LEFT(CAST(ABS(CHECKSUM(NEWID())) AS VARCHAR(10)) + '0000000000', 7) + + IF EXISTS ( + SELECT TOP 1 'X' + FROM controlNoList WITH (NOLOCK) + WHERE controlNo = @controlNo + ) + BEGIN + SET @controlNo = '21' + LEFT(CAST(ABS(CHECKSUM(NEWID())) AS VARCHAR(10)) + '0000000000', 7) + + --SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo); + IF EXISTS ( + SELECT TOP 1 'X' + FROM controlNoList WITH (NOLOCK) + WHERE controlNo = @controlNo + ) + BEGIN + EXEC proc_errorHandler 10 + ,'Technical error occurred. Please try again' + ,NULL; + + RETURN; + END + END; + + SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo); + + IF @deliveryMethodId = 2 + AND @pCountryId <> '151' + BEGIN + IF NOT EXISTS ( + SELECT TOP 1 'A' + FROM api_bank_list(NOLOCK) + WHERE BANK_ID = @pBankId + AND PAYMENT_TYPE_ID IN ( + 0 + ,2 + ) + AND IS_ACTIVE = 1 + ) + BEGIN + EXEC proc_errorHandler 11 + ,'Invalid bank selected' + ,NULL + + RETURN + END + + IF @raccountNo IS NULL + BEGIN + EXEC proc_errorHandler 12 + ,'Account number cannot be blank' + ,NULL + + RETURN + END + END; + + --4. Get Exchange Rate Details------------------------------------------------------------------------------------------------------------------ + DECLARE @pCurrHoMargin FLOAT + + SELECT @customerRate = customerRate + ,@sCurrCostRate = sCurrCostRate + ,@sCurrHoMargin = sCurrHoMargin + ,@pCurrCostRate = pCurrCostRate + ,@agentCrossSettRate = agentCrossSettRate + ,@serviceCharge = serviceCharge + ,@iPAmt = pAmt + ,@schemeId = schemeId + ,@pCurrHoMargin = pCurrHoMargin + ,@schemeCount = CAST( sharingValue AS INT) + ,@schemeCodeId= schemeId + FROM exRateCalcHistory(NOLOCK) + WHERE FOREX_SESSION_ID = @forexSessionId + AND [USER_ID] = @user + + DECLARE @pAgentCommCurrency VARCHAR(3) + ,@pAgentComm MONEY + + SELECT @pAgentCommCurrency = DBO.FNAGetPayCommCurrency(@sSuperAgent, @sAgent, @sBranch, @SCOUNTRYID, @pSuperAgent, @pBranch, @pCountryId) + + IF (LEN(ISNULL(@TRANSFER_MODE, ''))<1 + AND @pCountryId = '203' + AND @pAgent = '394133' + AND @deliveryMethodId = '2' + ) -- DONGA Bank Deposit not real time + BEGIN + SET @pAgentComm = (@payoutAmt * 0.17) / 100; + END + ELSE + BEGIN + SELECT @pAgentComm = amount + FROM dbo.FNAGetPayComm(@sAgent, @sCountryId, NULL, NULL, @pCountryId, NULL, @pAgent, @pAgentCommCurrency, @deliveryMethodId, @collAmt, @payoutAmt, @serviceCharge, @transferAmt, NULL) + END + + IF @customerRate IS NULL + BEGIN + EXEC proc_errorHandler 6 + ,'Transaction cannot be proceed. Exchange Rate not defined' + ,NULL + + RETURN + END + + -- Customer Loyalty + EXEC PROC_Customer_LoyaltyV2 @flag = 'check-eligible-v2' + ,@isEligible = @isEligible OUT + ,@referralCode = @introducer + ,@tranCount = @trancount OUT + ,@schemeCount = @schemeCount OUT + ,@customerId = @senderId + ,@createdFrom = 'M' + + print '@isEligible.Send' + @isEligible; + print '@@trancount.Send' + CAST(@trancount AS VARCHAR); + IF @isEligible = 'Y' + BEGIN + SET @iServiceCharge = 0 + END + ELSE + BEGIN + --Get Service Charge---------------------------------------------------------------------------------------------------------------------- + DECLARE @iServiceChargeTemp MONEY + SELECT @iServiceChargeTemp = ISNULL(amount, - 1) + FROM [dbo].FNAGetServiceCharge(@sCountryId, @sSuperAgent, @sAgent, @sBranch, @pCountryId, @pSuperAgent, @pAgent, @pBranch, @deliveryMethodId, @collAmt, @collCurr) + + --SELECT @iServiceCharge = ISNULL(@iServiceChargeTemp,0) - ISNULL(@discountedFee,0) + + IF @iServiceCharge < 0 -- @iServiceCharge = - 1 + BEGIN + EXEC proc_errorHandler 13 + ,'Transaction cannot be proceed. Service Charge is not defined' + ,NULL + + RETURN + END + END + print @iServiceCharge; + print @serviceCharge; + IF ISNULL(@iServiceCharge, 0) <> ISNULL(@serviceCharge, 1) + BEGIN + EXEC proc_errorHandler 14 + ,'Transaction cannot be proceed. Amount detail not match' + ,NULL + + RETURN + END + + --End Service Charge------------------------------------------------------------------------------------------------------------------------------------- + --DECLARE @iMsg VARCHAR(MAX) + IF ISNULL(@exRate, 0) <> ISNULL(@customerRate, 1) + BEGIN + --SET @iMsg = 'Amount detail not match. Please re-calculate the amount again' + CAST(isnull(@exRate,0) AS VARCHAR) + ' : ' + CAST(isnull(@customerRate,1) AS VARCHAR) + EXEC proc_errorHandler 15 + ,'Amount detail not match. Please re-calculate the amount again' + ,NULL + + RETURN + END + + IF dbo.FNA_GET_AVAILABLE_BALANCE_POINTS(@senderId) < ISNULL(@discountedFee, 0) + BEGIN + EXEC proc_errorHandler 1 + ,'You do not have sufficient points for redeem!' + ,NULL + RETURN; + END + + SELECT @iTAmt = @collAmt - @iServiceCharge + ISNULL(@discountedFee, 0) + + SELECT TOP 1 @place = place + ,@currDecimal = currDecimal + FROM currencyPayoutRound(NOLOCK) + WHERE ISNULL(isDeleted, 'N') = 'N' + AND currency = @payoutCurr + AND tranType IS NULL; + + SET @currDecimal = ISNULL(@currDecimal, 0) + SET @place = ISNULL(@place, 0) + SET @iPAmt = @iTAmt * @CustomerRate + + IF @payoutAmt - @iPAmt <= 1 + SET @iPAmt = @payoutAmt + + ----## WHILE CALCULATING FROM PAYOUT AMOUNT CONSIDARING 10 VND + IF ISNULL(@iPAmt, 0) <> ISNULL(@payoutAmt, 1) + BEGIN + --SET @Msg = 'Amount detail not match. Please re-calculate the amount again.' + CAST(@iPAmt AS VARCHAR) + ' - ' + CAST(@payoutAmt AS VARCHAR) + EXEC proc_errorHandler 15 + ,'Amount detail not match. Please re-calculate the amount again.' + ,NULL + + RETURN + END + + ----OFAC Checking + DECLARE @receiverOfacRes VARCHAR(MAX) + ,@ofacRes VARCHAR(MAX) + ,@ofacReason VARCHAR(200) + + EXEC proc_ofacTracker @flag = 't' + ,@name = @senderName + ,@Result = @ofacRes OUTPUT + + EXEC proc_ofacTracker @flag = 't' + ,@name = @receiverName + ,@Result = @receiverOfacRes OUTPUT + + DECLARE @result VARCHAR(MAX) + + IF ISNULL(@ofacRes, '') <> '' + BEGIN + SET @ofacReason = 'Matched by sender name' + END + + IF ISNULL(@receiverOfacRes, '') <> '' + BEGIN + SET @ofacRes = ISNULL(@ofacRes + ',' + @receiverOfacRes, '' + @receiverOfacRes) + SET @ofacReason = 'Matched by receiver name' + END + + IF ISNULL(@ofacRes, '') <> '' + AND ISNULL(@receiverOfacRes, '') <> '' + BEGIN + SET @ofacReason = 'Matched by both sender name and receiver name' + END + + --Ofac Checking End + DECLARE @agentRefId VARCHAR(50) = NEWID() + + ----Compliance Checking 1-> Block, 2-> Hold, 3-> Questionnaire + CREATE TABLE #TBL_COMPLIANCE_RESULT ( + ERROR_CODE INT + ,MSG VARCHAR(2000) + ,RULE_ID INT + ,SHORT_MSG VARCHAR(1000) + ,[TYPE] VARCHAR(10) + ,IS_D0C_REQUIRED BIT + ) + + INSERT INTO #TBL_COMPLIANCE_RESULT ( + ERROR_CODE + ,MSG + ,RULE_ID + ,SHORT_MSG + ,[TYPE] + ,IS_D0C_REQUIRED + ) + EXEC [PROC_COMPLIANCE_CHECKING_NEW] @flag = 'core' + ,@user = @user + ,@sIdType = @sIdType + ,@sIdNo = @sIdNo + ,@receiverName = @receiverName + ,@amount = @iTAmt + ,@customerId = @senderId + ,@pCountryId = @pCountryId + ,@deliveryMethod = @deliveryMethodId + ,@professionId = @OccupationId + ,@receiverMobile = @rMobileNo + ,@accountNo = @raccountNo + ,@receiverId = @receiverId + ,@sNaCountryId = @sNaCountryId + ,@visaStatus = @visaStatusId + + IF EXISTS ( + SELECT * + FROM #TBL_COMPLIANCE_RESULT + WHERE ERROR_CODE <> 0 + ) + BEGIN + IF EXISTS ( + SELECT * + FROM #TBL_COMPLIANCE_RESULT + WHERE ERROR_CODE IN (1) + ) --transaction blocked + BEGIN + INSERT INTO ComplianceLog ( + senderName + ,senderCountry + ,senderIdType + ,senderIdNumber + ,senderMobile + ,receiverName + ,receiverCountry + ,payOutAmt + ,complianceId + ,complianceReason + ,complainceDetailMessage + ,createdBy + ,createdDate + ,agentRefId + ,isDocumentRequired + ) + SELECT @senderName + ,@sCountry + ,@sIdType + ,@sIdNo + ,@sMobile + ,@receiverName + ,@pCountry + ,@collAmt + ,RULE_ID + ,SHORT_MSG + ,MSG + ,@user + ,GETDATE() + ,@agentRefId + ,IS_D0C_REQUIRED + FROM #TBL_COMPLIANCE_RESULT + + SELECT @MSG = MSG + FROM #TBL_COMPLIANCE_RESULT + WHERE ERROR_CODE IN (1) + --EXEC proc_errorHandler 1, @MSG, NULL + END + + IF EXISTS ( + SELECT * + FROM #TBL_COMPLIANCE_RESULT + WHERE ERROR_CODE IN ( + 2 + ,3 + ) + ) --transaction hold/questionnaire + BEGIN + DELETE + FROM remitTranComplianceTemp + WHERE agentRefId = @agentRefId + + INSERT remitTranComplianceTemp ( + csDetailTranId + ,matchTranId + ,agentRefId + ) + SELECT RULE_ID + ,NULL + ,@agentRefId + FROM #TBL_COMPLIANCE_RESULT + WHERE ERROR_CODE IN ( + 2 + ,3 + ) + ORDER BY ISNULL(IS_D0C_REQUIRED, 0) DESC + END + + INSERT INTO ComplianceLog ( + senderName + ,senderCountry + ,senderIdType + ,senderIdNumber + ,senderMobile + ,receiverName + ,receiverCountry + ,payOutAmt + ,complianceId + ,complianceReason + ,complainceDetailMessage + ,createdBy + ,createdDate + ,agentRefId + ,isDocumentRequired + ) + SELECT @senderName + ,@sCountry + ,@sIdType + ,@sIdNo + ,@sMobile + ,@receiverName + ,@pCountry + ,@collAmt + ,RULE_ID + ,SHORT_MSG + ,MSG + ,@user + ,GETDATE() + ,@agentRefId + ,IS_D0C_REQUIRED + FROM #TBL_COMPLIANCE_RESULT + END + + --checking for visa status questionnaire + IF EXISTS ( + SELECT * + FROM VW_VISA_STATUS_QUESTIONNAIRE + WHERE VISA_ID = @visaStatusId + ) + BEGIN + INSERT INTO ComplianceLog ( + senderName + ,senderCountry + ,senderIdType + ,senderIdNumber + ,senderMobile + ,receiverName + ,receiverCountry + ,payOutAmt + ,complianceId + ,complianceReason + ,complainceDetailMessage + ,createdBy + ,createdDate + ,agentRefId + ,isDocumentRequired + ) + SELECT @senderName + ,@sCountry + ,@sIdType + ,@sIdNo + ,@sMobile + ,@receiverName + ,@pCountry + ,@collAmt + ,0 + ,'Compliance Hold/Questionnaire due to Visa Status: ' + @visaStatusText + ,'Compliance Hold/Questionnaire due to Visa Status: ' + @visaStatusText + ,@user + ,GETDATE() + ,@agentRefId + ,0 + + INSERT remitTranComplianceTemp ( + csDetailTranId + ,matchTranId + ,agentRefId + ,reason + ) + SELECT 0 + ,NULL + ,@agentRefId + ,'Questionnaire require due to Visa Status' + END + + --**********Customer Per Day Limit Checking********** + DECLARE @remitTranTemp TABLE ( + tranId BIGINT + ,controlNo VARCHAR(20) + ,cAmt MONEY + ,receiverName VARCHAR(200) + ,receiverIdType VARCHAR(100) + ,receiverIdNumber VARCHAR(50) + ,dot DATETIME + ); + + INSERT INTO @remitTranTemp ( + tranId + ,controlNo + ,cAmt + ,receiverName + ,receiverIdType + ,receiverIdNumber + ,dot + ) + SELECT TOP 10 rt.id + ,rt.controlNo + ,rt.cAmt + ,rt.receiverName + ,rec.idType + ,rec.idNumber + ,rt.createdDate + FROM vwRemitTran rt WITH (NOLOCK) + INNER JOIN vwTranSenders sen WITH (NOLOCK) ON rt.id = sen.tranId + INNER JOIN vwTranReceivers rec WITH (NOLOCK) ON rt.id = rec.tranId + WHERE sen.customerId = @SenderId + AND ( + rt.approvedDate BETWEEN CONVERT(VARCHAR, GETDATE(), 101) + AND CONVERT(VARCHAR, GETDATE(), 101) + ' 23:59:59' + OR ( + approvedBy IS NULL + AND cancelApprovedBy IS NULL + ) + ) + ORDER BY rt.createdDate DESC + + IF EXISTS ( + SELECT TOP 1 'X' + FROM @remitTranTemp + WHERE cAmt = @collAmt + AND (receiverName = @receiverName) + AND DATEDIFF(MI, dot, GETDATE()) <= 2 + ) + BEGIN + EXEC proc_errorHandler 16 + ,'Similar transaction found. Please perform the transaction after 2 minutes.' + ,NULL; + Rollback Transaction ; + RETURN; + END; + + DECLARE @countryRisk INT + ,@OccupationRisk INT + ,@compFinalRes VARCHAR(5) + -- #########country and occupation risk point + DECLARE @deliveryMethod VARCHAR(30) + ,@pBankName VARCHAR(100) + ,@pBankBranchName VARCHAR(100) + ,@pBankRowId BIGINT + + SELECT TOP 1 @pCountry = COUNTRYNAME + FROM countryMaster(NOLOCK) + WHERE countryId = @pCountryId + + SELECT TOP 1 @deliveryMethod = typeTitle + FROM serviceTypeMaster(NOLOCK) + WHERE serviceTypeId = @deliveryMethodId + + SELECT TOP 1 @pBankName = bank_name + ,@pBankRowId = bank_id + FROM api_bank_list + WHERE bank_id = @pBankId + AND is_Active = 1 + + SELECT TOP 1 @pBankBranchName = branch_name + isnull(BRANCH_CODE1,'') + FROM api_bank_branch_list + WHERE bank_id = @pBankRowId + AND branch_id = @pBranchId + AND is_Active = 1 + + DECLARE @VNo VARCHAR(20); + + IF @pCountry = 'Nepal' + AND @deliveryMethod = 'CASH PAYMENT' + BEGIN + SELECT @pSuperAgent = NULL + ,@pSuperAgentName = NULL + ,@pAgent = NULL + ,@pAgentName = NULL + + SELECT @pBankName = '[ANY WHERE]' + END + + DECLARE @PayerId INT = NULL + + --GET PAYER DETAILS IN CASE OF TF + IF @payOutPartnerId = 394130 + AND @deliveryMethod = 'BANK DEPOSIT' + BEGIN + SELECT @PayerId = PayerId + FROM BankPayerSetup(NOLOCK) + WHERE BankId = @pBankId + AND IsDefault = 1 + + IF @PayerId IS NULL + BEGIN + EXEC proc_errorHandler 17 + ,'No default payer mapped for current bank, please contact JME Support!' + ,NULL; + Rollback Transaction ; + RETURN; + END + END + + BEGIN TRANSACTION; + + IF @PurposeOfRemittanceOther IS NOT NULL + BEGIN + SET @PurposeOfRemittanceOther = 'Other (please specify) :' + @PurposeOfRemittanceOther + END + + IF @SourceOfFundOther IS NOT NULL + BEGIN + SET @SourceOfFundOther = 'Other (please specify) :' + @SourceOfFundOther + END + + IF (@pBranchId IS NULL OR @pBranchId='0') + BEGIN + select @pBranchId = bankLocation FROM receiverInformation WHERE receiverId = @ReceiverId + + IF(ISNULL(@pBranchId,0)=0 and ( @payOutPartnerId='394414' and @deliveryMethod = 'BANK DEPOSIT')) + BEGIN + + SET @msg = 'Please update the Routing Branch of receiver [ ' + @receiverName + ' ] before performing transaction!'; + + EXEC proc_errorHandler 21 + ,@msg + ,NULL; + Rollback Transaction ; + RETURN; + END + + END + + + INSERT INTO remitTranTemp ( + controlNo + ,sCurrCostRate + ,sCurrHoMargin + ,pCurrCostRate + ,pCurrHoMargin + ,agentCrossSettRate + ,customerRate + ,serviceCharge + ,handlingFee + ,pAgentComm + ,pAgentCommCurrency + ,promotionCode + ,sSuperAgent + ,sSuperAgentName + ,sAgent + ,sAgentName + ,sBranch + ,sBranchName + ,sCountry + ,pSuperAgent + ,pSuperAgentName + ,pAgent + ,pAgentName + ,pCountry + ,paymentMethod + ,pBank + ,pBankName + ,pBankBranch + ,pBankBranchName + ,accountNo + ,collCurr + ,tAmt + ,cAmt + ,pAmt + ,payoutCurr + ,relWithSender + ,purposeOfRemit + ,sourceOfFund + ,tranStatus + ,payStatus + ,createdDate + ,createdDateLocal + ,createdBy + ,tranType + ,senderName + ,receiverName + ,isOnlineTxn + ,schemeId + ,pState + ,pDistrict + ,sRouteId + ,schemePremium + ,collMode + ,PAYERID + ,routedBy + ,rewardPoints + ,rewardType + ,isBonusUpdated + ) + SELECT TOP 1 @controlNoEncrypted + ,@sCurrCostRate + ,@sCurrHoMargin + ,@pCurrCostRate + ,@pCurrHoMargin + ,@agentCrossSettRate + ,@customerRate + ,@serviceCharge + ,ISNULL(@scDiscount, 0) + ,@pAgentComm + ,@pAgentCommCurrency + ,NULL + ,@sSuperAgent + ,@sSuperAgentName + ,@sAgent + ,@sAgentName + ,@sBranch + ,@sBranchName + ,@sCountry + ,@pSuperAgent + ,@pSuperAgentName + ,@pAgent + ,@pAgentName + ,@pCountry + ,@deliveryMethod + ,@pBankId + ,@pBankName + ,@pBranchId + ,@pBankBranchName + ,@raccountNo + ,@collCurr + ,@iTAmt + ,@collAmt + ,@payoutAmt + ,@payoutCurr + ,@RelWithSender + ,ISNULL(@PurposeOfRemittance, @PurposeOfRemittanceOther) + ,ISNULL(@sourceOfFund, @SourceOfFundOther) + ,'Hold' + ,'Unpaid' + ,GETDATE() + ,GETUTCDATE() + ,@user + ,'M' + ,@senderName + ,@receiverName + ,'Y' + ,@schemeId + ,@StateId + ,@DistrictId + ,0 + ,ISNULL(@schemePremium, 0) + ,'Bank Deposit' + ,@PayerId + ,CAST(@payOutPartnerId_O AS VARCHAR) + '|' + CAST(@pBankId_O AS VARCHAR) + ,ISNULL(@discountedFee, 0) + ,CASE + WHEN ISNULL(@discountedFee, 0) > 0 + THEN 'REDEEM' + ELSE NULL + END + ,'N' + + SET @tranId = SCOPE_IDENTITY(); + + INSERT INTO tranSendersTemp ( + tranId + ,customerId + ,membershipId + ,firstName + ,middleName + ,lastName1 + ,lastName2 + ,fullName + ,country + ,[address] + ,STATE + ,district + ,address2 + ,zipCode + ,city + ,email + ,homePhone + ,workPhone + ,mobile + ,nativeCountry + ,dob + ,placeOfIssue + ,idType + ,idNumber + ,idPlaceOfIssue + ,issuedDate + ,validDate + ,occupation + ,countryRiskPoint + ,customerRiskPoint + ,ipAddress + ,visaStatus + ) + SELECT TOP 1 @tranId + ,@senderId + ,membershipId + ,firstName + ,middleName + ,lastName1 + ,lastName2 + ,@senderName + ,sc.countryName + ,ISNULL(city, '') + ISNULL(', ' + streetUnicode, '') + ,STATE + ,streetUnicode + ,@sAdd2 + ,zipCode + ,city + ,email + ,homePhone + ,workPhone + ,LEFT(mobile, 15) + ,nativeCountry = nc.countryName + ,dob + ,c.placeOfIssue + ,sdv.detailTitle + ,c.idNumber + ,c.placeOfIssue + ,c.idIssueDate + ,c.idExpiryDate + ,c.occupation + ,@countryRisk + ,(@countryRisk + @OccupationRisk) + ,@sIpAddress + ,c.visaStatus + FROM ( + SELECT TOP 1 * + FROM dbo.customerMaster c WITH (NOLOCK) + WHERE c.customerId = @senderId + ) C + LEFT JOIN countryMaster sc WITH (NOLOCK) ON c.country = sc.countryId + LEFT JOIN countryMaster nc WITH (NOLOCK) ON c.nativeCountry = nc.countryId + LEFT JOIN staticDataValue sdv WITH (NOLOCK) ON c.idType = sdv.valueId + + IF @ReceiverId IS NULL + BEGIN + IF NOT EXISTS ( + SELECT TOP 1 'X' + FROM receiverInformation(NOLOCK) + WHERE fullName = @receiverName + AND customerId = @senderId + ) + BEGIN + INSERT INTO receiverInformation ( + customerId + ,firstName + ,middleName + ,lastName1 + ,country + ,address + ,city + ,email + ,homePhone + ,mobile + ,relationship + ,STATE + ,district + ,fullName + ,nativeCountry + ,goodsOrigin + ,goodsType + ,portOfShipment + ,relationOther + ) + SELECT @senderId + ,@rFirstName + ,@rMiddleName + ,@rLastName + ,@pCountry + ,@rAddress + ,@rCity + ,@rEmail + ,@rMobileNo + ,@rMobileNo + ,@RelWithSender + ,@rStateId + ,@rDistrictId + ,@receiverName + ,@rNativeCountry + ,@goodsOrigin + ,@goodsType + ,@portOfShipment + ,@RelWithSenderOthers + + SET @ReceiverId = SCOPE_IDENTITY() + END; + --ELSE + -- BEGIN + -- SELECT TOP 1 @ReceiverId = receiverId + -- FROM receiverInformation(nolock) + -- WHERE fullName = @receiverName AND customerId = @senderId; + --END; + END; + + INSERT INTO tranReceiversTemp ( + tranId + ,customerId + ,firstName + ,middleName + ,lastName1 + ,lastName2 + ,fullName + ,country + ,[address] + ,[state] + ,district + ,zipCode + ,city + ,email + ,homePhone + ,workPhone + ,mobile + ,nativeCountry + ,dob + ,placeOfIssue + ,idType + ,idNumber + ,idPlaceOfIssue + ,issuedDate + ,relationType + ,validDate + ,gender + ,goodsOrigin + ,goodsType + ,portOfShipment + ) + SELECT TOP 1 @tranId + ,@ReceiverId + ,firstName + ,middleName + ,lastName1 + ,lastName2 + ,@receiverName + ,@pCountry + ,[address] + ,[state] + ,district + ,zipCode + ,city + ,email + ,homePhone + ,workPhone + ,mobile + ,NULL + ,@rDob + ,NULL + ,ISNULL(@rIdType, idType) + ,ISNULL(@rIdNo, idNumber) + ,NULL + ,@rIdIssue + ,@RelWithSender + ,@rIdExpiry + ,NULL + ,@goodsOrigin + ,@goodsType + ,@portOfShipment + FROM receiverInformation(NOLOCK) + WHERE receiverId = @ReceiverId + + /*For duplicate pin check*/ + INSERT INTO controlNoList ( + controlNo + ,createdby + ) + SELECT @controlNo + ,'M' + + ----IF @paymentType = 'WALLET' + --EXEC proc_UpdateCustomerBalance @controlNo = @controlNoEncrypted, @type = 'DEDUCT' + ----## map locked ex rate with transaction for history + UPDATE exRateCalcHistory + SET controlNo = @controlNoEncrypted + ,AGENT_TXN_REF_ID = @tranId + ,isExpired = 1 + WHERE FOREX_SESSION_ID = @forexSessionId + + -- UPDATE FOR CUSTOMER LOYALTY + -- EXEC PROC_Customer_Loyalty @flag = 'check-eligible' , @isEligible = @isEligible OUT -- CHECKED ABOVE + + EXEC PROC_Customer_LoyaltyV2 @flag = 'update-v2' + ,@customerId = @senderId + ,@createdFrom = 'M' + ,@tranId = @tranId + ,@createdBy = @user + ,@controlNo = @controlNo + ,@isManualSc = 'N' + ,@referralCode = @introducer + ,@serviceCharge = @iServiceCharge + + + --------------------------#########------------OFAC/COMPLIANCE INSERT (IF EXISTS)---------------########---------------------- + IF EXISTS ( + SELECT TOP 1 'X' + FROM remitTranComplianceTemp WITH (NOLOCK) + WHERE agentRefId = @agentRefId + ) + BEGIN + INSERT INTO remitTranCompliance ( + TranId + ,csDetailTranId + ,matchTranId + ,reason + ) + SELECT @tranId + ,csDetailTranId + ,matchTranId + ,reason + FROM remitTranComplianceTemp WITH (NOLOCK) + WHERE agentRefId = @agentRefId + + SET @compFinalRes = 'C' + END + + UPDATE ComplianceLog + SET TRANID = @tranId + WHERE agentRefId = @agentRefId + + IF ( + ISNULL(@compFinalRes, '') <> '' + OR ISNULL(@ofacRes, '') <> '' + OR ISNULL(@receiverOfacRes, '') <> '' + ) + BEGIN + IF ( + ( + ISNULL(@ofacRes, '') <> '' + OR ISNULL(@receiverOfacRes, '') <> '' + ) + AND ISNULL(@compFinalRes, '') = '' + ) + BEGIN + IF ISNULL(@ofacRes, '') <> '' + INSERT remitTranOfac ( + TranId + ,blackListId + ,reason + ,flag + ) + SELECT @tranId + ,@ofacRes + ,@ofacReason + ,dbo.FNAGetOFAC_Flag(@ofacRes) + + IF ISNULL(@receiverOfacRes, '') <> '' + INSERT remitTranOfac ( + TranId + ,blackListId + ,reason + ,flag + ) + SELECT @tranId + ,@receiverOfacRes + ,@ofacReason + ,dbo.FNAGetOFAC_Flag(@receiverOfacRes) + + UPDATE remitTranTemp + SET tranStatus = 'OFAC Hold' + WHERE id = @tranId + END + ELSE IF ( + @compFinalRes <> '' + AND ( + ISNULL(@ofacRes, '') = '' + OR ISNULL(@receiverOfacRes, '') = '' + ) + ) + BEGIN + UPDATE remitTranTemp + SET tranStatus = 'Compliance Hold' + WHERE id = @tranId + END + ELSE IF ( + ISNULL(@compFinalRes, '') <> '' + AND ( + ISNULL(@ofacRes, '') <> '' + OR ISNULL(@receiverOfacRes, '') <> '' + ) + ) + BEGIN + IF ISNULL(@ofacRes, '') <> '' + INSERT remitTranOfac ( + TranId + ,blackListId + ,reason + ,flag + ) + SELECT @tranId + ,@ofacRes + ,@ofacReason + ,dbo.FNAGetOFAC_Flag(@ofacRes) + + IF ISNULL(@receiverOfacRes, '') <> '' + INSERT remitTranOfac ( + TranId + ,blackListId + ,reason + ,flag + ) + SELECT @tranId + ,@receiverOfacRes + ,@ofacReason + ,dbo.FNAGetOFAC_Flag(@receiverOfacRes) + + UPDATE remitTranTemp + SET tranStatus = 'OFAC/Compliance Hold' + WHERE id = @tranId + END + END + + --Compliance checking done + DECLARE @hasSufficientBalance CHAR(1) = 'Y' + IF @agentAvlLimit < @payoutAmt + BEGIN + SET @hasSufficientBalance = 'N' + INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category, isClickable) + SELECT @SenderId,'Tran ID : '+CAST(@tranId AS VARCHAR)+' . Your transaction has been processed successfully but your balance is insufficient. Please load your wallet.','Insufficent Balance.',getdate(),'',@tranId,0,0,0,0,'INFO', 'Y' + END + + --New logic for referral + IF ISNULL(@discountedFee, 0) > 0 + EXEC proc_InsertRewardPoints @Flag = 'DEBIT', @CustomerId = @senderId, @rewardValue = @discountedFee, @TranId = @tranId + + EXEC proc_InsertRewardPoints @Flag = 'TRANSACTION', @CustomerId = @senderId, @TranId = @tranId + + IF @@TRANCOUNT > 0 + COMMIT TRANSACTION; + + SELECT 0 errorCode + ,'Transaction has been sent successfully' msg + ,@tranId id + ,@controlNo extra + ,ISNULL(@isRealTime, 0) extra2 + ,@hasSufficientBalance extra3 + + RETURN + + -- For BroadCast Notification + --EXEC ProcBroadCastMobile @Flag='TRANSACTION_SUCCESS', @RowId=@customerId, @ControlNo=@controlNo, @CustomerId= @customerId + END +END TRY + +BEGIN CATCH + IF @@TRANCOUNT <> 0 + ROLLBACK TRANSACTION; + + DECLARE @errorMessage VARCHAR(MAX); + + SET @errorMessage = ERROR_MESSAGE(); + + EXEC proc_errorHandler 1 + ,@errorMessage + ,@user; +END CATCH + diff --git a/ReferEarn/proc_get_exRate_master.sql b/ReferEarn/proc_get_exRate_master.sql new file mode 100644 index 0000000..0ca7acc --- /dev/null +++ b/ReferEarn/proc_get_exRate_master.sql @@ -0,0 +1,917 @@ + + +ALTER PROC [dbo].[proc_get_exRate_master] ( + @flag VARCHAR(20) + ,@user VARCHAR(100) = NULL + ,@sCountryId INT = NULL + ,@sAgent INT = NULL + ,@sSuperAgent INT = NULL + ,@sBranch INT = NULL + ,@senderId BIGINT = NULL + ,@collCurr VARCHAR(5) = NULL + ,@pCountryId INT = NULL + ,@pCountry VARCHAR(50) = NULL + ,@pAgent INT = NULL + ,@pCurr VARCHAR(5) = NULL + ,@deliveryMethodId INT = NULL + ,@cAmt MONEY = NULL + ,@pAmt MONEY = NULL + ,@calBy CHAR(1) = NULL + ,@couponCode VARCHAR(30) = NULL + ,@schemeId INT = NULL + ,@payOutPartner INT = NULL + ,@paymentType VARCHAR(50) = NULL + ,@cardOnline VARCHAR(10) = NULL + ,@tpExRate FLOAT = NULL + ,@isManualSc CHAR(1) = NULL + ,@manualSc MONEY = NULL + ,@ProcessFor VARCHAR(20) = NULL + ,@discountedFee MONEY = NULL + ) +AS +SET NOCOUNT ON; +SET XACT_ABORT ON; + +----------------------------------------- +--Sep 22 -> #109 ->Change the logic to choose highest Rate in case of Nepal +-- #101 , #361 - Mobile Changes for Multi-Lingual +-- #1526 - Post production fixes for Redeem & Earn +-- #1590 - Customer Loyalty +-- #5968 - sc revised +-------------------------------------------- +BEGIN + DECLARE @scValue MONEY + ,@scAction CHAR(2) + ,@scOffer MONEY + ,@exRateOffer FLOAT + ,@scDiscount MONEY + DECLARE @place INT + ,@currDecimal INT + ,@collMode VARCHAR(30) + ,@sendingCustType VARCHAR(30) + ,@msg VARCHAR(150) + ,@errorCode INT + DECLARE @exRateCalByPartner BIT + ,@pSuperAgent INT + ,@serviceCharge MONEY + ,@serviceChargetmp MONEY + ,@tAmt MONEY + ,@pSuperAgentName VARCHAR(100) + ,@pBranch INT + DECLARE @pAgentName VARCHAR(100) + ,@pBranchName VARCHAR(100) + ,@exRate FLOAT + ,@pCurrHoMargin FLOAT + ,@FOREX_SESSION_ID VARCHAR(40) + DECLARE @tranCount INT = 0 + ,@schemeCount INT = 0 + ,@schemeAppliedMsg VARCHAR(100) = '' + ,@isFirstTran CHAR(1) = 'N' + ,@createdFrom CHAR(1) = NULL + ,@isEligible CHAR(1) = NULL + ,@introducer VARCHAR(25) = NULL + + --IF @ProcessFor IN ('send') + --BEGIN + IF ISNULL(@user, 'onlinedefault') <> 'onlinedefault' --OR @user is not null + BEGIN + SET @senderId = ( + SELECT customerId + FROM mobile_userRegistration(NOLOCK) + WHERE username = @user + ) + EXEC PROC_Customer_LoyaltyV2 @flag = 'check-eligible-v2' + ,@isEligible = @isEligible OUT + ,@referralCode = @introducer + ,@tranCount = @trancount OUT + ,@schemeCount = @schemeCount OUT + ,@customerId = @senderId + ,@createdFrom = 'M' + + IF NOT EXISTS ( + SELECT 1 + FROM ( + SELECT TOP 1 customerId + FROM TRANSENDERS TS(NOLOCK) + INNER JOIN remittran(NOLOCK) rt ON rt.id = ts.tranId + WHERE customerId = @SenderId + AND rt.tranStatus <> 'CANCEL' AND rt.tranType='M' + + UNION ALL + + SELECT TOP 1 customerId + FROM TRANSENDERSTEMP TT(NOLOCK) + INNER JOIN remittrantemp(NOLOCK) rt ON rt.id = tt.tranId + WHERE customerId = @SenderId + AND rt.tranStatus <> 'CANCEL' AND rt.tranType='M' + ) a + WHERE customerId = @SenderId + ) + BEGIN + SET @isFirstTran = 'Y' + END + + END + print '@isFirstTran' + '-> ' + @isFirstTran + SELECT @createdFrom = serviceUsedFor + FROM customerMaster(NOLOCK) + WHERE customerId = @senderId + + SET @sCountryId = 233 + + IF ISNULL(@pCountryId, 0) = 0 + SELECT @pCountryId = countryId + FROM countryMaster(NOLOCK) + WHERE COUNTRYNAME = @pCountry + + --IF (@ProcessFor = 'send') + --BEGIN + --IF NOT EXISTS ( + -- SELECT 1 + -- FROM ( + -- SELECT TOP 1 customerId + -- FROM TRANSENDERS TS(NOLOCK) + -- INNER JOIN remittran(NOLOCK) rt ON rt.id = ts.tranId + -- WHERE customerId = @SenderId + -- AND rt.tranStatus <> 'CANCEL' AND rt.tranType='M' + + -- UNION ALL + + -- SELECT TOP 1 customerId + -- FROM TRANSENDERSTEMP TT(NOLOCK) + -- INNER JOIN remittrantemp(NOLOCK) rt ON rt.id = tt.tranId + -- WHERE customerId = @SenderId + -- AND rt.tranStatus <> 'CANCEL' AND rt.tranType='M' + -- ) a + -- WHERE customerId = @SenderId + -- ) + --BEGIN + -- SET @isFirstTran = 'Y' + --END +-- END + IF dbo.FNA_GET_AVAILABLE_BALANCE_POINTS(@senderId) < ISNULL(@discountedFee, 0) + BEGIN + SELECT '1' ErrorCode + ,'You do not have sufficient points for redeem!' Msg + ,NULL id + + RETURN + END + + IF @flag = 'False' + AND @ProcessFor IN ('dashboard') + BEGIN + SELECT @payoutPartner = AGENTID + ,@exRateCalByPartner = ISNULL(exRateCalByPartner, 0) + FROM TblPartnerwiseCountry(NOLOCK) + WHERE CountryId = @pCountryId + AND IsActive = 1 + AND ISNULL(IsMobileEnabled, 0) = 1 + AND ISNULL(PaymentMethod, @deliveryMethodId) = @deliveryMethodId + END + ELSE + BEGIN + SELECT @payoutPartner = AGENTID + ,@exRateCalByPartner = ISNULL(exRateCalByPartner, 0) + FROM TblPartnerwiseCountry(NOLOCK) + WHERE CountryId = @pCountryId + AND IsActive = 1 + AND ISNULL(PaymentMethod, @deliveryMethodId) = @deliveryMethodId + END + PRINT '@payoutPartner' + PRINT @payoutPartner; + IF @payoutPartner IS NOT NULL + BEGIN + --GET PAYOUT AGENT DETAILS + SELECT @PAGENT = AGENTID + FROM AGENTMASTER(NOLOCK) + WHERE PARENTID = @payoutPartner + AND ISNULL(ISSETTLINGAGENT, 'N') = 'Y'; + + SELECT @pSuperAgent = sSuperAgent + ,@pSuperAgentName = sSuperAgentName + ,@pAgent = sAgent + ,@pAgentName = sAgentName + ,@pBranch = sBranch + ,@pBranchName = sBranchName + FROM dbo.FNAGetBranchFullDetails(@PAGENT) + END + ELSE + BEGIN + SELECT '1' ErrorCode + ,'Partner not yet mapped for the selected country!' Msg + ,NULL id + + RETURN + END + + DECLARE @rowId INT + + SELECT @scValue = 0 + ,@scOffer = 0 + ,@exRateOffer = 0 + ,@scDiscount = 0 + + SELECT @place = place + ,@currDecimal = currDecimal + FROM currencyPayoutRound WITH (NOLOCK) + WHERE ISNULL(isDeleted, 'N') = 'N' + AND currency = @pCurr + AND ISNULL(tranType, @deliveryMethodId) = @deliveryMethodId + + SET @currDecimal = ISNULL(@currDecimal, 0) + + IF @pCurr IS NULL + BEGIN + SELECT '2' ErrorCode + ,'Currency not been defined yet for receiving country' Msg + ,NULL id + + RETURN + END + + IF (ISNULL(@discountedFee, 0) <> FLOOR(ISNULL(@discountedFee, 0))) + BEGIN + SELECT '9' ErrorCode + ,'Discount Fee cannot be in decimal points.' Msg + ,NULL id + + RETURN + END + + pRINT '@pAgent'; + --pRINT @pAgent; + + IF @flag = 'false' + BEGIN + IF @pCountryId = 151 + AND @deliveryMethodId = 1 + BEGIN + SELECT AgentId + INTO #AgentList + FROM agentMaster(NOLOCK) + WHERE extCode = 'NP ANYWHERE' + PRINT @sCountryId; + PRINT @sAgent; + PRINT @sBranch; + PRINT @collCurr; + PRINT @pCountryId; + PRINT @pCurr; + PRINT @deliveryMethodId; + SELECT @exRate = customerRate + ,@pCurrHoMargin = pCurrHoMargin + FROM ( + SELECT ROW_NUMBER() OVER ( + ORDER BY CUSTOMERRATE DESC + ) ROW_NUM + ,CUSTOMERRATE + ,pCurrHoMargin + FROM #AgentList A + CROSS APPLY dbo.FNAGetExRate(@sCountryId, @sAgent, @sBranch, @collCurr, @pCountryId, AgentId, @pCurr, @deliveryMethodId) FN + ) X + WHERE X.ROW_NUM = 1 + END + ELSE + BEGIN + SELECT @exRate = customerRate + ,@pCurrHoMargin = pCurrHoMargin + FROM dbo.FNAGetExRate(@sCountryId, @sAgent, @sBranch, @collCurr, @pCountryId, @pAgent, @pCurr, @deliveryMethodId) + END + + IF ISNULL(@exRate, 0) = 0 + BEGIN + SELECT '3' ErrorCode + ,'Exchange rate not defined yet for receiving currency (' + @pCurr + ')' Msg + ,NULL id + + RETURN + END + + + PRINT '@isFirstTran:' + CAST( @isFirstTran AS VARCHAR); + PRINT '@isEligible:' + CAST( @isEligible AS VARCHAR); + PRINT '@tranCount:' + CAST( @tranCount AS VARCHAR); + PRINT '@@schemeCount:' + CAST( @schemeCount AS VARCHAR); + IF @calBy = 'C' + BEGIN + IF ( @tranCount >= @schemeCount + AND ISNULL(@user, 'onlinedefault') <> 'onlinedefault' + --AND ISNULL(@ProcessFor, '') = 'send' + AND @isEligible = 'Y' + ) + OR (@isFirstTran = 'Y') + BEGIN + SET @serviceCharge = 0 + + IF @isFirstTran = 'Y' + BEGIN + SET @schemeAppliedMsg = 'Enjoy zero (0) service charge due to First Transaction!'; + END + ELSE + SET @schemeAppliedMsg = 'Enjoy zero (0) service charge due to Loyalty Scheme!'; + END + ELSE + BEGIN + IF ISNULL(@isManualSc, 'N') = 'N' + BEGIN + SELECT @serviceChargetmp = isnull(amount, 0) + FROM [dbo].FNAGetServiceCharge(@sCountryId, @sSuperAgent, @sAgent, @sBranch, @pCountryId, @pSuperAgent, @pAgent, @pBranch, @deliveryMethodId, @cAmt, @collCurr) + + --IF (@discountedFee > '0.00') + -- AND (@serviceChargetmp < @discountedFee) + --BEGIN + -- SELECT '8' ErrorCode + -- ,'Redeem point can not be more than service charge' Msg + -- ,NULL id + + -- RETURN; + --END + --ELSE + --BEGIN + -- SELECT @serviceCharge = @serviceChargetmp - ISNULL(@discountedFee, 0) + --END + END + ELSE + BEGIN + SET @serviceCharge = ISNULL(@manualSc, 0) + END + + IF @serviceCharge IS NULL + AND ISNULL(@isManualSc, 'N') = 'N' + BEGIN + SELECT '4' ErrorCode + ,'Service charge not defined yet for receiving country' Msg + ,NULL id + + RETURN; + END + END + + IF @scAction = 'PD' -- Percent Discount + BEGIN + SET @scOffer = (@scValue / 100) * @serviceCharge + SET @scDiscount = (@scValue / 100) * @serviceCharge + END + ELSE IF @scAction = 'FD' -- Flat Discount + BEGIN + SET @scDiscount = @scValue + END + ELSE IF @scAction = 'FV' -- Fixed Value + BEGIN + SET @scOffer = @scValue + SET @scDiscount = @serviceCharge - @scValue + END + + SET @tAmt = @cAmt - @serviceCharge + @scDiscount + ISNULL(@discountedFee, 0) + SET @pAmt = @tAmt * (@exRate + @exRateOffer) + SET @pAmt = FLOOR(@pAmt) + END + ELSE + BEGIN + --SET @tAmt = CEILING(@pAmt/(@exRate + @exRateOffer), 0) + SET @tAmt = CEILING(@pAmt / (@exRate + @exRateOffer)) + + IF ( + @tranCount >= @schemeCount + AND ISNULL(@user, 'onlinedefault') <> 'onlinedefault' + --AND ISNULL(@ProcessFor, '') = 'send' + AND @isEligible = 'Y' + ) + OR (@isFirstTran = 'Y') + BEGIN + SET @serviceCharge = 0 + + IF @isFirstTran = 'Y' + BEGIN + SET @schemeAppliedMsg = 'Enjoy zero (0) service charge due to First Transaction!'; + END + ELSE + SET @schemeAppliedMsg = 'Enjoy zero (0) service charge due to Loyalty Scheme!'; + END + ELSE + BEGIN + IF ISNULL(@isManualSc, 'N') = 'N' + BEGIN + SELECT @serviceChargetmp = isnull(amount, 0) + FROM [dbo].FNAGetServiceCharge(@sCountryId, @sSuperAgent, @sAgent, @sBranch, @pCountryId, @pSuperAgent, @pAgent, @pBranch, @deliveryMethodId, @tAmt, @collCurr) + + --IF (@discountedFee > '0.00') + -- AND (@serviceChargetmp < @discountedFee) + --BEGIN + -- SELECT '8' ErrorCode + -- ,'Redeem point can not be more than service charge' Msg + -- ,NULL id + + -- RETURN; + --END + --ELSE + --BEGIN + -- SELECT @serviceCharge = @serviceChargetmp - ISNULL(@discountedFee, 0) + --END + END + ELSE + BEGIN + SET @serviceCharge = ISNULL(@manualSc, 0) + END + + IF @serviceCharge IS NULL + BEGIN + SELECT '4' ErrorCode + ,'Service charge not defined yet for receiving country' Msg + ,NULL id + + RETURN; + END + END + + IF @scAction = 'PD' + BEGIN + SET @scOffer = (@scValue / 100) * @serviceCharge + SET @scDiscount = (@scValue / 100) * @serviceCharge + END + ELSE IF @scAction = 'FD' + BEGIN + SET @scDiscount = @scValue + END + ELSE IF @scAction = 'FV' + BEGIN + SET @scOffer = @scValue + SET @scDiscount = @serviceCharge - @scValue + END + + SET @cAmt = (@tAmt + @serviceCharge - @scDiscount) - ISNULL(@discountedFee, 0) + SET @cAmt = CEILING(@cAmt) + END + + --4. Validate Country Sending Limit + EXEC PROC_CHECKCOUNTRYLIMIT @flag = 's-limit' + ,@cAmt = @cAmt + ,@pAmt = @pAmt + ,@sCountryId = @sCountryId + ,@collMode = @collMode + ,@deliveryMethod = @deliveryMethodId + ,@sendingCustType = @sendingCustType + ,@pCountryId = @pCountryId + ,@pCurr = @pCurr + ,@collCurr = @collCurr + ,@pAgent = @pAgent + ,@sAgent = @sAgent + ,@sBranch = @sBranch + ,@msg = @msg OUT + ,@errorCode = @errorCode OUT + + IF @errorCode <> '0' + BEGIN + SELECT @errorCode ErrorCode + ,@msg Msg + + RETURN; + END + + --Validate Country Sending Limit END + --5. Validate Country Receiving Limit + EXEC PROC_CHECKCOUNTRYLIMIT @flag = 'r-limit' + ,@cAmt = @cAmt + ,@pAmt = @pAmt + ,@sCountryId = @sCountryId + ,@collMode = @collMode + ,@deliveryMethod = @deliveryMethodId + ,@sendingCustType = @sendingCustType + ,@pCountryId = @pCountryId + ,@pCurr = @pCurr + ,@collCurr = @collCurr + ,@pAgent = @pAgent + ,@sAgent = @sAgent + ,@sBranch = @sBranch + ,@msg = @msg OUT + ,@errorCode = @errorCode OUT + + IF @errorCode <> '0' + BEGIN + SELECT @errorCode ErrorCode + ,@msg Msg + + RETURN; + END + + IF ISNULL(@ProcessFor, '') = 'send' + BEGIN + SET @FOREX_SESSION_ID = NEWID() + + ----## lock ex rate for individual txn + UPDATE exRateCalcHistory + SET isExpired = 1 + WHERE CUSTOMER_ID = @senderId + AND isExpired = 0 + + PRINT @serviceCharge; + + INSERT INTO exRateCalcHistory ( + CUSTOMER_ID + ,[USER_ID] + ,FOREX_SESSION_ID + ,serviceCharge + ,pAmt + ,customerRate + ,sCurrCostRate + ,sCurrHoMargin + ,sCurrAgentMargin + ,pCurrCostRate + ,pCurrHoMargin + ,pCurrAgentMargin + ,agentCrossSettRate + ,createdDate + ,isExpired + ,tAmt + ,schemeId + ,discountedFee + ,sharingValue + ) + SELECT @senderId + ,@user + ,@FOREX_SESSION_ID + ,@serviceCharge + ,@pAmt + ,@exRate + ,1 + ,0 + ,0 + ,@pCurrHoMargin + @exRate + ,@pCurrHoMargin + ,0 + ,@exRate + ,GETDATE() + ,0 + ,@tAmt + ,@schemeId + ,ISNULL(@discountedFee, 0) + ,@schemeCount + END + + SET @msg = 'Success' + + SELECT @errorCode ErrorCode + ,@msg Msg + ,scCharge = @serviceCharge + ,exRate = @exRate + ,place = @place + ,pCurr = @pCurr + ,currDecimal = @currDecimal + ,pAmt = @pAmt + ,sAmt = @tAmt + ,place = @place + ,disc = 0.00 + ,collAmt = @cAmt + ,exRateOffer = @exRateOffer + ,scOffer = @scDiscount + ,scAction = @scAction + ,scValue = @scValue + ,scDiscount = @scDiscount + ,tpExRate = 0 + ,amountLimitPerDay = 0 + ,amountLimitPerTran = 0 + ,customerTotalSentAmt = 0 + ,exRateDisplay = @exRate + ,EXRATEID = @FOREX_SESSION_ID + ,maxAmountLimitPerTran = 0 + ,minAmountLimitPerTran = 0 + ,PerTxnMinimumAmt = 0 + ,schemeAppliedMsg = @schemeAppliedMsg + ,schemeId = @schemeId + ,tpPCurr = @pCurr + ,collCurr = @collCurr + ,ForexSessionId = @FOREX_SESSION_ID + ,discountedFee = ISNULL(@discountedFee, 0) + END + ELSE IF @FLAG = 'true' + BEGIN + IF ISNULL(@tpExRate, 0) = 0 + BEGIN + SELECT '5' ErrorCode + ,'Third Party Exchange rate fetching error for currency (' + @pCurr + ')' Msg + + RETURN + END + + DECLARE @exRateDonga FLOAT, @exRateBRAC FLOAT + + PRINT @sCountryId; + PRINT @sCountryId; + PRINT @sAgent; + PRINT @sBranch; + PRINT @collCurr; + PRINT @pCountryId; + PRINT @pAgent; + PRINT @pCurr; + PRINT @deliveryMethodId; + + SELECT @pCurrHoMargin = pCurrHoMargin + FROM dbo.FNAGetExRate(@sCountryId, @sAgent, @sBranch, @collCurr, @pCountryId, @pAgent, @pCurr, @deliveryMethodId) + + SELECT @exRate = @tpExRate - ISNULL(@pCurrHoMargin, 0) + + IF ISNULL(@exRate, 0) = 0 + BEGIN + SELECT '3' ErrorCode + ,'Exchange rate not defined yet for receiving currency (' + @pCurr + ')' Msg + ,NULL id + + RETURN + END + + IF @user = 'onlinedefault' + AND @pCountryId = 203 + BEGIN + SELECT @exRateDonga = dbo.FNAGetCustomerRate(113, 0, 394395, 'JPY', 203, 394133, 'VND', 1) + + IF @exRateDonga > @exRate + SET @exRate = @exRateDonga + END + + + IF @user = 'onlinedefault' + AND @pCountryId = 16 + BEGIN + SELECT @exRateBRAC = dbo.FNAGetCustomerRate(113, 0, 394395, 'JPY', 16, 394414, 'BDT', 1) + + IF @exRateBRAC > @exRate + SET @exRate = @exRateBRAC + END + + IF @calBy = 'C' + BEGIN + IF ( + @tranCount = @schemeCount + AND ISNULL(@user, 'onlinedefault') <> 'onlinedefault' + -- AND ISNULL(@ProcessFor, '') = 'send' + AND @isEligible = 'Y' + ) + OR (@isFirstTran = 'Y') + BEGIN + SET @serviceCharge = 0 + + IF @isFirstTran = 'Y' + BEGIN + SET @schemeAppliedMsg = 'Enjoy zero (0) service charge due to First Transaction!'; + END + ELSE + SET @schemeAppliedMsg = 'Enjoy zero (0) service charge due to Loyalty Scheme!'; + END + ELSE + BEGIN + IF ISNULL(@isManualSc, 'N') = 'N' + BEGIN + SELECT @serviceChargetmp = ISNULL(amount, 0) + FROM [dbo].FNAGetServiceCharge(@sCountryId, @sSuperAgent, @sAgent, @sBranch, @pCountryId, @pSuperAgent, @pAgent, @pBranch, @deliveryMethodId, @cAmt, @collCurr) + + --IF (@discountedFee > '0.00') + -- AND (@serviceChargetmp < @discountedFee) + --BEGIN + -- SELECT '8' ErrorCode + -- ,'Redeem points can not be more than service charge' Msg + -- ,NULL id + + -- RETURN; + --END + --ELSE + --BEGIN + -- SELECT @serviceCharge = ISNULL(@serviceChargetmp, 0) - ISNULL(@discountedFee, 0) + --END + END + ELSE + BEGIN + SET @serviceCharge = ISNULL(@manualSc, 0) + END + + IF @serviceCharge IS NULL + AND ISNULL(@isManualSc, 'N') = 'N' + BEGIN + SELECT '4' ErrorCode + ,'Service charge not defined yet for receiving country' Msg + ,NULL id + + RETURN; + END + END + + IF @scAction = 'PD' -- Percent Discount + BEGIN + SET @scOffer = (@scValue / 100) * @serviceCharge + SET @scDiscount = (@scValue / 100) * @serviceCharge + END + ELSE IF @scAction = 'FD' -- Flat Discount + BEGIN + SET @scDiscount = @scValue + END + ELSE IF @scAction = 'FV' -- Fixed Value + BEGIN + SET @scOffer = @scValue + SET @scDiscount = @serviceCharge - @scValue + END + + SET @tAmt = @cAmt - @serviceCharge + @scDiscount + ISNULL(@discountedFee, 0) + SET @pAmt = @tAmt * (@exRate + @exRateOffer) + SET @pAmt = FLOOR(@pAmt) + END + ELSE + BEGIN + SET @tAmt = CEILING(@pAmt / (@exRate + @exRateOffer)) + + IF ISNULL(@isManualSc, 'N') = 'N' + BEGIN + SELECT @serviceChargetmp = isnull(amount, 0) + FROM [dbo].FNAGetServiceCharge(@sCountryId, @sSuperAgent, @sAgent, @sBranch, @pCountryId, @pSuperAgent, @pAgent, @pBranch, @deliveryMethodId, @tAmt, @collCurr) + + --IF (@discountedFee > '0.00') + -- AND (@serviceCharge < @discountedFee) + --BEGIN + -- SELECT '8' ErrorCode + -- ,'Redeem points can not be more than service charge' Msg + -- ,NULL id + + -- RETURN; + --END + --ELSE + --BEGIN + -- SELECT @serviceCharge = ISNULL(@serviceChargetmp, 0) - ISNULL(@discountedFee, 0) + --END + END + ELSE + BEGIN + SET @serviceCharge = ISNULL(@manualSc, 0) + END + + IF @serviceCharge IS NULL + BEGIN + SELECT '4' ErrorCode + ,'Service charge not defined yet for receiving country' Msg + ,NULL id + + RETURN; + END + + IF @scAction = 'PD' + BEGIN + SET @scOffer = (@scValue / 100) * @serviceCharge + SET @scDiscount = (@scValue / 100) * @serviceCharge + END + ELSE IF @scAction = 'FD' + BEGIN + SET @scDiscount = @scValue + END + ELSE IF @scAction = 'FV' + BEGIN + SET @scOffer = @scValue + SET @scDiscount = @serviceCharge - @scValue + END + + SET @cAmt = (@tAmt + @serviceCharge - @scDiscount)-- - ISNULL(@discountedFee, 0) + SET @cAmt = ROUND(@cAmt, @currDecimal) + + --New logic for calculating new tAmt and pAmt after adding discount fee + SET @tAmt = @tAmt + ISNULL(@discountedFee, 0) + SET @pAmt = @tAmt * (@exRate + @exRateOffer) + SET @pAmt = FLOOR(@pAmt) + END + + --4. Validate Country Sending Limit + EXEC PROC_CHECKCOUNTRYLIMIT @flag = 's-limit' + ,@cAmt = @cAmt + ,@pAmt = @pAmt + ,@sCountryId = @sCountryId + ,@collMode = @collMode + ,@deliveryMethod = @deliveryMethodId + ,@sendingCustType = @sendingCustType + ,@pCountryId = @pCountryId + ,@pCurr = @pCurr + ,@collCurr = @collCurr + ,@pAgent = @pAgent + ,@sAgent = @sAgent + ,@sBranch = @sBranch + ,@msg = @msg OUT + ,@errorCode = @errorCode OUT + + IF @errorCode <> '0' + BEGIN + SELECT @errorCode ErrorCode + ,@msg Msg + + RETURN; + END + + --Validate Country Sending Limit END + --5. Validate Country Receiving Limit + EXEC PROC_CHECKCOUNTRYLIMIT @flag = 'r-limit' + ,@cAmt = @cAmt + ,@pAmt = @pAmt + ,@sCountryId = @sCountryId + ,@collMode = @collMode + ,@deliveryMethod = @deliveryMethodId + ,@sendingCustType = @sendingCustType + ,@pCountryId = @pCountryId + ,@pCurr = @pCurr + ,@collCurr = @collCurr + ,@pAgent = @pAgent + ,@sAgent = @sAgent + ,@sBranch = @sBranch + ,@msg = @msg OUT + ,@errorCode = @errorCode OUT + + IF @errorCode <> '0' + BEGIN + SELECT @errorCode ErrorCode + ,@msg Msg + + RETURN; + END + + --Validate Country Receiving Limit + IF ISNULL(@ProcessFor, '') = 'send' + BEGIN + SET @FOREX_SESSION_ID = NEWID() + + ----## lock ex rate for individual txn + UPDATE exRateCalcHistory + SET isExpired = 1 + WHERE CUSTOMER_ID = @senderId + AND isExpired = 0 + + INSERT INTO exRateCalcHistory ( + CUSTOMER_ID + ,[USER_ID] + ,FOREX_SESSION_ID + ,serviceCharge + ,pAmt + ,customerRate + ,sCurrCostRate + ,sCurrHoMargin + ,sCurrAgentMargin + ,pCurrCostRate + ,pCurrHoMargin + ,pCurrAgentMargin + ,agentCrossSettRate + ,createdDate + ,isExpired + ,tAmt + ,schemeId + ,discountedFee + ,sharingValue + ) + SELECT @senderId + ,@user + ,@FOREX_SESSION_ID + ,@serviceCharge + ,@pAmt + ,@exRate + ,1 + ,0 + ,0 + ,@pCurrHoMargin + @exRate + ,@pCurrHoMargin + ,0 + ,@exRate + ,GETDATE() + ,0 + ,@tAmt + ,@schemeId + ,ISNULL(@discountedFee, 0) + ,@schemeCount + END + + SET @msg = 'Success' + + SELECT @errorCode ErrorCode + ,@msg Msg + ,scCharge = @serviceCharge + ,exRate = @exRate + ,place = @place + ,pCurr = @pCurr + ,currDecimal = @currDecimal + ,pAmt = @pAmt + ,sAmt = @tAmt + ,place = @place + ,disc = 0.00 + ,collAmt = @cAmt + ,exRateOffer = @exRateOffer + ,scOffer = @scDiscount + ,scAction = @scAction + ,scValue = @scValue + ,scDiscount = @scDiscount + ,tpExRate = @tpExRate + ,amountLimitPerDay = 0 + ,amountLimitPerTran = 0 + ,customerTotalSentAmt = 0 + ,exRateDisplay = @exRate + ,EXRATEID = @FOREX_SESSION_ID + ,maxAmountLimitPerTran = 0 + ,minAmountLimitPerTran = 0 + ,PerTxnMinimumAmt = 0 + ,schemeAppliedMsg = @schemeAppliedMsg + ,schemeId = @schemeId + ,tpPCurr = @pCurr + ,collCurr = @collCurr + ,ForexSessionId = @FOREX_SESSION_ID + ,discountedFee = ISNULL(@discountedFee, 0) + END +END + diff --git a/StoredProc/JsonRx_Proc_UserRegistration_V2.sql b/StoredProc/JsonRx_Proc_UserRegistration_V2.sql index 01b62d6742586fc91993cdc991ea2308bac80ee0..bd1e343271485d18bc0182eee4419b8ee0e8aa10 100644 GIT binary patch delta 50 zcmX>ypYhOq#tC0!jTsCX^cjp841m~}L4m=9!3u~i!KBe!pYh0i#tC2KjTj6W^cjp841m~}K>^4!WUyi|WiSVl#tg=r1sPYnFdA;&>&nUn E07YvHH2?qr diff --git a/StoredProc/PROC_GENERATE_MEMBERSHIP_ID.sql b/StoredProc/PROC_GENERATE_MEMBERSHIP_ID.sql index 941b552e8fe2a04f8d900cf9b4f801623f60854f..d09d49c3630a2f8b399df7ede5440b1d5eb23a60 100644 GIT binary patch delta 91 zcmbPc_`z_45fgVVLq0*CZnkC0WSQ(B%rcpaUug0HwjGlv33YAO;HcxDJdaag J^9ykfMgXTC55)ig diff --git a/StoredProc/proc_SendTransaction.sql b/StoredProc/proc_SendTransaction.sql new file mode 100644 index 0000000..004df57 --- /dev/null +++ b/StoredProc/proc_SendTransaction.sql @@ -0,0 +1,1598 @@ +USE [FastMoneyPro_Remit] +GO +/****** Object: StoredProcedure [dbo].[proc_SendTransaction] Script Date: 9/4/2023 4:24:28 PM ******/ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + +ALTER PROC [dbo].[proc_SendTransaction] + @User VARCHAR(100) = NULL + ,@SenderId INT = NULL + ,@sIpAddress VARCHAR(20) = NULL + ,@ReceiverId INT = NULL + ,@rFirstName VARCHAR(50) = NULL + ,@rMiddleName VARCHAR(50) = NULL + ,@rLastName VARCHAR(50) = NULL + ,@rIdType VARCHAR(50) = NULL + ,@rIdNo VARCHAR(30) = NULL + ,@rIdIssue VARCHAR(10) = NULL + ,@rIdExpiry VARCHAR(10) = NULL + ,@rDob VARCHAR(10) = NULL + ,@rMobileNo VARCHAR(20) = NULL + ,@rNativeCountry VARCHAR(50) = NULL + ,@rStateId INT = NULL + ,@rDistrictId INT = NULL + ,@rAddress VARCHAR(100) = NULL + ,@rCity VARCHAR(50) = NULL + ,@rEmail VARCHAR(50) = NULL + ,@rAccountNo VARCHAR(50) = NULL + ,@sCountryId INT = NULL + ,@pCountryId INT = NULL + ,@deliveryMethodId INT = NULL + ,@pBankId BIGINT = NULL + ,@pBranchId BIGINT = NULL + ,@collCurr VARCHAR(3) = NULL + ,@payoutCurr VARCHAR(3) = NULL + ,@collAmt MONEY = NULL + ,@payoutAmt MONEY = NULL + ,@transferAmt MONEY = NULL + ,@exRate MONEY = NULL + ,@calBy CHAR(1) = NULL + ,@tpExRate DECIMAL(30, 12) = NULL + ,@payOutPartnerId BIGINT = NULL + ,@forexSessionId VARCHAR(40) = NULL + ,@kftcLogId BIGINT = NULL + ,@paymentType VARCHAR(20) = NULL + ,@scDiscount MONEY = NULL + ,@PurposeOfRemittance VARCHAR(100) = NULL + ,@SourceOfFund VARCHAR(100) = NULL + ,@PurposeOfRemittanceOther VARCHAR(100) = NULL + ,@SourceOfFundOther VARCHAR(100) = NULL + ,@RelWithSender VARCHAR(200) = NULL + ,@SourceType CHAR(1) = NULL + ,@schemeId BIGINT = NULL + ,@processId VARCHAR(40) = NULL + ,@flag VARCHAR(100) + ,@controlNo VARCHAR(20) = NULL + ,@PartnerPin VARCHAR(20) = NULL + ,@PartnerId VARCHAR(20) = NULL + ,@tranId BIGINT = NULL + ,@errorCode INT = NULL + ,@Message NVARCHAR(500) = NULL + ,@sAdd2 NVARCHAR(150) = NULL + ,@goodsOrigin VARCHAR(100) = NULL + ,@goodsType VARCHAR(100) = NULL + ,@portOfShipment VARCHAR(100) = NULL + ,@discountedFee MONEY = NULL +AS +----------------------------------------------------------- +-- For Broadcast notification , @flag = 'send' +-- #101 - MOBILE CHANGES , #361 - MULTI-LINGUAL +-- #476 - Changes in dotransaction Payment of Import Good +-- #101 - set error code as 19 for unapproved customer +-- Disable ProcBroadCastMobile @Flag='TRANSACTION_SUCCESS' +-- #495 Added condition for @sourceOfFundOther and @purposeOfRemittanceOther +-- Fix issue related with Bank id invalid add @pBankId_O,@payOutPartnerId_O +--#643 Mobile transaction wrongly flag for Questionnaire require due to Visa Status +-- #717 - insert visaStatus in tranSendersTemp +-- check mobileApprovedDate instead of approved date +-- #756 Duplicate pin generated +-- insert into controllist for M +--#767 Relationship displayed blank for mobile transaction. +-- #767 relationship other +-- #790 Change column to store relationship others for Mobile transaction +--#810 Missing sending commission in mobile Txn voucher +--#831 Disabled customer allowed to do Mobile txn +--#820 Donga wrong commission for mobile txn +--#Bug #1192 Sender Expiry not check from Mobile Transaction +-- #1003 - Reward Points, @flag = 'Send' +-- #1498 - TF NO Balance +-- #1590 - Customer Loyalty +-- #11358 - show branch routing number for mobile transaction in search transaction , pbankBranchName +-- #12985 - invalid routing no case +----------------------------------------------------------- +SET NOCOUNT ON; +SET XACT_ABORT ON; + +BEGIN TRY + DECLARE @complianceRuleId INT + ,@cAmtUSD MONEY + ,@complienceMessage VARCHAR(1000) = NULL + ,@shortMsg VARCHAR(100) = NULL + ,@complienceErrorCode TINYINT = NULL + ,@compErrorCode INT + ,@discountType VARCHAR(2) = NULL + ,@discountvalue MONEY = NULL + ,@couponType VARCHAR(3) = NULL + ,@discountPercent MONEY = NULL + ,@couponName VARCHAR(20) = NULL + ,@ServiceCharge_Temp MONEY = NULL + ,@schemePremium MONEY = NULL + ,@customerType INT = NULL + ,@msg VARCHAR(MAX) = NULL + ,@pBankId_O BIGINT = @pBankId + ,@payOutPartnerId_O BIGINT = @payOutPartnerId + ,@RelWithSenderOthers VARCHAR(200) = NULL + ,@receiverName VARCHAR(100) = NULL + ,@createdFrom VARCHAR(10) = NULL + ,@tranCount INT = NULL + ,@schemeCount INT = NULL + ,@isEligible CHAR(1) = NULL + ,@schemeCodeId INT = NULL + ,@isFirstTran CHAR(1) = 'N' + ,@introducer VARCHAR(25) = NULL + + IF EXISTS ( + SELECT * + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @RelWithSender + AND TYPEID = 2100 + AND isActive = 'N' + ) + BEGIN + SELECT TOP 1 @receiverName = ISNULL(firstName, '') + ISNULL(' ' + middleName, '') + ISNULL(' ' + lastName1, '') + ISNULL(' ' + lastName2, '') + FROM dbo.receiverInformation RI(NOLOCK) + WHERE receiverId = @receiverId + + SET @msg = 'Please update the details of receiver [ ' + @receiverName + ' ] before performing transaction!'; + + EXEC proc_errorHandler 21 + ,@msg + ,NULL; + Rollback Transaction + RETURN; + END + + IF EXISTS ( + SELECT * + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @PurposeOfRemittance + AND TYPEID = 3800 + AND isActive = 'Y' + ) + BEGIN + SELECT @PurposeOfRemittance = detailTitle + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @PurposeOfRemittance + AND TYPEID = 3800 + END + + IF EXISTS ( + SELECT * + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @sourceOfFund + AND TYPEID = 3900 + AND isActive = 'Y' + ) + BEGIN + SELECT @sourceOfFund = detailTitle + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @sourceOfFund + AND TYPEID = 3900 + END + + SELECT @pcountryId = cm.countryId + ,@RelWithSenderOthers = ISNULL(relationOther, otherRelationDesc) + FROM receiverInformation RI(NOLOCK) + INNER JOIN countryMaster CM(NOLOCK) ON CM.countryName = RI.country + WHERE RI.receiverId = @ReceiverId + + IF EXISTS ( + SELECT * + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @RelWithSender + AND TYPEID = 2100 + AND isActive = 'Y' + ) + BEGIN + IF (@RelWithSender = '11339') + BEGIN + SET @RelWithSender = 'Other (please specify) :' + ISNULL(@RelWithSenderOthers, ''); + END + ELSE + BEGIN + SELECT @RelWithSender = detailTitle + FROM STATICDATAVALUE(NOLOCK) + WHERE VALUEID = @RelWithSender + AND TYPEID = 2100 + END + END + + DECLARE @isRealTime BIT = 0 , @TRANSFER_MODE varchar(10)=''; + + + SELECT @payOutPartnerId = AGENTID + ,@isRealTime = isRealTime + FROM TblPartnerwiseCountry(NOLOCK) + WHERE CountryId = @pCountryId + AND IsActive = 1 + AND ISNULL(PaymentMethod, @deliveryMethodId) = @deliveryMethodId + AND IsMobileEnabled = 1 + + IF @payOutPartnerId IS NULL + BEGIN + EXEC proc_errorHandler 3 + ,'Oops, something went wrong! Please perform the transaction again. Route is missing.' + ,NULL + + RETURN; + END + + IF EXISTS ( + SELECT * + FROM API_BANK_LIST_MASTER(NOLOCK) + WHERE MASTER_BANK_ID = @pBankId + AND IS_ACTIVE = '1' + ) + BEGIN + SELECT @pBankId = AB.BANK_ID ,@TRANSFER_MODE= ab.TRANSFER_MODE + FROM API_BANK_LIST AB(NOLOCK) + INNER JOIN API_BANK_LIST_MASTER ABM(NOLOCK) ON AB.JME_BANK_CODE = ABM.JME_BANK_CODE + WHERE MASTER_BANK_ID = @pBankId + AND ABM.IS_ACTIVE = '1' + AND AB.API_PARTNER_ID = @payOutPartnerId + END + + IF @flag = 'SEND' + BEGIN + IF NOT EXISTS ( + SELECT TOP 1 'X' + FROM dbo.customerMaster(NOLOCK) + WHERE username = @user + AND mobileApprovedDate IS NOT NULL + ) + BEGIN + EXEC proc_errorHandler 19 + ,'You are not authorized to perform transaction, please contact JME Support!' + ,NULL; + + RETURN; + END + + DECLARE @remittanceAllowed int,@idExpiryDate DATETIME + + SELECT @remittanceAllowed = remittanceAllowed,@idExpiryDate=idExpiryDate FROM customerMaster(NOLOCK) + WHERE CUSTOMERID = @SenderId + + IF ISNULL(@remittanceAllowed, 0) = '0' + BEGIN + SELECT @MSG = 'You are not authorized to perform transaction, please contact JME Support!' + + EXEC proc_errorHandler 19 + ,@MSG + ,NULL + + RETURN + END + + IF @idExpiryDate < GETDATE() + BEGIN + SELECT @MSG = 'Your ID with us has expired. Please upload new ID details in “Renew ID” or contact JME support.' + EXEC proc_errorHandler 22 + ,@MSG + ,NULL + RETURN; + END + DECLARE @kycStatus INT + + SELECT @kycStatus = kycStatus + FROM TBL_CUSTOMER_KYC(NOLOCK) + WHERE CUSTOMERID = @senderId + AND ISDELETED = 0 + --AND kycStatus=11044 + ORDER BY KYC_DATE + + IF ISNULL(@kycStatus, 0) <> 11044 + BEGIN + IF @kycStatus IS NOT NULL + SELECT @MSG = 'KYC for selected customer is not completed, it is in status:' + detailTitle + FROM staticDataValue(NOLOCK) + WHERE valueId = @kycStatus + ELSE + SELECT @MSG = 'Please complete KYC status first' + + EXEC proc_errorHandler 2 + ,@MSG + ,NULL; + + RETURN + END + + IF @paymentType IS NULL + SET @paymentType = 'WALLET' + + DECLARE @sCurrCostRate FLOAT + ,@sCurrHoMargin FLOAT + ,@pCurrCostRate FLOAT + ,@customerRate MONEY + ,@agentCrossSettRate FLOAT + ,@iServiceCharge MONEY + ,@iTAmt MONEY + ,@iPAmt MONEY + ,@place INT + ,@currDecimal INT + ,@agentAvlLimit MONEY + ,@serviceCharge MONEY + ,@sCountry VARCHAR(50) = 'Japan' + ,@sAgent BIGINT + ,@sAgentName VARCHAR(100) + ,@sBranch INT + ,@sBranchName VARCHAR(100) + ,@sSuperAgent INT + ,@sSuperAgentName VARCHAR(100) + ,@senderName VARCHAR(100) + ,@sIdNo VARCHAR(50) + ,@sIdType VARCHAR(50) + ,@sMobile VARCHAR(15) + ,@pAgent BIGINT + ,@pSuperAgent BIGINT + ,@pSuperAgentName VARCHAR(100) + ,@pAgentName VARCHAR(100) + ,@controlNoEncrypted VARCHAR(30) + ,@tempCompId BIGINT + ,@pBranch INT + ,@pBranchName VARCHAR(100) + ,@pCountry VARCHAR(100) + ,@RcreatedFrom VARCHAR(5) + ,@ROtpVerified BIT + + SELECT @sCountryId = 113 + ,@sBranch = 394395 + + SELECT @SenderId = customerId , + @createdFrom = createdFrom + FROM customerMaster(NOLOCK) + WHERE USERNAME = @User + + + IF NOT EXISTS(SELECT 1 FROM + (SELECT TOP 1 customerId FROM TRANSENDERS TS (NOLOCK) + inner join remittran (nolock) rt on rt.id = ts.tranId + WHERE customerId = @SenderId AND rt.tranStatus <> 'CANCEL' AND RT.tranType='M' + UNION ALL + SELECT TOP 1 customerId FROM TRANSENDERSTEMP TT (NOLOCK) + inner join remittrantemp (nolock) rt on rt.id = tt.tranId + WHERE customerId = @SenderId AND rt.tranStatus <> 'CANCEL' AND rt.tranType='M' + ) a where customerId = @SenderId + ) + BEGIN + SET @isFirstTran = 'Y' + END + + + SELECT @sAgent = sAgent + ,@sAgentName = sAgentName + ,@sBranch = sBranch + ,@sBranchName = sBranchName + ,@sSuperAgent = sSuperAgent + ,@sSuperAgentName = sSuperAgentName + FROM dbo.FNAGetBranchFullDetails(@sBranch) + + SELECT @pCountry = COUNTRYNAME + FROM COUNTRYMASTER(NOLOCK) + WHERE COUNTRYID = @pCountryId + + SELECT TOP 1 @pAgent = AM.agentId + --,@pCountryId = AM.agentCountryId + FROM agentMaster AM(NOLOCK) + WHERE AM.parentId = @payOutPartnerId + AND agentType = 2903 + AND AM.isSettlingAgent = 'Y' + AND AM.isApiPartner = 1 + + SELECT @pSuperAgentName = sSuperAgentName + ,@pSuperAgent = sSuperAgent + ,@pAgent = sAgent + ,@pAgentName = sAgentName + FROM dbo.FNAGetBranchFullDetails(@pAgent) + + SELECT @pBranch = @pAgent + ,@pBranchName = @pAgentName + + DECLARE @StateId INT + ,@DistrictId INT + + IF @receiverId IS NOT NULL + BEGIN + IF NOT EXISTS ( + SELECT '1' + FROM dbo.receiverInformation(NOLOCK) + WHERE receiverId = @ReceiverId + ) + BEGIN + EXEC proc_errorHandler 4 + ,'Receiver Data Not Match !' + ,NULL; + + RETURN; + END + + SELECT TOP 1 @receiverName = ISNULL(firstName, '') + ISNULL(' ' + middleName, '') + ISNULL(' ' + lastName1, '') + ISNULL(' ' + lastName2, '') + ,@StateId = AI.STATE_ID + ,@DistrictId = AC.CITY_ID + ,@RcreatedFrom = ISNULL(ri.createdFrom, 'C') + ,@ROtpVerified = ISNULL(ri.isOTPVerified, 0) + FROM dbo.receiverInformation RI(NOLOCK) + LEFT JOIN API_STATE_LIST AI(NOLOCK) ON AI.STATE_NAME = RI.STATE + AND AI.API_PARTNER_ID = @payOutPartnerId + LEFT JOIN API_CITY_LIST AC(NOLOCK) ON AC.STATE_ID = AI.STATE_ID + AND AC.CITY_NAME = RI.DISTRICT + WHERE receiverId = @receiverId + + IF(@RcreatedFrom='M' AND @ROtpVerified=0 ) + BEGIN + EXEC proc_errorHandler 4 + ,'Receiver Data Not Match !' + ,NULL; + RETURN; + END + END + ELSE + SET @receiverName = ISNULL(@rFirstName, '') + ISNULL(' ' + @rMiddleName, '') + ISNULL(' ' + @rLastName, '') + + IF @rFirstName IS NULL + AND @receiverId IS NULL + BEGIN + EXEC proc_errorHandler 5 + ,'Receiver name cannot be empty' + ,NULL; + + RETURN; + END + + IF ISNULL(@exRate, 0) = 0 + BEGIN + EXEC proc_errorHandler 6 + ,'Transaction cannot be proceed.Exchange Rate not defined' + ,NULL + + RETURN + END + + IF @pAgent IS NULL + BEGIN + EXEC proc_errorHandler 3 + ,'Oops, something went wrong.Please perform the transaction again' + ,NULL + + RETURN; + END + + DECLARE @OccupationId INT + ,@sNaCountryId INT + ,@visaStatusId INT + DECLARE @visaStatusText VARCHAR(200) + + SELECT TOP 1 @agentAvlLimit = dbo.FNAGetCustomerAvailableBalance(@SenderId) + ,@senderName = fullName + ,@sIdNo = idNumber + ,@sIdType = idType + ,@sMobile = mobile + ,@customerType = customerType + ,@OccupationId = OCCUPATION + ,@sNaCountryId = NATIVECOUNTRY + ,@visaStatusId = VISASTATUS + ,@visaStatusText = SV.detailTitle + ,@sAdd2 = ISNULL(additionalAddress, '') + FROM customerMaster CM(NOLOCK) + LEFT JOIN STATICDATAVALUE SV(NOLOCK) ON SV.valueId = CM.visaStatus + WHERE username = @User + AND customerId = @SenderId + + IF ISNULL(@paymentType, '') NOT IN ('wallet') + BEGIN + EXEC proc_errorHandler 7 + ,'Invalid payment method.Please perform the transaction again!' + ,NULL; + + RETURN; + END + + IF @user IN ('demo.gme@gmeremit.com') + BEGIN + EXEC proc_errorHandler 8 + ,'You can not send money through test GME acocunt :(' + ,NULL; + + RETURN; + END + + IF ISNULL(@collAmt, 0) = 0 + BEGIN + EXEC proc_errorHandler 9 + ,'Collection Amount is missing. Cannot send transaction' + ,NULL; + + RETURN; + END; + + SET @controlNo = '21' + LEFT(CAST(ABS(CHECKSUM(NEWID())) AS VARCHAR(10)) + '0000000000', 7) + + IF EXISTS ( + SELECT TOP 1 'X' + FROM controlNoList WITH (NOLOCK) + WHERE controlNo = @controlNo + ) + BEGIN + SET @controlNo = '21' + LEFT(CAST(ABS(CHECKSUM(NEWID())) AS VARCHAR(10)) + '0000000000', 7) + + --SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo); + IF EXISTS ( + SELECT TOP 1 'X' + FROM controlNoList WITH (NOLOCK) + WHERE controlNo = @controlNo + ) + BEGIN + EXEC proc_errorHandler 10 + ,'Technical error occurred. Please try again' + ,NULL; + + RETURN; + END + END; + + SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo); + + IF @deliveryMethodId = 2 + AND @pCountryId <> '151' + BEGIN + IF NOT EXISTS ( + SELECT TOP 1 'A' + FROM api_bank_list(NOLOCK) + WHERE BANK_ID = @pBankId + AND PAYMENT_TYPE_ID IN ( + 0 + ,2 + ) + AND IS_ACTIVE = 1 + ) + BEGIN + EXEC proc_errorHandler 11 + ,'Invalid bank selected' + ,NULL + + RETURN + END + + IF @raccountNo IS NULL + BEGIN + EXEC proc_errorHandler 12 + ,'Account number cannot be blank' + ,NULL + + RETURN + END + END; + + --4. Get Exchange Rate Details------------------------------------------------------------------------------------------------------------------ + DECLARE @pCurrHoMargin FLOAT + + SELECT @customerRate = customerRate + ,@sCurrCostRate = sCurrCostRate + ,@sCurrHoMargin = sCurrHoMargin + ,@pCurrCostRate = pCurrCostRate + ,@agentCrossSettRate = agentCrossSettRate + ,@serviceCharge = serviceCharge + ,@iPAmt = pAmt + ,@schemeId = schemeId + ,@pCurrHoMargin = pCurrHoMargin + ,@schemeCount = CAST( sharingValue AS INT) + ,@schemeCodeId= schemeId + FROM exRateCalcHistory(NOLOCK) + WHERE FOREX_SESSION_ID = @forexSessionId + AND [USER_ID] = @user + + DECLARE @pAgentCommCurrency VARCHAR(3) + ,@pAgentComm MONEY + + SELECT @pAgentCommCurrency = DBO.FNAGetPayCommCurrency(@sSuperAgent, @sAgent, @sBranch, @SCOUNTRYID, @pSuperAgent, @pBranch, @pCountryId) + + IF (LEN(ISNULL(@TRANSFER_MODE, ''))<1 + AND @pCountryId = '203' + AND @pAgent = '394133' + AND @deliveryMethodId = '2' + ) -- DONGA Bank Deposit not real time + BEGIN + SET @pAgentComm = (@payoutAmt * 0.17) / 100; + END + ELSE + BEGIN + SELECT @pAgentComm = amount + FROM dbo.FNAGetPayComm(@sAgent, @sCountryId, NULL, NULL, @pCountryId, NULL, @pAgent, @pAgentCommCurrency, @deliveryMethodId, @collAmt, @payoutAmt, @serviceCharge, @transferAmt, NULL) + END + + IF @customerRate IS NULL + BEGIN + EXEC proc_errorHandler 6 + ,'Transaction cannot be proceed. Exchange Rate not defined' + ,NULL + + RETURN + END + + -- Customer Loyalty + EXEC PROC_Customer_LoyaltyV2 @flag = 'check-eligible-v2' + ,@isEligible = @isEligible OUT + ,@referralCode = @introducer + ,@tranCount = @trancount OUT + ,@schemeCount = @schemeCount OUT + ,@customerId = @senderId + ,@createdFrom = 'M' + ,@pCountry = @pCountryId + + print @isEligible + IF @isEligible = 'Y' + BEGIN + SET @iServiceCharge = 0 + END + ELSE + BEGIN + --Get Service Charge---------------------------------------------------------------------------------------------------------------------- + DECLARE @iServiceChargeTemp MONEY + SELECT @iServiceChargeTemp = ISNULL(amount, - 1) + FROM [dbo].FNAGetServiceCharge(@sCountryId, @sSuperAgent, @sAgent, @sBranch, @pCountryId, @pSuperAgent, @pAgent, @pBranch, @deliveryMethodId, @collAmt, @collCurr) + + SELECT @iServiceCharge = ISNULL(@iServiceChargeTemp,0) - ISNULL(@discountedFee,0) + + IF @iServiceCharge < 0 -- @iServiceCharge = - 1 + BEGIN + EXEC proc_errorHandler 13 + ,'Transaction cannot be proceed. Service Charge is not defined' + ,NULL + + RETURN + END + END + print @iServiceCharge; + print @serviceCharge; + IF ISNULL(@iServiceCharge, 0) <> ISNULL(@serviceCharge, 1) + BEGIN + EXEC proc_errorHandler 14 + ,'Transaction cannot be proceed. Amount detail not match' + ,NULL + + RETURN + END + + --End Service Charge------------------------------------------------------------------------------------------------------------------------------------- + --DECLARE @iMsg VARCHAR(MAX) + IF ISNULL(@exRate, 0) <> ISNULL(@customerRate, 1) + BEGIN + --SET @iMsg = 'Amount detail not match. Please re-calculate the amount again' + CAST(isnull(@exRate,0) AS VARCHAR) + ' : ' + CAST(isnull(@customerRate,1) AS VARCHAR) + EXEC proc_errorHandler 15 + ,'Amount detail not match. Please re-calculate the amount again' + ,NULL + + RETURN + END + + SELECT @iTAmt = @collAmt - @iServiceCharge + + SELECT TOP 1 @place = place + ,@currDecimal = currDecimal + FROM currencyPayoutRound(NOLOCK) + WHERE ISNULL(isDeleted, 'N') = 'N' + AND currency = @payoutCurr + AND tranType IS NULL; + + SET @currDecimal = ISNULL(@currDecimal, 0) + SET @place = ISNULL(@place, 0) + SET @iPAmt = @iTAmt * @CustomerRate + + IF @payoutAmt - @iPAmt <= 1 + SET @iPAmt = @payoutAmt + + ----## WHILE CALCULATING FROM PAYOUT AMOUNT CONSIDARING 10 VND + IF ISNULL(@iPAmt, 0) <> ISNULL(@payoutAmt, 1) + BEGIN + --SET @Msg = 'Amount detail not match. Please re-calculate the amount again.' + CAST(@iPAmt AS VARCHAR) + ' - ' + CAST(@payoutAmt AS VARCHAR) + EXEC proc_errorHandler 15 + ,'Amount detail not match. Please re-calculate the amount again.' + ,NULL + + RETURN + END + + ----OFAC Checking + DECLARE @receiverOfacRes VARCHAR(MAX) + ,@ofacRes VARCHAR(MAX) + ,@ofacReason VARCHAR(200) + + EXEC proc_ofacTracker @flag = 't' + ,@name = @senderName + ,@Result = @ofacRes OUTPUT + + EXEC proc_ofacTracker @flag = 't' + ,@name = @receiverName + ,@Result = @receiverOfacRes OUTPUT + + DECLARE @result VARCHAR(MAX) + + IF ISNULL(@ofacRes, '') <> '' + BEGIN + SET @ofacReason = 'Matched by sender name' + END + + IF ISNULL(@receiverOfacRes, '') <> '' + BEGIN + SET @ofacRes = ISNULL(@ofacRes + ',' + @receiverOfacRes, '' + @receiverOfacRes) + SET @ofacReason = 'Matched by receiver name' + END + + IF ISNULL(@ofacRes, '') <> '' + AND ISNULL(@receiverOfacRes, '') <> '' + BEGIN + SET @ofacReason = 'Matched by both sender name and receiver name' + END + + --Ofac Checking End + DECLARE @agentRefId VARCHAR(50) = NEWID() + + ----Compliance Checking 1-> Block, 2-> Hold, 3-> Questionnaire + CREATE TABLE #TBL_COMPLIANCE_RESULT ( + ERROR_CODE INT + ,MSG VARCHAR(2000) + ,RULE_ID INT + ,SHORT_MSG VARCHAR(1000) + ,[TYPE] VARCHAR(10) + ,IS_D0C_REQUIRED BIT + ) + + INSERT INTO #TBL_COMPLIANCE_RESULT ( + ERROR_CODE + ,MSG + ,RULE_ID + ,SHORT_MSG + ,[TYPE] + ,IS_D0C_REQUIRED + ) + EXEC [PROC_COMPLIANCE_CHECKING_NEW] @flag = 'core' + ,@user = @user + ,@sIdType = @sIdType + ,@sIdNo = @sIdNo + ,@receiverName = @receiverName + ,@amount = @iTAmt + ,@customerId = @senderId + ,@pCountryId = @pCountryId + ,@deliveryMethod = @deliveryMethodId + ,@professionId = @OccupationId + ,@receiverMobile = @rMobileNo + ,@accountNo = @raccountNo + ,@receiverId = @receiverId + ,@sNaCountryId = @sNaCountryId + ,@visaStatus = @visaStatusId + + IF EXISTS ( + SELECT * + FROM #TBL_COMPLIANCE_RESULT + WHERE ERROR_CODE <> 0 + ) + BEGIN + IF EXISTS ( + SELECT * + FROM #TBL_COMPLIANCE_RESULT + WHERE ERROR_CODE IN (1) + ) --transaction blocked + BEGIN + INSERT INTO ComplianceLog ( + senderName + ,senderCountry + ,senderIdType + ,senderIdNumber + ,senderMobile + ,receiverName + ,receiverCountry + ,payOutAmt + ,complianceId + ,complianceReason + ,complainceDetailMessage + ,createdBy + ,createdDate + ,agentRefId + ,isDocumentRequired + ) + SELECT @senderName + ,@sCountry + ,@sIdType + ,@sIdNo + ,@sMobile + ,@receiverName + ,@pCountry + ,@collAmt + ,RULE_ID + ,SHORT_MSG + ,MSG + ,@user + ,GETDATE() + ,@agentRefId + ,IS_D0C_REQUIRED + FROM #TBL_COMPLIANCE_RESULT + + SELECT @MSG = MSG + FROM #TBL_COMPLIANCE_RESULT + WHERE ERROR_CODE IN (1) + --EXEC proc_errorHandler 1, @MSG, NULL + END + + IF EXISTS ( + SELECT * + FROM #TBL_COMPLIANCE_RESULT + WHERE ERROR_CODE IN ( + 2 + ,3 + ) + ) --transaction hold/questionnaire + BEGIN + DELETE + FROM remitTranComplianceTemp + WHERE agentRefId = @agentRefId + + INSERT remitTranComplianceTemp ( + csDetailTranId + ,matchTranId + ,agentRefId + ) + SELECT RULE_ID + ,NULL + ,@agentRefId + FROM #TBL_COMPLIANCE_RESULT + WHERE ERROR_CODE IN ( + 2 + ,3 + ) + ORDER BY ISNULL(IS_D0C_REQUIRED, 0) DESC + END + + INSERT INTO ComplianceLog ( + senderName + ,senderCountry + ,senderIdType + ,senderIdNumber + ,senderMobile + ,receiverName + ,receiverCountry + ,payOutAmt + ,complianceId + ,complianceReason + ,complainceDetailMessage + ,createdBy + ,createdDate + ,agentRefId + ,isDocumentRequired + ) + SELECT @senderName + ,@sCountry + ,@sIdType + ,@sIdNo + ,@sMobile + ,@receiverName + ,@pCountry + ,@collAmt + ,RULE_ID + ,SHORT_MSG + ,MSG + ,@user + ,GETDATE() + ,@agentRefId + ,IS_D0C_REQUIRED + FROM #TBL_COMPLIANCE_RESULT + END + + --checking for visa status questionnaire + IF EXISTS ( + SELECT * + FROM VW_VISA_STATUS_QUESTIONNAIRE + WHERE VISA_ID = @visaStatusId + ) + BEGIN + INSERT INTO ComplianceLog ( + senderName + ,senderCountry + ,senderIdType + ,senderIdNumber + ,senderMobile + ,receiverName + ,receiverCountry + ,payOutAmt + ,complianceId + ,complianceReason + ,complainceDetailMessage + ,createdBy + ,createdDate + ,agentRefId + ,isDocumentRequired + ) + SELECT @senderName + ,@sCountry + ,@sIdType + ,@sIdNo + ,@sMobile + ,@receiverName + ,@pCountry + ,@collAmt + ,0 + ,'Compliance Hold/Questionnaire due to Visa Status: ' + @visaStatusText + ,'Compliance Hold/Questionnaire due to Visa Status: ' + @visaStatusText + ,@user + ,GETDATE() + ,@agentRefId + ,0 + + INSERT remitTranComplianceTemp ( + csDetailTranId + ,matchTranId + ,agentRefId + ,reason + ) + SELECT 0 + ,NULL + ,@agentRefId + ,'Questionnaire require due to Visa Status' + END + + --**********Customer Per Day Limit Checking********** + DECLARE @remitTranTemp TABLE ( + tranId BIGINT + ,controlNo VARCHAR(20) + ,cAmt MONEY + ,receiverName VARCHAR(200) + ,receiverIdType VARCHAR(100) + ,receiverIdNumber VARCHAR(50) + ,dot DATETIME + ); + + INSERT INTO @remitTranTemp ( + tranId + ,controlNo + ,cAmt + ,receiverName + ,receiverIdType + ,receiverIdNumber + ,dot + ) + SELECT TOP 10 rt.id + ,rt.controlNo + ,rt.cAmt + ,rt.receiverName + ,rec.idType + ,rec.idNumber + ,rt.createdDate + FROM vwRemitTran rt WITH (NOLOCK) + INNER JOIN vwTranSenders sen WITH (NOLOCK) ON rt.id = sen.tranId + INNER JOIN vwTranReceivers rec WITH (NOLOCK) ON rt.id = rec.tranId + WHERE sen.customerId = @SenderId + AND ( + rt.approvedDate BETWEEN CONVERT(VARCHAR, GETDATE(), 101) + AND CONVERT(VARCHAR, GETDATE(), 101) + ' 23:59:59' + OR ( + approvedBy IS NULL + AND cancelApprovedBy IS NULL + ) + ) + ORDER BY rt.createdDate DESC + + IF EXISTS ( + SELECT TOP 1 'X' + FROM @remitTranTemp + WHERE cAmt = @collAmt + AND (receiverName = @receiverName) + AND DATEDIFF(MI, dot, GETDATE()) <= 2 + ) + BEGIN + EXEC proc_errorHandler 16 + ,'Similar transaction found. Please perform the transaction after 2 minutes.' + ,NULL; + Rollback Transaction ; + RETURN; + END; + + DECLARE @countryRisk INT + ,@OccupationRisk INT + ,@compFinalRes VARCHAR(5) + -- #########country and occupation risk point + DECLARE @deliveryMethod VARCHAR(30) + ,@pBankName VARCHAR(100) + ,@pBankBranchName VARCHAR(100) + ,@pBankRowId BIGINT + + SELECT TOP 1 @pCountry = COUNTRYNAME + FROM countryMaster(NOLOCK) + WHERE countryId = @pCountryId + + SELECT TOP 1 @deliveryMethod = typeTitle + FROM serviceTypeMaster(NOLOCK) + WHERE serviceTypeId = @deliveryMethodId + + SELECT TOP 1 @pBankName = bank_name + ,@pBankRowId = bank_id + FROM api_bank_list + WHERE bank_id = @pBankId + AND is_Active = 1 + + SELECT TOP 1 @pBankBranchName = branch_name + isnull(BRANCH_CODE1,'') + FROM api_bank_branch_list + WHERE bank_id = @pBankRowId + AND branch_id = @pBranchId + AND is_Active = 1 + + DECLARE @VNo VARCHAR(20); + + IF @pCountry = 'Nepal' + AND @deliveryMethod = 'CASH PAYMENT' + BEGIN + SELECT @pSuperAgent = NULL + ,@pSuperAgentName = NULL + ,@pAgent = NULL + ,@pAgentName = NULL + + SELECT @pBankName = '[ANY WHERE]' + END + + DECLARE @PayerId INT = NULL + + --GET PAYER DETAILS IN CASE OF TF + IF @payOutPartnerId = 394130 + AND @deliveryMethod = 'BANK DEPOSIT' + BEGIN + SELECT @PayerId = PayerId + FROM BankPayerSetup(NOLOCK) + WHERE BankId = @pBankId + AND IsDefault = 1 + + IF @PayerId IS NULL + BEGIN + EXEC proc_errorHandler 17 + ,'No default payer mapped for current bank, please contact JME Support!' + ,NULL; + Rollback Transaction ; + RETURN; + END + END + + BEGIN TRANSACTION; + + IF @PurposeOfRemittanceOther IS NOT NULL + BEGIN + SET @PurposeOfRemittanceOther = 'Other (please specify) :' + @PurposeOfRemittanceOther + END + + IF @SourceOfFundOther IS NOT NULL + BEGIN + SET @SourceOfFundOther = 'Other (please specify) :' + @SourceOfFundOther + END + + IF (@pBranchId IS NULL OR @pBranchId='0') + BEGIN + select @pBranchId = bankLocation FROM receiverInformation WHERE receiverId = @ReceiverId + + IF(ISNULL(@pBranchId,0)=0 and ( @payOutPartnerId='394414' and @deliveryMethod = 'BANK DEPOSIT')) + BEGIN + + SET @msg = 'Please update the Routing Branch of receiver [ ' + @receiverName + ' ] before performing transaction!'; + + EXEC proc_errorHandler 21 + ,@msg + ,NULL; + Rollback Transaction ; + RETURN; + END + + END + + + INSERT INTO remitTranTemp ( + controlNo + ,sCurrCostRate + ,sCurrHoMargin + ,pCurrCostRate + ,pCurrHoMargin + ,agentCrossSettRate + ,customerRate + ,serviceCharge + ,handlingFee + ,pAgentComm + ,pAgentCommCurrency + ,promotionCode + ,sSuperAgent + ,sSuperAgentName + ,sAgent + ,sAgentName + ,sBranch + ,sBranchName + ,sCountry + ,pSuperAgent + ,pSuperAgentName + ,pAgent + ,pAgentName + ,pCountry + ,paymentMethod + ,pBank + ,pBankName + ,pBankBranch + ,pBankBranchName + ,accountNo + ,collCurr + ,tAmt + ,cAmt + ,pAmt + ,payoutCurr + ,relWithSender + ,purposeOfRemit + ,sourceOfFund + ,tranStatus + ,payStatus + ,createdDate + ,createdDateLocal + ,createdBy + ,tranType + ,senderName + ,receiverName + ,isOnlineTxn + ,schemeId + ,pState + ,pDistrict + ,sRouteId + ,schemePremium + ,collMode + ,PAYERID + ,routedBy + ,rewardPoints + ,rewardType + ,isBonusUpdated + ) + SELECT TOP 1 @controlNoEncrypted + ,@sCurrCostRate + ,@sCurrHoMargin + ,@pCurrCostRate + ,@pCurrHoMargin + ,@agentCrossSettRate + ,@customerRate + ,@serviceCharge + ,ISNULL(@scDiscount, 0) + ,@pAgentComm + ,@pAgentCommCurrency + ,NULL + ,@sSuperAgent + ,@sSuperAgentName + ,@sAgent + ,@sAgentName + ,@sBranch + ,@sBranchName + ,@sCountry + ,@pSuperAgent + ,@pSuperAgentName + ,@pAgent + ,@pAgentName + ,@pCountry + ,@deliveryMethod + ,@pBankId + ,@pBankName + ,@pBranchId + ,@pBankBranchName + ,@raccountNo + ,@collCurr + ,@iTAmt + ,@collAmt + ,@payoutAmt + ,@payoutCurr + ,@RelWithSender + ,ISNULL(@PurposeOfRemittance, @PurposeOfRemittanceOther) + ,ISNULL(@sourceOfFund, @SourceOfFundOther) + ,'Hold' + ,'Unpaid' + ,GETDATE() + ,GETUTCDATE() + ,@user + ,'M' + ,@senderName + ,@receiverName + ,'Y' + ,@schemeId + ,@StateId + ,@DistrictId + ,0 + ,ISNULL(@schemePremium, 0) + ,'Bank Deposit' + ,@PayerId + ,CAST(@payOutPartnerId_O AS VARCHAR) + '|' + CAST(@pBankId_O AS VARCHAR) + ,ISNULL(@discountedFee, 0) + ,CASE + WHEN ISNULL(@discountedFee, 0) > 0 + THEN 'REDEEM' + ELSE NULL + END + ,'N' + + SET @tranId = SCOPE_IDENTITY(); + + INSERT INTO tranSendersTemp ( + tranId + ,customerId + ,membershipId + ,firstName + ,middleName + ,lastName1 + ,lastName2 + ,fullName + ,country + ,[address] + ,STATE + ,district + ,address2 + ,zipCode + ,city + ,email + ,homePhone + ,workPhone + ,mobile + ,nativeCountry + ,dob + ,placeOfIssue + ,idType + ,idNumber + ,idPlaceOfIssue + ,issuedDate + ,validDate + ,occupation + ,countryRiskPoint + ,customerRiskPoint + ,ipAddress + ,visaStatus + ) + SELECT TOP 1 @tranId + ,@senderId + ,membershipId + ,firstName + ,middleName + ,lastName1 + ,lastName2 + ,@senderName + ,sc.countryName + ,ISNULL(city, '') + ISNULL(', ' + streetUnicode, '') + ,STATE + ,streetUnicode + ,@sAdd2 + ,zipCode + ,city + ,email + ,homePhone + ,workPhone + ,LEFT(mobile, 15) + ,nativeCountry = nc.countryName + ,dob + ,c.placeOfIssue + ,sdv.detailTitle + ,c.idNumber + ,c.placeOfIssue + ,c.idIssueDate + ,c.idExpiryDate + ,c.occupation + ,@countryRisk + ,(@countryRisk + @OccupationRisk) + ,@sIpAddress + ,c.visaStatus + FROM ( + SELECT TOP 1 * + FROM dbo.customerMaster c WITH (NOLOCK) + WHERE c.customerId = @senderId + ) C + LEFT JOIN countryMaster sc WITH (NOLOCK) ON c.country = sc.countryId + LEFT JOIN countryMaster nc WITH (NOLOCK) ON c.nativeCountry = nc.countryId + LEFT JOIN staticDataValue sdv WITH (NOLOCK) ON c.idType = sdv.valueId + + IF @ReceiverId IS NULL + BEGIN + IF NOT EXISTS ( + SELECT TOP 1 'X' + FROM receiverInformation(NOLOCK) + WHERE fullName = @receiverName + AND customerId = @senderId + ) + BEGIN + INSERT INTO receiverInformation ( + customerId + ,firstName + ,middleName + ,lastName1 + ,country + ,address + ,city + ,email + ,homePhone + ,mobile + ,relationship + ,STATE + ,district + ,fullName + ,nativeCountry + ,goodsOrigin + ,goodsType + ,portOfShipment + ,relationOther + ) + SELECT @senderId + ,@rFirstName + ,@rMiddleName + ,@rLastName + ,@pCountry + ,@rAddress + ,@rCity + ,@rEmail + ,@rMobileNo + ,@rMobileNo + ,@RelWithSender + ,@rStateId + ,@rDistrictId + ,@receiverName + ,@rNativeCountry + ,@goodsOrigin + ,@goodsType + ,@portOfShipment + ,@RelWithSenderOthers + + SET @ReceiverId = SCOPE_IDENTITY() + END; + --ELSE + -- BEGIN + -- SELECT TOP 1 @ReceiverId = receiverId + -- FROM receiverInformation(nolock) + -- WHERE fullName = @receiverName AND customerId = @senderId; + --END; + END; + + INSERT INTO tranReceiversTemp ( + tranId + ,customerId + ,firstName + ,middleName + ,lastName1 + ,lastName2 + ,fullName + ,country + ,[address] + ,[state] + ,district + ,zipCode + ,city + ,email + ,homePhone + ,workPhone + ,mobile + ,nativeCountry + ,dob + ,placeOfIssue + ,idType + ,idNumber + ,idPlaceOfIssue + ,issuedDate + ,relationType + ,validDate + ,gender + ,goodsOrigin + ,goodsType + ,portOfShipment + ) + SELECT TOP 1 @tranId + ,@ReceiverId + ,firstName + ,middleName + ,lastName1 + ,lastName2 + ,@receiverName + ,@pCountry + ,[address] + ,[state] + ,district + ,zipCode + ,city + ,email + ,homePhone + ,workPhone + ,mobile + ,NULL + ,@rDob + ,NULL + ,ISNULL(@rIdType, idType) + ,ISNULL(@rIdNo, idNumber) + ,NULL + ,@rIdIssue + ,@RelWithSender + ,@rIdExpiry + ,NULL + ,@goodsOrigin + ,@goodsType + ,@portOfShipment + FROM receiverInformation(NOLOCK) + WHERE receiverId = @ReceiverId + + /*For duplicate pin check*/ + INSERT INTO controlNoList ( + controlNo + ,createdby + ) + SELECT @controlNo + ,'M' + + ----IF @paymentType = 'WALLET' + --EXEC proc_UpdateCustomerBalance @controlNo = @controlNoEncrypted, @type = 'DEDUCT' + ----## map locked ex rate with transaction for history + UPDATE exRateCalcHistory + SET controlNo = @controlNoEncrypted + ,AGENT_TXN_REF_ID = @tranId + ,isExpired = 1 + WHERE FOREX_SESSION_ID = @forexSessionId + + -- UPDATE FOR CUSTOMER LOYALTY + -- EXEC PROC_Customer_Loyalty @flag = 'check-eligible' , @isEligible = @isEligible OUT -- CHECKED ABOVE + + EXEC PROC_Customer_LoyaltyV2 @flag = 'update-v2' + ,@customerId = @senderId + ,@createdFrom = 'M' + ,@tranId = @tranId + ,@createdBy = @user + ,@controlNo = @controlNo + ,@isManualSc = 'N' + ,@referralCode = @introducer + ,@serviceCharge = @iServiceCharge + ,@pCountry = @pCountryId + + + --------------------------#########------------OFAC/COMPLIANCE INSERT (IF EXISTS)---------------########---------------------- + IF EXISTS ( + SELECT TOP 1 'X' + FROM remitTranComplianceTemp WITH (NOLOCK) + WHERE agentRefId = @agentRefId + ) + BEGIN + INSERT INTO remitTranCompliance ( + TranId + ,csDetailTranId + ,matchTranId + ,reason + ) + SELECT @tranId + ,csDetailTranId + ,matchTranId + ,reason + FROM remitTranComplianceTemp WITH (NOLOCK) + WHERE agentRefId = @agentRefId + + SET @compFinalRes = 'C' + END + + UPDATE ComplianceLog + SET TRANID = @tranId + WHERE agentRefId = @agentRefId + + IF ( + ISNULL(@compFinalRes, '') <> '' + OR ISNULL(@ofacRes, '') <> '' + OR ISNULL(@receiverOfacRes, '') <> '' + ) + BEGIN + IF ( + ( + ISNULL(@ofacRes, '') <> '' + OR ISNULL(@receiverOfacRes, '') <> '' + ) + AND ISNULL(@compFinalRes, '') = '' + ) + BEGIN + IF ISNULL(@ofacRes, '') <> '' + INSERT remitTranOfac ( + TranId + ,blackListId + ,reason + ,flag + ) + SELECT @tranId + ,@ofacRes + ,@ofacReason + ,dbo.FNAGetOFAC_Flag(@ofacRes) + + IF ISNULL(@receiverOfacRes, '') <> '' + INSERT remitTranOfac ( + TranId + ,blackListId + ,reason + ,flag + ) + SELECT @tranId + ,@receiverOfacRes + ,@ofacReason + ,dbo.FNAGetOFAC_Flag(@receiverOfacRes) + + UPDATE remitTranTemp + SET tranStatus = 'OFAC Hold' + WHERE id = @tranId + END + ELSE IF ( + @compFinalRes <> '' + AND ( + ISNULL(@ofacRes, '') = '' + OR ISNULL(@receiverOfacRes, '') = '' + ) + ) + BEGIN + UPDATE remitTranTemp + SET tranStatus = 'Compliance Hold' + WHERE id = @tranId + END + ELSE IF ( + ISNULL(@compFinalRes, '') <> '' + AND ( + ISNULL(@ofacRes, '') <> '' + OR ISNULL(@receiverOfacRes, '') <> '' + ) + ) + BEGIN + IF ISNULL(@ofacRes, '') <> '' + INSERT remitTranOfac ( + TranId + ,blackListId + ,reason + ,flag + ) + SELECT @tranId + ,@ofacRes + ,@ofacReason + ,dbo.FNAGetOFAC_Flag(@ofacRes) + + IF ISNULL(@receiverOfacRes, '') <> '' + INSERT remitTranOfac ( + TranId + ,blackListId + ,reason + ,flag + ) + SELECT @tranId + ,@receiverOfacRes + ,@ofacReason + ,dbo.FNAGetOFAC_Flag(@receiverOfacRes) + + UPDATE remitTranTemp + SET tranStatus = 'OFAC/Compliance Hold' + WHERE id = @tranId + END + END + + --Compliance checking done + DECLARE @hasSufficientBalance CHAR(1) = 'Y' + IF @agentAvlLimit < @payoutAmt + BEGIN + SET @hasSufficientBalance = 'N' + INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category, isClickable) + SELECT @SenderId,'Tran ID : '+CAST(@tranId AS VARCHAR)+' . Your transaction has been processed successfully but your balance is insufficient. Please load your wallet.','Insufficent Balance.',getdate(),'',@tranId,0,0,0,0,'INFO', 'Y' + END + + + IF @@TRANCOUNT > 0 + COMMIT TRANSACTION; + + SELECT 0 errorCode + ,'Transaction has been sent successfully' msg + ,@tranId id + ,@controlNo extra + ,ISNULL(@isRealTime, 0) extra2 + ,@hasSufficientBalance extra3 + + RETURN + + -- For BroadCast Notification + --EXEC ProcBroadCastMobile @Flag='TRANSACTION_SUCCESS', @RowId=@customerId, @ControlNo=@controlNo, @CustomerId= @customerId + END +END TRY + +BEGIN CATCH + IF @@TRANCOUNT <> 0 + ROLLBACK TRANSACTION; + + DECLARE @errorMessage VARCHAR(MAX); + + SET @errorMessage = ERROR_MESSAGE(); + + EXEC proc_errorHandler 1 + ,@errorMessage + ,@user; +END CATCH diff --git a/StoredProc/proc_get_exrate_master.sql b/StoredProc/proc_get_exrate_master.sql index d8b361c80532471e5eccd0e77a56587462a45de3..0ca7accb1b30525929a83c18526349f735967b3a 100644 GIT binary patch literal 22130 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 I)9fn#FPOvG5C8xG literal 45246 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 diff --git a/insertAC.sql b/insertAC.sql new file mode 100644 index 0000000..9d0619a --- /dev/null +++ b/insertAC.sql @@ -0,0 +1,9 @@ +INSERT INTO FASTMONEYPRO_ACCOUNT.DBO.AC_MASTER(acct_num, acct_name, GL_CODE, agent_id, acct_ownership, acct_rpt_code, acct_opn_date, ac_currency, created_by, created_date, company_id) +SELECT '100139297574' ,'Teller Cash - ajey', 120, 52768, 'o','TCA', GETDATE(), 'JPY', 'system', GETDATE(), 1 + + +INSERT INTO FASTMONEYPRO_ACCOUNT.DBO.AC_MASTER(acct_num, acct_name, GL_CODE, agent_id, acct_ownership, acct_rpt_code, acct_opn_date, ac_currency, created_by, created_date, company_id) +SELECT '100139297575' ,'Teller Cash - kewal', 120, 52896, 'o','TCA', GETDATE(), 'JPY', 'system', GETDATE(), 1 + +INSERT INTO FASTMONEYPRO_ACCOUNT.DBO.AC_MASTER(acct_num, acct_name, GL_CODE, agent_id, branch_id, acct_ownership, acct_rpt_code, acct_opn_date, ac_currency, created_by, created_date, company_id) +SELECT '100139219838' ,'Vault-IME London Head Office', 120, 394390,1001, 'o','BVA', GETDATE(), 'JPY', 'system', GETDATE(), 1 \ No newline at end of file