You are on page 1of 4

SUBROUTINE BMSC.E.NOF.FEES.BAL.REPORT(Y.

ARR)
*----------------------------------------------------------------------------
* Developed By : Stoics Software Development India Pvt Ltd
* Subroutine Type : NOFILE ROUTINE
* Attached to : NOFILE ROUTINE
* Attached as : ENQUIRY BMSC.ENQ.FEES.BAL.REPORT
* Primary Purpose : The purpose of this routine will be to generate fields for the
inquiry BMSC.ENQ.FEES.BAL.REPORT
*
* Incoming:Y.ARR
* ---------
*
* Outgoing:Y.ARR
* ---------
*
*
* Error Variables:
* ----------------
*
*------------------------------------------------------------------------
* Modification History:
*
*
*------------------------------------------------------------------------

$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_ENQUIRY.COMMON
$INSERT I_F.AA.ARRANGEMENT
$INSERT I_F.BOMB.BUSINESS.DISCOUNT
$INSERT I_F.CUSTOMER
$INSERT I_F.AA.BILL.DETAILS
$INSERT I_F.AA.ACCOUNT.DETAILS
$INSERT I_F.BMSC.MASS.PAYMNT.PARAMETER

GOSUB OPENFILE
GOSUB OPF
GOSUB LOCATE
GOSUB MAIN.PROCESS
RETURN
*----------------------------------------------------------------------------------
OPENFILE:
*----------------------------------------------------------------------------------
-

FN.AA.ARRANGEMENT='F.AA.ARRANGEMENT'
F.AA.ARRANGEMENT=''

FN.BOMB.BUSINESS.DISCOUNT='F.BOMB.BUSINESS.DISCOUNT'
F.BOMB.BUSINESS.DISCOUNT=''

FN.CUSTOMER='F.CUSTOMER'
F.CUSTOMER=''

FN.AA.BILL.DETAILS='F.AA.BILL.DETAILS'
F.AA.BILL.DETAILS=''

FN.BMSC.MASS.PAYMNT.PARAMETER='F.BMSC.MASS.PAYMNT.PARAMETER'
F.BMSC.MASS.PAYMNT.PARAMETER = ''
FN.AA.ACCOUNT.DETAILS='F.AA.ACCOUNT.DETAILS'
F.AA.ACCOUNT.DETAILS=''

RETURN

*----------------------------------------------------------------------------------
---
OPF:
*----------------------------------------------------------------------------------
---

CALL OPF(FN.AA.ARRANGEMENT,F.AA.ARRANGEMENT)
CALL OPF(FN.BOMB.BUSINESS.DISCOUNT,F.BOMB.BUSINESS.DISCOUNT)
CALL OPF(FN.CUSTOMER,F.CUSTOMER)
CALL OPF(FN.AA.BILL.DETAILS,F.AA.BILL.DETAILS)
CALL OPF(FN.AA.ACCOUNT.DETAILS,F.AA.ACCOUNT.DETAILS)
CALL OPF(FN.BMSC.MASS.PAYMNT.PARAMETER,F.BMSC.MASS.PAYMNT.PARAMETER)

RETURN
*----------------------------------------------------------------------------------
---
LOCATE:
*----------------------------------------------------------------------------------
---

Y.DELIMIT='*'

LOCATE "START.DATE" IN D.FIELDS SETTING START.POS THEN


Y.START = D.RANGE.AND.VALUE<START.POS>
END

LOCATE "END.DATE" IN D.FIELDS SETTING END.POS THEN


Y.END=D.RANGE.AND.VALUE<END.POS>
END

LOCATE "BRANCH" IN D.FIELDS SETTING BRANCH.POS THEN


Y.BRANCH=D.RANGE.AND.VALUE<BRANCH.POS>
END

LOCATE "BUSINESS" IN D.FIELDS SETTING BUSINESS.POS THEN


Y.BUSINESS=D.RANGE.AND.VALUE<BUSINESS.POS>
END

Y.START = TRIM(Y.START,"/","A")

SEL.CMD="SELECT ":FN.AA.ARRANGEMENT:" WITH CO.CODE LIKE ...":Y.BUSINESS:"... AND


START.DATE EQ ":Y.START

CALL EB.READLIST(SEL.CMD,SEL.LIST,'',NO.OF.REC,SEL.ERR)

VAR.TOT.REC = NO.OF.REC

RETURN
*--------------------------------------------------------------------------
MAIN.PROCESS:
*-------------------------------------------------------------------------

CALL
F.READ(FN.BOMB.BUSINESS.DISCOUNT,Y.BUSINESS,R.BOMB,F.BOMB.BUSINESS.DISCOUNT,BOMB.ER
R)
Y.BUSINESS1 = R.BOMB<BU.DIS.DESCRIPTION>

COUNT=1
LOOP
REMOVE Y.ARR.ID FROM SEL.LIST SETTING AA.POS
CALL F.READ(FN.AA.ARRANGEMENT,Y.ARR.ID,R.AA.ARRANGEMENT,F.AA.ARRANGEMENT,AA.ERR)

