|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 21632 (0x5480)
Types: TextFile
Names: »OPDAT.CMD«
└─⟦c252abf18⟧ Bits:30008917 RCTOAX RC TIME OG OMKOSTNINGS OVERSIGT ARBEJDSDISK
└─⟦this⟧ »OPDAT.CMD«
*****************************************************************************
* COMMANDO FILE TIL RC TIME OG OMKOSTNINGS OVERSIGT *
* NAVN : OPDAT.CMD SIDST ÆNDRET DATO: 86.02.21 KL..: 08.30 *
* KALDES FRA START.CMD, T1.MEN OG T2.MEN *
*****************************************************************************
set escape on
store ' ' to ok
use
set talk off
erase
? ' *** RC TIME OG OMKOSTNINGS OVERSIGT OPDATERING ***'
? ' --------------------------------------------------------'
? ' BLIV VENLIGST I NÆRHEDEN AF SKÆRMEN INDTIL DISKETTEN FRA'
? ' RC OMKOSTNINGS REGISTRERINGS SYSTEM DISKETTE B: ER SAT I'
? ' DISKETTE STATION B: '
? ' --------------------------------------------------------'
? ' 1. ER DER OVERFØRT NY TRANSAKTIONS-FILE ?'
accept ' TAST JA ELLER FORTRYD SÅ RETUR ............ ' to ok
if !(OK) <> 'JA'
erase
return
endif
store ' ' to ok
? ' '
*
do while ok = ' '
ACCEPT ' 2. INDTAST ÅR OG MÅNED (ÅRMD) FOR PERIODEN ........... ' TO PER
store $(per,1,2) to aar
store $(per,3,2) to maaned
if aar < '84'
loop
endif
if aar > '98'
loop
endif
if maaned < '01'
loop
endif
if maaned > '12'
loop
endif
store 'OK' to ok
enddo
store ' ' to ok
*
? ' '
? ' 3. KONTROL FOR TRANSAKTIONS-FILE PÅ DISKETTE A, VENT !'
store "'TIME"+per+".TXT'" to navn
if .not. file(&navn)
? '*** TRANSAKTIONS-FILE IKKE PÅ DISKETTE A ! TAST RETUR'
wait
return
endif
*
? ' '
? ' 4. SÆT OMKOSTNINGS REGISTRERINGS SYSTEMDISKETTE B: MED'
? ' AJOURFØRT PERIODE LIG MED ÅRMD .....................:' , PER
? ' I DISKETTE STATION B:'
ACCEPT ' TAST OK ELLER RETURN VED FORTRYD ............ ' TO OK
if !(OK) <> 'OK'
return
endif
*
store "'B:LISTE2DB.DBF'" to navn
if .not. file(&navn)
? '*** OMKOSTNINGS REG. LISTE2DB.DBF EJ OK ! TAST RETUR'
set console off
wait
set console on
return
endif
*
? ' '
? ' 5. NU NULSTILLES DE GAMLE REGISTRE , VENT !'
set talk on
? ' '
? ' 6 FILER SKAL DELETES (SLETTES) !'
? ' '
*
DELETE FILE wprojekt.NDX
DELETE FILE wkodproj.NDX
DELETE FILE ckode2gr.NDX
*
use gout
copy to goutwork structure
use
delete file gout
rename goutwork to gout
use gout
*
use wprotime
copy to wprowork structure
use
delete file wprotime
rename wprowork to wprotime
use wprotime
index on projektnr to wprojekt
index on koder26 + projektnr to wkodproj
*
use cbelob
copy to cbelwork structure
use
delete file cbelob
rename cbelwork to cbelob
use cbelob
index on kode2grp to ckode2gr
*
? ' '
? ' 6. NU HENTES OG BEHANDLES DE NYE TRANSAKTIONER, VENT !'
? ' '
use wprotime index wprojekt, wkodproj
append from TIME&per.TXT SDF for projektnr> '010000' .and. projektnr< '990000'
set talk off
? ' '
? ' BEREGN RESTTIMER , VENT !'
use wprotime index wprojekt
go top
store 0 to laste
store 0 to nulle
store 0 to ejnul
if .not. eof
store T to LOPPE
endif
*
DO WHILE LOPPE
store laste + 1 to laste
replace primotim with primotim / 10
replace periodetim with periodetim / 10
replace ultimotim with ultimotim / 10
replace plantim with plantim / 10
if plantim > 0
replace resttim with plantim - ultimotim
store ejnul + 1 to ejnul
else
replace resttim with 0
store nulle + 1 to nulle
endif
skip 1
if eof
store F to LOPPE
endif
loop
ENDDO LOPPE
*
? ' '
? ' antal læste transaktioner ................. ' , laste
? ' antal transaktioner med resttimer > 0 ..... ' , ejnul
? ' antal transaktioner med resttimer = 0 .. .. ' , nulle
? ' '
release LOPPE, laste, ejnul, nulle
*
? ' '
? ' 7. MÅNEDS VARIABLE DANNES FRA PERIODENS MÅNED , VENT !'
DO CASE
case Maaned = '01'
store 'store bubel01 to xudper' to felte1
store 'store bubel02 + bubel03 + bubel04 + bubel05 + bubel06 + bubel07 + ;
bubel08 + bubel09 + bubel10 + bubel11 + bubel12 to xudrest' to felte2
case Maaned = '02'
store 'store bubel02 to xudper' to felte1
store 'store bubel03 + bubel04 + bubel05 + bubel06 + bubel07 + bubel08 + ;
bubel09 + bubel10 + bubel11 + bubel12 to xudrest' to felte2
case Maaned = '03'
store 'store bubel03 to xudper' to felte1
store 'store bubel04 + bubel05 + bubel06 + bubel07 + bubel08 + bubel09 + ;
bubel10 + bubel11 + bubel12 to xudrest' to felte2
case Maaned = '04'
store 'store bubel04 to xudper' to felte1
store 'store bubel05 + bubel06 + bubel07 + bubel08 + bubel09 + bubel10 + ;
bubel11 + bubel12 to xudrest' to felte2
case Maaned = '05'
store 'store bubel05 to xudper' to felte1
store 'store bubel06 + bubel07 + bubel08 + bubel09 + bubel10 + bubel11 + ;
bubel12 to xudrest' to felte2
case Maaned = '06'
store 'store bubel06 to xudper' to felte1
store 'store bubel07 + bubel08 + bubel09 + bubel10 + bubel11 + bubel12 to ;
xudrest' to felte2
case Maaned = '07'
store 'store bubel07 to xudper' to felte1
store 'store bubel08 + bubel09 + bubel10 + bubel11 + bubel12 to xudrest' to ;
felte2
case Maaned = '08'
store 'store bubel08 to xudper' to felte1
store 'store bubel09 + bubel10 + bubel11 + bubel12 to xudrest' to felte2
case Maaned = '09'
store 'store bubel09 to xudper' to felte1
store 'store bubel10 + bubel11 + bubel12 to xudrest' to felte2
case Maaned = '10'
store 'store bubel10 to xudper' to felte1
store 'store bubel11 + bubel12 to xudrest' to felte2
case Maaned = '11'
store 'store bubel11 to xudper' to felte1
store 'store bubel12 to xudrest' to felte2
case Maaned = '12'
store 'store bubel12 to xudper' to felte1
store 'store 0 to xudrest' to felte2
otherwise
? ' *** MÅNED LIG MED ...................... , maaned '
? ' *** MÅNEDS CASE EJ OK !!!! TAST RETUR '
WAIT
RETURN
ENDCASE
store ' ' to ok
*
***
use wprotime index wprojekt
go bottom
store projektnr to bmax
? ' '
? ' 8. NU AKKUMULERES BELØBENE FRA B:LISTE2DB , VENT !'
? ' '
? ' OPDATERET PROJEKTNUMMER KAN FOREKOMME FLERE GANGE, '
? ' AFHÆNGIG AF ANTAL TILKNYTTEDE KONTONUMRE. '
? ' STØRSTE PROJEKTNUMMER MÅ VÆRE .....................:', BMAX
? ' '
***
use B:LISTE2DB INDEX B:PJKTOGR4
go top
store pjktogrp to enogle
store projektnr to eprojektnr
store $(kontonr,5,2) to ekontogrp
store kr:ultimo - kr:periode to ekrprimo
store kr:periode to ekrperiode
store kr:ultimo to ekrultimo
STORE T TO LOPPE
*
DO WHILE LOPPE
***
USE WPROTIME INDEX WPROJEKT
find &eprojektnr
if # = 0
***
use B:LISTE2DB INDEX B:PJKTOGR4
find &enogle
skip 1
if eof
store F to LOPPE
loop
endif
if projektnr > bmax
store F to LOPPE
loop
endif
store pjktogrp to enogle
store projektnr to eprojektnr
store $(kontonr,5,2) to ekontogrp
store kr:ultimo - kr:periode to ekrprimo
store kr:periode to ekrperiode
store kr:ultimo to ekrultimo
loop
endif
store kode2 to bkode2
store projektnr to bprojektnr
store F to copdat
store T to LOKKE
*
DO WHILE LOKKE
if ekontogrp = '40'
store T to copdat
endif
if ekontogrp = '41'
store T to copdat
endif
if ekontogrp = '42'
store T to copdat
endif
if ekontogrp = '43'
store T to copdat
endif
if ekontogrp = '44'
store T to copdat
endif
if ekontogrp = '45'
store T to copdat
endif
if ekontogrp = '46'
store T to copdat
endif
if ekontogrp = '47'
store T to copdat
endif
if ekontogrp = '48'
store T to copdat
endif
if ekontogrp = '73'
store T to copdat
endif
if copdat
*** se teksten til punkt 9 ***
? ' opdater projektnummer ' , eprojektnr
store bkode2 + ekontogrp to cnogle
***
use cbelob index ckode2gr
find &cnogle
if # <> 0
replace kr with kr + ekrprimo
replace kr:periode with kr:periode + ekrperiode
replace kr:ultimo with kr:ultimo + ekrultimo
endif
if # = 0
append blank
replace kode2 with bkode2
replace kontogrp with ekontogrp
replace kr with ekrprimo
replace kr:periode with ekrperiode
replace kr:ultimo with ekrultimo
replace budper with 0
replace budrest with 0
replace kode2grp with bkode2 + ekontogrp
endif
endif
***
use B:LISTE2DB INDEX B:PJKTOGR4
find &enogle
skip 1
if eof
store F to LOPPE
store F to LOKKE
loop
endif
store pjktogrp to enogle
store projektnr to eprojektnr
store $(kontonr,5,2) to ekontogrp
store kr:ultimo - kr:periode to ekrprimo
store kr:periode to ekrperiode
store kr:ultimo to ekrultimo
if eprojektnr <> bprojektnr
store F to LOKKE
endif
loop
ENDDO LOKKE
loop
ENDDO LOPPE
*
? ' '
? ' 9. NU HENTES BUDGETTAL , VENT !'
? ' '
STORE T TO LOPPE
***
use cbelob index ckode2gr
go top
***
DO WHILE LOPPE
store kode2grp to cnogle
***
use dbudget index dkode2gr
find &cnogle
store F to copdat
if # <> 0
&felte1
&felte2
store T to copdat
endif
***
use cbelob index ckode2gr
find &cnogle
if # = 0
QUIT TO '*** FEJL GENSKRIV BUDGET I CBELOB !!!'
endif
if copdat
replace budper with xudper
replace budrest with xudrest
endif
skip 1
if eof
store F to LOPPE
endif
loop
ENDDO LOPPE
*
release xudper, xudrest, LOPPE, lokke, copdat, bmax, bprojektnr, bkode2
release enogle, ekontogrp, eprojektnr, cnogle, ckrperiode, ckrultimo
release ekrprimo, felte1, felte2
*****************************************************************************
? ' '
? '10. NU OPRETTES PRINTFIL TIL OVERSIGTS LISTE , VENT !'
? ' '
*****************************************************************************
* løkke zlok = hovedløkke True, hvis ikke EOF på WPROTIME *
* løkke ztim = løkke TRUE, så længe timer dannes til printlinier *
* løkke zens = løkke TRUE, så længe samme kode2 i timer og ej eof *
* løkke zbel = løkke TRUE, så længe beløb dannes til printlinier *
* Hvis tekst ikke findes i FTEKST , så store ' -blank-' to ztekst *
* Først læses WPROTIME , der dannes en hovedlinie med tekst for kode2, *
* derefter dannes linier for tilhørende kode6'er, *
* ved brud skiftes til *
* læsning af cbelob , der dannes linier for de til kode2 tilhørende *
* kontogrupper, totallinie for kontogrupperne *
* 40 til 49, samt en linie uden total for konto- *
* gruppe 73. *
* Ved slut på WPROTIME gøres der færdigt *
*****************************************************************************
*
store ' ' to zkodproj
store ' ' to zkode2gr
store ' ' to zindex
store ' ' to zart
store ' ' to zkode2
store ' ' to zkode6
store ' ' to zkontogrp
store ' ' to zprojektnr
store ' ' to ztekst
store 0 to ztimprim
store 0 to ztimperi
store 0 to ztimulti
store 0 to ztimrest
store 0 to ztimplan
store 0 to zakprim
store 0 to zakperi
store 0 to zakulti
store 0 to zakrest
store 0 to zakplan
store 0 to zbelprim
store 0 to zbelperi
store 0 to zbelulti
store 0 to zbelrest
store 0 to zbelplan
store ' ' to zslut
store T to zlok
store T to ztim
store F to zbel
*** PERIODE REKORD TIL PRINT ***
use gout
append blank
replace kode2 with '00'
replace art with '0'
replace kode6 with '000'
replace projektnr with ' '
replace tekst with 'PERIODE'
replace prim with val(per)
replace peri with 0
replace ulti with 0
replace rest with 0
replace plan with 0
***
use WPROTIME index WKODPROJ
go top
*
DO WHILE ZLOK
*******************************************************************************
*** hovedløkke starter her ***
*** time løkke starter her ***
*******************************************************************************
DO WHILE ZTIM
*** først dannes overskrift til en ny side ***
store kode2 + kode6 + projektnr to zkodproj
store '1' to zart
store kode2 to zkode2
? ' danner nu print for projektgruppekode2 = ' , zkode2
***
use ftekst index findex
store zkode2 + '00' to zindex
find &zindex
if # = 0
store ' ' to ztekst
else
store tekst to ztekst
endif
***
use gout
append blank
replace kode2 with zkode2
replace art with '0'
replace kode6 with '000'
replace projektnr with ' '
replace tekst with ztekst
replace prim with 0
replace peri with 0
replace ulti with 0
replace rest with 0
replace plan with 0
***
use WPROTIME index WKODPROJ
find &zkodproj
store T to zens
*
DO WHILE ZENS
*** nu detaillinier til timer, såfremt samme kode2 og ej eof ***
store kode2 + kode6 + projektnr to zkodproj
store '1' to zart
store kode2 to zkode2
store kode6 to zkode6
store primotim to ztimprim
store periodetim to ztimperi
store ultimotim to ztimulti
store resttim to ztimrest
store plantim to ztimplan
store projektnr to zprojektnr
store projektnr+' '+projnavn to ztekst
***
use gout
append blank
replace kode2 with zkode2
replace art with '1'
replace kode6 with zkode6
replace projektnr with zprojektnr
replace tekst with ztekst
replace prim with ztimprim
replace peri with ztimperi
replace ulti with ztimulti
replace rest with ztimrest
replace plan with ztimplan
store zakprim + ztimprim to zakprim
store zakperi + ztimperi to zakperi
store zakulti + ztimulti to zakulti
store zakrest + ztimrest to zakrest
store zakplan + ztimplan to zakplan
***
use WPROTIME index WKODPROJ
find &zkodproj
skip
if EOF
store 'slut' to zslut
store F to zens
loop
endif
if kode2 > zkode2
store F to zens
loop
endif
loop
ENDDO ZENS
*** total linie for timer for en kode2 dannes ***
***
use gout
append blank
replace kode2 with zkode2
replace art with '1'
replace kode6 with '999'
replace projektnr with ' '
replace tekst with 'TIMER IALT'
replace prim with zakprim
replace peri with zakperi
replace ulti with zakulti
replace rest with zakrest
replace plan with zakplan
store 0 to zakprim
store 0 to zakperi
store 0 to zakulti
store 0 to zakrest
store 0 to zakplan
store '40' to zkontogrp
store zkode2 + zkontogrp to zkode2gr
store '2' to zart
store F to ztim
store T to zbel
ENDDO ZTIM
*******************************************************************************
*** time løkke slutter her ***
*** beløb løkke starter her ***
*******************************************************************************
DO WHILE ZBEL
***
use cbelob index ckode2gr
store zkode2 + zkontogrp to zkode2gr
find &zkode2gr
*** beløbs linier for omk.grp dannes såfremt de findes i cbelob ***
if # <> 0
store kr to zbelprim
store kr:periode to zbelperi
store kr:ultimo to zbelulti
store budrest to zbelrest
store budper to zbelplan
store '00' + zkontogrp to zindex
***
use ftekst index findex
find &zindex
if # = 0
store ' ' to ztekst
else
store tekst to ztekst
endif
***
use gout
append blank
replace kode2 with zkode2
replace art with '2'
replace kode6 with zkontogrp
replace projektnr with ' '
replace tekst with ztekst
if zkontogrp <> '73'
store zakprim + zbelprim to zakprim
store zakperi + zbelperi to zakperi
store zakulti + zbelulti to zakulti
store zakrest + zbelrest to zakrest
store zakplan + zbelplan to zakplan
endif
store (zbelprim + 500.00) / 1000 to zbelprim
store (zbelperi + 500.00) / 1000 to zbelperi
store (zbelulti + 500.00) / 1000 to zbelulti
replace prim with int(zbelprim)
replace peri with int(zbelperi)
replace ulti with int(zbelulti)
replace rest with zbelrest
replace plan with zbelplan
endif
if zkontogrp = '40'
store '41' to zkontogrp
loop
endif
if zkontogrp = '41'
store '42' to zkontogrp
loop
endif
if zkontogrp = '42'
store '43' to zkontogrp
loop
endif
if zkontogrp = '43'
store '44' to zkontogrp
loop
endif
if zkontogrp = '44'
store '45' to zkontogrp
loop
endif
if zkontogrp = '45'
store '46' to zkontogrp
loop
endif
if zkontogrp = '46'
store '47' to zkontogrp
loop
endif
if zkontogrp = '47'
store '48' to zkontogrp
loop
endif
if zkontogrp = '48'
store '73' to zkontogrp
loop
endif
if zkontogrp = '73'
*** totallinie for beløb omk.grp 40 - 48 , 73 ej med ***
***
use gout
append blank
replace kode2 with zkode2
replace art with '2'
replace kode6 with '50'
replace projektnr with ' '
replace tekst with 'KAPACITETSOMKOSTNINGER IALT'
store (zakprim + 500.00) / 1000 to zakprim
store (zakperi + 500.00) / 1000 to zakperi
store (zakulti + 500.00) / 1000 to zakulti
replace prim with int(zakprim)
replace peri with int(zakperi)
replace ulti with int(zakulti)
replace rest with zakrest
replace plan with zakplan
store 0 to zakprim
store 0 to zakperi
store 0 to zakulti
store 0 to zakrest
store 0 to zakplan
endif
*** og så retur til timer, næste kode2 eller eof ***
store F to zbel
if zslut = 'slut'
store F to zlok
loop
endif
***
use WPROTIME index WKODPROJ
find &zkodproj
if # <> 0
skip
if EOF
store F to zlok
store F to ztim
loop
endif
store T to ztim
loop
endif
if # = 0
? '**** fejl ved næste læs i ANEXT **** tast retur ' get ok
wait
store F to zlok
loop
endif
ENDDO ZBEL
*******************************************************************************
*** beløb løkke slutter her ***
*** hoved løkke slutter her ***
*******************************************************************************
*
ENDDO ZLOK
*
set talk on
? ' '
? '11. KOPI TIL PERIODE PRINT REGISTER , VENT !'
? ' '
***
use gout
copy to gout&per
? ' '
? '12. INDEKS PÅ PERIODE PRINT REGISTER , VENT !'
? ' '
***
use gout&per
index on kode2 + art + kode6 + projektnr to gind&per
set talk off
? ' '
? '13. LISTE 1 ER OPDATERET OG KLAR TIL UDSKRIFT !'
? ' VED UDSKRIFT SÅ ANVEND PERIODEN: ' , PER
? ' BRUG LISTE3 TIL EVT. KONTROL (inden næste opdat.) !'
? ' '
*
release zkodproj, zkode2gr, zindex, zart, zkode2, zkode6, ztekst, ztimprim
release ztimperi, ztimulti, ztimrest, ztimplan, zbelprim, zbelperi, zbelulti
release zbelrest, zbelplan, zlok, zslut, zkontogrp, xprim, xulti, per, navn
release zakprim, zakperi, zakulti, zakrest, zakplan, zbel, ztim, zens
release zprojektnr
*
? ' '
? '14. SLUT MED OPDATERING RC TIME OG OMKOSTNINGS OVERSIGT'
? ' '
? ' HUSK PÅ DISKETTEN I DISKETTE STATION B:,'
? ' TAGES UD NU !!!'
? ' '
? ' TAST RETUR'
? ' -------------------------------------------------------'
set console off
wait
set console on
set talk off
set escape off
store ' ' to ok
return
«eof»