H* H* |#CRTBNDRPG PGM(&O/&N) SRCFILE(&L/&F) DBGVIEW(*LIST) TGTRLS(&R) H* H* H* H* 080017 H* AMENDED BY TRS - AUTO CONVERSION 080017 H* DATE 9 Feb 2008 080017 H* PPCR NO. GHO080017 (Setallite Site) 080017 H* AMENDMENT Revise TREATS file KLIST(s) to incorporate country code 080017 H* (CTYC) for multiple country support. 080017 H* 080017 H* 990431 H* AMENDED BY : TRS PROGRAMMER 990431 H* DATE : 28/02/00 990431 H* PPCR NO : GHO990431 990431 H* AMENDMENTS : Amend all programs to declare variables of 1 char 990431 H* instead of using *like define of an indicator. 990431 H* 990431 H/TITLE AC361 - Generate Online A/c Entries for FX Deals H DEBUG DATEDIT(*YMD) H* H* COPYRIGHT. HSBC HOLDINGS PLC 1997. ALL RIGHTS RESERVED. H* H* THIS SOFTWARE IS ONLY TO BE USED FOR THE PURPOSE FOR H* WHICH IT HAS BEEN PROVIDED. NO PART OF IT IS TO BE H* REPRODUCED, DISASSEMBLED, TRANSMITTED, STORED IN A H* RETRIEVAL SYSTEM NOR TRANSLATED IN ANY HUMAN OR H* COMPUTER LANGUAGE IN ANY WAY OR FOR ANY OTHER PURPOSES H* WHATSOEVER WITHOUT THE PRIOR WRITTEN CONSENT OF H* HSBC HOLDINGS PLC. H* H* H* PROGRAM-ID AC361 - Generate Online A/c Entries for H* FX Deals H* H* PPCR NO GHO950245 H* H* H* AUTHOR Lau Wai Ki H* H* H* INSTALLATION HSBC H* H* H* DATE WRITTEN 17 Feb 1997 H* H* H* ABSTRACT This program is to generate Online Accounting H* Entries for SPOT and FWD deals on value date if H* HUB Online Accounting Feature is activated. H* H/EJECT H* H* H* H* AMENDMENT HISTORY H* ----------------- H* H* 1. PPCR NO. : GHO970214 970214 H* PROGRAMMER : BROWN GONG 970214 H* DATE : 13 AUG 1997 970214 H* AMENDMENT : Post entries with a/c serial >= 900000 970214 H* to GL accounts 970214 H* H* 2. PPCR NO. : GHO970237 970237 H* PROGRAMMER : Lau Wai Ki (Merged by Elsie Leung) 970237 H* DATE : 29 Oct. 1997 (on 11 Dec 1997) 970237 H* AMENDMENT : (Online A/c to OBS Enhancement UAT Log 016 ) 970237 H* Skip the generation of online a/c entries 970237 H* for the cancellation of first level failed 970237 H* (FLF) deal. 970237 H* 970237 H* (Online A/c to OBS Enhancement UAT Log 020 ) 970237 H* Skip the generation of online a/c entries 970237 H* for the cancellation of FLF uncheck deal. 970237 H* 970237 H* 3. PPCR NO. : GHO970265 970265 H* PROGRAMMER : Leung Lo Chi, Gigi (Merged by Frankie Lei) 970265 H* DATE : 11 Dec. 1997 (on 16 Dec 1997) 970265 H* AMENDMENT : Set A/c number as zero if the account type 970265 H* processing is currently 'SUO' 970265 H* H* 4. PPCR NO. GHO910258 (CORE 20) 910258 H* PROGRAMMER Alan Tung 910258 H* DATE 15 Sept 1998 910258 H* AMENDMENT Amend the program to resolve the problem 910258 H* of duplicated SE wires due to FLF/ECO deals 910258 H* within a chain of deal amendments. 910258 H* Use LSDN instead of OGDN when formatting NAR4. 910258 H* 910258 H* 5. PPCR NO. : GHO990067 (Merged from IMO985008) 990067 H* PROGRAMMER : Cheung Kuot (Merged by Francis Liu) 990067 H* DATE : 09 Oct 1998 (Merged on 15 Mar 1999) 990067 H* AMENDMENT : Amend all the online accounting entries to 990067 H* generate transfer instead of S&P type. 990067 H* 990067 H* 6. PPCR NO. GHO990015 990015 H* DATE 28 Jan 1999 990015 H* (Merged into Core on 15 Mar, 1999) 990015 H* AMENDED BY Henry Cheng 990015 H* (Merged into Core by Louis Chan) 990015 H* AMENDMENT Set Online Settlement Message of deals 990015 H* and Online Accounting Entry to 'H'old for 990015 H* selected basic deal type which are stored 990015 H* in the file SENODHP against the no. of days. 990015 H* e.g Basic Deal No. of What to 990015 H* Type Days Hold 990015 H* ========== ====== ======= 990015 H* FX010 2 TDY+2 990015 H* 1 T+1 & T+2 990015 H* 0 T,T+1&T+2 990015 H* (ALL) 990015 H* 990015 H* 7. PPCR NO. GHO990089 (C19 UAT log 990330) 990089 H* DATE 30 April 1999 990089 H* AMENDED BY Frankie Lo 990089 H* AMENDMENT Amend the program so that it sets the 990089 H* posting status of redenominated DD 990089 H* accounts to X. 990089 H* 960045 H* 8. PPCR NO : GHO960045 960045 H* AMENDED BY : Vincent Wong (Merged by Louis Chan) 960045 H* DATE : 03 July 1999 (Merged on 10 Aug, 1999) 960045 H* ABSTRACT : Apply half-adjust during calculation by 960045 H* referring to rounding method in TTCYIFP 960045 H* 990089 H* 9. PPCR NO. GHO050196 050196 H* PROGRAMMER Kenny Wu (MERGED BY FLAME LIN) 050196 H* DATE 07 Sep 2005 (MERGED ON 07OCT05) 050196 H* AMENDMENT Enhance the system to classify the deal that has been performed 050196 H* exception check. 050196 H* 050196 H* 10 Programmer Kenny Wu 050109 H* PPCR No. GHO050109 (MERGED BY FLAME LIN) 050109 H* Date 13 Sep 2005 (MERGED ON 07OCT05) 050109 H* Amendments Cancel the original entries if Online accounting entries not posted. 050109 H* 050109 H* 050109 H* 11. PPCR NO. GHO080021 080021 H* Multiple Country Enhancement - Manual Conversion 080021 H* DATE 11 Apr 2008 080021 H* PROGRAMMER Kevin Keung 080021 H* AMENDMENT To enhance the program to become multiple 080021 H* countries aware 080021 H* - Add country code as input paramter 080021 H* - Retrieve country code from input paramter instead of TTTDTAR002 080021 H* - Load accounting rules from file instead of compile time data 080021 H* - Use country code for SETLL and READE 080021 H* - Pass country code to TR03 080021 H* 080021 H* 070088 H* 12. PPCR NO : GHO070088 070088 H* DATE : 10 JUN 2008 070088 H* PROGRAMMER : Cheung Chi Wai 070088 H* AMENDMENT : TiA Enhancements - AMH local PPCRs Merging 070088 H* 070088 H* 070088 H* - AMH990061 070088 H* Andix Leung 070088 H* 28 May. 1999 070088 H* Use Default Settlement Msg Status for 070088 H* Skipped FLC Deal if the deal is offline 070088 H* and with Skipped FLC. 070088 H* 070088 H* 090055 H* 13. PPCR NO : GHO090055 090055 H* DATE : 01 Apr 2009 090055 H* PROGRAMMER : Jammy He 090055 H* AMENDMENT : TiAM Peru Requirement (BanTotal Interface) 090055 H* Enhance the program logic to extract and format 090055 H* the online accounting entries for BanTotal via DML. 090055 H* 100418 H* 14. PPCR NO : GHO100418 100418 H* DATE : 14 Sep 2010 100418 H* PROGRAMMER : Calvin Ng 100418 H* AMENDMENT : Fix reversal online accounting entry 100418 H* - The rate fixing create the invalid reversal online 100418 H* accounting entry due to the data structure unchanged 100418 H* after the country coded added into ACONAEP file. 100418 H* 110155 H* 15. PPCR NO : GHO110155 110155 H* DATE : 31 Mar 2011 110155 H* PROGRAMMER : Tea Boon Tick 110155 H* AMENDMENT : Sync local PPCR SGH100418 110155 H* Programmer Tricia Ong 110155 H* PPCR No. SGH100418 110155 H* Date 16 Aug 2010 110155 H* Amendments Automate manual entries raised to cater to cross group 110155 H* member. 110155 H* 110155 H* 110155 H* 090055 H* 090055 H* INDICATOR SUMMARY H* ----------------- H* H* ID F C H L DESCRIPTION OF FUNCTION H* ------------------- -------------------------------------- --- H* 81, 82, 83 File I/O error H* 99 Error exist indicator H* H* H* H* SUBROUTINE SUMMARY H* ------------------ H* H* NAME SUB-ROUTINE FUNCTIONS H* ---- --------------------- H* H* SR005 GROUP MEMBER/BRANCH NUMBER BREAK PROCESSING H* SR006 GET DEAL SETTLEMENT INSTRUCTION RECORD H* SR007 ONLINE PROCESSING - GET RECORD H* SR100 ONLINE PROCESSING H* SR200 OFFLINE PROCESSING H* SR250 OFFLINE PROCESSING - GET RECORD FROM DEAL MASTER H* SR300 ONLINE ACCOUNTING GENERATION H* SR310 DETERMINE DATE H* SR320 DATE HIT CONDITION H* SR340 CALCULATE WORKING AMOUNT H* SR400 CONDITION PROCESSING H* SR410 GET NEXT RULE INDEX H* SR420 PROCESS EVENT - 1ST VALUE DATE HIT H* SR430 PROCESS EVENT - 2ND VALUE DATE HIT H* SR500 RULE PROCESSING H* SR520 PROCESS NOSTRO A/C H* SR521 GET NOSTRO A/C NO. (CASE 1) H* SR522 GET NOSTRO A/C NO. (CASE 2) H* SR523 OVERRIDE A/C ATTRIBUTE H* SR525 GET NARRATIVES 3 & 4 H* SR530 CALCULATE EXCHANGE RATE & LCY AMOUNT H* SR531 FIND CCY AND LCY FOR NEXT A/C ENTRY H* SR540 DETERMINE TRANSFER INDICATOR H* SR550 OUTPUT RECORD TO RAW A/C ENTRY FILE H* SR551 GENERATE REVERSAL ENTRY H* SR551A GENERATE REVERSAL ENTRY FOR SUSPENSE H* SR551B GENERATE REVERSAL ENTRY FOR NOS H* SR552 OUTPUT RECORD TO RAW A/C ENTRY FILES H* SR553 OUTPUT DETAIL RECORD - COMMON FIELDS H* SR554 OUTPUT DETAIL RECORD - SPLIT AMOUNTS H* SR555 OUTPUT ONLINE A/C CONTROL RECORD H* SR700 CALCULATE EXCHANGE RATE H* SR995 LOAD TABLE TAG AND INDEX H* SR999 INITIALIZATION H* LR700 Generate reversal entries for cross gp mbr 110155 H* LR800 Generate extra pairs of entries for cross gp mbr 110155 H* LR810 Validate DD and GL account mbr 110155 H* LR820 Generate entry for DD account in HUBV mbr 110155 H* LR830 Generate entry for suspense account mbr 110155 H* LR840 Generate entry for interbridge account mbr 110155 H* H* F/EJECT FACACRLP IF E DISK INFSR(*PSSR) 080021 F RENAME(ACACRLP:ACACRLR) 080021 F* 080021 F* Accounting Rules File (Ref No. AC.21.029) 080021 F* 080021 FDIRXRFP IF E K DISK 990089 F INFSR(*PSSR) 990089 F* Redenomination cross ref file - keyed on legacy ccy ref 990089 F* (Ref No.: DI.21.019 ID: EO) 990089 F* 990089 FDIRXRFL1 IF E K DISK 990089 F INFSR(*PSSR) 990089 F* Redenomination cross ref file - keyed on new 'EUR' ref 990089 F* (Ref No.: DI.22.021 ID: EO) 990089 F* 990089 FMPESPTP IF E K DISK INFSR(*PSSR) F* F* Exchange Spot Deal File F* (Ref No.: MP.21.001 ID: TA) F* FMPEFWDP IF E K DISK INFSR(*PSSR) F* F* Exchange Forward Deal File F* (Ref No.: MP.21.002 ID: TB) F* FMPESPJP IF E K DISK INFSR(*PSSR) F* F* Exchange Spot Deal Activity Journal F* (Ref No.: MP.41.001 ID: TC) F* FMPEFWJP IF E K DISK INFSR(*PSSR) F* F* Exchange Forward Deal Activity Journal F* (Ref No.: MP.41.002 ID: TD) F* FSSBRCPP IF E K DISK INFSR(*PSSR) F* F* Group Branch Control File F* (Ref No.: SA.11.010 ID: XI) F* FSEDLSIP IF E K DISK INFSR(*PSSR) F* F* Deal Settlement Instruction File F* (Ref No.:SE.21.006 ID: GG) F* FSENODHP IF E K DISK INFSR(*PSSR) 990015 F* 990015 F* No. of Days for Basic Deal Types to Hold File 990015 F* (Ref No. : SE.21.028 ID: G8) 990015 F* 990015 FACACTAP IF E K DISK INFSR(*PSSR) F* F* Account Type Attribute File F* (Ref No.: AC.21.001 ID: JA) F* FACPCTRP IF E K DISK INFSR(*PSSR) F* F* Profit Centre Control File F* (Ref No.: AC.21.003 ID: JI) F* FSSCYIFP IF E K DISK INFSR(*PSSR) F* F* Currency Information File F* (Ref No.: SA.11.050 ID: XR) F* FSSDATEP IF E DISK INFSR(*PSSR) F* F* System Date File F* (Ref No.: SA.11.070 ID: XS) F* FSSGMCPP IF E K DISK INFSR(*PSSR) F* F* Group Member Control File F* (Ref No.: SA.11.010 ID: X2) F* FTTCPIPP IF E K DISK INFSR(*PSSR) F* F* Conterparty Information File F* (Ref No.: TT.21.003 ID: XJ) F* FACDFSTP IF E K DISK INFSR(*PSSR) F* F* HUB Online Accounting Default Status File F* (Ref No.: AC.21.016 ID: YE) F* FACONAEL1 IF E K DISK INFSR(*PSSR) F* F* Online Raw Accounting Entries File LF1 F* (Ref No.: AC.42.018 ID: JF) F* F*CNL ACONCTP O E K DISK INFSR(*PSSR) 050109 FACONCTP UF A E K DISK INFSR(*PSSR) 050109 F COMMIT F* F* Online Raw Accounting Entries Control File F* (Ref No.: AC.41.025 ID: JX) F* FACONDTP O E K DISK INFSR(*PSSR) F COMMIT F* F* Online Raw Accounting Entries Detail File F* (Ref No.: AC.41.026 ID: JY) F* FACONAEP O E K DISK INFSR(*PSSR) F COMMIT F* F* Online Raw Accounting Entries File F* (Ref No.: AC.41.027 ID: JF) F* FTTFLPCP IF E K DISK INFSR(*PSSR) 970237 F* 970237 F* Deals Pending First Level Check File 970237 F* (Ref No.: TT.21.027 ID: XC) 970237 F* 970237 FMPECKDP IF E K DISK INFSR(*PSSR) 050196 F* 050196 F* Exception checked Deal File 050196 F* (Ref No.: MP.21.101 ID:EK) 050196 F* 050196 FTTPDCTP IF E K DISK INFSR(*PSSR) 050196 F* 050196 F* Product Control File 050196 F* (Ref No.: TT.21.002 ID: XG) 050196 F* 050196 FTTCYIFP IF E K DISK 960045 F/DEFINE TR03F F/COPY TTSILERPG,TR03 F/UNDEFINE TR03F F* 960045 F* TREATS CURRENCY INFORMATION FILE 960045 F* (Ref No.: TT.21.056 ID: MW) 960045 F* 960045 FACONCTL5 IF E K DISK INFSR(*PSSR) 050109 F* 050109 F* Online Raw Accounting Entries Control LF 5 050109 F* (Ref No.: AC.42.022 ID: JX) 050109 F* 050109 D/EJECT D ACC S 3 DIM(2) CTDATA PERRCD(1) A/C TYPE D ATT S 26 DIM(2) A/C ATRRIBUTE D***CNL RUL S 51 DIM(119) CTDATA PERRCD(1) A/C RULES 080021 D RUL S 51 DIM(2000) A/C RULES 080021 D CND S 1 DIM(8) DATE HIT COND D CCYP S 6 DIM(200) CCY PAIR D RAT S 15 9 DIM(200) EXCHANGE RATE D CCY S 3 DIM(2) RCY D AMT S 15 0 DIM(2) RCY AMOUNT D TTAG S 3 DIM(40) TABLE TAG D TIND S 3 0 DIM(40) TABLE INDEX D NAR3 S 1 DIM(24) NARRATIVE 3 D ARY S 1 DIM(24) RATE ARRAY D CYCP S 6 DIM(200) CYCP/EXCHANGE RATE D EXRT S 15 9 DIM(200) D* 090055 DW0BTOA S 1 BanTotal Online A/C 090055 D* Indicator 090055 DW0CGRP S 1 Cross Group Member 110155 D* Indicator 110155 D DS D* D* DS FOR ACCOUNTING ENTRY GENERATION RULE D* D WARUL 1 51 D* COMMON D WATAG 1 3 D WACRIN 5 5 D* CONDITION D WACTYP 7 7 D WACNDI 12 13 0 D WAEVTI 41 43 D WACJMP 45 47 D* RULE D* NOTE: AS ACCOUNT 'NOS' AND 'SUO' USE SAME AMOUNT, D* NO NEED TO ENSURE THE LCY AMT MUST BE BALANCED. D* THE 'S'TART AND 'E'ND FLAG IN THE PROGRAM IS TO D* CONTROL WHEN TO RETRIEVE HUB DEAL NO. D* D WARULE 7 9 0 D WAENTN 11 13 0 D WATRC1 15 19 0 D WATRC2 21 25 0 D WAACTY 27 29 D WAAMTI 31 32 0 D WAGIND 43 43 D WADNEI 45 45 D WABLKI 47 47 D* D WANEXT 49 51 D* D DS D* D* DS FOR ACCOUNT TYPE ATTRIBUTE RECORD D* D WBATT 1 36 D* D WBDSBS 1 2 D WBACTG 3 3 D WBAGMA 4 7 D WBABRN 8 10 D WBAPTY 11 13 D WBCCYC 14 16 D WBPCTR 17 24 D WBGCCL 25 27 D WBMATC 28 28 D WBCYPC 29 31 D WBCYCC 32 34 D WBSPCN 35 36 D* D DS D* D* DS FOR DATE FORMAT D WCDATE 1 8 0 D* D WCYYYY 1 4 0 D WCMM 5 6 0 D WCDD 7 8 0 D* D DS D* D* D* DS FOR MAINFRAME ACCOUNT NO D* D WFACNO 1 12 0 D WF3B 1 3 0 D WF6N 4 9 0 D WF3S 10 12 0 D* D DS D* D* DS FOR TRANSACTION CODE D* D WFTRCD 1 5 0 D WFX 1 1 D WFYY 2 3 0 D* D DS D* D* DS FOR NARRATIVE 2 D* D WGNAR2 1 24 D WGDLNO 1 12 D WGAEVT 15 21 D DS D* D* DS FOR NARRATIVE 4 D* D WANAR4 1 21 D WALABL 1 9 D WAOGDN 10 21 D* D DS D* D* DS FOR COUNTERPARTY D* D K0CPAC 1 7 D WHSTAR 1 1 D WHGCCL 2 4 D DS D* D* DS FOR TODAY's DATE D* D W0TDDT 1 8 0 D W0TMM 5 6 0 D DS D* D* DS FOR WORK DATE FIELD D* D W0WDAT 1 8 0 D W0WMM 5 6 0 D DS D* D* DS FOR CURRENCY PAIR LOOK UP D* D WACCYP 1 6 D WACCY1 1 3 D WACCY2 4 6 D* 110155 D DS 110155 D* 110155 D* DS FOR CUSTOMER ACCOUNT NO 110155 D W@CUST 1 20 110155 D* 110155 D W@CIND 1 4 110155 D W@CUAC 6 17 110155 D W@BRN 6 8 110155 D W@SER 9 14 110155 D W@SUF 15 17 110155 D W@BLK 18 20 110155 D* 110155 D DS 110155 D* DS FOR suspense and interbridge account (GL) 110155 D W@GLAC 1 20 110155 D* 110155 D W@GMCY 1 7 110155 D W@GMAB 1 4 110155 D W@CYCD 5 7 110155 D* 110155 D W@GLNO 8 20 110155 D W@GLBR 8 10 110155 D W@GLSR 11 16 110155 D W@GLSF 17 19 110155 D W@BLK1 20 20 110155 D* 110155 D* 110155 D DS 110155 D* DS FOR DD/GL ACCOUNT 110155 D W@ACNO 1 12 110155 D W@ACB 1 3 110155 D W@ACS 4 9 110155 D W@ACX 10 12 110155 D DS 110155 D* DS FOR GMAB/CCY 110155 D W$GPCY 1 7 110155 D W$GMAB 1 4 110155 D W$CYCD 5 7 110155 D DS 110155 D* DS FOR SUSPENSE/INTERBRIDE ACCOUNT ARRAY 110155 D W@ARRY 1 20 110155 D W@KEY 1 7 110155 D W@ACCT 8 20 110155 D* D* DS FOR ACONAER D ONAER E DS EXTNAME(ACONAEP) D ONAE 6 255 100418 D**ONAE 4 253 100418 D* D* DS FOR BACKUP OF ACONAER D W9ONAR DS 255 100418 D W9ONAE 6 255 100418 D*W9ONAR DS 253 100418 D**W9ONAE 4 253 100418 D**W9GMAB 4 7 100418 D**W9BRNO 8 9P 0 100418 D**W9RULE 10 11P 0 100418 D**W9ENTN 12 13P 0 100418 D**W9DLNO 14 25 100418 D**W9AEVT 26 32 100418 D* DS FOR BACKUP OF REVERSAL ACONAER D W8ONAR DS 255 100418 D W8ONAE 6 255 100418 D*W8ONAR DS 253 100418 D**W8ONAE 4 253 100418 D* 050196 D W0DCHK S 5 DIM(20) Basic Deal Type 050196 D W0SFCA S 5A DIM(20) Basic Deal T for Flp050109 D W@SUSR S 20 DIM(50) Susp a/c - ARRAY 110155 D W@SUSC S 7 DIM(50) Susp a/c -gmab/ccy 110155 D W@SUSA S 13 DIM(50) suspense account 110155 D W@INBR S 20 DIM(50) Interbridge-gmab/ccy110155 D W@INBC S 7 DIM(50) Interbridge-gmab/ccy110155 D W@INBA S 13 DIM(50) interbridge account 110155 D/DEFINE TR03D D/COPY TTSILERPG,TR03 D/UNDEFINE TR03D D/DEFINE XR08D 110155 D/COPY HUBILERPG,XR08 110155 D/UNDEFINE XR08D 110155 D/DEFINE XRZZ2D D/COPY HUBILERPG,XRZZ2 D/UNDEFINE XRZZ2D I* I/EJECT I* I* IMPESPTR I TACTYC TXCTYC 080021 I TAGMAB TXGMAB I TABRNO TXBRNO I TADLNO TXDLNO I TADLST TXDLST I TAEIRI TXEIRI I TACPAC TXCPAC I TAEXID TXEXID I TADDAT TXDDAT I TACDAT TXCDAT 970237 I TAMRGN TXMRGN I TADPOS TXDPOS I TADPS1 TXDPS1 I TACYPC TXCYPC I TACYCC TXCYCC I TAPCYA TXPCYA I TACCYA TXCCYA I TARSPT TXRSPT I TAPCCS TXPCCS I TAOGDN TXOGDN I TALSDN TXLSDN 910258 I TARSNS TXRSNS I TASFLC TXSFLC 050196 I TALVDA TXLVDA 050109 I* IMPEFWDR I TCCTYC TXCTYC 080021 I TCGMAB TXGMAB I TCBRNO TXBRNO I TCDLNO TXDLNO I TCDLST TXDLST I TCEIRI TXEIRI I TCCPAC TXCPAC I TCEXID TXEXID I TCDDAT TXDDAT I TCCDAT TXCDAT 970237 I TCMRGN TXMRGN I TCDPOS TXDPOS I TCDPS1 TXDPS1 I TCCYPC TXCYPC I TCCYCC TXCYCC I TCPCOA TXPCYA I TCCCOA TXCCYA I TCPCSW TXRSPT I TCPCCS TXPCCS I TCOGDN TXOGDN I TCLSDN TXLSDN 910258 I TCRSNS TXRSNS I TCSFLC TXSFLC 050196 I TCLVDA TXLVDA 050109 I* IMPESPJR I TBDLNO TYDLNO I TBTSTY TYTSTY I TBOGDN TYOGDN I TBMEID TYMEID 990015 I* IMPEFWJR I TDDLNO TYDLNO I TDTSTY TYTSTY I TDOGDN TYOGDN I TDMEID TYMEID 990015 I* I* C/EJECT C* C******************************************** C* M A I N L I N E * C******************************************** C* C* -------------- C* INITIALIZATION C* -------------- C EXSR SR999 INITIALIZE C* C* -------------------- C* MAIN PROCESSING LOOP C* -------------------- C* C MOVE W0NEW W1DLTP DEFAULT NEW C* C P0DLNO IFNE *BLANK C EXSR SR100 ONLINE C ELSE C EXSR SR200 OFFLINE C ENDIF ONLINE CALL? C* ------------ C* FINALIZATION C* ------------ C* C P0DLNO IFEQ *BLANK C MOVE W0ON *INLR C ENDIF OFFLINE? C* C RETURN C* C/EJECT C******************************************************************** C* * C* NAME : SR005 (BRANCH BREAK PROCESSING) * C* * C* PARAMETERS : Field Description Format Len Usage * C* ----- ----------- ------ --- ----- * C* W5GMAB Group Member Abbr. X 4 I * C* W5BRNO Branch No. P 3(0) I * C* * C* FUNCTION : 1. SAVE NEW BANK, BRANCH * C* 2. LOAD A/C TYPE ATTRIBUTE RECORDS * C* * C******************************************************************** C/SPACE 3 C SR005 BEGSR C* C W5GMAB IFNE W1GMAB GET LCY CODE C MOVE W5GMAB K0GMAB C K0GMCP CHAIN SSGMCPR 81 C *IN81 IFEQ W0OFF C MOVE X2LCYC W0LCYC C ELSE C MOVE *BLANK W0LCYC C ENDIF FOUND? C ENDIF GRP BREAK? C* C W5GMAB IFNE W1GMAB NEW GRP/BRCH C W5BRNO ORNE W1BRNO C* C MOVE W5GMAB W1GMAB SAVE UP KEYS C Z-ADD W5BRNO W1BRNO C* C MOVE W1GMAB K0GMAB C Z-ADD W1BRNO K0BRNO C* C MOVEA *BLANK CCYP CLEAR CCYP C Z-ADD 201 W1CYLO EMPTY TABLE C* C* ------------------------ C* Load A/C type attributes C* ------------------------ C* C 1 DO W0NACC K DO LOOP C MOVE ACC(K) K0ACTY C K0ACTA CHAIN ACACTAR 82 C *IN82 IFEQ W0OFF IF FOUND C MOVE JADSBS WBDSBS C MOVE JAACTG WBACTG C MOVE JAAGMA WBAGMA C MOVE JAABRN WBABRN C MOVE JAAPTY WBAPTY C MOVE JACCYC WBCCYC C MOVE JAPCTR WBPCTR C MOVE JAGCCL WBGCCL C MOVE JAMATC WBMATC C MOVE JACYPC WBCYPC C MOVE JACYCC WBCYCC C MOVE JASPCN WBSPCN C MOVE WBATT ATT(K) C ELSE A/C NOT FOUND C MOVE *ALL'*' ATT(K) C ENDIF IF FOUND C ENDDO DO LOOP C* C ENDIF NEW GRP/BRCH? C* C SR005E ENDSR C* C/EJECT C******************************************************************** C* * C* NAME : SR006 (GET DEAL SETTLEMENT INSTRUCTION) * C* * C* FUNCTION : 1. GET DEAL SETTLEMENT INSTRUCTION FOR * C* DIFFERENT TYPE * C* * C******************************************************************** C/SPACE 3 C SR006 BEGSR C* C* OBTAIN DEAL INSTRUCTION RECORD FOR NOS ONLY C* C MOVE TXGMAB K0GMAB C Z-ADD TXBRNO K0BRNO C MOVE TXDLNO K0DLNO C MOVE 'P' K0INFG C* C K0DLSI CHAIN SEDLSIR 82 C *IN82 IFEQ W0OFF C MOVE W0YES W1FND C ELSE C MOVE W0NO W1FND C ENDIF SI FOUND? C* 110155 C W0CGRP IFEQ W0NO 110155 C* 110155 C* If found, check if cross group member entries require 110155 C* 110155 C MOVE W0NO W@XGP 110155 C W1FND IFEQ W0NO 110155 C GOTO SR006E 110155 C ENDIF 110155 C* 110155 C* bypass if deal is captured in ACU book 110155 C* 110155 C TXGMAB IFEQ W0ACU 110155 C GOTO SR006E 110155 C ENDIF 110155 C* 110155 C* bypass if primary ccy and counter ccy are both SGD 110155 C* 110155 C TXCYPC IFEQ W0SGD 110155 C TXCYCC ANDEQ W0SGD 110155 C GOTO SR006E 110155 C ENDIF 110155 C* 110155 C* bypass if primary ccy and counter ccy are both FCY 110155 C* 110155 C TXCYPC IFNE W0SGD 110155 C TXCYCC ANDNE W0SGD 110155 C GOTO SR006E 110155 C ENDIF 110155 C* 110155 C* Generate entries if either Their bank to pay or Their bank to 110155 C* receive account is in this format "HUBV-001123456001" 110155 C* Check Their bank to pay account: 110155 C* 110155 C MOVE GGTPCA W@CUST 110155 C W@CIND IFEQ W0HUBV IDENTIFIER 110155 C* 110155 C* Validate customer's account 110155 C* 110155 C MOVE W@CUAC W@ACNO 110155 C MOVE W0ACU W@GPMB 110155 C EXSR LR810 validate account no 110155 C W@INVD IFEQ W0YES 110155 C GOTO SR006E 110155 C ELSE 110155 C MOVE W0YES W@XGP 110155 C GOTO SR006E 110155 C ENDIF 110155 C ENDIF THEIR PAY NOT HUBV 110155 C* 110155 C MOVE GGTRCA W@CUST 110155 C W@CIND IFEQ W0HUBV IDENTIFIER 110155 C* 110155 C* Validate customer's account 110155 C* 110155 C MOVE W@CUAC W@ACNO 110155 C MOVE W0ACU W@GPMB 110155 C EXSR LR810 validate account no 110155 C W@INVD IFEQ W0YES 110155 C GOTO SR006E 110155 C ELSE 110155 C MOVE W0YES W@XGP 110155 C GOTO SR006E 110155 C ENDIF 110155 C ENDIF 110155 C* 110155 C ENDIF 110155 C* C SR006E ENDSR C* C/EJECT C******************************************************************** C* * C* NAME : SR007 (ONLINE PROCESSING - GET RECORD) * C* * C* FUNCTION : 1. RETRIEVE RECORD FROM DEAL MASTER * C* MPESPTP OR MPEFWDP * C* 2. CHECK SPOT, OUTRIGHT FWD, OPTION FWD DEAL * C* 3. FLAG ON SKIP INDICATOR FOR: * C* - DEAL STATUS <> 'NOR' OR 'CNL' * C* - BOTH VALUE DATES AFTER TDY * C* - BOTH VALUE DATES BEFORE TODAY * C* - NON-EXTERNAL DEAL * C* * C******************************************************************** C/SPACE 3 C SR007 BEGSR C* C MOVE W0NO W0SPT C MOVE W0NO W0FWD C MOVE W0NO W0OPTN C MOVE W0NO W0SKIP C* C* ------------ C* FROM MPESPTP C* ------------ C* C K0ESPT CHAIN MPESPTR 81 C* C *IN81 IFEQ *OFF SPOT DEAL C MOVE W0YES W0SPT C* C* ------------ C* FROM MPEFWDP C* ------------ C* C ELSE C K0ESPT CHAIN MPEFWDR 81 C* C *IN81 IFEQ *OFF FWD DEAL C MOVE W0YES W0FWD C* C TCEDPC IFEQ *ZERO OUTRIGHT FWD C TCEDCC ANDEQ *ZERO C MOVE W0NO W0OPTN C ELSE OPTION FWD C MOVE W0YES W0OPTN C ENDIF OUTRIGHT FWD? C* C ENDIF FORWARD? C ENDIF SPOT? C* C*---------------------- C* CHECK SKIP RECORD C*---------------------- C* C *IN81 IFEQ *ON NOT FOUND C* C TXDLST ORNE W0NOR NOT READY C TXDLST ANDNE W0CNL C* C TXEIRI ORNE W0EXT NON EXT DEAL C* C W0SPT OREQ W0YES NOT IN TDY..TDY C TAVDPC ANDNE W0TDDT C TAVDCC ANDNE W0TDDT C* C W0FWD OREQ W0YES C W0OPTN ANDEQ W0NO C TCVDPC ANDNE W0TDDT C TCVDCC ANDNE W0TDDT C* C W0FWD OREQ W0YES C W0OPTN ANDEQ W0YES C TCEDPC ANDNE W0TDDT C TCEDCC ANDNE W0TDDT C* C MOVE W0YES W0SKIP C ENDIF SKIP? C* 970237 C* SKIP TO GEN ONLINE AC ENTRY FOR CANCELLATION OF FLF DEAL 970237 C* SKIP TO GEN ONLINE AC ENTRY FOR CANCELLATION ON VALUE DATE 050109 C* 970237 C TXDLST IFEQ W0CNL CANCEL DEAL 970237 C TXCDAT ANDEQ W0TDDT CAPTURE TODAY 970237 C W0SKIP ANDEQ W0NO 970237 C TXDLST OREQ W0CNL 050109 C TXLVDA ANDEQ W0TDDT 050109 C W0SKIP ANDEQ W0NO 050109 C W1VBDT ANDEQ *ON 050109 C K2ONAE CHAIN ACONAE11 81 ANY PREV RCD? 970237 C *IN81 IFEQ *ON NOT FOUND 970237 C MOVE W0YES W0SKIP SKIP GEN AC ENT 970237 C ELSE 050109 C EXSR SR010 050109 C ENDIF 970237 C ENDIF 970237 C* 970237 C* SKIP TO GEN ONLINE AC ENTRY FOR CANCELLATION OF FLF UNCHECK DEAL 970237 C* 970237 C TXDLST IFEQ W0CNL CANCEL DEAL 970237 C TXCDAT ANDNE W0TDDT NOT CAP TODAY 970237 C W0SKIP ANDEQ W0NO 970237 C K0FLPC CHAIN TTFLPCR 81 UNCHECK DEAL? 970237 C *IN81 IFEQ *OFF RCD FOUND 970237 C K2ONAE CHAIN ACONAE11 81 ANY PREV RCD? 970237 C *IN81 IFEQ *ON NOT FOUND 970237 C MOVE W0YES W0SKIP SKIP GEN AC ENT 970237 C ELSE 050109 C EXSR SR010 050109 C ENDIF 970237 C ENDIF 970237 C ENDIF 970237 C* C SR007E ENDSR C* C/EJECT C******************************************************************** 050109 C* * 050109 C* NAME : SR010 * 050109 C* * 050109 C* FUNCTION : 1. DETERMINE ACCOUNTING ENTRIES STATUS * 050109 C* * 050109 C******************************************************************** 050109 C/SPACE 3 050109 C* 050109 C SR010 BEGSR 050109 C* 050109 C*Determine if the basic deal type is valid or not 050109 C W1VBDT IFEQ *OFF 050109 C GOTO SR010E 050109 C ENDIF 050109 C* 050109 C*Determine if all accounting entries are cancelled or in error 050109 C KAONCT CHAIN ACONCT51 81 050109 C *IN81 DOWEQ *OFF 050109 C JXPSTS IFNE 'C' 050109 C JXPSTS ANDNE 'E' 050109 C GOTO SR010E 050109 C ENDIF 050109 C KAONCT READE ACONCT51 81 050109 C ENDDO 050109 C MOVE W0YES W0SKIP 050109 C* 050109 C SR010E ENDSR 050109 C/EJECT 050109 C******************************************************************** C* * C* NAME : SR100 (ONLINE PROCESSING) * C* * C* FUNCTION : 1. RETRIEVE RECORD FROM MPESPTP/MPEFWDP * C* 2. SKIP IRRELEVANT RECORDS * C* * C******************************************************************** C* C/SPACE 3 C* C SR100 BEGSR C* C CLEAR ACONAER C* C MOVE P0GMAB K0GMAB C Z-ADD P0BRNO K0BRNO C MOVE P0DLNO K0DLNO C* C*-------------------------------- C* GET RECORD FROM DEAL MASTER C*-------------------------------- C* C EXSR SR007 RTV ONLINE RCD C* C*---------------------- C* CHECK SKIP RECORD C*---------------------- C* C W0SKIP IFEQ W0YES C GOTO SR100E C ENDIF NOT FOUND? C* C*--------------------- C* GET DEAL JOURNAL C*--------------------- C* C MOVE P0GMAB K0GMAB C Z-ADD P0BRNO K0BRNO C MOVE P0EXID K0EXID C W0SPT IFEQ W0YES C K0ESPJ CHAIN MPESPJP 82 C ELSE C K0ESPJ CHAIN MPEFWJP 82 C ENDIF SPOT? C* C *IN82 IFEQ *OFF C TYDLNO ANDNE TYOGDN C TYTSTY IFEQ W0AMD C TYTSTY OREQ W0CRT C MOVE W0AMD W1DLTP C ENDIF AMEND? C ENDIF DIFF? C* C*----------------------- C* GET LOCAL CURRENCY C*----------------------- C* C MOVE P0GMAB W5GMAB C Z-ADD P0BRNO W5BRNO C EXSR SR005 GRP BREAK C* C*----------------------------------------- C* RESET ONLINE ACCOUNTING ENTRY NUMBER C*----------------------------------------- C* C Z-ADD *ZERO W1ETNO C Z-ADD *ZERO W2ETNO C* C*----------------------------------------- C* PERFORM ONLINE RAW A/C GENERATION C*----------------------------------------- C* C EXSR SR300 GEN ENTRIES C* C SR100E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR200 (OFFLINE PROCESSING) * C* * C* FUNCTION : 1. RETRIEVE AND PROCESS ALL RECORDS FROM * C* - EXCHANGE SPOT DEAL MASTER * C* - EXCHANGE FORWARD DEAL MASTER * C* * C******************************************************************** C/SPACE 3 C* C SR200 BEGSR C* C* ------------------------ C* PROCESS SPOT DEAL MASTER C* ------------------------ C* C MOVE W0YES W0SPT C MOVE W0NO W0FWD C***CNL READ MPESPTR 81 080021 C K1ESPT CHAIN MPESPTR 81 080021 C *IN81 DOWEQ *OFF C EXSR SR250 OFFLINE PROCESS C***CNL READ MPESPTR 81 080021 C K1ESPT READE MPESPTR 81 080021 C ENDDO C* C* --------------------------- C* PROCESS FORWARD DEAL MASTER C* --------------------------- C* C MOVE W0YES W0FWD C MOVE W0NO W0SPT C***CNL READ MPEFWDR 81 080021 C K1EFWD CHAIN MPEFWDR 81 080021 C *IN81 DOWEQ *OFF C* C TCEDPC IFEQ *ZERO OUTRIGHT FWD C TCEDCC ANDEQ *ZERO C MOVE W0NO W0OPTN C ELSE OPTION FWD C MOVE W0YES W0OPTN C ENDIF OUTRIGHT FWD? C* C EXSR SR250 OFFLINE PROCESS C***CNL READ MPEFWDR 81 080021 C K1EFWD READE MPEFWDR 81 080021 C ENDDO C* C SR200E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR250 (OFFLINE PROCESSING) * C* * C* FUNCTION : 1. RECORD RECORD FROM DEAL MASTER * C* 2. SKIP IRRELEVANT RECORDS * C* * C******************************************************************** C/SPACE 3 C* C SR250 BEGSR C* C CLEAR ACONAER C* C*---------------------- C* CHECK SKIP RECORD C*---------------------- C* C TXDLST IFNE W0NOR C TXEIRI ORNE W0EXT NOT EXT DEAL C* C TXDLST ORNE W0NOR NOT READY C TXDLST ANDNE W0CNL C* C W0SPT OREQ W0YES NOT IN TDY..TDY C TAVDPC ANDNE W0TDDT C TAVDCC ANDNE W0TDDT C* C W0FWD OREQ W0YES C W0OPTN ANDEQ W0NO C TCVDPC ANDNE W0TDDT C TCVDCC ANDNE W0TDDT C* C W0FWD OREQ W0YES C W0OPTN ANDEQ W0YES C TCEDPC ANDNE W0TDDT C TCEDCC ANDNE W0TDDT C* C GOTO SR250E C ENDIF SKIP? C* C*---------------------------------------------- C* GET LOCAL CCY AND LOAD ACCOUNT ATTRIBUTES C*---------------------------------------------- C* C TXGMAB IFNE W1GMAB C TXBRNO ORNE W1BRNO C MOVE TXGMAB W5GMAB C Z-ADD TXBRNO W5BRNO C EXSR SR005 GRP BREAK C ENDIF GRP/BRH BREAK? C* C*----------------------------------------- C* RESET ONLINE ACCOUNTING ENTRY NUMBER C*----------------------------------------- C* C Z-ADD *ZERO W1ETNO C Z-ADD *ZERO W2ETNO C* C*----------------------------------------- C* PERFORM ONLINE RAW A/C GENERATION C*----------------------------------------- C* C EXSR SR300 GEN ENTRIES C* C SR250E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR300 (ONLINE RAW A/C ENTRIES GENERATION) * C* * C* FUNCTION : 1. RETRIEVE HUB DEAL NUMBER FROM DATAAREA * C* 2. PERFORM DETERMINE DATE HIT CONDITION * C* 3. PERFORM GENERATE EVENT ARRAYS * C* 4. PERFORM CALCULATE WORKING AMOUNTS * C* 5. PROCESS CONDITION OR RULE * C* * C******************************************************************** C/EJECT C* C SR300 BEGSR C* C*----------------------------- C* CHECK DATE HIT CONDITION C*----------------------------- C* C EXSR SR310 GET DATE C EXSR SR320 CHK DATE HIT C* C*---------------------------- C* CALCULATE WORKING AMOUNT C*---------------------------- C* C EXSR SR340 GET AMOUNTS C* C*----------------------- C* PROCESS RULE TABLE C*----------------------- C* C Z-ADD 1 W3RULI C* C W3RULI DOWGT *ZERO C MOVE RUL(W3RULI) WARUL C WACRIN IFEQ 'C' C EXSR SR400 COND PROCESS C ELSE C EXSR SR500 RULE PROCESS C ENDIF CONDITION? C ENDDO C* C SR300E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR310 (DETERMINE DATES) * C* * C* FUNCTION : CHECK THE FOLLOWING VALUE DATES * C* 1. 1ST VALUE DATE * C* 2. 2ND VALUE DATE * C* 3. BUY VALUE DATE * C* 4. SOLD VALUE DATE * C* * C* REMARK : PRIMARY VALUE DATE/COUNTER VALUE DATE WHICH IS * C* IS EARLIER WILL BE THE FIRST VALUE DATE. * C* * C* PRIMARY CCY AMT/COUNTER CCY AMT WHICH IS * C* POSITIVE, THE CORRESPONDING VALUE DATE WILL BE * C* THE BUY VALUE DATE. * C* * C******************************************************************** C/SPACE 3 C SR310 BEGSR C* C*---------------------- C* PROCESS SPOT DEAL C*---------------------- C* C SELECT C W0SPT WHENEQ W0YES C TAVDPC IFLT TAVDCC DEFINE C Z-ADD TAVDPC W1FVD 1ST VALUE DATE C Z-ADD TAVDCC W1SVD 2ND VALUE DATE C ELSE C Z-ADD TAVDCC W1FVD C Z-ADD TAVDPC W1SVD C ENDIF PRI FIRST? C* C TXPCYA IFGT *ZERO DEFINE C Z-ADD TAVDPC W1BUD BUY VALUE DATE C Z-ADD TAVDCC W1SOD SOLD VALUE DATE C ELSE C Z-ADD TAVDPC W1SOD C Z-ADD TAVDCC W1BUD C ENDIF PRI BUY? C* C*---------------------------------- C* PROCESS OUTRIGHT FORWARD DEAL C*---------------------------------- C* C W0OPTN WHENEQ W0NO OUTRIGHT FWD C TCVDPC IFLT TCVDCC C Z-ADD TCVDPC W1FVD 1ST VALUE DATE C Z-ADD TCVDCC W1SVD 2ND VALUE DATE C ELSE C Z-ADD TCVDCC W1FVD C Z-ADD TCVDPC W1SVD C ENDIF PRI FIRST? C* C TXPCYA IFGT *ZERO C Z-ADD TCVDPC W1BUD BUY VALUE DATE C Z-ADD TCVDCC W1SOD SOLD VALUE DATE C ELSE C Z-ADD TCVDPC W1SOD C Z-ADD TCVDCC W1BUD C ENDIF PRI BUY? C* C*-------------------------------- C* PROCESS OPTION FORWARD DEAL C*-------------------------------- C* C W0OPTN WHENEQ W0YES OPTION FWD C TCEDPC IFLT TCEDCC C Z-ADD TCEDPC W1FVD 1ST VALUE DATE C Z-ADD TCEDCC W1SVD 2ND VALUE DATE C ELSE C Z-ADD TCEDCC W1FVD C Z-ADD TCEDPC W1SVD C ENDIF PRI FIRST? C* C TCPCYA IFGT *ZERO ORIGINAL AMT C Z-ADD TCEDPC W1BUD BUY VALUE DATE C Z-ADD TCEDCC W1SOD SOLD VALUE DATE C ELSE C Z-ADD TCEDPC W1SOD C Z-ADD TCEDCC W1BUD C ENDIF PRI BUY? C* C ENDSL C* C SR310E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR320 (CHECK DATE HIT CONDITIONS) * C* * C* FUNCTION : CHECK THE FOLLOWING DATE HIT CONDITION * C* 1.FX SPOT DEAL * C* 2.PRIMARY BUY : TXPCYA > 0 * C* 3.1ST VALUE DATE : TDY <= 1ST VDAT <= TDY * C* 4.2ND VALUE DATE : TDY <= 2ND VDAT <= TDY AND * C* 1ST VDAT < 2ND VDAT * C* 5.BUY VALUE DATE : 1ST VDAT HIT AND * C* BUY VDAT = 1ST VDAT AND * C* BUY VDAT <> SOLD VDAT * C* 6.SOLD VALUE DATE : 1ST VDAT HIT AND * C* SOLD VDAT = 1ST VDAT AND * C* SOLD VDAT <> BUY VDAT * C* 7.2ND BUY VDAT : 2ND VDAT HIT AND * C* BUY VDAT = 2ND VDAT * C* 8.CANCELLATION : DLST = 'CNL' * C* * C******************************************************************** C/SPACE 3 C SR320 BEGSR C* C*-------------------------------------- C* INITIALIZE ALL THE CONDITION AS 'N' C*-------------------------------------- C* C MOVEA *ALL'N' CND C* C* CONDITION 1 : FX SPOT C* --------------------- C* C W0SPT IFEQ W0YES C MOVE W0YES CND(1) C ENDIF SPOT? C* C* CONDITION 2 : PRIMARY BUY C* ------------------------- C TXPCYA IFGT *ZERO C MOVE W0YES CND(2) C ENDIF PRI BUY? C* C* CONDITION 3 : 1ST VALUE DATE C* ---------------------------- C W1FVD IFEQ W0TDDT IN TDY..TDY C MOVE W0YES CND(3) C ENDIF 1ST VDAT HIT? C* C* CONDITION 4 : 2ND VALUE DATE C* ---------------------------- C W1SVD IFEQ W0TDDT IN TDY..TDY C W1FVD ANDNE W1SVD C MOVE W0YES CND(4) C ENDIF 2ND VDAT HIT? C* C* CONDITION 5 : BUY VALUE DATE HIT C* -------------------------------- C CND(3) IFEQ W0YES C W1BUD IFEQ W1FVD C W1BUD ANDNE W1SOD C MOVE W0YES CND(5) C ENDIF BUY VDAT HIT? C* C* Condition 6 : SOLD VALUE DATE C* ----------------------------- C W1SOD IFEQ W1FVD C W1SOD ANDNE W1BUD C MOVE W0YES CND(6) C ENDIF SELL VDAT HIT? C ENDIF 1ST VDAT? C* C* CONDITION 7 : 2ND BUY VALUE DATE HIT C* ------------------------------------ C CND(4) IFEQ W0YES C W1SVD ANDEQ W1BUD C MOVE W0YES CND(7) C ENDIF 2ND BUY DATE? C* C* CONDITION 8 : CANCELLATION C* -------------------------- C TXDLST IFEQ W0CNL C MOVE W0YES CND(8) C ENDIF CANCEL? C* C SR320E ENDSR C* C/EJECT C******************************************************************** C* * C* NAME : SR340 (CALCULATE WORKING AMOUNT) * C* * C* THE AMOUNTS INVOLVED ARE AS FOLLOWS : * C* * C* INDEX AMOUNT DESCRIPTION * C* ----- ------ ----------- * C* 1 PCYA PRIMARY CURRENCY CONTRACT/OUTSTANDING AMOUNT * C* 2 CCYA IF CORPORATE RATE = 0 * C* COUNTER CURRENCY AMOUNT * C* ELSE * C* -(PCYA * CORPORATE RATE) * C* * C******************************************************************** C/SPACE 3 C SR340 BEGSR C* C*---------------------- C* INITIALIZE ARRAYS C*---------------------- C* C MOVEA *BLANK CCY C Z-ADD *ZERO AMT C* C*------------- C* AMOUNT 1 C*------------- C* C MOVE TXCYPC CCY(1) MAJOR CCY C Z-ADD TXPCYA AMT(1) MAJOR CCY AMT C* C*------------- C* AMOUNT 2 C*------------- C* C MOVE TXCYCC CCY(2) MINOR CCY C TXMRGN IFEQ *ZERO CORP RATE = 0 C Z-ADD TXCCYA AMT(2) MINOR CCY AMT C ELSE C* C MOVE 'N' MWRDMT 960045 C MOVE TXCYCC K1CYCD 960045 C K1CYIF CHAIN TTCYIFR 81 960045 C* 960045 C TXRSNS IFEQ 'M' MULT. C* 960045 C MWRDMT IFNE 'T' 960045 C TXPCYA MULT(H) TXMRGN AMT(2) C ELSE 960045 C TXPCYA MULT TXMRGN AMT(2) 960045 C ENDIF 960045 C* 960045 C ELSE DIV. C* 960045 C MWRDMT IFNE 'T' 960045 C TXPCYA DIV(H) TXMRGN AMT(2) C ELSE 960045 C TXPCYA DIV TXMRGN AMT(2) 960045 C ENDIF 960045 C* 960045 C ENDIF MULTIPLY? C ENDIF CORP RATE 0? C* C Z-SUB AMT(2) AMT(2) C* C SR340E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR400 (PROCESS CONDITION) * C* * C* FUNCTION : 1.CHECK IF CONDITION SATISFIED * C* 2.CALL APPROPRIATE SUBROUTINE IF CONDITION TRUE. * C* 3.SET THE RULE INDEX. * C* * C******************************************************************** C/SPACE 3 C SR400 BEGSR C* C WACTYP IFEQ '1' CONDITION C CND(WACNDI) ANDEQ W0YES SATISFY C* C MOVE WANEXT W3NEXT C WAEVTI IFNE *BLANK C WAEVTI CASEQ '100' SR420 1ST VALUE DATE C WAEVTI CASEQ '110' SR430 2ND VALUE DATE C ENDCS C ENDIF HAS EVENT? C* C ELSE CONDITION C MOVE WACJMP W3NEXT NOT SATISFY C ENDIF COND CHECKING? C* C EXSR SR410 GET NEXT IDX C* C SR400E ENDSR C* C/EJECT C******************************************************************** C* * C* NAME : SR410 (GET NEXT RULE INDEX ) * C* * C******************************************************************** C/SPACE 3 C SR410 BEGSR C* C W3NEXT IFEQ W0CONT CONTINUE C ADD 1 W3RULI C GOTO SR410E C ENDIF '+'? C* C W3NEXT IFEQ W0REND END C Z-ADD *ZERO W3RULI C GOTO SR410E C ENDIF '000'? C* C Z-ADD 1 X C W3NEXT LOOKUP TTAG(X) 88 = EQUAL C *IN88 IFEQ W0ON C Z-ADD TIND(X) W3RULI C ELSE C Z-ADD *ZERO W3RULI C ENDIF TAG FOUND? C* C SR410E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR420 (PROCESS EVENT - 1st value date hit) * C* * C******************************************************************** C/SPACE 3 C SR420 BEGSR C* C MOVEL(P) 'VALUE' JFAEVT C Z-ADD W1FVD JFVDAT C JFVDAT IFGE W0FDNM C MOVE '2' JFBTCH C ELSE C MOVE '1' JFBTCH C ENDIF NEXT MONTH? C* C CND(8) IFEQ W0YES C MOVEL(P) 'CANCEL' JFAEVT C ENDIF CANCEL? C* C SR420E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR430 (PROCESS EVENT - 2nd value date hit) * C* * C******************************************************************** C/SPACE 3 C SR430 BEGSR C* C MOVEL(P) 'VALUE' JFAEVT C Z-ADD W1SVD JFVDAT C JFVDAT IFGE W0FDNM C MOVE '2' JFBTCH C ELSE C MOVE '1' JFBTCH C ENDIF NEXT MONTH? C* C CND(8) IFEQ W0YES C MOVEL(P) 'CANCEL' JFAEVT C ENDIF CANCEL? C* C SR430E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR500 (PROCESS RULE) * C* * C* FUNCTION : 1.CALCULATE THE NEXT RULE INDEX. * C* 2.SKIP PROCESSING IF AMOUNT = 0. * C* 3.MOVE FIELDS FROM RULE TO ACRACER. * C* 4.PROCESS NOSTRO A/C * C* 5.PROCESS ACCOUNT ATTRIBUTE. * C* 6.CALCULATE XACTN AMOUNT & PROVISION BALANCE * C* 7.CALCULATE EXCHANGE RATE & LCY AMOUNT * C* 8.WRITE A RECORD TO RAW A/C ENTRIES FILE * C* * C******************************************************************** C/SPACE 3 C SR500 BEGSR C* C* CALCULATE NEXT RULE INDEX. C* -------------------------- C* C MOVE W3RULI W3RULE SAVE RULE INDEX C MOVE WANEXT W3NEXT C EXSR SR410 GET NEXT IDX C* C* GET WORKING AMOUNT C* ------------------ C* C Z-ADD AMT(WAAMTI) W3RAMT C* C* SKIP PROCESSING IF NECESSARY C* ---------------------------- C* C W3RAMT IFEQ *ZERO C* C P0TSTY IFEQ W0NEW NEW DEAL C P0TSTY OREQ W0CNL CNL DEAL C TXDLST ANDEQ W0CNL C GOTO SR500E C ENDIF NO PREVIOUS? C* C ENDIF NIL AMOUNT? C* C* MOVE FIELDS FROM RULES TO ACONAEP C* --------------------------------- C* C Z-ADD WARULE JFRULE C Z-ADD WAENTN JFENTN C MOVE WAACTY JFACTY C MOVE WADNEI JFDNEI C MOVE WABLKI JFBLKI C* C* MOVE FIELDS FROM DEAL MASTER TO ACONAEP C* --------------------------------------- C* C MOVE TXGMAB JFGMAB C Z-ADD TXBRNO JFBRNO C MOVE TXDLNO JFDLNO C MOVE TXCPAC JFCPAC C* C* PERFORM NOSTRO / ACCOUNT-TYPE-ATTRIBUTE-PROCESS C* ----------------------------------------------- C* C W3RAMT IFGT *ZERO C Z-ADD WATRC1 WFTRCD C ELSE C Z-ADD WATRC2 WFTRCD C ENDIF POSITIVE? C* C EXSR SR520 NOSTRO PROCESS C* C W1FND CABEQ W0NO SR500E SKIP IF NO SI C* C* CALCULATE RCY AMOUNT & PROVISION A/C BALANCE C* -------------------------------------------- C* C W3RAMT IFGT *ZERO C Z-ADD W3RAMT JFRTNA C ELSE C Z-SUB W3RAMT JFRTNA C ENDIF POSITIVE? C* C JFCCYC IFNE CCY(WAAMTI) CCY OVERRIDEN C MOVE CCY(WAAMTI) W7CCY1 C MOVE JFCCYC W7CCY2 C EXSR SR700 CAL EXCH RATE C MULT(H) W7RATE JFRTNA C ENDIF OVERRIDE? C* C* CALCULATE TRANSACTION EXCHANGE RATE & LCY AMOUNT C* ------------------------------------------------ C* C EXSR SR530 EX RATE & AMT C* C* SET PROVISION A/C BALANCE C* ------------------------- C* C Z-ADD 0 JFPACB C* C* DETERMINE TRANSACTION CODE (TRANSFER/S&P) C* ----------------------------------------- C* C WAGIND IFEQ W0STRT C WFYY ANDEQ W0SP C EXSR SR540 CHK TRANSFER C ENDIF S&P? C* C WFYY IFEQ W0SP C W1TRAN ANDEQ W0YES C MOVE W0TR WFYY C ENDIF CHG TO TFR? C* C Z-ADD WFTRCD JFTRCD C MOVE JFBTCH JFHBTH C* C W1SCUA IFEQ W0YES C EXSR SR551 WRITE REV C ELSE C EXSR SR550 WRITE ACONAEP C ENDIF SKIP CUA? C* C SR500E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR520 (PROCESS NOSTRO A/C) * C* * C* FUNCTION : 1.DETERMINE A/C TRANSACTION CODE - W3XACT * C* W0DR - DR or CNL CR * C* W0CR - CR or CNL DR * C* 2.OBTAIN THE DEAL INSTRUCTION RECORD. * C* 3.IF DEAL INSTRUCTION <> 'CUA', SKIP THE * C* PROCESSING * C* 4.MOVE VALUES TO OTHER FIELDS IN ACRACER. * C* 5.GET THE NOSTRO ACCOUNT NO. * C* * C******************************************************************** C/SPACE 3 C SR520 BEGSR C* C* DETERMINE ACCOUNT TRANSACTION TYPE C* C MOVE WFX W3XACT C TXDLST IFEQ W0CNL C WFX IFEQ W0CR C MOVE W0DR W3XACT CNL CR C ELSE C MOVE W0CR W3XACT CNL DR C ENDIF CREDIT? C ENDIF CANCEL? C* C* GET DEAL SETTLEMENT INSTRUCTION C* C JFACTY IFNE W0SUO C EXSR SR006 GET SI C ENDIF ¬SUO? C* C W1FND IFEQ W0YES RCD FND C* C JFACTY IFNE W0SUO SUO? C* C MOVE W0NO W1SCUA SKIP SUO GEN? C W3XACT IFEQ W0CR C GGOPFA ANDNE W0CUA C W3XACT OREQ W0DR C GGORFA ANDNE W0CUA C W3XACT OREQ W0CR NETTING? C GGTRNS ANDEQ W0NET C W3XACT OREQ W0DR C GGTPNS ANDEQ W0NET C MOVE W0YES W1SCUA C ENDIF INVALID NOSTRO? C* C ENDIF ¬SUO? C* C W1SCUA IFEQ W0YES C* C P0TSTY IFEQ W0NEW C P0TSTY OREQ W0CNL C TXDLST ANDEQ W0CNL C GOTO SR520E C ENDIF NO PREVIOUS? C* C ENDIF SKIP CUA? C* C* C* MOVE VALUES TO ACONAEP FIELDS C* C MOVE TXGMAB JFPGMA C MOVE CCY(WAAMTI) JFCCYC C MOVE 'GL' JFDSBS C MOVE 'C' JFRIND C MOVE *BLANK JFPCTR C MOVE *BLANK JFAPTY C MOVE *BLANK JFGCCL C MOVE *BLANK JFMATC C MOVE *BLANK JFRDPD C MOVE *BLANK JFCYPC C MOVE *BLANK JFCYCC C MOVE *BLANK JFNOAC C MOVE *BLANK JFDSTS C Z-ADD *ZERO JFACEG C Z-ADD *ZERO JFCCBR C Z-ADD *ZERO JFDEPT C Z-ADD *ZERO JFSECT C* C JFACTY IFNE W0SUO C MOVE *BLANK JFACTY C ENDIF ¬SUO? C* C TXDPOS IFNE *ZEROS C Z-ADD TXDPOS JFDPOS C ELSE C Z-ADD TXDPS1 JFDPOS C ENDIF NON-SPAWN? C* C MOVE JFDLNO WGDLNO C MOVE JFAEVT WGAEVT C MOVE WGNAR2 JFNAR2 C* C EXSR SR525 FMT NAR3 & 4 C MOVEA NAR3 JFNAR3 C MOVEL WANAR4 JFNAR4 C* C* GET OVERRIDING ATTRIBUTES FOR A/C TYPE C* C Z-ADD 1 X GET A/C ATTR C WAACTY LOOKUP ACC(X) 88 C *IN88 IFEQ W0ON C MOVE ATT(X) WBATT C ELSE C MOVE *ALL'*' WBATT C ENDIF A/C FOUND? C* C* FIND NOSTRO ACCOUNT NUMBER C* C W3XACT IFEQ W0DR C EXSR SR521 NOSTRO 1 C ELSE C EXSR SR522 NOSTRO 2 C ENDIF DEBIT? C* C ENDIF SI FOUND? C* C SR520E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR521 (GET NOSTRO A/C NO. (CASE 1)) * C* * C* FUNCTION : GET THE NOSTRO ACCOUNT NO FROM OUR BANK TO * C* RECEIVE AND THEIR BANK TO PAY. * C* * C******************************************************************** C/SPACE 3 C SR521 BEGSR C* C* MOVE VALUES TO COMMON FIELDS C* C MOVE *BLANK JFNAR1 C MOVEL GGORRF JFNAR1 C MOVE TXCPAC JFNAR1 C* C* FTS ABBR = 'CUA' C* C W1SCUA IFEQ W0YES C JFACTY OREQ W0SUO 970265 C Z-ADD *ZEROS WFACNO C ELSE C MOVEL GGTPCA WFACNO C ENDIF NOT CUA? C* C JFACTY IFNE W0SUO C MOVE WFACNO JFFANO C ELSE C MOVE *BLANK JFFANO C ENDIF ¬SUO? C* C* GET OVERRIDE GROUP MEMBER AND BRANCH OF TRANSACTION C* C EXSR SR523 FORMAT COMMON C* C Z-ADD *ZERO JFAACS C Z-ADD *ZERO JFAACX C* C* ONE ACCOUNT SYSTEM INTERFACE WITH TREATS C* C JFACTY IFNE W0SUO C W0NOAS IFEQ '1' C MOVE WF3B JFPBRN C MOVE WF6N JFAACS C MOVE WF3S JFAACX C ELSE C MOVE W0CUAA JFACTY C ENDIF FULL HUB? C ENDIF FORMAT A/C NO? C* C SR521E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR522 (GET NOSTRO A/C NO. (CASE 2)) * C* * C* FUNCTION : GET THE NOSTRO ACCOUNT NO FROM OUR BANK TO * C* PAY & THEIR BANK TO RECEIVE. * C* * C******************************************************************** C/SPACE 3 C SR522 BEGSR C* C* MOVE VALUES TO COMMON FIELDS C* C MOVE *BLANK JFNAR1 C MOVEL GGOPRF JFNAR1 C MOVE TXCPAC JFNAR1 C* C W1SCUA IFEQ W0YES C JFACTY OREQ W0SUO 970265 C Z-ADD *ZEROS WFACNO C ELSE C MOVEL GGTRCA WFACNO C ENDIF NOT CUA? C* C JFACTY IFNE W0SUO C MOVE WFACNO JFFANO C ELSE C MOVE *BLANK JFFANO C ENDIF ¬SUO? C* C* GET OVERRIDE GROUP MEMBER AND BRANCH OF TRANSACTION C* C EXSR SR523 FORMAT COMMON C* C Z-ADD *ZERO JFAACS C Z-ADD *ZERO JFAACX C* C* ONE ACCOUNT SYSTEM INTERFACE WITH TREATS C* C JFACTY IFNE W0SUO C W0NOAS IFEQ '1' C MOVE WF3B JFPBRN C MOVE WF6N JFAACS C MOVE WF3S JFAACX C ELSE C MOVE W0CUAA JFACTY C ENDIF FULL HUB? C ENDIF FORMAT A/C NO? C* C SR522E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR523 (OVERRIDE A/C ATTRIBUTE) * C* * C* FUNCTION : DETERMINE THE VALUES OF THE ACCOUNT ATTRIBUTE * C* IN ACONAER. * C* * C******************************************************************** C/SPACE 3 C SR523 BEGSR C* C* A/C GROUP MEMBER C* ---------------- C* C WBAGMA IFEQ *ALL'*' C MOVE TXGMAB JFPGMA C ELSE C MOVE WBAGMA JFPGMA C ENDIF NOT OVERRIDE? C* C* A/C BRANCH NO. C* -------------- C* C WBABRN IFEQ *ALL'*' C Z-ADD TXBRNO JFPBRN C ELSE C MOVE WBABRN JFPBRN C ENDIF NOT OVERRIDE? C* C JFPBRN IFEQ *ZERO C Z-ADD TXBRNO JFPBRN C ENDIF INVALID BRANCH? C* C* CURRENCY CODE C* ------------- C* C WBCCYC IFEQ *ALL'*' C MOVE CCY(WAAMTI) JFCCYC C ELSE C MOVE WBCCYC JFCCYC C ENDIF NOT OVERRIDE? C* C* DESTINATION C* ----------- C* C WBDSBS IFNE *ALL'*' C MOVE WBDSBS JFDSBS C ENDIF OVERRIDE? C* C* SKIP THE FOLLOWING OVERRIDING IF CUA IN FULL HUB C* ------------------------------------------------ C* C JFACTY IFNE W0SUO C W0NOAS ANDEQ '1' C GOTO SR523E C ENDIF FULL HUB CUA? C* C* ACCOUNT PRODUCT TYPE C* -------------------- C* C WBAPTY IFNE *ALL'*' C MOVE WBAPTY JFAPTY C ENDIF OVERRIDE? C MOVE JFAPTY JFRDPD C* C* PROFIT CENTRE C* ------------- C* C WBPCTR IFNE *ALL'*' C MOVE WBPCTR JFPCTR C MOVE JFGMAB K1GMAB C Z-ADD JFBRNO K1BRNO C MOVE JFPCTR K1PCTR C K0PCTR CHAIN ACPCTRR 82 C *IN82 IFEQ *OFF C Z-ADD JICCBR JFCCBR C Z-ADD JIDEPT JFDEPT C Z-ADD JISECT JFSECT C ENDIF FOUND? C ENDIF OVERRIDE? C* C* GHO CUSTOMER CLASS C* ------------------ C* C WBGCCL IFNE *ALL'*' C MOVE WBGCCL JFGCCL C ENDIF OVERRIDE? C* C* GHO CUSTOMER CLASS C* ------------------ C* C WBGCCL IFNE *ALL'*' C MOVE WBGCCL JFGCCL C ENDIF OVERRIDE? C* C* MATURITY CODE C* ------------- C* C WBMATC IFNE *ALL'*' C MOVE WBMATC JFMATC C ENDIF OVERRIDE? C* C* CURRENCY PAIR C* ------------- C* C WBCYPC IFNE *ALL'*' C MOVE WBCYPC JFCYPC C ENDIF OVERRIDE? C* C WBCYCC IFNE *ALL'*' C MOVE WBCYCC JFCYCC C ENDIF OVERRIDE? C* C* SUB-PROFIT CENTRE C* ----------------- C* C WBSPCN IFNE *ALL'*' C MOVE WBSPCN JFSECT C ENDIF OVERRIDE? C* C SR523E ENDSR C* C/EJECT C******************************************************************** C* * C* NAME : SR525 (GET NARRATIVES 3 & 4) * C* * C* FUNCTION : 1.COMPOSE SWIFT COMMON REFERENCE & STORE IT IN * C* VARIABLE NARRATIVE 3 * C* 2.COMPOSE ORIGINAL DEAL NO. & STORE IT IN * C* VARIABLE NARRATIVE 4 * C* * C******************************************************************** C/SPACE 3 C* C SR525 BEGSR C* C MOVE *BLANK JFNAR3 C MOVE *BLANK JFNAR4 C* C MOVE TXGMAB K0GMAB C Z-ADD TXBRNO K0BRNO C K0BRCP CHAIN SSBRCPP 81 FIND BRANCH C *IN81 IFEQ *ON C MOVE *BLANK XISWAD DEFAULT BLANK C ENDIF NOT FOUND? C* C MOVE TXCPAC K0CPAC C K0CPIP CHAIN TTCPIPR 81 C *IN81 IFEQ *ON C MOVE *BLANK XJSWFT C ENDIF NOT FOUND? C* C* NARRATIVE 3 - COMMON SWIFT REFERENCE C* C Z-ADD 1 J C* CONTRACT RATE C TXMRGN IFEQ *ZERO C TXRSPT ADD TXPCCS WARATE C ELSE C Z-ADD TXMRGN WARATE C ENDIF CORP RATE 0? C* C MOVEL XJSWFT W1CH08 TAKE CTR SWIFT C MOVE W1CH08 W1CH02 LAST 2 LOC CODE C MOVEL W1CH08 W1BNKA FIRST 4 BK CODE C MOVE W1CH02 W1BNKA STORE BANK A C* C MOVEL XISWAD W1CH08 TAKE OB SWIFT C MOVE W1CH08 W1CH02 LAST 2 LOC CODE C MOVEL W1CH08 W1BNKB FIRST 4 BK CODE C MOVE W1CH02 W1BNKB STORE BANK B C* C W1BNKA IFNE *BLANK C W1BNKB ANDNE *BLANK C WARATE ANDGE *ZERO C* GEN COMMON REF. C* C W1BNKA IFLT W1BNKB C MOVEA W1BNKA NAR3(J) STORE BANK A C ELSE C MOVEA W1BNKB NAR3(J) STORE BANK B C ENDIF BANK A FIRST? C ADD 9 J POS TO NEXT 9 C* C MOVE WARATE W1CH15 15 TAKE RATE C MOVEA W1CH15 ARY(1) C Z-ADD 15 I RATE LEN 15 C Z-ADD 4 K TAKE LAST 4 ONLY C K DOWGT *ZERO K > 0 & C I ANDGT *ZERO I > 0 ? C ARY(I) IFNE '0' NON-ZERO DIGIT / C K ORNE 4 GOT NON-ZERO DIGIT C MOVE ARY(I) NAR3(J) TAKE DIGIT C SUB 1 J DECREASE J BY 1 C SUB 1 K DECREASE K BY 1 C ENDIF NON-ZERO? C SUB 1 I DECREASE I BY 1 C ENDDO C* C K DOWGT *ZERO LESS THAN 4 ? C MOVE '0' NAR3(J) ADD ZERO DIGITS C SUB 1 J DECREASE J BY 1 C SUB 1 K DECREASE K BY 1 C ENDDO C* C ADD 5 J POS NEXT 5 C W1BNKA IFLT W1BNKB C MOVEA W1BNKB NAR3(J) STORE BANK B C ELSE C MOVEA W1BNKA NAR3(J) STORE BANK A C ENDIF BANK A FIRST? C* C ADD 6 J POS TO NEXT 6 C* C ENDIF BANKS DEFINED? C* C MOVEA *BLANK NAR3(J) CLEAR TRAILING C* C* NARRATIVE 4 - ORIGINAL DEAL NO. IF AVAILABLE C* C***CNL TXOGDN IFNE *BLANK 910258 C TXLSDN IFNE *BLANK 910258 C MOVEL 'ORG DEAL' WALABL C***CNL MOVE TXOGDN WAOGDN 910258 C MOVE TXLSDN WAOGDN 910258 C ELSE C MOVE *BLANK WANAR4 C ENDIF ORG DEAL? C* C SR525E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR530 (CALCULATE EXCHANGE RATE & LCY AMOUNT) * C* * C* FUNCTION : 1. FIND LCY CURRENCY. * C* 2. CALCULATE EXCHANGE RATE. * C* 3. CALCULATE LCY AMOUNT FROM EXCHANGE RATE OR * C* USE THE LCY TOTAL STORED. * C* * C******************************************************************** C/SPACE 3 C SR530 BEGSR C* C* FIND LCY CURRENCY C* ----------------- C* C JFPGMA IFNE W1GMAB C MOVE JFPGMA K0GMAB C K0GMCP CHAIN SSGMCPR 82 C *IN82 IFEQ W0OFF C MOVE X2LCYC JFLCYC C ELSE C MOVE *BLANK JFLCYC C ENDIF FOUND? C ELSE C MOVE W0LCYC JFLCYC C ENDIF DIFF GRP MBR? C* C* CALCULATE RCY/LCY EXCHANGE RATE C* ------------------------------- C* C MOVE JFCCYC W7CCY1 C MOVE JFLCYC W7CCY2 C EXSR SR700 GET EX RATE C Z-ADD(H) W7RATE JFTEXR C* C* CALCULATE LCY AMOUNT C* -------------------- C* C JFRTNA MULT(H) W7RATE JFLTNA C* C SR530E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR531 (FIND CCY AND LCY FOR NEXT A/C ENTRY) * C* * C******************************************************************** C/SPACE 3 C SR531 BEGSR C* C* FIND LCY C* -------- C Z-ADD 1 X GET A/C ATTR C WAACTY LOOKUP ACC(X) 88 FOUND C *IN88 IFEQ W0ON C MOVE ATT(X) WBATT C ELSE C MOVE *ALL'*' WBATT C ENDIF A/C FOUND? C* C WBAGMA IFNE *ALL'*' C MOVE WBAGMA W1AGM1 C ELSE C MOVE TXGMAB W1AGM1 C ENDIF OVERRIDE? C* C W1AGM1 IFNE W1GMAB C MOVE W1AGM1 K0GMAB C K0GMCP CHAIN SSGMCPR 82 C *IN82 IFEQ W0OFF C MOVE X2LCYC W1LCYC C ELSE C MOVE *BLANK W1LCYC C ENDIF FOUND? C ELSE C MOVE W0LCYC W1LCYC C ENDIF DIFF GRP MBR? C* C* FIND RCY C* -------- C WBCCYC IFNE *ALL'*' C MOVE WBCCYC W1NCYC C ELSE C MOVE CCY(WAAMTI) W1NCYC C ENDIF OVERRIDE? C* C SR531E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR540 (DETERMINE TRANSFER INDICATOR) * C* * C* FUNCTION : IF RCY CURRENCY = LCY CURRENCY IN A/C ENTRY * C* OR RCY CURRENCY OF ENTRIES IN GROUP DIFFERS * C* SET ON TRANSFER FLAG * C* * C******************************************************************** C/SPACE 3 C SR540 BEGSR C* C MOVE W0NO W1TRAN C JFCCYC IFEQ JFLCYC C MOVE W0YES W1TRAN C ENDIF RCY = LCY? C* C* DETERMINE RCY & LCY FOR ALL ENTRIES IN SAME A/C ENTRIES GROUP C* C Z-ADD W3RULI Y C* C W1TRAN DOWEQ W0NO WHILE NOT TFR & C WAGIND ANDNE W0END NOT END OF GRP C MOVE RUL(Y) WARUL C* C WACRIN IFEQ 'R' IF RULE C EXSR SR531 FIND NEXT CCY & C ADD 1 Y LCY C* C W1NCYC IFEQ W1LCYC C JFCCYC ORNE W1NCYC C MOVE W0YES W1TRAN C ENDIF DIFF CCY? C* C ELSE COND (NOTE 1) C ADD 1 Y C ENDIF RULE? C* C ENDDO WHILE C* C MOVE RUL(W3RULE) WARUL RESTORE A/C RULE C* C* Note 1 C* ------ C* Normally, all the rules (which generate a/c entries) within C* an a/c entries group are placed consecutively in the a/c rules C* table following a condition. However, there may be cases in C* which the conditions are interleaved with the rules of an a/c C* entries group. C* C* The ELSE part of the IF statment is used to handle the case. C* C SR540E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR550 (OUTPUT RECORD TO RAW A/C ENTRIES FILES) * C* * C* FUNCTION : 1. DETERMINE IF RECORD HAS TO BE OUTPUT OR NOT * C* 2. OUTPUT RECORD TO ONLINE RAW A/C ENTRY FILE * C* 3. OUTPUT RECORD TO ONLINE RAW A/C CONTROL AND * C* DETAIL FILE * C* * C******************************************************************** C/SPACE 3 C SR550 BEGSR C* C* CHECK IF REVERSAL ENTRY HAS TO BE GENERATED OR NOT C* C EXSR SR551 GEN REV ENTRY C* C* NO NEED TO GENERATED NEW ENTRY FOR SCHEDULE OR DEAL SETT. CHG C* C W1GNEW IFNE W0YES C W3RAMT OREQ *ZERO C GOTO SR550E C ENDIF SKIP? C* C* WRITE NEW ENTRY C* C* RETRIEVE HUB DEAL NUMBER C* C WAGIND IFEQ W0STRT C *LOCK IN W1HUBN C Z-ADD W1HUBN W2HUBN C ADD 1 W1HUBN C OUT W1HUBN C ENDIF GRP START? C* C Z-ADD W2HUBN JFHDLN C* C* C MOVE K1CTYC JFCTYC 080017 C WRITE ACONAER C* C* WRITE ACONCTP AND ACONDTP C* C MOVE W0YES W1NWEN C EXSR SR552 OUTPUT ONLINE C MOVE W0NO W1NWEN C* 110155 C* generate new entries for cross group member 110155 C* 110155 C W0CGRP IFEQ W0YES 110155 C WAGIND IFEQ W0STRT 110155 C W@XGP ANDEQ W0YES 110155 C EXSR LR800 110155 C ENDIF 110155 C ENDIF 110155 C* C SR550E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR551 (CHECK IF TO GENERATE REVERSAL ENTRY) * C* * C* FUNCTION : 1. CHECK IF REVERSAL ENTRY HAS TO BE GENERATED * C* OR NOT * C* * C******************************************************************** C/SPACE 3 C SR551 BEGSR C* C* IF SCHEDULE OR SETTLEMENT INT. CHANGE AND NO IMPACT, C* NO NEED TO OUTPUT ANY RECORDS. C* HOWEVER, IF NOS ENTRY HAS BEEN REVERSED, THE SUBSEQUENT SUSPENSE C* ACCOUNT NEEDS TO BE GENERATED TOO. C* C MOVE ONAE W9ONAE C* C* DEAL FROM DEAL INPUT C* C JFACTY IFNE W0SUO C P0TSTY IFNE W0CNL C P0TSTY ANDNE W0AMD C TXDLST OREQ W0CNL C MOVE W0NO W1GREV C MOVE W0YES W1GNEW GEN NOS C GOTO SR551E C ELSE C MOVE W0NO W1GREV C MOVE W0NO W1GNEW C ENDIF NO PREVIOUS? C ENDIF ¬SUO? C* C* DEAL SETT. INSTRUCTION OR SCHEDULE CHANGE C* C SELECT C* C JFACTY WHENEQ W0SUO C EXSR SR551A REV SUO C* C JFACTY WHENNE W0SUO C EXSR SR551B REV NOSTRO C* C ENDSL C* C* WRITE REVERSE ENTRY C* THE AMOUNT FOR SUSPENSE ACCOUNT SHOULD BE THE SAME C* AS THE REVERSAL AMOUNT OF NOS ACCOUNT(S) C* C* C W1GREV IFNE W0YES C GOTO SK5511 C ENDIF GEN REVERSE? C* C JFACTY IFNE W0SUO NOSTRO C MOVE *ALL'0' JFAEVT C MOVE JFHDLN JFAEVT C MOVEL 'R' JFAEVT C MOVE JFAEVT W3AEVT C ELSE C MOVE W3AEVT JFAEVT C ENDIF ¬SUO? C* C MOVE JFTRCD WFTRCD C* C WFX IFEQ W0CR C MOVE W0DR WFX C ELSE C MOVE W0CR WFX C ENDIF ORG CREDIT? C* C MOVE WFTRCD JFTRCD C* C* RETRIEVE HUB DEAL NUMBER C* C WAGIND IFEQ W0STRT C *LOCK IN W1HUBN C Z-ADD W1HUBN W3HUBN C ADD 1 W1HUBN C OUT W1HUBN C ENDIF GRP START? C* C Z-ADD W3HUBN JFHDLN C* C MOVE K1CTYC JFCTYC 080017 C WRITE ACONAER C* C* WRITE ACONCTP AND ACONDTP C* C MOVE W0YES W1RVEN C EXSR SR552 OUTPUT ONLINE C MOVE W0NO W1RVEN C* C SK5511 TAG C* C JFACTY IFEQ W0SUO C MOVE *BLANK W3AEVT C ENDIF SUO? C* C MOVE W9ONAE ONAE C* 110155 C* REVERSE CROSS GROUP MEMBER ENTRIES 110155 C* 110155 C W0CGRP IFEQ W0YES 110155 C W1GREV IFEQ W0YES 110155 C WAGIND IFEQ W0STRT 110155 C EXSR LR700 110155 C ENDIF 110155 C ENDIF 110155 C ENDIF 110155 C* C SR551E ENDSR C* C/EJECT C******************************************************************** C* * C* NAME : SR551A (PROCESS SUO REVERSAL ENTRY) * C* * C* FUNCTION : 1. DETERMINE WHETHER SUSPENSE REVERSAL ENTRY * C* HAS TO BE GENERATED OR NOT * C* 2. RETRIEVE RECORD FOR REVERSAL ENTRY * C* * C******************************************************************** C/SPACE 3 C SR551A BEGSR C* C W1GREV IFEQ W0NO SKIP SUO C GOTO SR51AE C* C ELSE GEN SUO C MOVE JFGMAB K0GMAB C Z-ADD JFBRNO K0BRNO C MOVE JFDLNO K0DLNO C Z-ADD JFRULE K0RULE C Z-ADD JFENTN K0ENTN C MOVE JFAEVT K0AEVT C MOVE W3AEVT K0HDLN GET HUB DEAL C K0ONAE CHAIN ACONAEL1 82 C *IN82 IFEQ W0ON C MOVE W0NO W1GREV C ELSE 050109 C W1VBDT IFEQ *ON 050109 C KBONCT CHAIN(N) ACONCTR 81 050109 C *IN81 IFEQ *OFF 050109 C JXPSTS ANDEQ 'C' 050109 C *IN81 OREQ *OFF 050109 C JXPSTS ANDEQ 'E' 050109 C MOVE W0NO W1GREV 050109 C ENDIF 050109 C ENDIF 050109 C ENDIF NOT FOUND? C* C ENDIF GEN REVERSE? C* C SR51AE ENDSR C* C/EJECT C******************************************************************** C* * C* NAME : SR551B (PROCESS NOS REVERSAL ENTRY) * C* * C* FUNCTION : 1. DETERMINE WHETHER NOSTRO REVERSAL ENTRY * C* HAS TO BE GENERATED OR NOT * C* 2. RETRIEVE RECORD FOR REVERSAL ENTRY * C* * C******************************************************************** C/SPACE 3 C SR551B BEGSR C* C* CHECK IF NOS ENTRY HAS TO BE GENERATED OR NOT C* C MOVE JFGMAB K0GMAB C Z-ADD JFBRNO K0BRNO C MOVE JFDLNO K0DLNO C Z-ADD JFRULE K0RULE C Z-ADD JFENTN K0ENTN C MOVE JFAEVT K0AEVT C K1ONAE SETGT ACONAEL1 C K1ONAE READPE ACONAEL1 82 C *IN82 IFEQ W0ON C MOVE W0NO W1GREV C MOVE W0YES W1GNEW C GOTO SR51BE C* C ELSE REC FOUND C W1VBDT IFEQ *ON 050109 C MOVE JFHDLN K0HDLN 050109 C KBONCT CHAIN(N) ACONCTR 81 050109 C *IN81 IFEQ *OFF 050109 C JXPSTS ANDEQ 'C' 050109 C *IN81 OREQ *OFF 050109 C JXPSTS ANDEQ 'E' 050109 C MOVE W0NO W1GREV 050109 C MOVE W0YES W1GNEW 050109 C GOTO SR51BE 050109 C ENDIF 050109 C ENDIF 050109 C* 050109 C MOVE W0YES W1FREV C ONAE IFEQ W9ONAE IF SAME C MOVE W0YES W1SAME C ELSE C MOVE W0NO W1SAME DIFF. C ENDIF SAME AS BEF? C* C* CHECK IF REVERSAL ENTRY EXIST OR NOT C* C MOVE ONAE W8ONAE SAVE ENTRY C* C MOVE *ALL'0' K0AEVT C MOVE JFHDLN K0AEVT C MOVEL 'R' K0AEVT C K1ONAE SETGT ACONAEL1 C K1ONAE READPE ACONAEL1 83 C *IN83 IFEQ W0ON C MOVE W0NO W1FREV NOT FND REV C ELSE 050109 C W1VBDT IFEQ *ON 050109 C MOVE JFHDLN K0HDLN 050109 C KBONCT CHAIN(N) ACONCTR 81 050109 C *IN81 IFEQ *OFF 050109 C JXPSTS ANDEQ 'C' 050109 C *IN81 OREQ *OFF 050109 C JXPSTS ANDEQ 'E' 050109 C MOVE W0NO W1FREV 050109 C ENDIF 050109 C ENDIF 050109 C ENDIF NOT FOUND? C* C W1FREV IFEQ W0YES FND REV C MOVE W0NO W1GREV C MOVE W0YES W1GNEW GEN. NEW C GOTO SK51B1 C* C ELSE NOT FND REV C W1SAME IFEQ W0YES SAME C W1SCUA ANDNE W0YES NOT SKIP CUA C MOVE W0NO W1GREV C GOTO SK51B1 C* C ELSE C MOVE W0YES W1GREV GEN. REV C W1SCUA IFNE W0YES C MOVE W0YES W1GNEW GEN. NEW C ENDIF NOT SKIP? C ENDIF SAME ENTRY? C ENDIF PRV FOUND? C* C ENDIF PRV NOT FOUND? C* C SK51B1 TAG C MOVE W8ONAE ONAE C* C SR51BE ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR552 (OUTPUT RECORD TO RAW A/C ENTRIES FILES) * C* * C* FUNCTION : 1. OUTPUT RECORD TO ONLINE RAW A/C CONTROL * C* AND DETAIL FILE * C* * C******************************************************************** C/SPACE 3 C SR552 BEGSR C* C* OUTPUT DETAIL RECORD C* OUTPUT COMMON FIELDS C* C EXSR SR553 FORMAT DETAIL C* C* SPLIT AMOUNT IF > W0MAX C* C EXSR SR554 OUT DETAIL C* C* OUTPUT CONTROL RECORD C* C WAGIND IFEQ W0END C EXSR SR555 OUTPUT CONTROL C W1RVEN IFEQ W0YES REV ENTRY C Z-ADD *ZERO W1ETNO C ENDIF GEN REV? C W1NWEN IFEQ W0YES NEW ENTRY C Z-ADD *ZERO W2ETNO C ENDIF GEN NEW? C ENDIF GRP END? C* C SR552E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR553 (OUTPUT DETAIL RECORD - COMMON FIELDS) * C* * C******************************************************************** C/SPACE 3 C* C SR553 BEGSR C* C Z-ADD JFHDLN JYHDLN C MOVE JFGMAB JYGMAB C Z-ADD JFBRNO JYBRNO C JFACTY IFEQ W0SUO C JFAACS ORGE 900000 >=900000 970214 C MOVE 'GL' JYDSBS C ELSE C MOVE 'DD' JYDSBS C ENDIF SUO? C MOVE JFACTY JYACTY C MOVE JFAPTY JYAPTY C MOVE K0CTCD JYTCTC C MOVE JFPGMA JYTGMA C Z-ADD JFPBRN JYPBRN C Z-ADD JFAACS JYAACS C* C JFAACX IFNE *ZEROS C Z-ADD JFAACX JYAACX C ELSE C MOVE JFGMAB K0GMAB C MOVE JFCCYC K0CYCD C K0CYIF CHAIN SSCYIFR 82 C *IN82 IFEQ *OFF C Z-ADD XRCYSF JYAACX START SUFFIX C ELSE C Z-ADD JFAACX JYAACX C ENDIF FOUND? C ENDIF SUFFIX DEFINE? C* C Z-ADD JFCCBR JYCCBR C Z-ADD JFDEPT JYDEPT C Z-ADD JFSECT JYSECT C MOVE JFGCCL JYGCCL C MOVE JFMATC JYMATC C MOVE JFCCYC JYCYCD C Z-ADD JFTEXR JYTEXR C* C SELECT C* C JFTRCD WHENEQ 10200 DR TFR C MOVE W0TFD JYTRNC C JFTRCD WHENEQ 20200 CR TFR C MOVE W0TFC JYTRNC C JFTRCD WHENEQ 10600 DR S&P C MOVE W0SPD JYTRNC C JFTRCD WHENEQ 20600 CR S&P C MOVE W0SPC JYTRNC C* C ENDSL C* C MOVE JFNAR1 JYNAR1 C MOVE JFNAR2 JYNAR2 C MOVE JFNAR3 JYNAR3 C MOVE JFNAR4 JYNAR4 C* C MOVE *BLANK JYEMS1 C MOVE *BLANK JYEMS2 C MOVE *BLANK JYEMS3 C MOVE *BLANK JYEMS4 C MOVE *BLANK JYEMS5 C* C SR553E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR554 (OUTPUT DETAIL RECORD - SPLIT AMOUNTS) * C* * C******************************************************************** C/SPACE 3 C* C SR554 BEGSR C* C JFRTNA DOWGT W0LMT C JFLTNA ORGT W0LMT C* C JFRTNA IFGT JFLTNA C Z-ADD W0MAX JYRTRA C SUB W0MAX JFRTNA C JYRTRA MULT JFTEXR JYLTRA C SUB JYLTRA JFLTNA C ENDIF RCY LARGER? C* C JFRTNA IFLE JFLTNA C Z-ADD W0MAX JYLTRA C SUB W0MAX JFLTNA C JYLTRA DIV JFTEXR JYRTRA C SUB JYRTRA JFRTNA C ENDIF LCY LARGER? C* C W1RVEN IFEQ W0YES C ADD 1 W1ETNO C Z-ADD W1ETNO JYENTR C ADD 1 W1CNT C ENDIF GEN REV? C* C W1NWEN IFEQ W0YES C ADD 1 W2ETNO C Z-ADD W2ETNO JYENTR C ADD 1 W2CNT C ENDIF GEN NEW? C* C WRITE ACONDTR C* C ENDDO C* C Z-ADD JFRTNA JYRTRA C Z-ADD JFLTNA JYLTRA C* C W1RVEN IFEQ W0YES C ADD 1 W1ETNO C Z-ADD W1ETNO JYENTR C ADD 1 W1CNT C ENDIF GEN REV? C* C W1NWEN IFEQ W0YES C ADD 1 W2ETNO C Z-ADD W2ETNO JYENTR C ADD 1 W2CNT C ENDIF GEN NEW? C* C WRITE ACONDTR C* C SR554E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR555 (OUTPUT CONTROL RECORD) * C* * C******************************************************************** C/SPACE 3 C* C SR555 BEGSR C* C Z-ADD JYHDLN JXHDLN C Z-ADD JFVDAT JXVDAT C MOVE JFCPAC JXCPAC C MOVE JFCPAC K0CPAC C W1RVEN IFEQ W0YES C Z-ADD W1CNT JXTENT C ENDIF GEN REV? C W1NWEN IFEQ W0YES C Z-ADD W2CNT JXTENT C ENDIF GEN NEW? C* C K0CPIP CHAIN TTCPIPR 82 C *IN82 IFEQ *OFF C MOVE XJCSSN JXCSSN C ELSE C MOVE *BLANK JXCSSN C ENDIF FOUND? C* C MOVE JFDLNO JXDLNO C* C* DETERMINE WHETHER NEW/CANCEL OR AMENDMENT ENTRIES C* C MOVE W0RDY JXPSTS C K0DFST CHAIN ACDFSTR 82 C *IN82 IFEQ *OFF C W1DLTP IFNE W0AMD C MOVE JWNCST JXPSTS C ELSE C MOVE JWAMST JXPSTS C ENDIF NEW/CANCEL? C ENDIF RCD FOUND? C* 090055 C* Call AC370 to generate Online A/C entries for BanTotal 090055 C* 090055 C W0BTOA IFEQ W0YES 090055 C Z-ADD JXHDLN P0HDLN 090055 C CALL 'AC370' P0A370 090055 C ENDIF 090055 C* C TIME JXTMRY C Z-ADD *ZERO JXTMST C Z-ADD *ZERO JXCMTM C Z-ADD *ZERO JXBANO C* 990015 C P0DLNO IFNE *BLANK Online 990015 C TYMEID ANDNE *BLANK 990015 C*** TYMEID CHAIN SENODHR 81 Basic Deal Type 080017 C MOVE TYMEID K_MEID 080017 C K$MEID CHAIN SENODHR 81 Basic Deal Type 080017 C *IN81 IFEQ *OFF found ? 990015 C G8WRKD ANDEQ *ZERO Hold TDY? 990015 C MOVE 'H' JXPSTS 990015 C ENDIF 990015 C ENDIF 990015 C* C* If Skip First Level Check, then use the SFLC msg status 070088 C* 070088 C P0DLNO IFEQ *BLANK Offline 070088 C TXSFLC ANDEQ W0YES Skipped FLC? 070088 C W1SFLC ANDNE *BLANK status<>blank? 070088 C W1SFLC ANDNE 'R' status<>'R'? 070088 C MOVE W1SFLC JXPSTS 070088 C ENDIF 070088 C* 070088 ?* Reflag redenominated deals 990089 C EXSR SR600 990089 ?* Reflag redenominated deals 990089 C* 990089 C EXSR SR560 AUTO RELEASE 050196 C* 050196 C W0CGRP IFEQ W0YES 110155 C JXTENT DIV 2 W@QUOT 110155 C MVR W@REM 110155 C W@REM IFEQ *ZERO 110155 C WRITE ACONCTR 110155 C ENDIF 110155 C ELSE 110155 C WRITE ACONCTR C ENDIF 110155 C* C W1RVEN IFEQ W0YES C Z-ADD *ZERO W1CNT C ENDIF GEN REV? C W1NWEN IFEQ W0YES C Z-ADD *ZERO W2CNT C ENDIF GEN NEW? C* C SR555E ENDSR C/EJECT C*************************************************************** 050196 C* SR560 Auto release message 050196 C* 050196 C* FUNCTION : Auto release message 050196 C* 050196 C*************************************************************** 050196 C/SPACE 3 050196 C SR560 BEGSR 050196 C* 050196 C P0DLNO IFNE *BLANK 050196 C MOVE TYMEID W1BDLT 050196 C ELSE 050196 C MOVEL TXDLNO K1APTY 050196 C W1APTY IFNE K1APTY Reduce I/O 050196 C KAPDCT CHAIN TTPDCTR 81 050196 C *IN81 IFEQ *OFF 050196 C MOVE XGBDLT W1BDLT 050196 C ELSE 050196 C MOVE *BLANK W1BDLT 050196 C ENDIF 050196 C MOVEL TXDLNO W1APTY 050196 C ENDIF 050196 C ENDIF 050196 C* 050196 C W1BDLT LOOKUP W0DCHK 81 050196 C *IN81 IFEQ *ON 050196 C W2BDLT ANDNE *BLANK 050196 C W1BDLT ANDNE *BLANK 050196 C MOVE TXGMAB K1GMAB 050196 C Z-ADD TXBRNO K1BRNO 050196 C MOVE TXDLNO K1DLNO 050196 C KAECKD CHAIN MPECKDR 81 050196 C *IN81 IFEQ *OFF 050196 C TXSFLC OREQ W0NO NOT SKIP FLC 050196 C JXPSTS IFEQ 'H' 050196 C MOVE 'R' JXPSTS AUTO RELEASE 050196 C ENDIF 050196 C ENDIF 050196 C ENDIF 050196 C* 050196 C SR560E ENDSR 050196 C/EJECT 050196 C*************************************************************** 990089 C* 990089 C* NAME : SR600 (Reflag redenominated deals) 990089 C* 990089 C*************************************************************** 990089 C/SPACE 3 990089 C SR600 BEGSR 990089 C* 990089 C*Get the relevant rednomination X ref rec based on the CCY code 990089 C* 990089 C MOVE JFGMAB K1GMAB 990089 C MOVE JFBRNO K1BRNO 990089 C MOVE JFDLNO K1OTRN 990089 C* 990089 C TXDLST IFNE W0CNL 990089 C K1RXRF CHAIN DIRXRFP 80 990089 C ELSE 990089 C K1RXRF CHAIN DIRXRFL1 80 990089 C ENDIF 990089 C* 990089 C *IN80 IFEQ *OFF 990089 C EODTRD ANDEQ W0TDDT 990089 C MOVE 'X' JXPSTS 990089 C ENDIF 990089 C* 990089 C SR600E ENDSR 990089 C/EJECT 990089 C******************************************************************** C* * C* NAME : SR700 (CALCULATE EXCHANGE RATE) * C* * C* PARAMETERS : Field Description Format Len Usage * C* ----- ----------- ------ --- ----- * C* W7CCY1 Currency 1 X 3 I * C* W7CCY2 Currency 2 X 3 I * C* W7RATE Exchange Rate P 15(9) O * C* * C* FUNCTION : Calculate the Exchange Rate (in minor) so that * C* CCY 1 Amount * Rate = CCY 2 Amount * C* * C******************************************************************** C/SPACE 3 C SR700 BEGSR C* C W7CCY1 IFEQ W7CCY2 C Z-ADD 1 W7RATE C GOTO SR700E C ENDIF SAME CCY? C* C W7CCY2 IFEQ W0LCYC C MOVE TXGMAB K0GMAB C MOVE W7CCY1 K0CYCD C K0CYIF CHAIN SSCYIFR 82 C *IN82 IFEQ W0OFF C Z-ADD XRSNPR W7RATE C GOTO SR700E C ENDIF RCD FOUND? C ENDIF CCY2 = LCY? C* C MOVE W7CCY1 WACCY1 C MOVE W7CCY2 WACCY2 C W1CYLO IFLT 201 ARRAY FILLED C Z-ADD W1CYLO I C WACCYP LOOKUP CCYP(I) 11 C ELSE C MOVE *OFF *IN11 C ENDIF NON-EMPTY? C* C *IN11 IFEQ *ON C Z-ADD RAT(I) W7RATE C GOTO SR700E C ENDIF FOUND? C* C MOVE P0CTYC T03CT@ 080021 C MOVE *HIVAL @T03GM C Z-ADD *HIVAL @T03BR C MOVE W7CCY1 @T03C1 C MOVE W7CCY2 @T03C2 C EXSR TR03 CAL RATE C @T03RC IFEQ W0OK C Z-ADD @T03RA W7RATE C ELSE C Z-ADD 1 W7RATE C ENDIF CALCULATED? C* C* APPEND ARRAY CURRENCY PAIR AND EXCHANGE RATE C* C W1CYLO IFGT 1 C SUB 1 W1CYLO C Z-ADD W1CYLO I C MOVE WACCYP CCYP(I) C Z-ADD W7RATE RAT(I) C ENDIF HAVE SPACE? C* C SR700E ENDSR C/EJECT 110155 C******************************************************************** 110155 C* * 110155 C* NAME : LR700 * 110155 C* Generate reversal for cross group member entrie * 110155 C* entries. * 110155 C******************************************************************** 110155 C/SPACE 3 110155 C LR700 BEGSR 110155 C* 110155 C MOVE ONAE W9ONAE 110155 C MOVE JFAEVT K0AEVT 110155 C Z-ADD 1 W@NOEN 110155 C* 110155 C* reverse all 4 entries generated for cross group member 110155 C W@NOEN DOWLE 4 110155 C* 110155 C* Retrieve original entry 110155 C* 110155 C SELECT 110155 C W@NOEN WHENEQ 1 110155 C Z-ADD W0091 K0ENTN 110155 C MOVE W0ACU K0GMAB 110155 C Z-ADD W0281 K0BRNO 110155 C W@NOEN WHENEQ 2 110155 C Z-ADD W0092 K0ENTN 110155 C MOVE TXGMAB K0GMAB 110155 C Z-ADD TXBRNO K0BRNO 110155 C W@NOEN WHENEQ 3 110155 C Z-ADD W0093 K0ENTN 110155 C MOVE TXGMAB K0GMAB 110155 C Z-ADD TXBRNO K0BRNO 110155 C W@NOEN WHENEQ 4 110155 C Z-ADD W0094 K0ENTN 110155 C MOVE W0ACU K0GMAB 110155 C Z-ADD W0281 K0BRNO 110155 C ENDSL 110155 C* 110155 C MOVE JFDLNO K0DLNO 110155 C Z-ADD JFRULE K0RULE 110155 C MOVE W3AEVT K0HDLN 110155 C K0ONAE CHAIN ACONAEL1 82 110155 C *IN82 IFEQ W0ON 110155 C MOVE W0NO W1GREV 110155 C ELSE 110155 C W1VBDT IFEQ *ON 110155 C KBONCT CHAIN(N) ACONCTR 81 110155 C *IN81 IFEQ *OFF 110155 C JXPSTS ANDEQ 'C' 110155 C *IN81 OREQ *OFF 110155 C JXPSTS ANDEQ 'E' 110155 C MOVE W0NO W1GREV 110155 C ENDIF 110155 C ENDIF 110155 C ENDIF 110155 C* 110155 C* WRITE REVERSE ENTRY 110155 C* 110155 C W1GREV IFNE W0YES 110155 C GOTO SK700T 110155 C ENDIF 110155 C* 110155 C MOVE W3AEVT JFAEVT 110155 C* 110155 C MOVE JFTRCD WFTRCD 110155 C* 110155 C WFX IFEQ W0CR 110155 C MOVE W0DR WFX 110155 C ELSE 110155 C MOVE W0CR WFX 110155 C ENDIF 110155 C* 110155 C MOVE WFTRCD JFTRCD 110155 C Z-ADD W3HUBN JFHDLN 110155 C* 110155 C WRITE ACONAER 110155 C* 110155 C* WRITE ACONCTP AND ACONDTP 110155 C* 110155 C MOVE W0YES W1RVEN 110155 C EXSR SR552 110155 C MOVE W0NO W1RVEN 110155 C* 110155 C SK700T TAG 110155 C* 110155 C ADD 1 W@NOEN 110155 C ENDDO 110155 C* 110155 C MOVE W9ONAE ONAE 110155 C* 110155 C LR700E ENDSR 110155 C/EJECT 110155 C******************************************************************** 110155 C* * 110155 C* NAME : LR800 (GENERATE ENTRIES FOR CROSS GROUP MEMBER) * 110155 C* For SGD vs FCY deal booked in HSBC book only. * 110155 C* * 110155 C******************************************************************** 110155 C/SPACE 3 110155 C LR800 BEGSR 110155 C* 110155 C Z-ADD W2HUBN JFHDLN 110155 C* 110155 C* output record to ACONAEP, ACONDTP- customer account (HUBV) in ACU 110155 C* 110155 C MOVE JFTRCD WFTRCD 110155 C Z-ADD W0SP WFYY 110155 C JFACTY IFNE W0SUO 110155 C* 110155 C WFX IFEQ W0CR 110155 C MOVE W0DR WFX 110155 C ELSE 110155 C MOVE W0CR WFX 110155 C ENDIF 110155 C ENDIF 110155 C* 110155 C MOVE WFTRCD JFTRCD 110155 C EXSR LR820 110155 C* 110155 C* output record to ACONAEP, ACONDTP- Interbridge account in HSBC 110155 C* 110155 C MOVE TXGMAB JFGMAB 110155 C Z-ADD TXBRNO JFBRNO 110155 C Z-ADD W0092 JFENTN 110155 C EXSR LR840 110155 C* 110155 C* output record to ACONAEP, ACONDTP- Suspense account in HSBC 110155 C* 110155 C Z-ADD W0093 JFENTN 110155 C MOVE JFTRCD WFTRCD 110155 C WFX IFEQ W0CR 110155 C MOVE W0DR WFX 110155 C ELSE 110155 C MOVE W0CR WFX 110155 C ENDIF 110155 C* 110155 C MOVE WFTRCD JFTRCD 110155 C EXSR LR830 110155 C* 110155 C* output record to ACONAEP, ACONDTP- Interbridge account in ACU 110155 C* 110155 C MOVE W0ACU JFGMAB 110155 C Z-ADD W0281 JFBRNO 110155 C Z-ADD W0094 JFENTN 110155 C EXSR LR840 110155 C* 110155 C LR800E ENDSR 110155 C/EJECT 110155 C******************************************************************** 110155 C* * 110155 C* NAME : LR810 (VALIDATE ACCOUNT NUMBER) * 110155 C* * 110155 C******************************************************************** 110155 C/SPACE 3 110155 C LR810 BEGSR 110155 C* 110155 C MOVE W0NO W@INVD 110155 C* 110155 C* Check if it is numeric 110155 C* 110155 C*** MOVEL *ZEROS W@TACN 110155 C*** MOVEL W@ACNO W@TACN 110155 C*** TESTN W@TACN 85 110155 C*** *IN85 IFNE W0ON 110155 C*** MOVE W0YES W@INVD 110155 C*** ENDIF 110155 C* 110155 C* Check if branch is valid 110155 C* 110155 C MOVE W@GPMB K0GMAB 110155 C MOVE W@ACB K0BRNO 110155 C K0BRCP CHAIN SSBRCPR 85 GP MBR/BRANCH 110155 C *IN85 IFEQ W0ON NOT DEFINED 110155 C MOVE W0YES W@INVD 110155 C ENDIF 110155 C* 110155 C* Check if checkdigit of account is valid 110155 C* 110155 C MOVE W@ACB @08BRN BRANCH NO. 110155 C MOVE W@ACS @08SRN SERIAL NO. 110155 C EXSR XR08 VALID. CHK-DIG 110155 C @08RCD IFNE W0OK 110155 C MOVE W0YES W@INVD CHECK DIGIT 110155 C ENDIF 110155 C* 110155 C LR810E ENDSR 110155 C/EJECT 110155 C******************************************************************** 110155 C* * 110155 C* NAME : LR820 (FORMAT ENTRY TO CUSTOMER DD ACCOUNT) * 110155 C* * 110155 C******************************************************************** 110155 C/SPACE 3 110155 C LR820 BEGSR 110155 C* 110155 C Z-ADD W0091 JFENTN 110155 C MOVE W0ACU JFGMAB 110155 C Z-ADD W0281 JFBRNO 110155 C MOVE W0ACU JFPGMA 110155 C MOVE W@BRN JFPBRN 110155 C MOVE W@SER JFAACS 110155 C MOVE W@SUF JFAACX 110155 C MOVE *BLANK JFACTY 110155 C* 110155 C JFAACS IFLT 900000 110155 C MOVE 'DD' JFDSBS 110155 C ELSE 110155 C MOVE 'GL' JFDSBS 110155 C ENDIF 110155 C* 110155 C TXCYPC IFEQ W0SGD 110155 C MOVE TXCYCC JFCCYC 110155 C MOVE TXCCYA JFRTNA 110155 C ELSE 110155 C MOVE TXCYPC JFCCYC 110155 C Z-ADD TXPCYA JFRTNA 110155 C ENDIF 110155 C* 110155 C JFRTNA IFLT *ZERO 110155 C Z-SUB JFRTNA JFRTNA 110155 C ENDIF 110155 C* 110155 C* get lcy, exchg rate and lcy amt 110155 C* 110155 C EXSR SR530 110155 C MOVE 'DUM' JFAPTY 110155 C MOVE *BLANK JFRDPD 110155 C MOVE W@CUAC JFFANO 110155 C* 110155 C WRITE ACONAER 110155 C* 110155 C* WRITE ACONCTP AND ACONDTP 110155 C* 110155 C MOVE W0YES W1NWEN 110155 C EXSR SR552 110155 C MOVE W0NO W1NWEN 110155 C* 110155 C LR820E ENDSR 110155 C/EJECT 110155 C******************************************************************** 110155 C* * 110155 C* NAME : LR830 (FORMAT ENTRY TO SUSPENSE ACCOUNT) * 110155 C* * 110155 C******************************************************************** 110155 C/SPACE 3 110155 C LR830 BEGSR 110155 C* 110155 C MOVE JFGMAB W$GMAB 110155 C MOVE JFCCYC W$CYCD 110155 C Z-ADD 1 IX 110155 C W$GPCY LOOKUP W@SUSC(IX) 85 = EQUAL 110155 C *IN85 IFEQ W0ON 110155 C MOVE W@SUSC(IX) W@GMCY 110155 C MOVE W@SUSA(IX) W@GLNO 110155 C ELSE 110155 C GOTO LR830E 110155 C ENDIF 110155 C* 110155 C* Validate GL account 110155 C MOVEL W@GLNO W@ACNO 110155 C MOVE W@GMAB W@GPMB 110155 C EXSR LR810 110155 C W@INVD IFEQ W0YES 110155 C GOTO LR830E 110155 C ENDIF 110155 C* 110155 C MOVE JFGMAB JFPGMA 110155 C MOVE W@GLBR JFPBRN 110155 C MOVE W@GLSR JFAACS 110155 C MOVE W@GLSF JFAACX 110155 C MOVE 'GL' JFDSBS 110155 C MOVE W@ACNO JFFANO 110155 C* 110155 C WRITE ACONAER 110155 C* 110155 C* WRITE ACONCTP AND ACONDTP 110155 C* 110155 C MOVE W0YES W1NWEN 110155 C EXSR SR552 110155 C MOVE W0NO W1NWEN 110155 C* 110155 C LR830E ENDSR 110155 C/EJECT 110155 C******************************************************************** 110155 C* * 110155 C* NAME : LR840 (FORMAT ENTRY TO INTERBRIDGE ACCOUNTS) * 110155 C* * 110155 C******************************************************************** 110155 C/SPACE 3 110155 C LR840 BEGSR 110155 C* 110155 C MOVE JFGMAB W$GMAB 110155 C MOVE JFCCYC W$CYCD 110155 C Z-ADD 1 IX 110155 C W$GPCY LOOKUP W@INBC(IX) 85 = EQUAL 110155 C *IN85 IFEQ W0ON 110155 C MOVE W@INBC(IX) W@GMCY 110155 C MOVE W@INBA(IX) W@GLNO 110155 C ELSE 110155 C GOTO LR840E 110155 C ENDIF 110155 C* 110155 C* Validate GL account 110155 C MOVEL W@GLNO W@ACNO 110155 C MOVE W@GMAB W@GPMB 110155 C EXSR LR810 110155 C W@INVD IFEQ W0YES 110155 C GOTO LR840E 110155 C ENDIF 110155 C* 110155 C MOVE JFGMAB JFPGMA 110155 C MOVE W@GLBR JFPBRN 110155 C MOVE W@GLSR JFAACS 110155 C MOVE W@GLSF JFAACX 110155 C MOVE 'GL' JFDSBS 110155 C MOVE W@ACNO JFFANO 110155 C* 110155 C WRITE ACONAER 110155 C* 110155 C* WRITE ACONCTP AND ACONDTP 110155 C* 110155 C MOVE W0YES W1NWEN 110155 C EXSR SR552 110155 C MOVE W0NO W1NWEN 110155 C* 110155 C LR840E ENDSR 110155 C/EJECT C******************************************************************** 080021 C* * 080021 C* NAME : SR994 (Load Accounting Rules) * 080021 C* * 080021 C******************************************************************** 080021 C/SPACE 3 080021 C SR994 BEGSR 080021 C* 080021 C CLEAR RUL 080021 C Z-ADD *ZERO K 080021 C* 080021 C 1 CHAIN ACACRLR 81 080021 C *IN81 IFEQ *OFF 080021 C MOVEL(P) SRCDTA W1TBLN 2 Skip if table name 080021 C W1TBLN IFEQ '**' line 080021 C READ ACACRLR 81 080021 C ENDIF 080021 C ENDIF 080021 C* 080021 C *IN81 DOWEQ *OFF 080021 C ADD 1 K 080021 C MOVEL(P) SRCDTA RUL(K) 080021 C READ ACACRLR 81 080021 C ENDDO 080021 C* 080021 C K IFEQ *ZERO 080021 C EXSR *PSSR 080021 C ELSE 080021 C Z-ADD K W0NRUL 080021 C ENDIF 080021 C* 080021 C SR994E ENDSR 080021 C/EJECT 080021 C******************************************************************** C* * C* NAME : SR995 (LOAD TABLE TAG AND INDEX) * C* * C******************************************************************** C/SPACE 3 C SR995 BEGSR C* C Z-ADD 1 K C* C 1 DO W0NRUL X C MOVE RUL(X) WARUL C WATAG IFNE *BLANK C MOVE WATAG TTAG(K) C Z-ADD X TIND(K) C ADD 1 K C ENDIF TAG DEFINE? C ENDDO C* C SR995E ENDSR C/EJECT C******************************************************************** C* * C* NAME : SR999 (INITIALIZATION) * C* * C* FUNCTION : (1) DEFINE RECORD KEY LISTS * C* (2) DEFINE & INITIALIZE CONSTANTS * C* (3) DEFINE & INITIALIZE WORK FIELDS * C* (4) GET TOD, LPD * C* (5) INITIALIZE CONSTANT FIELDS IN ACRACEP * C* * C******************************************************************** C/SPACE 3 C SR999 BEGSR C* C* -------------------------- C* DEFINE PARAMETER VARIABLES C* -------------------------- C* C *LIKE DEFINE TXCTYC P0CTYC 080021 C *LIKE DEFINE TXGMAB P0GMAB C *LIKE DEFINE TXBRNO P0BRNO C *LIKE DEFINE TXDLNO P0DLNO C *LIKE DEFINE TYTSTY P0TSTY C *LIKE DEFINE TXEXID P0EXID C *LIKE DEFINE TYMEID P0MEID 050109 C* C* ---------------------- C* DEFINE PARAMETER LISTS C* ---------------------- C* C *ENTRY PLIST C PARM P0CTYC 080021 C PARM P0GMAB C PARM P0BRNO C PARM P0TSTY C PARM P0DLNO C PARM P0EXID C PARM P0MEID 050109 C* C* 090055 C P0P062 PLIST PGM : TS062 090055 C PARM P0CTYC 090055 C PARM P0FNAM 20 090055 C PARM P0STUS 1 090055 C* 090055 C* 090055 C P0A370 PLIST PGM : AC370 090055 C PARM P0CTYC 090055 C PARM P0HDLN 5 0 090055 C* 090055 C* -------------------- C* DEFINE KEY VARIABLES C* -------------------- C* C *LIKE DEFINE JAACTY K0ACTY C *LIKE DEFINE JFAEVT K0AEVT C *LIKE DEFINE X2CTCD K0CTCD C *LIKE DEFINE XEBRNO K0BRNO C *LIKE DEFINE XRCYCD K0CYCD C *LIKE DEFINE TXDLNO K0DLNO C *LIKE DEFINE JFENTN K0ENTN C *LIKE DEFINE TXEXID K0EXID C *LIKE DEFINE XEGMAB K0GMAB C *LIKE DEFINE JFHDLN K0HDLN C *LIKE DEFINE GGINFG K0INFG C *LIKE DEFINE JFRULE K0RULE C *LIKE DEFINE JIBRNO K1BRNO C *LIKE DEFINE JIGMAB K1GMAB C *LIKE DEFINE JIPCTR K1PCTR C *LIKE DEFINE XEGMAB K9GMAB C *LIKE DEFINE XEBRNO K9BRNO C *LIKE DEFINE EORDTR K1OTRN 990089 C *LIKE DEFINE XRCYCD K1CYCD 960045 C *LIKE DEFINE XGAPTY K1APTY 050196 C *LIKE DEFINE TXDLNO K1DLNO 050196 C* C MOVE *HIVAL K9GMAB C Z-ADD *HIVAL K9BRNO C* 080017 C K$MEID KLIST 080017 C KFLD K1CTYC 080017 C KFLD K_MEID 080017 C* 080017 C *LIKE DEFINE TYMEID K_MEID 080017 C* C* ---------------- C* DEFINE KEY LISTS C* ---------------- C* C* Define key list - SPOT/FORWARD Deal Master (MPESPTP/MPEFWDP) C* C K0ESPT KLIST MPESPTP C KFLD K1CTYC 080017 C KFLD K0GMAB C KFLD K0BRNO C KFLD K0DLNO C* 080021 C K1ESPT KLIST MPESPTP 080021 C KFLD K1CTYC 080021 C* C K1EFWD KLIST MPEFWDP 080021 C KFLD K1CTYC 080021 C* 080021 C* Define key list - SPOT/FORWARD Deal Journal (MPESPJP/MPEFWJP) C* C K0ESPJ KLIST MPESPJP/MPEFWJP C KFLD K1CTYC 080017 C KFLD K0GMAB C KFLD K0BRNO C KFLD K0EXID C* C* Define key list - Group Member Control File (SSGMCPP) C* C K0GMCP KLIST C KFLD K0CTCD C KFLD K0GMAB C* C* Define key list - Currency Information File (SSCYIFP) C* C K0CYIF KLIST C KFLD K0CTCD C KFLD K0GMAB C KFLD K0CYCD C* C* Define key list - Counterparty Information File (TTCPIPP) C* C K0CPIP KLIST C KFLD K1CTYC 080017 C KFLD K9GMAB C KFLD K9BRNO C KFLD K0CPAC C* C* Define key list - Deal Settlement Instruction File C* C K0DLSI KLIST C KFLD K1CTYC 080017 C KFLD K0GMAB C KFLD K0BRNO C KFLD K0DLNO C KFLD K0INFG C* 990089 C K1RXRF KLIST DIRXRFP 990089 C KFLD K1CTYC 080017 C KFLD K1GMAB 990089 C KFLD K1BRNO 990089 C KFLD K1OTRN 990089 C* C* Define key list - Online Raw A/c Entries File LF 1 C* C K0ONAE KLIST C KFLD K1CTYC 080017 C KFLD K0GMAB C KFLD K0BRNO C KFLD K0DLNO C KFLD K0RULE C KFLD K0ENTN C KFLD K0AEVT C KFLD K0HDLN C* C K1ONAE KLIST PARTIAL KEY C KFLD K1CTYC 080017 C KFLD K0GMAB C KFLD K0BRNO C KFLD K0DLNO C KFLD K0RULE C KFLD K0ENTN C KFLD K0AEVT C* 970237 C K2ONAE KLIST PARTIAL KEY 970237 C KFLD K1CTYC 080017 C KFLD K0GMAB 970237 C KFLD K0BRNO 970237 C KFLD K0DLNO 970237 C* 970237 C* Define key list - Deal Pending First Level Check File 970237 C* 970237 C K0FLPC KLIST 970237 C KFLD K1CTYC 080017 C KFLD K0GMAB 970237 C KFLD K0BRNO 970237 C KFLD K0DLNO 970237 C* C* Define key list - Online Raw A/c Default Status File C* C K0DFST KLIST C KFLD K1CTYC 080017 C KFLD K0GMAB C* C* Define key list - Account Type Attribute File (ACACTAP) C* C K0ACTA KLIST C KFLD K1CTYC 080017 C KFLD K0GMAB C KFLD K0BRNO C KFLD K0ACTY C* C* Define key list - Profit Centre Control FIle C* C K0PCTR KLIST C KFLD K1CTYC 080017 C KFLD K1GMAB C KFLD K1BRNO C KFLD K1PCTR C* C* Branch Control File (SSBRCPP) C K0BRCP KLIST C KFLD K0CTCD C KFLD K0GMAB C KFLD K0BRNO C* GHO 960045 C* CURRENCY INFORMATION FILECPP (TTCYIFP) 960045 C K1CYIF KLIST 960045 C KFLD K1CTYC 080017 C KFLD K1CYCD 960045 C* C* 050196 C* EXCEPTION CHECKED DEAL FILE (MPECKDP) 050196 C KAECKD KLIST 050196 C KFLD K1CTYC 080017 C KFLD K1GMAB 050196 C KFLD K1BRNO 050196 C KFLD K1DLNO 050196 C* 050196 C* PRODUCT CONTROL FILE (TTPDCTP) 050196 C KAPDCT KLIST 050196 C KFLD K1CTYC 080017 C KFLD K9GMAB 050196 C KFLD K9BRNO 050196 C KFLD K1APTY 050196 C* 050196 C* 050109 C* ONLINE ACCOUNTING FILE (ACONCTL5) 050109 C KAONCT KLIST 050109 C KFLD K0DLNO 050109 C* 050109 C* ONLINE ACCOUNTING CONTROL FILE (ACONCTP) 050109 C KBONCT KLIST 050109 C KFLD K0HDLN 050109 C* C* ----------------------------- C* DEFINE & INITIALIZE CONSTANTS C* ----------------------------- C* C**CNL*LIKE DEFINE *IN82 W0ON 990431 C MOVE W0ON W0ON 1 990431 C**CNL*LIKE DEFINE *IN82 W0OFF 990431 C MOVE W0OFF W0OFF 1 990431 C**CNL*LIKE DEFINE *IN82 W0OK 990431 C MOVE W0OK W0OK 1 990431 C *LIKE DEFINE GGORFA W0CUA C *LIKE DEFINE GGTRNS W0NET C *LIKE DEFINE JYRTRA W0LMT C *LIKE DEFINE JYRTRA W0MAX C *LIKE DEFINE XGAPTY W1APTY 050196 C *LIKE DEFINE XGBDLT W1BDLT 050196 C* C MOVE '1' W0ON C MOVE '0' W0OFF C MOVE '0' W0OK C* C MOVEL 'CUA' W0CUA CURRENT A/C C MOVE 'N' W0NET NETTED C* C MOVE '1' W0DR 1 DR C MOVE '2' W0CR 1 CR C* C MOVE 'S' W0STRT 1 START C MOVE *BLANK W0MID 1 MIDDLE C MOVE 'E' W0END 1 END C MOVE 'Y' W0YES 1 YES C MOVE 'N' W0NO 1 NO C MOVE ' +' W0CONT 3 CONTINUE C MOVE '000' W0REND 3 RULE END C MOVE 'AMD' W0AMD 3 AMD C MOVE 'CRT' W0CRT 3 CRT C MOVE 'NEW' W0NEW 3 NEW C MOVE 'CNL' W0CNL 3 CNL C MOVE 'NOR' W0NOR 3 NORMAL C MOVE 'E' W0EXT 1 EXTERNAL C MOVE 'R' W0RDY 1 READY C Z-ADD 02 W0TR 2 0 TRANSFER C Z-ADD 06 W0SP 2 0 S & P C MOVE 'SPC' W0SPC 3 S & P CR C MOVE 'SPD' W0SPD 3 S & P DR C MOVE 'TFC' W0TFC 3 TRANSFER CR C MOVE 'TFD' W0TFD 3 TRANSFER DR C MOVE 'CUA' W0CUAA 3 CUA C MOVE 'SUO' W0SUO 3 SUO C MOVE '0' W0NBLK 1 NON-BULK C MOVE 'N' W0FWD 1 FORWARD C MOVE 'N' W0SPT 1 SPOT C MOVE 'N' W0SKIP 1 SKIP PROCESS C MOVE 'N' W0OPTN 1 OPTION FWD C MOVE *ALL'9' W0LMT C Z-ADD 0 W0MAX C MOVEL 9 W0MAX C* C Z-ADD 2 W0NACC 3 0 NO OF A/C C Z-ADD 118 W0NRUL 3 0 NO OF RULE C* C Z-ADD 201 W1CYLO 3 0 CCYP LOWER LMT C* C* --------------------- C* DEFINE WORKING FIELDS C* --------------------- C* C *LIKE DEFINE JFGMAB W1GMAB GMAB BREAK KEY C *LIKE DEFINE JFBRNO W1BRNO BRNO BREAK KEY C *LIKE DEFINE JFPGMA W1AGM1 NEXT GROUP Mbr C *LIKE DEFINE JFCCYC W1LCYC NEXT LCY C *LIKE DEFINE JFCCYC W1NCYC NEXT RCY C *LIKE DEFINE JFLCYC W0LCYC LOCAL CURRENCY C**CNL*LIKE DEFINE *IN81 W1TRAN TRANSFER IND. 990431 C MOVE W1TRAN W1TRAN 1 TRANSFER IND. 990431 C *LIKE DEFINE TYTSTY W1DLTP TRANSFER IND. C**CNL*LIKE DEFINE *IN82 W1SAME SAME DETAIL 990431 C MOVE W1SAME W1SAME 1 SAME DETAIL 990431 C**CNL*LIKE DEFINE *IN82 W1FREV FND REV. ENTRY 990431 C MOVE W1FREV W1FREV 1 FND REV. ENTRY 990431 C**CNL*LIKE DEFINE *IN82 W1GNEW GEN NEW FOR NOS 990431 C MOVE W1GNEW W1GNEW 1 GEN NEW FOR NOS 990431 C**CNL*LIKE DEFINE *IN82 W1GREV GEN REV. ENTRY 990431 C MOVE W1GREV W1GREV 1 GEN REV. ENTRY 990431 C**CNL*LIKE DEFINE *IN82 W1SCUA SKIP CUA FOR NOS 990431 C MOVE W1SCUA W1SCUA 1 SKIP CUA FOR NOS 990431 C**CNL*LIKE DEFINE *IN82 W1FND REC FOUND 990431 C MOVE W1FND W1FND 1 REC FOUND 990431 C**CNL*LIKE DEFINE *IN82 W1RVEN REVERSAL ENTRY 990431 C MOVE W1RVEN W1RVEN 1 REVERSAL ENTRY 990431 C**CNL*LIKE DEFINE *IN82 W1NWEN NEW ENTRY 990431 C MOVE W1NWEN W1NWEN 1 NEW ENTRY 990431 C *LIKE DEFINE JFVDAT W1FVD 1ST VALUE DATE C *LIKE DEFINE JFVDAT W1SVD 2ND VALUE DATE C *LIKE DEFINE JFVDAT W1BUD BUY VALUE DATE C *LIKE DEFINE JFVDAT W1SOD SOLD VALUE DATE C* C MOVE *BLANK ONAE C MOVE *BLANK W1GMAB C Z-ADD *ZERO W1BRNO C Z-ADD *ZERO W1BUD C Z-ADD *ZERO W1SOD C Z-ADD *ZERO W1FVD C Z-ADD *ZERO W1SVD C Z-ADD *ZERO W1CNT 3 0 C Z-ADD *ZERO W2CNT 3 0 C* C* ------------------------------------------------------ C* DEFINE VARIABLES USED IN COMPOSING NARRATIVES 3 & 4 C* ------------------------------------------------------ C* C MOVE *BLANK W1CH15 15 C MOVE *BLANK W1CH08 8 C MOVE *BLANK W1CH02 2 C MOVE *BLANK W1BNKA 6 C MOVE *BLANK W1BNKB 6 C Z-ADD *ZERO WARATE 15 9 C Z-ADD *ZERO I 3 0 C Z-ADD *ZERO J 3 0 C* C *LIKE DEFINE JFRTNA W3RAMT WORKING AMOUNT C* C Z-ADD *ZERO W3RULI 3 0 RULE INDEX C Z-ADD *ZERO W3RULE 3 0 RULE INDEX C MOVE *BLANK W3NEXT 3 NEXT INDEX C MOVE *BLANK W3XACT 1 A/C XACT TYPE C Z-ADD *ZERO W013P0 13 0 C Z-ADD *ZERO W1ETNO 5 0 C Z-ADD *ZERO W2ETNO 5 0 C MOVE W0NO W1SAME C MOVE W0NO W1FREV C MOVE W0NO W1FREV C MOVE W0NO W1GNEW C MOVE W0NO W1GREV C MOVE W0NO W1SCUA C* C* C* ------------------------------------------------------ C* DEFINE WORKING FIELDS - PARAMETER FOR SUBROUTINE SR005 C* ------------------------------------------------------ C *LIKE DEFINE JAGMAB W5GMAB C *LIKE DEFINE JABRNO W5BRNO C* C* ------------------------------------------------------ C* DEFINE WORKING FIELDS - PARAMETER FOR SUBROUTINE SR700 C* ------------------------------------------------------ C *LIKE DEFINE JFCCYC W7CCY1 C *LIKE DEFINE JFCCYC W7CCY2 C *LIKE DEFINE XESTOR W7RATE C* C* -------------------------- C* DEFINE OTHER WORKING INDEX C* -------------------------- C Z-ADD *ZERO X 3 0 INDEX C Z-ADD *ZERO Y 3 0 INDEX C Z-ADD *ZERO K 3 0 A/C ATT INDEX C* C* ------------------------------------------------------------ C* DEFINE WORKING FIELDS - STORE LCY BALANCE IN A/C ENTRY GROUP C* ------------------------------------------------------------ C *LIKE DEFINE JFCCYC W2LCYC C *LIKE DEFINE JFRTNA W2RTNA C *LIKE DEFINE JFLTNA W2LTNA C *LIKE DEFINE JFLTNA W2PPAM C *LIKE DEFINE JFLTNA W2RPAM C *LIKE DEFINE JFLTNA W2PCPN C *LIKE DEFINE JFLTNA W2RCPN C *LIKE DEFINE JFLTNA W2PSCF C *LIKE DEFINE JFLTNA W2RSCF C *LIKE DEFINE JFAEVT W3AEVT C* 050109 C *LIKE DEFINE *IN81 W1VBDT Valid deal type 050109 C* C MOVE *BLANK W2LCYC LCY GROUP CCY C Z-ADD *ZERO W2RTNA LCY GROUP TOTAL C Z-ADD *ZERO W2LTNA LCY GROUP TOTAL C MOVE *BLANK W2LFLG 1 LCY GROUP FLAG C* ------------------------------------------------------------ 110155 C* DEFINE WORKING FIELDS - cross gp member 110155 C* ------------------------------------------------------------ 110155 C *LIKE DEFINE TXGMAB W@GPMB 110155 C *LIKE DEFINE JXTENT W@QUOT 110155 C *LIKE DEFINE JXTENT W@REM 110155 C Z-ADD *ZERO IX 3 0 INDEX 110155 C MOVEL *ZEROS W@TACN 13 test for numeric 110155 C MOVE *BLANK W@XGP 1 cross gp mbr ind 110155 C MOVE *BLANK W@INVD 1 invalid account ind 110155 C Z-ADD *ZERO W@NOEN 3 0 INDEX 110155 C MOVE 'ACU ' W0ACU 4 ACU 110155 C MOVE 'HUBV' W0HUBV 4 indentifier4 cust ac110155 C MOVE 'SGD' W0SGD 3 SGD 110155 C Z-ADD 281 W0281 3 0 branch 281 110155 C Z-ADD 091 W0091 3 0 entry no. 091 110155 C Z-ADD 092 W0092 3 0 entry no. 092 110155 C Z-ADD 093 W0093 3 0 entry no. 093 110155 C Z-ADD 094 W0094 3 0 entry no. 094 110155 C* C* ----------------------- C* OBTAIN THE COUNTRY CODE C* ----------------------- C***CNL *DTAARA DEFINE TTTDTAR002 K0CTCD 080021 C***CNL IN K0CTCD 080021 C MOVE P0CTYC K0CTCD 080021 C MOVE K0CTCD K1CTYC 2 080017 C* C* ------------------------------------------------ C* OBTAIN THE ACCOUNTING SYSTEM INTERFACE INDICATOR C* ------------------------------------------------ C *DTAARA DEFINE TACDTAR008 W0NOAS 1 C IN W0NOAS C *DTAARA DEFINE TACDTAR016 W1HUBN 5 0 C *DTAARA DEFINE TMPDTAR053 W1SFLC 1 SFLC msg status 070088 C* C *LIKE DEFINE W1HUBN W2HUBN HUB NO. NEW C *LIKE DEFINE W1HUBN W3HUBN HUB NO. REV C* 050196 C* -------------------------------------------- 050196 C* DEFINE AUTO RELEAE BASIC DEAL TYPE 050196 C* -------------------------------------------- 050196 C *DTAARA DEFINE TSEDTAR037 W2BDLT 100 050196 C IN W2BDLT 050196 C* 050196 C MOVEA W2BDLT W0DCHK 050196 C* C* ---------------------------------- C* GET TOD, LPD FROM SYSTEM DATE FILE C* ---------------------------------- C *LIKE DEFINE XSLPDT W0LPDT LPD C *LIKE DEFINE XSTDDT W0FDNM 1ST DAY C* C *DTAARA DEFINE TACDTAR033 W1SFCA 100 Determine which 050109 C IN W1SFCA Basic deal type can 050109 C* canc org a/c entries050109 C MOVEA W1SFCA W0SFCA 050109 C P0MEID LOOKUP W0SFCA(1) 81 050109 C *IN81 IFEQ *ON 050109 C W1SFCA ANDNE *BLANK 050109 C P0MEID ANDNE *BLANK 050109 C MOVE *ON W1VBDT Valid deal type 050109 C ELSE 050109 C MOVE *OFF W1VBDT 050109 C ENDIF 050109 C* -------------------------------------------- 110155 C* Load suspense and interbridge accounts 110155 C* -------------------------------------------- 110155 C* *DTAARA DEFINE SGACDTA001 W@SUSL 1000 110155 C *DTAARA DEFINE TACDTAR074 W@SUSL 1000 110155 C IN W@SUSL 110155 C* 110155 C MOVEA W@SUSL W@SUSR 110155 C* 110155 C* load into array W@SUSC and W@SUSA 110155 C Z-ADD 1 IX 110155 C* 110155 C IX DOWLE 20 110155 C MOVE W@SUSR(IX) W@ARRY 110155 C MOVE W@KEY W@SUSC(IX) 110155 C MOVE W@ACCT W@SUSA(IX) 110155 C ADD 1 IX 110155 C ENDDO 110155 C* 110155 C* *DTAARA DEFINE SGACDTA002 W@INBL 1000 110155 C *DTAARA DEFINE TACDTAR075 W@INBL 1000 110155 C IN W@INBL 110155 C* 110155 C MOVEA W@INBL W@INBR 110155 C* 110155 C* load into array W@INBC and W@INBA 110155 C Z-ADD 1 IX 110155 C* 110155 C IX DOWLE 20 110155 C MOVE W@INBR(IX) W@ARRY 110155 C MOVE W@KEY W@INBC(IX) 110155 C MOVE W@ACCT W@INBA(IX) 110155 C ADD 1 IX 110155 C ENDDO 110155 C* === Retrieve control flag for Cross Group member == 110155 C EVAL P0FNAM='CROSS_GROUP_MBR' Function name 110155 C MOVE *BLANK P0STUS Status 110155 C CALL 'TS062' P0P062 110155 C P0STUS IFEQ W0YES 110155 C MOVE W0YES W0CGRP Indicator for 110155 C ELSE Cross Group Member 110155 C MOVE W0NO W0CGRP 110155 C ENDIF 110155 C* 050109 C 1 SETLL SSDATER C READ SSDATER 82 C *IN82 IFEQ W0OFF C Z-ADD XSTDDT W0TDDT C Z-ADD XSLPDT W0LPDT C ELSE C EXSR *PSSR C ENDIF DATE FOUND? C* C Z-ADD W0TDDT WCDATE C WCMM IFEQ 12 C ADD 1 WCYYYY C Z-ADD 1 WCMM C ELSE C ADD 1 WCMM C ENDIF YEAR END? C Z-ADD 1 WCDD C Z-ADD WCDATE W0FDNM C* 080021 C* Load accounting rules 080021 C* 080021 C EXSR SR994 080021 C* C* ----------------------------- C* LOAD RULE TABLE TAG AND INDEX C* ----------------------------- C EXSR SR995 LOAD INDEX C* C* 090055 C* 090055 C* === Retrieve control flag for BANTOTAL === 090055 C EVAL P0FNAM='BANTOTAL_ONLINE_ACC' Function name 090055 C MOVE *BLANK P0STUS Status 090055 C CALL 'TS062' P0P062 090055 C P0STUS IFEQ W0YES 090055 C MOVE W0YES W0BTOA Indicator for 090055 C ELSE BanTotal Online A/C 090055 C MOVE W0NO W0BTOA 090055 C ENDIF 090055 C* 090055 C SR999E ENDSR C* C/DEFINE TR03C C/COPY TTSILERPG,TR03 C/UNDEFINE TR03C C/DEFINE XR08C 110155 C/COPY HUBILERPG,XR08 110155 C/UNDEFINE XR08C 110155 C/DEFINE XRZZ2C C/COPY HUBILERPG,XRZZ2 C/UNDEFINE XRZZ2C C/EJECT ** Account Type Table CUA 1. CUA SETTLEMENT ACCOUNT SUO 2. SUO ONLINE SUSPENSE ACCOUNT