nischal problem
CREATE PROC [dbo].[s_MNBulkPumoriReconciliationRequest]
@BulkID varchar(20)=NULL, @MesgStr VARCHAR(255) = NULL OUTPUT,
@return_value VARCHAR(255) = NULL OUTPUT
AS
BEGIN
SET NOCOUNT ON
DECLARE
@ServiceCode CHAR(2), @ClientCode VARCHAR(8)= NULL, @Amount VARCHAR(20)=NULL,@Desc1 VARCHAR(MAX) = NULL,
@Desc2 VARCHAR(MAX) = NULL, @Desc3 VARCHAR(MAX) = NULL,@Remark VARCHAR(MAX)= NULL,@TraceNo VARCHAR(6),
@TranDate DATETIME = NULL, @RetrievalRef VARCHAR(12),@OriginType VARCHAR(4) = NULL, @TranType VARCHAR(20) = NULL,
@SourceAccountNo VARCHAR(20),@DestAccountNo VARCHAR(20), @FeeAmount VARCHAR(20)=NULL, @FeeId VARCHAR(4) = NULL,
@SourceMobileNo VARCHAR(10) = NULL, @DestMobileNo VARCHAR(10) = NULL,@SourceClientCode VARCHAR(8)= NULL,
@DestClientCode VARCHAR(8)= NULL, @OriginID VARCHAR(16) = NULL, @SourceBankCode VARCHAR(4) = NULL, @SourceBranchCode VARCHAR(5) = NULL,
@DestBankCode VARCHAR(4) = NULL, @DestBranchCode VARCHAR(5) = NULL ,@ReturnValue INT, @WalletAmt MONEY,@ID varchar(20)=NULL --, @MesgStr VARCHAR(255) = NULL,
--@return_value VARCHAR(255) = NULL
BEGIN TRANSACTION
BEGIN TRY
declare Reconciliation CURSOR for --FAST_FORWARD
select ID,TranType,ServiceCode,Amount,Desc1,Desc2,Desc3 from MNPumoriReconciliation where BulkID = '1'--@BulkID
open Reconciliation
fetch next from Reconciliation into @ID,@TranType, @ServiceCode,@Amount , @Desc1, @Desc2, @Desc3
while(@@FETCH_STATUS=0)
begin
select @ID=ID, @TranType = TranType, @ServiceCode = ServiceCode ,@Amount = Amount, @Desc1 = Desc1, @Desc2 = Desc2, @Desc3 = Desc3 from MNPumoriReconciliation where ID=@ID
IF (@TranType = 'Debit')
BEGIN
SELECT @DestMobileNo = DestinationMobileNo
from MNPumoriReconciliation where ID = @ID
IF(@ServiceCode = '00')
BEGIN
SELECT @DestAccountNo = WalletNumber, @DestBranchCode = LEFT(WalletNumber, 3), @DestBankCode = '0000'
FROM v_MNClientDetail where UserName = @DestMobileNo
SELECT @SourceAccountNo = PoolAccount, @SourceBranchCode = BranchCode, @SourceBankCode = BankCode
FROM MNBankTable WHERE BankCode = '0000'
SELECT @OriginID = @DestMobileNo
END
ELSE IF (@ServiceCode = '10')
BEGIN
SELECT @OriginID = @SourceMobileNo
SELECT @DestAccountNo = WalletNumber, @DestBranchCode = LEFT(WalletNumber, 3), @DestBankCode = '0000'
FROM v_MNClientDetail where UserName = @DestMobileNo
SELECT @SourceAccountNo = PoolAccount, @SourceBranchCode = BranchCode, @SourceBankCode = BankCode
FROM MNBankTable WHERE BankCode = '0004'
END
END
IF(@TranType = 'DebitAndCredit')
BEGIN
select SourceMobileNo,DestinationMobileNo as DestMobileNo from MNPumoriReconciliation where BulkID = '1'
IF(@ServiceCode = '00')
BEGIN
SELECT @OriginID = @SourceMobileNo
SELECT @SourceAccountNo = WalletNumber, @SourceBranchCode = LEFT(WalletNumber, 3), @SourceBankCode = '0000'
FROM v_MNClientDetail where UserName = @SourceMobileNo
SELECT @DestAccountNo = WalletNumber, @DestBranchCode = LEFT(WalletNumber, 3), @DestBankCode = '0000'
FROM v_MNClientDetail where UserName = @DestMobileNo
END
ELSE IF(@ServiceCode = '10')
BEGIN
SELECT @OriginID = @SourceMobileNo
SELECT @SourceAccountNo = BankAccountNumber, @SourceBranchCode = LEFT(BankAccountNumber, 3), @SourceBankCode = BankNo
FROM v_MNClientDetail where UserName = @SourceMobileNo
SELECT @DestAccountNo = WalletNumber, @DestBranchCode = LEFT(WalletNumber, 3), @DestBankCode = '0000'
FROM v_MNClientDetail where UserName = @DestMobileNo
END
END
ELSE IF (@TranType = 'Credit')
BEGIN
SELECT @SourceMobileNo = SourceMobileNo
from MNPumoriReconciliation where ID = @ID
IF(@ServiceCode = '00')
BEGIN
SELECT @OriginID = @SourceMobileNo
SELECT @SourceAccountNo = WalletNumber, @SourceBranchCode = LEFT(WalletNumber, 3), @SourceBankCode = '0000'
FROM v_MNClientDetail where UserName = @SourceMobileNo
SELECT @DestAccountNo = PoolAccount, @DestBranchCode = BranchCode, @DestBankCode = BankCode
FROM MNBankTable WHERE BankCode = '0000'
END
ELSE IF (@ServiceCode = '10')
BEGIN
SELECT @OriginID = @SourceMobileNo
SELECT @SourceAccountNo = BankAccountNumber, @SourceBranchCode = LEFT(BankAccountNumber, 3), @SourceBankCode = BankNo
FROM v_MNClientDetail where UserName = @SourceMobileNo
SELECT @DestAccountNo = PoolAccount, @DestBranchCode = BranchCode, @DestBankCode = BankCode
FROM MNBankTable WHERE BankCode = '0000'
END
END
SELECT @RetrievalRef = dbo.f_GetRRNo()
SELECT @TraceNo = RIGHT(@RetrievalRef, 6), @TranDate = CONVERT(DATE, GETDATE())
SELECT @OriginType = '6011', @FeeId = 'F001'
---For Fee Calculation START
IF(@ServiceCode = '00')
BEGIN
SET @FeeAmount = '0.00'
END
ELSE
BEGIN
EXEC dbo.s_MNFeeCalculation @FeeId, @SourceAccountNo, 0, @Amount, @FeeAmount OUTPUT
END
---For Fee Calculation END
INSERT INTO Rajan ( [OriginID], [OriginType], [ServiceCode], [SourceBankCode], [SourceBranchCode],
[SourceAccountNo], [DestBankCode], [DestBranchCode], [DestAccountNo], [Amount],
[FeeId], [TraceNo], [TranDate], [RetrievalRef], [Desc1], [Desc2], [Desc3],
[IsProcessed],Remark)
VALUES ( @OriginID, @OriginType, @ServiceCode, @SourceBankCode, @SourceBranchCode, @SourceAccountNo, @DestBankCode,
@DestBranchCode, @DestAccountNo, @Amount, @FeeId, @TraceNo, @TranDate, @RetrievalRef, @Desc1, @Desc2,
@Desc3, 'F', @Remark)
fetch next from Reconciliation into @ID, @TranType, @ServiceCode,@Amount , @Desc1, @Desc2, @Desc3
end
close Reconciliation
deallocate Reconciliation
if @@rowcount=0
begin
rollback transaction
end
else
begin
commit transaction
end
end try
begin catch
rollback transaction
end catch
End
Comments
Post a Comment