I:GLDI.BAS, DEPARTMENT INCOME STATEMENT, RDR, 7/15/78 REV. CP/M 2.3, 7/27/79J  :COPYRIGHT 1978 RETAIL SCIENCES, INC.-J SJPN$"DEPARTMENT INCOME STATEMENT"]J PJ TC#(),TY#(),TB#(),LC#(),LY#()J FM$"$$#,###,###.##-"J%FP$"####.#"J* @ :GET ACCOUNT RANGESJ4ALA!(): AHA!() :ASSETS LOW, HIGH$K>CLA!(): CIA!() :CAP & LIABFKHILA!(): IHA!() :INCOMEjKRELA!(): EHA!() :EXPENSESK\REA!() :RETAINED CURRENT EARNINGSKf:ASSUMING: 1) NO DEPARTMENT CODES FOR LAST MAJOR ACCOUNT OF ANY Lp: RANGE (199, 299, 399, ETC)PLz: 2) COA IS STRUCTURED SEQUENTIALLY WITH ASSETS FIRST,L: FOLLOWED BY CAP & LIAB, THEN INCOME, THEN EXPENSES LASTLNR%(V$( )): 0:  :INIT, OPENM:Q$"WHAT DATE IS TO BE PRINTED ON THIS REPORT (MM/DD/YY)? "CM:(R$)ϑ"USING ";VD$:R$VD$::VD$R$yM:Q$"WHAT DEPARTMENT NUMBER IS TO BE REPORTED? "MLB!: UB!c: M (R$) R$(R$,): M (R$) R$"0"R$MDP$R$N :PP%=PREVIOUS PERIOD POINTER (MA#() ARRAY)SNPP%((MOFM% ) ) :MO=THIS MONTH (FROM ENTERED DATE)N :FM%=FISCAL MONTH START (FROM 40000 SUBR.)NN"YOU MAY SELECT - 1 - TO PRINT THIS REPORT WITHOUT LAST YEARS TOTALS"#O" 2 - TO PRINT THIS REPORT WITH LAST YEARS TOTALS"PO:Q$"WHAT IS YOUR SELECTION (1 OR 2)? "hOLB!: UB!: O N! LY% : LY% :LY% = LAST YEAR FLAGO  :TOP - OF - FORMO:"** PRINTING WILL BEGIN AFTER TOTAL INCOME HAS"P"** BEEN ACCUMULATED. . ."GP N! LY% : LY% :LY%=LAST YEAR FLAGzPM1$((IL),):  :READ MASTER DIRECTP ER%  :FOUND ITP  :READ MASTER SEQUENTIALP M1IH P M3 Q (M1$,)DP$  QCT#CT#MA#() :CURRENTBQ$YT#YT#MA#()MA#() :YTDLQL QCT#CT#: YT#YT# :REVERSE SIGNS OF INCOME ACCOUNTSQ CT# CT#hQ YT# YT#hQM1$((IL),):  :READ MASTER DIRECT*R ER% 0u:  :SKIP NEXT READ IF FOUND@R 0u :HEADERSeR  :READ MASTER SEQUENTIALyR ER% MR M3  R M2$RLCLC: LC< : : : R  M3 R (M1$,)DP$ 3S M4$"M" :  :HANDLE M/S'S IN SPECIAL SUBR.S  (MA#()) #y (MA#()) #y (MA#()) #y (MA#(PP%)) #y (MA#()) #y S* M2$;);S> M1IH SF% : SF% :SIGN FACTOR (REVERSE IF INCOME ACCT)TH FM$;SF%(MA#());>TR -);: FP$;SF%((MA#()CT#)d);gT\ 6);: FM$;SF%(MA#()MA#());Tf G);: FP$;SF%(((MA#()MA#())YT#)d);Tp LY% : Tz P);: FM$;SF%(MA#());T a);: FM$;SF%(MA#(PP%));$U r);: FM$;SF%(MA#(PP%)MA#())2U I WUTC#(I)TC#(I)MA#() :CURRENTUTY#(I)TY#(I)MA#()MA#() :YTDU LY% UTB#(I)TB#(I)MA#() :BUDGETULC#(I)LC#(I)MA#(PP%) :PREV YR CURRENTVLY#(I)LY#(I)MA#(PP%)MA#() :PREV YR YTDVKVLCLC: LC< : : : V);"-------------- ------ -------------- ------";V LY% :  V " -------------- -------------- --------------"V M2$;);W M3ML MLM3 : M1IH SF%:  8W M1IH SF% : SF%SW FM$;SF%(TC#(M3));W -);: FP$;SF%((TC#(M3)CT#)d);W 6);: FM$;SF%(TY#(M3));W G);: FP$;SF%((TY#(M3)YT#)d);W LY% : : X P);: FM$;SF%(TB#(M3));+X& a);: FM$;SF%(LC#(M3));MX0 r);: FM$;SF%(LY#(M3))SX: gXD IM3  tXN TC#(I)XX TY#(I)X] LY%  Xb TB#(I)Xl LC#(I)Xv LY#(I)X X LCLC: LC8 : : : $YH1M1: H2$M2$: H7#: H6#: HB#: HC#: HY#BY  :READ SEQUENTIALYY M4$"S" mY M3 Y (M1$,)DP$ YH6#H6#MA#() : H7#H7#MA#()YHB#HB#MA#() : HC#HC#MA#(PP%) : HY#HY#MA#()Y GZ (H6#) #y (H7#) #y (HB#) #y (HC#) #y (HY#) #y WZ H2$;);uZ H1IH SF% : SF%Z FM$;SF%(H6#);Z -);: FP$;SF%((H6#CT#)d);Z" 6);: FM$;SF%(H6#H7#);[, G);: FP$;SF%(((H6#H7#)YT#)d);[6 LY% : ^9[@ P);: FM$;SF%HB#;V[J a);: FM$;SF%HC#;x[T r);: FM$;SF%(HC#HY#)[^ I [hTC#(I)TC#(I)H6#[rTY#(I)TY#(I)H6#H7#[w LY% [|TB#(I)TB#(I)HB#[LC#(I)LC#(I)HC#\LY#(I)LY#(I)HC#HY#\\(\M P\M FO% OP: ` :CLOSE MARISi\M :ANYTHING ELSE{\M PF% N\M);"============== ====== ============== ======";\M LY% : M ]M" ============== ============== =============="]MLCLC: 4]N:"END OF "PN$t]N:Q$"PUSH THE 'RETURN' KEY TO RETURN TO THE MAIN GL MENU "]N 8: (R$) ]N "A:GL MENU"]0uPF%: LY% W : WP]:u (W(VC$)));VC$;]Du LY% n);: : F);^NuPGPG: "PAGE ";PG3^Xu (W(VS$)));VS$M^bu (W(PN$)));PN$g^lu (W(VD$)));VD$^vu " DEPARTMENT NUMBER ";DP$^u LY% u _u );"----------------------- T H I S Y E A R ------------------------ ------ L A S T Y E A R ------"V_u );"THIS MONTH";.);"RATIO";7);"YEAR-TO-DATE"; H);"RATIO";m_u LY% : u_u T);"BUDGET";d);"THIS MONTH";s);"YEAR-TO-DATE"_u );"-------------- ------ -------------- ------";_u LY% : u<`u P);"-------------- -------------- --------------"B`u[`u LY% LC : LCa`u`@ "I",,MD$":GLSRC.DAT": S$(), A!()`J I : #,I$: A!(I)(I$): I :ACCOUNT #'S`T I : #,S$(I): I :SOURCE DESCRIPTIONS1aY #,MM$: FM%(MM$) :FISCAL MONTH START9a^ ?ahKa:OPENzaFI%:NA$"GLMST.DAT":DI%DK%():OP:`aij ER% Taγ F1$(),MA#() :COA FIELDSaس #, ASF1$(), ASF1$(), ASF1$(), ASF1$(), ASF1$()%bⳂ I : #, I AS T$, ASF1$(I): Ab쳆 F2$() :JE FIELDS{b #,  AS F2$(),  AS F2$(), ASF2$(), ASF2$()b #, 'AST$, ASF2$(), ASF2$()b FO% :FILE OPEN FLAGbbx:CLOSEb FO% : FO%cOP: `: ER% T : c@:REWINDDcJOP: `: ER% T : ]c:CREATE NEW RECORDcKE$M1$: OP: `: ER% Tc F1$()M1$: F1$()M2$: F1$()M3$: F1$()M4$c F1$()M5$:I:DD#MA#(I): :F1$(I)II$: d FI%,OS: (d`:UPDATE CURRENT RECORD=dj ( :SEARCHYdt ER% T : ndĸ:DELETE RECORDdθKE$M1$: OP: `: ER% T : d(:SEARCH FOR RECORDd2KE$M1$: OP: `: d:GET RECORDdKE$M1$: OP: `e ER% : ER% T\eM1$F1$(): M2$F1$(): M3$F1$(): M4$F1$(): M5$F1$()eM1(M1$): M3(M3$): M5(M5$)e I :II$F1$(I): :MA#(I)DD#::e:GET NEXT RECORDeOP: `: ER% T :  f:CREATE NEW EXTENT4fOLOS: OP : `: ER% Tof F2$()J1$: F2$()J2$: F2$()J3$: F2$()J4$f F2$()(SD!(J5$)):DD#J6#: : F2$()II$f FI%,OS: fH:UPDATE CURRENT EXTENTfR f:DELETE EXTENTgOP : `: ER% T : /g:GET NEXT EXTENTVgOSOL: OP : `: ER% Tg$J1$F2$(): J2$F2$(): J3$F2$(): J4$F2$()g.J5$DS$((F2$())):II$F2$(): :J6#DD#:gPÕ : BELL$()()()hZÿ "I",,"A:GLSYS.DAT": #,N$@hdÆ V$((N$)):V$()N$: I (N$):#,V$(I): I:ehnMD$V$( ):SC$V$():W(V$())hË MD$"A" MD$"B" z: MhË MD$"A" hDN1: V$hÿ "I",,MD$":GLSYS.DAT": #,N$ iÆ V$((N$)):V$()N$:I(N$): #,V$(I): I:6iMD$V$( ): MD$"B" H: MKiÕ : liË 5 8 H: MiË 6 > A z: MiÉ iN#:X9$()():X8$()(): iII$((N#DD#H),,):)jDD#((X9$II$X8$)(N#))ףp= #z:XjØSD!(S$)((S$,)(S$,)(S$,,))jØDS$(D!)((D!),,)"/"((D!),)"/"((D!),,)jĿ "I",,"A:GLDA.DAT": #,VD$:  :DATEjVS$V$(): VC$V$() :SYSTEM, COMPANY NAME,kĂ I (V$()): DK%(I)(V$(I)): Tkđ SC$: :: :DISPLAY HEADERSk"đ:"ONE MOMENT FOR PROGRAM STARTUP...."::kƑ(W(VC$)));VC$:(W(VS$)));VS$kƑ(W(PN$)));PN$kƑ(W(VD$)));VD$k.ǎk8Ǒ Q$;: R$ ltRL$(R$,)(lyNj R$"END" M : Jlȍ8:N!:R$E$ώ:DP:DGmlȋ(R$,)" "R$(R$,):lȋ(R$)Zl(ȂJJ(R$):CH((R$,JJ,))l2ȋCH/CH:DG:Pl<ȋCH.DPDP:DPύ::P mFȋ(CH-CH+)JJύ:$mPȃJJ:DGύ:OmZN!(R$):(N!LB!N!UB!)LB!UB!ώ]mdȍ:mȍ 8: (R$) MO: DA: YR: mȋ(R$) (R$) mMO(R$,"/"): MO  : MO R$"0"R$nDA(,R$,"/"): DA Qnȋ DA RL$(R$,): R$"0"(R$,):R$RL$R$nMO((R$,)):DA((R$,,)):YR((R$,))nȋ(MO)(MO )(DA)(DA )(YR)(YRc)ώnȍ:nɍ8:DP:DGnɋ(R$,)" "R$(R$,):9oJJ(R$,","):JJR$(R$,,JJ)(R$,JJ):Woɋ(R$,)"$"R$(R$,)loɋ(R$)D#:oɂJJ(R$):CH((R$,JJ,))oɋCH/CH:DG:oɋCH.DPDP:DPύ::oɋ(CH-)(CH+)JJύ:pɃJJ:DGύ:'pD#(R$"D"):?pXQ$Q$" (Y OR N)? "`p]YES:8:RL$"Y"YES:sp_ʋ (R$) pbʋRL$"N"ύ:] : pʑ:"POSITION THE PAPER AT THE TOP OF A PAGE. "pQ$"READY": X: (R$) pʋ YES  : 6qґ"*** INVALID ENTRY. PLEASE REENTER. ***";BELL$:Cq"ӋER%ώqTӑ"*** SYSTEM ERROR ";ER%;". PLEASE CONSULT MANUAL. ***";BELL$q^Ӊ Mqӑ"*** NUMBER IS OUT OF RANGE. ***";BELL$:qԑ"*** INCORRECT DATE. MUST BE FORM MM/DD/YY. ***";BELL$:.rԑ:" BASIC ERROR NUMBER ";;" LINE NO. ";_rԑ" CONSULT BASIC MANUAL FOR EXPLANATION. "rԑ:"ABNORMAL END OF JOB ":rՂI:BELL$;:: MrHՑ: "*** PROPER SYSTEM FILE NOT FOUND. CAN'T CONTINUE. ***":'szՑ: "*** SYSTEM FILE INITIALIZED IMPROPERLY. CAN'T CONTINUE. ***":\s_:10/30/78 Multi ARray ISam - MARIS (OP) s`ꕨ:OP,(,,,T,,, ,,H,,,tsjꕨ:s=ER%:j::t: CREATE MARIS FILE (FI%, NA$, DI%, DA$, KL%, OC$, RETURNS: ER%) Ftꕨ:NA$(DI%A)":"NA$:NA$ASNA$UtER%:ptꕨ:ER%:ER%:t"R",FI%,NA$:NA$(NA$,): FI%,ASO0$,ASO1$,ASO2$,ASO3$,ASO4$,ASO5$,ASO6$,dASO7$,ASO8$JuO0$"MARIS":O1$():O2$DA$:O3$(): O4$():O5$O4$:O6$(KL%):O7$OC$:O8$"103078"buFI%,:FI%:ER%:u': OPEN MARIS FILE (FI%, NA$, DI%, RETURNS: DA$, EX%, NR%, OA, KL%, OC$, OI, ER%) u(땨2:NA$(DI%A)":"NA$:NA$ASNA$u2ER%:<v<땨:ER%:ER%:vvF"R",FI%,NA$:NA$(NA$,): FI%,ASO0$,ASO1$,ASO2$,ASO3$,ASO4$,ASO5$,ASO6$,dASO7$vPFI%,:O0$"MARIS"FI%:ER%:3wZDA$O2$:EX%(O3$):NR%(O4$):OA(O5$):KL%(O6$):OC$O7$: FI%,(KL%)ASOK$,({KL%)ASOT$,ASOM$,ASOE$,ASOL$: O1$()x:NR%wdOKKL%:OTOK:OJOT:FI%,EX%:OT$(OT):OB: OIOT:FI%,(OB)ASOT$,(OK)ASOT$(OI):OBOBOK:: OINR%:OJOTOJ:FI%wnOK$(OI)OT$(OJ):OJOJ:OI:OT$:~xx:"*** FILE WAS NOT CLOSED PROPERLY. ONE MOMENT FOR FIX...": BE$:NR%:FI%,:EX%:OPEX%:FI%: OM$"M"NR%NR%:OK$(NR%)OK$(OP)xyOP:NR%:OH():OH():OH():OH() :OTxzOH(OT)NR%OTOT:OH(OT)OH(OT):z)y{OKOT:OHOH(OK):OJOHNR%:OIOJOH:OT$,OK$(OJ)ay|OT$OK$(OI)ϥOK$(OIOH),OK$(OI):OIOIOH:OI|y}OK$(OIOH),OT$:OJ,OK:OHyFI%,:O1$():FI%,:ODDI%:y: CLOSE MARIS FILE (RETURNS: ER%) y땨:FI%,:ER%:zER%:z땨:ER%ώ8zNR%:OKKL%:OTOKzOJ:FI%,EX%:OT$(OT):OB: OIOT:FI%,(OB)ASOT$,(OK)ASOT$(OI):OBOBOK:: OINR%:OT$(OJ)OK$(OI):OJOJ:OJOTFI%:OJzOI:OT$:OJFI%6{FI%,:O1$():O3$(EX%):O4$(NR%): O5$(OA):O7$OC$:FI%,:FI%:ER%:k{: CREATE RECORD (KE$, RETURNS: OI, OS, ER%) {:ER%ώ:{NR%OBςOJNR%OB:OK$(OJ),OK$(OJ):|NR%NR%:OIOB:OK$(OI)KE$(OS):OK$KE$:OM$"M": OE$(OS):OL$(OS):FI%,OS:ER%:P|S: DELETE RECORD (KE$, RETURNS: KE$, OI, OS, ER%) |T:ER%ώ::NR%NR%:OTOS: OINR%ςOJOINR%:OK$(OJ),OK$(OJ):|^OSOL:OSOTύ:^}hOINR%ER%::OS((OK$(OI),)): KE$(OK$(OI),KL%):ER%:,}: REWIND (RETURNS: OI, ER%) M}OI:NR%ER%::ER%:{}: SEARCH (KE$, RETURNS: OI, OS, ER%) }OTNR%:OB:(KE$)KL%KE$(KE$(KL%," "),KL%)}&OBOTOI(OTOB):OT$(OK$(OI),KL%):ER%:~0OT$KE$OTOI:&:OT$KE$OBOI:&<~:OS((OK$(OI),)):ER%:v~: GET RECORD (KE$, RETURNS: OI, OS, OE, OL, ER%) ~:ER%ώ :FI%,OS:OE(OE$):OL(OL$):ER%:~: GET NEXT RECORD (RETURNS: KE$, OI, OS, OE, OL, ER%) SOINR%ER%::OIOI:OS((OK$(OI),)):FI%,OS: KE$OK$:OE(OE$):OL(OL$):ER%:G: GET PREVIOUS RECORD (RETURNS: KE$, OI, OS, OE, OL, ER%) HOIER%::OIOI:OS((OK$(OI),)):FI%,OS: KE$OK$:OE(OE$):OL(OL$):ER%:2: CREATE EXTENT SECTOR (OE, OL, RETURNS: OS, ER%) :FI%,OE:OL$(OS):FI%,OE: FI%,OL:OE$(OS):FI%,OL:FI%,OS:OE$(OE): OL$(OL):OM$"E":FI%,OS:ER%:: DELETE EXTENT SECTOR (OS, RETURNS: OE, OL, ER%) FI%,OS:OM$"E"ER%::UFI%,OE:OL$(OL):FI%,OE: FI%,OL:OE$(OE):FI%,OL:ER%:s: GET EXTENT SECTOR (OS, RETURNS: OE, OL, ER%) ƁtFI%,OS:OM$"E"ER%:OE(OE$):OL(OL$):ER%́~/: SETUP (NR%) 0O:OK$(NR%):: GET NEW SECTOR (RETURNS: OS) TOAFI%,OA:OSOA:OA(OL$):EX%EX%:OSEX%FI%,:O3$(EX%):O5$(OA):FI%,:ER%:: FREE OLD SECTOR (OS, RETURNS: OE, OL, ER%) FI%,OS:OE(OE$):OL(OL$):OM$"F":OL$(OA):OAOS: FI%,OS:, IILC A: : II: LC: E, OL, ER%) FI%,OS:OE(OE$):OL(OL$):OM$"F":OL$(OA):OAOS: FI%,OS:, IILC