Y.CREDIT.NUMBER=R.AA.ARRANGEMENT<AA.ARR.LINKED.APPL.ID>
Y.CUSTOMER =R.AA.ARRANGEMENT<AA.ARR.CUSTOMER>
CALL F.READ(FN.CUSTOMER,Y.CUSTOMER,R.CUSTOMER,F.CUSTOMER,CUS.ERR)

Y.APPLICATION='CUSTOMER'
Y.FIELD.ARR='L.NOM.COMPLETO'
Y.FIELD.POS=''

CALL MULTI.GET.LOC.REF(Y.APPLICATION,Y.FIELD.ARR,Y.FIELD.POS)

L.NOM.COMPLETO.POS = Y.FIELD.POS<1,1>
Y.L.NOM.COMLETO.POS = R.CUSTOMER<EB.CUS.LOCAL.REF,L.NOM.COMPLETO.POS>
Y.CUSTOMER.NAME=Y.L.NOM.COMLETO.POS

Y.ACCOUNT.DETAILS.ID = Y.ARR.ID
CALL
F.READ(FN.AA.ACCOUNT.DETAILS,Y.ACCOUNT.DETAILS.ID,R.AA.ACCOUNT.DETAILS,F.AA.ACCOUNT
.DETAILS,AA.ACC.ERR)
Y.BILL.ID = R.AA.ACCOUNT.DETAILS<AA.AD.BILL.ID>
CONVERT VM TO FM IN Y.BILL.ID
Y.VALUE1 = DCOUNT(Y.BILL.ID,FM)

VAL2= 1
LOOP
WHILE VAL2 LE Y.VALUE1
Y.BILL.ID1=Y.BILL.ID<VAL2>
CALL
F.READ(FN.AA.BILL.DETAILS,Y.BILL.ID1,R.AA.BILL.DETAILS,F.AA.BILL.DETAILS,BILL.ERR)

Y.EXPIRY.DATE=R.AA.BILL.DETAILS<AA.BD.PAYMENT.DATE>
Y.AMOUNT.FEE=R.AA.BILL.DETAILS<AA.BD.OR.TOTAL.AMOUNT>

MODULE=6
OPERATION.NO=Y.CREDIT.NUMBER
DATE=R.AA.BILL.DETAILS<AA.BD.PAYMENT.DATE>
IDENTIFICATION=R.CUSTOMER<EB.CUS.LEGAL.ID>
MINIMUM.PAYMENT=1
MAXIMUM.PAYMENT=0
CURRENCY=R.AA.BILL.DETAILS<AA.BD.CURRENCY>
AMOUNT.TO.CANCEL=R.AA.BILL.DETAILS<AA.BD.OR.TOTAL.AMOUNT>
ACCOUNT.STATUS=R.AA.ARRANGEMENT<AA.ARR.ARR.STATUS>
COMPANY.CODE=Y.BUSINESS
COMPANY.NAME=Y.BUSINESS1
CREDIT.HOLDER=Y.CUSTOMER.NAME
PAID.VALUE=R.AA.BILL.DETAILS<AA.BD.PAYMENT.AMOUNT>
DATE.PROCESS=TODAY
Y.ARR=MODULE:Y.DELIMIT:OPERATION.NO:Y.DELIMIT:DATE:Y.DELIMIT:IDENTIFICATION:Y.DELIM
IT:MINIMUM.PAYMENT:Y.DELIMIT:Y.DELIMIT:CURRENCY:Y.DELIMIT:AMOUNT.TO.CANCEL:Y.DELIMI
T:ACCOUNT.STATUS:Y.DELIMIT:COMPANY.CODE:Y.DELIMIT:COMPANY.NAME:Y.DELIMIT:CREDIT.HOL
DER:Y.DELIMIT:PAID.VALUE:Y.DELIMIT:DATE.PROCESS

CALL
F.READ(FN.BMSC.MASS.PAYMNT.PARAMETER,"SYSTEM",R.BMSC.MASS.PAYMNT.PARAMETER,F.BMSC.M
ASS.PAYMNT.PARAMETER,BMSC.MASS.ERR)
PATH=R.BMSC.MASS.PAYMNT.PARAMETER<BMSC.MASS.FEES.VENC.PATH.FILE>
LOGFILE = R.BMSC.MASS.PAYMNT.PARAMETER<BMSC.MASS.FEES.VENC.NAME.FILE>:".txt"

MYPATH=''

OPENSEQ PATH,LOGFILE TO MYPATH ELSE


CREATE MYPATH
END

WRITESEQ Y.ARR APPEND TO MYPATH ELSE


CLOSESEQ MYPATH
END

VAL2+=1
REPEAT

IF COUNT EQ 'VAR.TOT.REC' THEN


END

ELSE
GOSUB MAIN.PROCESS
END

COUNT = COUNT + 1
REPEAT

RETURN
*----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------

You might also like