diff --git a/Back/ProcMobileConfig.sql b/Back/ProcMobileConfig.sql index 92af832..157833b 100644 Binary files a/Back/ProcMobileConfig.sql and b/Back/ProcMobileConfig.sql differ diff --git a/Deployment/27019-PromoCode/mobile_proc_TranHistory.sql b/Deployment/27019-PromoCode/mobile_proc_TranHistory.sql new file mode 100644 index 0000000..00f449f Binary files /dev/null and b/Deployment/27019-PromoCode/mobile_proc_TranHistory.sql differ diff --git a/Deployment/27019-PromoCode/proc_SendTransaction.sql b/Deployment/27019-PromoCode/proc_SendTransaction.sql index 3483c57..b07363f 100644 Binary files a/Deployment/27019-PromoCode/proc_SendTransaction.sql and b/Deployment/27019-PromoCode/proc_SendTransaction.sql differ diff --git a/Deployment/27019-PromoCode/proc_get_exrate_master.sql b/Deployment/27019-PromoCode/proc_get_exrate_master.sql index 553ef38..9583c7e 100644 Binary files a/Deployment/27019-PromoCode/proc_get_exrate_master.sql and b/Deployment/27019-PromoCode/proc_get_exrate_master.sql differ diff --git a/ReferEarn.zip b/ReferEarn.zip new file mode 100644 index 0000000..8b30722 Binary files /dev/null and b/ReferEarn.zip differ diff --git a/StoredProc/ProcMobileConfig.sql b/StoredProc/ProcMobileConfig.sql index 7533797..4a1fe2a 100644 Binary files a/StoredProc/ProcMobileConfig.sql and b/StoredProc/ProcMobileConfig.sql differ diff --git a/StoredProc/proc_get_exrate_master.sql b/StoredProc/proc_get_exrate_master.sql index b7e1b93..b82d041 100644 Binary files a/StoredProc/proc_get_exrate_master.sql and b/StoredProc/proc_get_exrate_master.sql differ diff --git a/functions/FNAGetExRate.sql b/functions/FNAGetExRate.sql new file mode 100644 index 0000000..989c42d --- /dev/null +++ b/functions/FNAGetExRate.sql @@ -0,0 +1,191 @@ +USE [FastMoneyPro_Remit] +GO + +/****** Object: UserDefinedFunction [dbo].[FNAGetExRate] Script Date: 3/21/2024 12:16:20 PM ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + +/* +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[FNAGetExRate]') AND TYPE IN (N'FN', N'IF', N'TF', N'FS', N'FT')) + DROP FUNCTION [dbo].FNAGetExRate +GO +*/ +/* + SELECT * FROM dbo.FNAGetExRate(133,13345,NULL,'MYR',16,NULL,'BDT',NULL) +*/ +CREATE FUNCTION [dbo].[FNAGetExRate](@cCountry INT, @cAgent INT, @cBranch INT, @cCurrency VARCHAR(3), @pCountry INT, @pAgent INT, @pCurrency VARCHAR(3), @tranType INT) +RETURNS @list TABLE ( + exRateTreasuryId BIGINT + ,customerRate FLOAT + ,sCurrCostRate FLOAT + ,sCurrHoMargin FLOAT + ,sCurrAgentMargin FLOAT + ,pCurrCostRate FLOAT + ,pCurrHoMargin FLOAT + ,pCurrAgentMargin FLOAT + ,sAgentSettRate FLOAT + ,pAgentSettRate FLOAT + ,agentCrossSettRate FLOAT + ,treasuryTolerance FLOAT + ,customerPremium FLOAT + ,sharingValue MONEY + ,sharingType CHAR(1) + ) +AS +BEGIN + DECLARE @exRateTreasuryId BIGINT, @premium FLOAT + DECLARE @customerRate FLOAT + + ----FETCH EXRATE FROM COST RATE SETUP FOR DIRECT DEALING WITH KRW (BNI:KRW VS IDR) + IF EXISTS(SELECT 'A' FROM defExRate(NOLOCK) WHERE country = @pCountry AND currency = @pCurrency AND baseCurrency = 'KRW' AND IsActive='Y') --FOR INDONESIA + BEGIN + DECLARE @sCurrCostRate MONEY + SELECT @sCurrCostRate = cRate + FROM defExRate(NOLOCK) + WHERE country = 118 AND currency = 'KRW' AND baseCurrency = 'USD' AND IsActive='Y' + + INSERT INTO @list + SELECT defExRateId,pRate - ISNULL(pMargin,0) AS customerRate,@sCurrCostRate sCurrCostRate,0 sCurrHoMargin ,0 sCurrAgentMargin,pRate AS pCurrCostRate,pMargin AS pCurrHoMargin,0 pCurrAgentMargin + , 0 sAgentSettRate, 0 pAgentSettRate ,pRate - ISNULL(pMargin,0) AS agentCrossSettRate,0 treasuryTolerance,0 customerPremium,0 sharingValue,'' sharingType + FROM defExRate(NOLOCK) + WHERE country = @pCountry AND currency = @pCurrency + AND baseCurrency = 'KRW' AND IsActive='Y' + AND ISNULL(tranType,@tranType) = @tranType + RETURN + END + + --1. Search By Sending Branch and Receiving Agent + IF EXISTS(SELECT 'X' FROM exRateTreasury ert WITH(NOLOCK) INNER JOIN exRateBranchWise erbw WITH(NOLOCK) + ON ert.exRateTreasuryId = erbw.exRateTreasuryId + WHERE + cBranch = @cBranch AND ISNULL(ert.isActive, 'N') = 'Y' AND ISNULL(erbw.isActive, 'N') = 'Y' + AND pCurrency = @pCurrency + AND pCountry = @pCountry + AND (pAgent = @pAgent) + ) + BEGIN + SELECT @exRateTreasuryId = ert.exRateTreasuryId, @premium = erbw.premium FROM exRateTreasury ert WITH(NOLOCK) INNER JOIN exRateBranchWise erbw WITH(NOLOCK) + ON ert.exRateTreasuryId = erbw.exRateTreasuryId + WHERE + cBranch = @cBranch AND ISNULL(ert.isActive, 'N') = 'Y' AND ISNULL(erbw.isActive, 'N') = 'Y' + AND pCurrency = @pCurrency + AND pCountry = @pCountry + AND (pAgent = @pAgent) + + SELECT @customerRate = ISNULL(crossRateOperation,customerRate) + ISNULL(@premium, 0) FROM exRateTreasury WITH(NOLOCK) WHERE exRateTreasuryId = @exRateTreasuryId + + INSERT INTO @list + SELECT @exRateTreasuryId, @customerRate, sCurrCostRate, sCurrHoMargin, sCurrAgentMargin, pCurrCostRate, pCurrHoMargin, pCurrAgentMargin, sAgentSettRate, pAgentSettRate + , agentCrossSettRate, treasuryTolerance, ISNULL(@premium, customerPremium), sharingValue, sharingType FROM dbo.FNAGetExRateDetails(@exRateTreasuryId) + RETURN + END + + --2. Search By Sending Agent and Receiving Agent + IF EXISTS(SELECT 'X' FROM exRateTreasury WITH(NOLOCK) WHERE ISNULL(isActive, 'N') = 'Y' AND cCurrency = @cCurrency AND pCurrency = @pCurrency AND cAgent = @cAgent AND (pAgent = @pAgent) AND (pCountry = @pCountry) AND (tranType = @tranType OR tranType IS +NULL)) + BEGIN + SELECT @exRateTreasuryId = exRateTreasuryId FROM exRateTreasury WITH(NOLOCK) WHERE ISNULL(isActive, 'N') = 'Y' AND cCurrency = @cCurrency AND pCurrency = @pCurrency AND cAgent = @cAgent AND pAgent = @pAgent AND tranType = @tranType + IF @exRateTreasuryId IS NULL + SELECT @exRateTreasuryId = exRateTreasuryId FROM exRateTreasury WITH(NOLOCK) WHERE ISNULL(isActive, 'N') = 'Y' AND cCurrency = @cCurrency AND pCurrency = @pCurrency AND cAgent = @cAgent AND pAgent = @pAgent AND tranType IS NULL + + INSERT INTO @list + SELECT @exRateTreasuryId, customerRate, sCurrCostRate, sCurrHoMargin, sCurrAgentMargin, pCurrCostRate, pCurrHoMargin, pCurrAgentMargin, sAgentSettRate, pAgentSettRate, agentCrossSettRate + , treasuryTolerance, customerPremium, sharingValue, sharingType FROM dbo.FNAGetExRateDetails(@exRateTreasuryId) + RETURN + + --INSERT INTO @list + --SELECT 1,1,1,1,1,1,1,1,1,1,1,1,1,1 + --RETURN + END + + --3. Search By Sending Branch and Receiving Country + IF EXISTS(SELECT 'X' FROM exRateTreasury ert WITH(NOLOCK) INNER JOIN exRateBranchWise erbw WITH(NOLOCK) + ON ert.exRateTreasuryId = erbw.exRateTreasuryId + WHERE + cBranch = @cBranch AND ISNULL(ert.isActive, 'N') = 'Y' AND ISNULL(erbw.isActive, 'N') = 'Y' + AND pCurrency = @pCurrency + AND pCountry = @pCountry + AND (pAgent IS NULL) + ) + BEGIN + SELECT @exRateTreasuryId = ert.exRateTreasuryId, @premium = erbw.premium FROM exRateTreasury ert WITH(NOLOCK) INNER JOIN exRateBranchWise erbw WITH(NOLOCK) + ON ert.exRateTreasuryId = erbw.exRateTreasuryId + WHERE + cBranch = @cBranch AND ISNULL(ert.isActive, 'N') = 'Y' AND ISNULL(erbw.isActive, 'N') = 'Y' + AND pCurrency = @pCurrency + AND pCountry = @pCountry + AND (pAgent IS NULL) + + SELECT @customerRate = ISNULL(crossRateOperation,customerRate) + ISNULL(@premium, 0) FROM exRateTreasury WITH(NOLOCK) WHERE exRateTreasuryId = @exRateTreasuryId + + INSERT INTO @list + SELECT @exRateTreasuryId, @customerRate, sCurrCostRate, sCurrHoMargin, sCurrAgentMargin, pCurrCostRate, pCurrHoMargin, pCurrAgentMargin, sAgentSettRate, pAgentSettRate, agentCrossSettRate + , treasuryTolerance, customerPremium, sharingValue, sharingType FROM dbo.FNAGetExRateDetails(@exRateTreasuryId) + RETURN + END + + --4. Search By Sending Agent and Receiving Country + IF EXISTS(SELECT 'X' FROM exRateTreasury WITH(NOLOCK) WHERE ISNULL(isActive, 'N') = 'Y' AND cCurrency = @cCurrency AND pCurrency = @pCurrency AND cAgent = @cAgent AND (pAgent IS NULL) + AND (pCountry = @pCountry) AND (tranType = @tranType OR tranType IS NULL)) + BEGIN + SELECT @exRateTreasuryId = exRateTreasuryId FROM exRateTreasury WITH(NOLOCK) WHERE ISNULL(isActive, 'N') = 'Y' AND cCurrency = @cCurrency AND pCurrency = @pCurrency AND cAgent = @cAgent + AND pCountry = @pCountry AND pAgent IS NULL AND tranType = @tranType + IF @exRateTreasuryId IS NULL + SELECT @exRateTreasuryId = exRateTreasuryId FROM exRateTreasury WITH(NOLOCK) WHERE ISNULL(isActive, 'N') = 'Y' AND cCurrency = @cCurrency AND pCurrency = @pCurrency AND cAgent = @cAgent AND pCountry = @pCountry AND pAgent IS NULL AND tranType IS NULL + + INSERT INTO @list + SELECT @exRateTreasuryId, customerRate, sCurrCostRate, sCurrHoMargin, sCurrAgentMargin, pCurrCostRate, pCurrHoMargin, pCurrAgentMargin, sAgentSettRate, pAgentSettRate, agentCrossSettRate, + treasuryTolerance, customerPremium, sharingValue, sharingType FROM dbo.FNAGetExRateDetails(@exRateTreasuryId) + RETURN + + --INSERT INTO @list + --SELECT 1,1,1,1,1,1,1,1,1,1,1,1,1,1 + --RETURN + END + + --3. Search By Sending Country and Receiving Agent/Country + IF EXISTS(SELECT 'X' FROM exRateTreasury WITH(NOLOCK) WHERE ISNULL(isActive, 'N') = 'Y' AND cCurrency = @cCurrency AND pCurrency = @pCurrency AND cCountry = @cCountry AND cAgent IS NULL + AND (pAgent = @pAgent OR pAgent IS NULL) AND (pCountry = @pCountry) AND (tranType = @tranType OR tranType IS NULL)) + BEGIN + SELECT @exRateTreasuryId = exRateTreasuryId FROM exRateTreasury WITH(NOLOCK) + WHERE ISNULL(isActive, 'N') = 'Y' AND cCurrency = @cCurrency AND pCurrency = @pCurrency AND cCountry = @cCountry + AND cAgent IS NULL AND pAgent = @pAgent AND tranType = @tranType + IF @exRateTreasuryId IS NULL + BEGIN + SELECT @exRateTreasuryId = exRateTreasuryId + FROM exRateTreasury WITH(NOLOCK) + WHERE ISNULL(isActive, 'N') = 'Y' AND cCurrency = @cCurrency AND pCurrency = @pCurrency AND cCountry = @cCountry AND cAgent IS NULL AND pAgent = @pAgent AND tranType IS NULL + END + IF @exRateTreasuryId IS NULL + BEGIN + SELECT @exRateTreasuryId = exRateTreasuryId + FROM exRateTreasury WITH(NOLOCK) + WHERE ISNULL(isActive, 'N') = 'Y' AND cCurrency = @cCurrency AND pCurrency = @pCurrency AND cCountry = @cCountry AND cAgent IS NULL + AND pCountry = @pCountry AND pAgent IS NULL AND tranType = @tranType + END + IF @exRateTreasuryId IS NULL + BEGIN + SELECT @exRateTreasuryId = exRateTreasuryId + FROM exRateTreasury WITH(NOLOCK) + WHERE ISNULL(isActive, 'N') = 'Y' AND cCurrency = @cCurrency AND pCurrency = @pCurrency AND cCountry = @cCountry + AND cAgent IS NULL AND pCountry = @pCountry AND pAgent IS NULL AND tranType IS NULL + END + INSERT INTO @list + SELECT @exRateTreasuryId, customerRate, sCurrCostRate, sCurrHoMargin, sCurrAgentMargin, pCurrCostRate, pCurrHoMargin, pCurrAgentMargin, sAgentSettRate, pAgentSettRate, agentCrossSettRate, + treasuryTolerance, customerPremium, sharingValue, sharingType + FROM dbo.FNAGetExRateDetails(@exRateTreasuryId) + RETURN + END + + + INSERT INTO @list + SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + RETURN +END + +GO + +