You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

120 lines
6.4 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[ws_proc_getServiceCharge] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[ws_proc_getServiceCharge] (
@flag VARCHAR(50) = NULL
,@USER_ID VARCHAR(50) = NULL
,@PASSWORD VARCHAR(50) = NULL
,@AGENT_CODE VARCHAR(50) = NULL
,@AGENT_SESSION_ID VARCHAR(50) = NULL
,@PAYMENT_MODE VARCHAR(20) = NULL
,@PAYOUT_AMOUNT VARCHAR(20) = NULL
,@DISTRICT_ID VARCHAR(20) = NULL
)
AS
SET NOCOUNT ON;
SET XACT_ABORT ON;
BEGIN TRY
DECLARE
@errCode VARCHAR(100)
,@sBranch VARCHAR(20) = NULL
,@deliveryMethod VARCHAR(50) = NULL
,@pLocation INT = NULL
,@serviceCharge MONEY = NULL
,@sAgentComm MONEY = NULL
,@sSuperAgentComm MONEY = NULL
,@deliveryMethodId INT = NULL
,@pLocationName VARCHAR(200) = NULL
EXEC proc_checkAuthntication @USER_ID,@PASSWORD,@AGENT_CODE,@errCode OUT
IF (@errCode = 1)
BEGIN
EXEC proc_errorHandler 1000 , 'Authentication Fail', NULL
RETURN
END
IF @AGENT_SESSION_ID IS NULL
BEGIN
EXEC proc_errorHandler 1105, 'Agent Session Id is Empty' , NULL
RETURN
END
IF @PAYMENT_MODE IS NULL
BEGIN
EXEC proc_errorHandler 1105, 'Payment Mode Field is Empty' , NULL
RETURN
END
IF @PAYMENT_MODE <> 'C' AND @PAYMENT_MODE <> 'B'
BEGIN
EXEC proc_errorHandler 1105, 'Invalid Payment Type, Must be C - Cash Pickup B - Account Deposit to Bank',NULL
RETURN
END
IF @DISTRICT_ID IS NULL
BEGIN
EXEC proc_errorHandler 1105, 'District Id is Empty' , NULL
RETURN
END
IF ISNUMERIC(@DISTrICT_ID)=0 AND @DISTRICT_ID IS NOT NULL
BEGIN
EXEC proc_errorHandler 1102, 'District Id Must Be Numeric' , NULL
RETURN
END
SELECT
@sBranch = agentId
FROM applicationUsers WITH(NOLOCK)
WHERE userName = @USER_ID
-->> ## CALCULATING SERVICE CHARGE
SET @deliveryMethod =
CASE UPPER(@PAYMENT_MODE)
WHEN 'C' THEN 'Cash Payment'
WHEN 'B' THEN 'Bank Deposit'
END
SELECT
@pLocationName = districtName
,@pLocation = @DISTRICT_ID
FROM api_DistrictList WITH(NOLOCK)
WHERE districtCode = @DISTRICT_ID
SELECT
@deliveryMethodId = serviceTypeId
FROM serviceTypeMaster WITH(NOLOCK)
WHERE typeTitle = @deliveryMethod
AND ISNULL(isDeleted, 'N') = 'N'
SELECT
@serviceCharge = ISNULL(serviceCharge, 0)
,@sAgentComm = ISNULL(sAgentComm, 0)
,@sSuperAgentComm = ISNULL(ssAgentComm, 0)
FROM dbo.FNAGetDomesticSendComm(@sBranch, NULL, @pLocation, @deliveryMethodId, @PAYOUT_AMOUNT)
SELECT
100 errorCode
,'Location :' + @pLocationName msg
,@AGENT_SESSION_ID AGENT_SESSION_ID
,CAST(@PAYOUT_AMOUNT AS MONEY) + @serviceCharge COLLECT_AMT
,'NPR' COLLECT_CURRENCY
,@serviceCharge SERVICE_CHARGE
,@PAYOUT_AMOUNT PAYOUT_AMOUNT
,'NPR' PAYOUT_CURRENCY
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
EXEC proc_errorHandler 9999, 'Exceptional Error Occured From DB', @USER_ID
END CATCH
GO