1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM         NEWTRA : CTC ACCOUNTS RECEIVABLE 
4  REM
5  REM         36214 REV  B  PART 6 OF 13  2/73 
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
100  FILES G12
105  PRINT "(1) TOP OF FORM OR (2) ABDICK";
106  INPUT P5
107  IF P5=1 OR P5=2 THEN 110
108  PRINT '7'7'7"WHAT";
109  GOTO 106
110  PRINT "CURRENT DATE";
111  INPUT D
112  IF D<10^6 AND D>9999 THEN 115
113  PRINT '7'7"INVALID DATE"
114  GOTO 110
115  D1=INT(D/10^4)
116  IF D1<1 OR D1>12 THEN 113
117  D2=INT((D-D1*10^4)/100)
118  IF D2<1 OR D2>31 THEN 113
119  D3=D-D1*10^4-D2*100
120  IF D3<71 THEN 113
122  DIM B$[2],T$[26],X$[10]
125  DIM M[32],Z[4]
130  PRINT "ENTER 'ALL' OR 'LAST X' TRANSACTIONS";
131  INPUT X$
139  IF X$[1,1]="L" THEN 2000
150  R=0
160  IF  END #1 THEN 260
165  P9=66
170  MAT M=ZER
175  GOSUB 3000
180  FOR I5=1 TO 200
200  READ #1,I5;U6,T$,B$,D,S1,X,C0,S5,S6,P0
210  GOSUB 310
220  READ #1;U6,T$,B$,D,S1,X,C0,S5,S6,P0
230  GOSUB 310
240  REM
250  NEXT I5
260  K=1
270  GOSUB 9910
290  PRINT "DO YOU WANT TO INITIALIZE FILE NUMBER";F+1;"AS ";
292  PRINT "TRANSACTION FILE?"
294  INPUT Y$
295  IF Y$[1,1]#"Y" THEN 300
296  PRINT #(F+1),1
297  PRINT #(F+1); END 
300  END 
310  S2=INT(X/10^4)
315  S3=INT((X-S2*10^4)/100)
320  S4=X-S2*10^4-S3*100
330  R=R+1
340  Z[1]=R
350  Z$="###: "
360  X$=" "
370  GOSUB 860
390  Z[1]=U6
400  Z$="A#### "
410  X$="0"
420  GOSUB 860
430  PRINT T$;
440  IF B$="NL" THEN 500
445  IF B$="NS" THEN 512
450  IF B$[1,1]="P" THEN 520
460  IF B$="CL" THEN 540
465  IF B$="CS" THEN 555
470  IF B$[1,1]="M" THEN 560
480  PRINT ", UNRECOGNIZABLE  ";
490  GOTO 700
500  PRINT ", NEW INVOICE (L) ";
510  GOTO 700
512  PRINT ", NEW INVOICE (S) ";
514  GOTO 700
520  PRINT ", PAYMENT AGAINST ";
530  GOTO 700
540  PRINT ", CRED INVOICE (L)";
550  GOTO 700
555  PRINT ", CRED INVOICE (S)";
557  GOTO 700
560  GOTO D OF 590,610,630,650,670,690,695
570  PRINT ", MODIFICATION    ";
580  GOTO 700
590  PRINT ", MOD CUST NUMBER ";
600  GOTO 700
610  PRINT ", MOD CUST NAME   ";
620  GOTO 700
630  PRINT ", MOD INV NUMBER  ";
640  GOTO 700
650  PRINT ", MOD INV DATE    ";
660  GOTO 700
670  PRINT ", MOD INV AMOUNT  ";
680  GOTO 700
690  PRINT ", DELETE INVOICE-L";
693  GOTO 700
695  PRINT ", DELETE INVOICE-S";
700  Z[1]=S1
702  IF SGN(S1)#-1 THEN 705
703  PRINT " *";
704  GOTO 710
705  PRINT "  ";
710  Z$="#####"
715  X$=" "
720  GOSUB 860
730  Z[1]=S2
740  Z[2]=S3
750  Z[3]=S4
760  Z[4]=S5
780  Z$=", ##/##/##, $#####."
800  GOSUB 860
801  Z[1]=S6
802  Z$="##"
803  X$="0"
804  GOSUB 860
810  IF C0<0 THEN 840
820  PRINT "   ";
830  GOTO 845
840  PRINT " CR";
845  REM
850  K=1
855  GOSUB 9900
856  P9=P9+2
857  IF P9<60 THEN 859
858  GOSUB 3000
859  RETURN 
860  REM ***** CSN002 ***** UTILITY SUBROUTINE *****
861  REM ***** VERSION 2 ***** 10/23/70 *****
862  REM PRINT FORMAT SUBROUTINE
863  REM INPUT Z$, MAT Z
864  V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
865  DIM V$[72],Y$[10],Z$[72]
866  Y$="0123456789"
867  Z0=Z9-1
868  Z0=Z0+1
869  IF Z0=LEN(Z$)+1 THEN 933
870  IF Z$[Z0,Z0]="#" THEN 878
871  IF Z$[Z0,Z0+1]=".#" THEN 878
872  IF Z$[Z0,Z0+1]="+#" THEN 876
873  V$[V,V]=Z$[Z0,Z0]
874  V=V+1
875  GOTO 868
876  Z4=0
877  GOTO 868
878  Z=100
879  Z6=Z[Z2]
880  Z9=Z0-1
881  Z9=Z9+1
882  IF Z$[Z9,Z9]="." THEN 885
883  IF Z$[Z9,Z9]="#" THEN 881
884  GOTO 889
885  IF Z5#1 THEN 889
886  Z5=0
887  Z=Z9
888  GOTO 881
889  IF Z#100 THEN 891
890  Z=Z9
891  IF Z4=1 THEN 898
892  IF Z6 >= 0 THEN 896
893  V$[V,V]="-"
894  V=V+1
895  GOTO 898
896  V$[V,V]=" "
897  V=V+1
898  IF Z=Z9 THEN 901
899  Z6=ABS(Z6)+5*10^(Z-Z9)
900  GOTO 902
901  Z6=ABS(Z6)+.5
902  Z7=10^(Z-Z0-1)
903  Z4=10*Z7
904  FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1
905  IF Z1#0 THEN 910
906  V$[V,V]="."
907  V=V+1
908  Z3=0
909  GOTO 929
910  Z8=INT(Z6/Z7)
911  IF Z6<Z4 THEN 915
912  V$[V,V]="#"
913  V=V+1
914  GOTO 928
915  Z6=Z6-Z8*Z7
916  IF Z8=0 THEN 918
917  Z3=0
918  IF Z3=0 THEN 926
919  IF Z1#1 THEN 923
920  V$[V,V]="0"
921  V=V+1
922  GOTO 928
923  V$[V,V]=" "
924  V=V+1
925  GOTO 928
926  V$[V,V]=Y$[Z8+1,Z8+1]
927  V=V+1
928  Z7=Z7/10
929  NEXT Z1
930  Z3=Z4=Z5=Z7=1
931  Z2=Z2+1
932  GOTO 867
933  PRINT V$;
934  V$=""
935  RETURN 
2000  R=K=0
2010  I=1
2020  PRINT "PRINT LAST 'X' TRANSACTIONS (ENTER X)";
2030  INPUT X9
2070  IF  END #1 THEN 2140
2080  READ #1,I;U6,T$,B$,D,S1,X,C0,S5,S6,P0
2090  K=K+1
2100  READ #1;U6,T$,B$,D,S1,X,C0,S5,S6,P0
2110  K=K+1
2120  I=I+1
2130  GOTO 2080
2140  E=INT((K-X9)/2)+1
2150  IF E>0 THEN 2170
2160  E=1
2170  IF  END #1 THEN 260
2172  P9=66
2175  GOSUB 3000
2180  READ #1,E;U6,T$,B$,D,S1,X,C0,S5,S6,P0
2190  GOSUB 310
2200  READ #1;U6,T$,B$,D,S1,X,C0,S5,S6,P0
2210  GOSUB 310
2220  E=E+1
2230  GOTO 2180
3000  GOTO P5 OF 3010,3020
3010  PRINT '12'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18;
3015  GOTO 3030
3020  K=66-P9
3025  GOSUB 9910
3030  K=4
3035  GOSUB 9910
3040  PRINT TAB(10)"ACCOUNTING TRANSACTION FILE --";D1"/";D2"/";D3;
3045  K=2
3050  GOSUB 9900
3060  P9=7
3070  RETURN 
6000  PRINT 
6030  RETURN 
9900  GOSUB 6000
9910  FOR I=1 TO K
9920  PRINT 
9940  NEXT I
9945  RETURN 
9999  END 
