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