10 REM * MARED053 * Stampa fatture Artigianato Redditi 2000 20 REM u.v. 01.05.2000 30 REM Marczagalli Arnaldo per Artigianato servizi 40 DIM 4%,P,L,3%,P0,2%,E 50 IF ERR 0 /* 60 OPEN #1,"TF.PARAM" 70 READ P 80 DIM 1%,Z1(100,4),Z$(79),Z8$(79),Z9$(79),Z0(4),4%,Z,2%,Z5$(79) 90 DIM Z8,Z9,Z7$(63),Z6$(25) 100 IF ERR 0 GOSUB 850 110 FOR L=1 TO P 120 READ P0 130 LET Z8$=P0 USING "########" 140 LET Z1(L,0)=Z8$(3,4) 150 LET Z1(L,1)=Z8$(1,2) 160 LET Z1(L,2)=Z8$(5,5) 170 LET Z1(L,3)=Z8$(6,7) 180 LET Z1(L,4)=Z8$(8,8) 190 IF Z1(L,4)<>0 LET Z1(L,4)=Z1(L,3)-Z1(L,4) 200 NEXT L 210 LET L=0 220 LET P=1 230 GOTO 1770 240 LET Z9$="#",Z9$ 250 LET Z9$=Z9$(1,Z1(P,3)) 260 IF Z1(P,2)=3 LET Z9$="######" 270 LET Z=0 280 IF L=2 LET Z$="" 290 IF Z1(P,4)<>0 LET Z9$(Z1(P,4),Z1(P,4))="," 300 PRINT TAB (Z1(P,0),Z1(P,1));'SF';'MP';Z9$;'SB';" ";'SF';'BP'; 310 IF L<>0 GOTO 370 320 INPUT Z$ 330 IF Z$="^" RETURN 340 IF Z$="@" RETURN 350 IF Z$="y" LET Z$="Y" 360 IF Z$="n" LET Z$="N" 370 IF LEN Z$=0 GOSUB 1690 380 IF Z1(P,2)=1 GOTO 540 390 IF Z$(1,1)="-" GOTO 460 400 IF Z$(1,1)=" " LET Z$=Z$(2) 410 IF Z$( LEN Z$, LEN Z$)=" " LET Z$=Z$(1, LEN Z$-1) 420 IF ERR 0 GOTO 620 430 CALL 63,Z$ 440 IF Z1(P,4)=0 CALL 62,Z$ 450 IF ERR 0 GOSUB 850 460 IF Z1(P,4)<>0 LET Z9$(Z1(P,4),Z1(P,4))="." 470 LET Z=Z$ 480 LET Z$=Z9$ 490 LET Z$=Z USING Z9$ 500 IF Z=0 GOTO 530 510 IF Z1(P,2)=3 GOSUB 670 520 IF Z1(P,2)=3 IF Z=0 GOTO 240 530 IF Z1(P,2)=3 IF Z1(P,3)=8 LET Z$=Z USING "##,##,##" 540 LET Z9$=" ",Z9$ 550 IF Z<0 LET Z9$( LEN Z$+1, LEN Z$+1)="-" 560 PRINT 'BP';Z$;Z9$( LEN Z$+1,Z1(P,3)+1); 570 IF Z1(P,2)=1 RETURN 580 FOR Z0(3)=1 TO LEN Z$ 590 IF Z$(Z0(3),Z0(3))=" " LET Z$(Z0(3),Z0(3))="0" 600 NEXT Z0(3) 610 RETURN 620 LET E=82 630 GOSUB 940 640 LET L=0 650 IF P=3 RETURN 660 GOTO 240 670 LET Z0(0)=Z$(1,2) 680 LET Z0(1)=Z$(3,4) 690 LET Z0(2)=Z$(5,6) 700 LET E=0 710 IF Z0(0)<1 GOTO 800 720 IF Z0(1)<1 GOTO 800 730 IF Z0(1)>12 GOTO 800 740 LET Z8$="312931303130313130313031" 750 LET Z0(4)=Z8$(Z0(1)*2-1,Z0(1)*2) 760 IF Z0(0)>Z0(4) GOTO 800 770 IF FRA (Z0(2)/4)<>0 IF Z0(0)=29 IF Z0(1)=2 GOTO 800 780 IF Z0(2)=0 IF Z0(0)=29 IF Z0(1)=2 GOTO 800 790 RETURN 800 LET Z=0 810 LET E=83 820 GOSUB 940 830 LET L=0 840 RETURN 850 LET E= SPC 8 860 STOP 870 GOSUB 940 880 IF E=26 IF SPC 10>2000 RETURN -1 890 PRINT TAB (0,22);Z8$; 900 IF SPC 10<>0 PRINT " IN"; SPC 10; 910 SIGNAL 3,5 920 IF SPC 5<>32843 CHAIN "TA.ABO" 930 STOP 940 IF ERR 0 GOSUB 850 950 READ #1, INT (E/10)+15, FRA (E/10)*510;Z8$; 960 PRINT TAB (5,23);'MP';'SF';'BEL';Z8$; 970 SIGNAL 3,5 980 PRINT 'BEL';'BP';'LD'; 990 RETURN 1000 PRINT 'SB'; 1010 LET Z9$=" ",Z9$ 1020 PRINT TAB (0,0);'CS';'SB';"* MARED053 Stampa fatture redditi 2000 A4 " 1030 PRINT TAB (1,3);"Fatture Libera (L) o Artigianato (A) "; 1040 PRINT TAB (1,4);"Ordine stampa: per numero (N) o per banca (B) "; 1050 PRINT TAB (1,5);"Origine dati "; 1060 PRINT TAB (1,6);"Da numero documento "; 1070 PRINT TAB (1,7);" a numero documento "; 1080 PRINT TAB (1,8);"Data emissione "; 1090 PRINT TAB (1,9);"Scadenza pagamento "; 1100 PRINT TAB (1,10);"Stampante da utilizzare "; 1110 PRINT TAB (1,13);"Premere INVIO per inizio elaboraz. "; 1120 PRINT TAB (0,23);"N o t e: " 1130 RETURN 1140 LET Z$=Z$(1,9) 1150 GOSUB 580 1160 LET Z7$=" ",Z7$ 1170 SEARCH #4,2,1;Z$,Z8,Z9 1180 IF Z9=0 READ #4,Z8;Z7$; 1190 LET Z7$=Z7$(10) 1200 RETURN 1210 CALL 99,Z6$ 1220 LET Z$(1,3)=Z6$(5,6)," " 1230 LET Z$(4,6)=Z6$(1,3) 1240 LET Z$(7,11)=Z6$(8,12) 1250 LET Z6$=Z$(1,11) 1260 RETURN 1270 LET E=0 1280 IF P>1 IF P<12 IF L>0 IF L<15 GOTO 1310 1290 LET E=28 1300 GOTO 870 1310 IF L<>1 IF Z8<0 GOTO 1290 1320 SEARCH #P,2,L;Z$,Z8,Z9 1330 IF Z9<>0 GOTO 1370 1340 LET E=77 1350 GOSUB 940 1360 RETURN 1370 IF L<>1 GOTO 1490 1380 LET Z9=1 1390 SEARCH #P,1,0;Z$,Z8,Z9 1400 IF Z9<>0 GOTO 1440 1410 IF Z8<>0 GOTO 1460 1420 LET E=79 1430 GOTO 870 1440 LET E=78 1450 GOTO 870 1460 LET Z9=2 1470 SEARCH #P,1,0;Z$,Z8,Z9 1480 IF Z9<>0 GOTO 1440 1490 SEARCH #P,4,L;Z$,Z8,Z9 1500 IF Z9=0 RETURN 1510 IF Z9<>2 GOTO 1440 1520 SEARCH #P,7,L;Z$,Z8,Z9 1530 IF Z9<>0 GOTO 1440 1540 GOTO 1490 1550 LET E=0 1560 SEARCH #P,2,L;Z$,Z8,Z9 1570 IF Z9=0 GOTO 1610 1580 LET E=80 1590 GOSUB 940 1600 RETURN 1610 SEARCH #P,5,L;Z$,Z8,Z9 1620 IF Z9=0 GOTO 1650 1630 LET E=81 1640 GOTO 870 1650 IF L<>1 RETURN 1660 LET Z9=3 1670 SEARCH #P,1,0;Z$,Z8,Z9 1680 RETURN 1690 IF P=3 LET Z$=W9$ 1700 IF P=6 LET Z$=P2(0) USING "&&&&&&" 1710 IF P=7 LET Z$=P1$(5,8),P1$(11,12) 1720 RETURN 1730 RETURN 1740 DATA 1%,11 1750 DATA 3%,3511010,4511010,5511150,6512060,7512060,8513080,9513080 1760 DATA 3%,10511070,11512020,13511010,0 1770 IF ERR 0 GOSUB 850 1780 DIM 2%,P2(1),4%,P4,1%,P1(24),3%,P3(26),P1$(23) 1790 DIM W2$(3),1%,W2,W$(1),W1$(15),W3$(29),A0$(33) 1800 DIM 1%,A0,U0$(57),B6$(7),C4$(41),B$(51),X$(51),X1$(51),X2$(51),R$(511) 1810 DIM A$(5),A1$(33),A2$(33),A3$(5),A4$(29),A5$(5),A6$(11),A7$(17),A8$(1) 1820 DIM U,U$(1),U1$(1),G$(3),G1$(51),G2$(17),G3$(11),G4$(21),G5$(5) 1830 DIM G6$(21),G7$(5),G9$(51),W0$(51),W9$(51),B9$(51) 1840 DIM A9$(3),B1$(51),3%,D0,D1,H$(51),B0$(5),B2$(5),B3$(25),B4$(21) 1850 DIM H1$(51),Z1$(30),V$(51),V1$(51),2%,G0(8),G1,H1,H2,R1$(511) 1860 OPEN #4,"1/TABELLE" 1870 OPEN #6,"1/SRTBAN" 1880 OPEN #3,"3/MULDIT00" 1890 OPEN #5,"1/MULBAN" 1900 OPEN #7,"1/ANA730" 1910 OPEN #10,"TEXT" 1920 CHAIN "@cp /dev/null /tmp/TEXTP" 1930 PRINT 'CS'; 1940 GOSUB 1000 1950 LET L=0 1960 LET P=1 1970 GOSUB 240 1980 IF Z$="^" CHAIN "TA.END" 1990 IF Z$<>"L" IF Z$<>"A" GOTO 1960 2000 LET U$=Z$ 2010 LET P=2 2020 GOSUB 240 2030 IF Z$="^" GOTO 1960 2040 LET U1$=Z$ 2050 IF U1$<>"N" IF U1$<>"B" GOTO 2010 2060 LET P=3 2070 LET L=2 2080 IF U$="L" LET W9$="1/FATLIB00" 2090 IF U$="A" LET W9$="3/FATPRO00" 2100 GOSUB 240 2110 IF Z$="^" GOTO 2010 2120 LET W9$=Z$ 2130 PRINT 'BP';W9$ 2140 IF ERR 0 GOTO 2060 2150 OPEN #8,W9$ 2160 LET L=0 2170 IF ERR 0 STOP 2180 LET P=4 2190 GOSUB 240 2200 IF Z$="^" CLOSE #8 2210 IF Z$="^" GOTO 2060 2220 LET Z=Z$ 2230 LET H1$=Z USING "&&&&&&" 2240 PRINT 'BP';H1$; 2250 GOTO 3960 2260 LET P=5 2270 GOSUB 240 2280 IF Z$="^" GOTO 2180 2290 LET Z=Z$ 2300 IF NOT Z LET Z=999999 2310 LET H1$(7)=Z USING "&&&&&&" 2320 PRINT 'BP';H1$(7); 2330 LET P=6 2340 LET L=2 2350 GOSUB 240 2360 IF Z$="^" GOTO 2260 2370 LET G0(0)=Z 2380 PRINT USING "##,##,##";'BP';G0(0); 2390 LET P=7 2400 LET L=2 2410 GOSUB 240 2420 IF Z$="^" GOTO 2330 2430 LET G0(1)=Z 2440 PRINT USING "##,##,##";'BP';G0(1); 2450 LET G2$=Z$(1,6),"20",Z$(7,8) 2460 LET L=0 2470 LET P=8 2480 GOSUB 240 2490 IF Z$="^" GOTO 2260 2500 IF Z$(1,2)="pr" LET Z$(1,2)="PR" 2510 LET G5$=Z$ 2520 PRINT 'SF';'BP';G5$; 2530 LET Z$="@lp -d",G5$(1,4)," artig813.mac" 2540 CHAIN Z$ 2550 IF Z$="^" GOTO 2470 2560 LET P=10 2570 GOSUB 240 2580 IF Z$="^" GOTO 2550 2590 LET X$="" 2600 IF U1$="N" GOTO 2710 2610 GOSUB 3730 2620 LET H$="" 2630 SEARCH #6,3,1;H$,H1,H2 2640 IF H2 LET Z1$="@lp -d",G5$(1,4)," -s /tmp/TEXTP" 2650 IF H2 CHAIN Z1$ 2660 IF H2 CHAIN "TA.END" 2670 LET X$=H$(4,9) 2680 SEARCH #8,2,1;X$,R,S 2690 IF S STOP 2700 GOTO 2800 2710 LET X$=H1$(1,6) 2720 SEARCH #8,2,1;X$,R,S 2730 IF S GOTO 2750 2740 GOTO 2760 2750 SEARCH #8,3,1;X$,R,S 2760 IF X$(1,6)>H1$(7,12) LET S=2 2770 IF S LET Z1$="@lp -d",G5$(1,4)," -s /tmp/TEXTP" 2780 IF S CHAIN Z1$ 2790 IF S CHAIN "TA.END" 2800 READ #8,R,2;P2(0),P2(1),P4; 2810 MAT READ #8,R,20;P1; 2820 MAT READ #8,R,70;P3; 2830 READ #8,R,232;P1$ 2840 LET B0$="0",P1$(1,3) 2850 SEARCH #5,2,1;B0$,R1,S1 2860 IF S1 LET B3$=" ",B3$ 2870 IF NOT S1 READ #5,R1,8;B3$; 2880 IF B0$<"0001" LET B9$="Rimessa diretta vista fattura" 2890 IF B0$="0001" LET B9$="Rimessa diretta vista fattura" 2900 IF B0$(1,4)<"0001" GOTO 2920 2910 IF B0$<>"0001" IF B0$<>"0011" LET B9$="Pagamento gia' effettuato " 2920 LET V1$=P4 USING "&&&&&&" 2930 SEARCH #3,2,1;V1$,R1,S1 2940 IF S1 CLEAR W2$,A0$,A$,A1$,A2$,A3$,A4$,A5$,A6$ 2950 IF NOT S1 READ #3,R1,2;W2$,A$,A1$,A0$,A2$,A3$,A4$,A5$,A6$,A7$; 2960 FOR I=1 TO 11 2970 PRINT #10;" " 2980 NEXT I 2990 PRINT #10; TAB (50);"Spett." 3000 PRINT #10; 3010 PRINT #10; TAB (50);A1$ 3020 PRINT #10; 3030 PRINT #10; TAB (2);"Cod."; TAB (13);V1$; TAB (50);A2$ 3040 PRINT #10; 3050 PRINT #10; TAB (50);A3$;" ";A4$;" ";A5$ 3060 IF A6$(1,5)<>" " PRINT #10; TAB (2);"Part.IVA"; TAB (13);A6$ 3070 IF A6$(1,5)=" " PRINT #10; TAB (2);"Cod.Fisc."; TAB (13);A7$ 3080 FOR I=1 TO 6 3090 PRINT #10;" " 3100 NEXT I 3110 LET B$=P2(1) USING "&&&&&&" 3120 PRINT #10;B$(1,1);" ";B$(2,6); 3130 LET B$=P2(0) USING "&&&&&&" 3140 PRINT #10;" ";B$(1,2);".";B$(3,4);".20";B$(5,6); TAB (47); 3150 PRINT #10;B9$ 3160 PRINT #10;" " 3170 PRINT #10;" " 3180 PRINT #10;" " 3190 PRINT #10; 3200 PRINT #10;" " 3210 LET U9=0 3220 FOR I=5 TO 24 3230 IF NOT P1(I) LET U9=U9+1 3240 IF NOT P1(I) GOTO 3350 3250 LET B1$=P1(I) USING "84&&&&&&0" 3260 SEARCH #4,2,1;B1$,R1,S1 3270 IF S1 LET Z7$=" ",Z7$ 3280 IF NOT S1 READ #4,R1;Z7$; 3290 PRINT #10;" ";B1$(5,8);" ";Z7$(10,45); TAB (69); 3300 LET D0= INT (P3(I+2)*100/1936.27+.5)/100 3310 PRINT #10; USING "###,###.##";D0; 3320 PRINT #10; USING "####,###,###";P3(I+2) 3330 LET D1=D1+D0 3340 LET D0=0 3350 IF I<20 IF P1(I) PRINT #10; 3360 IF I<20 IF NOT P1(I) LET U9=U9+1 3370 NEXT I 3380 FOR I=1 TO U9 3390 PRINT #10;" " 3400 NEXT I 3410 LET U9=0 3420 PRINT #10; TAB (27);"1936,27"; TAB (69); 3430 PRINT #10; USING "###,###.##";D1; 3440 PRINT #10; USING "####,###,###";P3(1) 3450 PRINT #10;" " 3460 PRINT #10; 3470 PRINT #10; 3480 PRINT #10;" " 3490 PRINT #10; USING " &&";P1(2); 3500 PRINT #10;" "; 3510 PRINT #10; USING " ###,###,###";P3(1); 3520 PRINT #10; USING " ###,###,###";P3(4); 3530 PRINT #10; USING " ###,###,###";P3(0); 3540 PRINT #10; USING "######,###,###"; TAB (77);P3(0) 3550 PRINT #10;" " 3560 PRINT #10;" " 3570 PRINT #10; USING " ########,###.##";D1; 3580 LET D0= INT (D1*100*20/100+.9)/100 3590 PRINT #10; USING "#######,###.##";D0; 3600 PRINT #10; USING " #######,###.##";D0+D1; 3610 PRINT #10; USING "#######,###.##"; TAB (77);D0+D1 3620 CLEAR D0,D1,B9$ 3630 CLOSE #10 3640 CHAIN "@cat70 TEXT | 300 > /tmp/TEXT" 3650 IF U$="A" CHAIN "@cat artig.prn /tmp/TEXT >> /tmp/TEXTP" 3660 IF U$="L" CHAIN "@cat libera.prn /tmp/TEXT >> /tmp/TEXTP" 3670 KILL "TEXT" 3680 BUILD #10,+"TEXT" 3690 CLOSE #10 3700 OPEN #10,"TEXT" 3710 IF U1$="B" GOTO 2630 3720 IF U1$="N" GOTO 2750 3730 LET X$="" 3740 SEARCH #6,6,1;X$,H1,H2 3750 IF H2 STOP 3760 LET X$=H1$(1,6) 3770 SEARCH #8,2,1;X$,R,S 3780 IF S GOTO 3800 3790 GOTO 3810 3800 SEARCH #8,3,1;X$,R,S 3810 IF X$(1,6)>H1$(7,12) LET S=2 3820 IF S RETURN 3830 READ #8,R,232;P1$ 3840 LET H$=P1$(1,3),X$(1,6) 3850 IF H$(1,3)="011" LET H$(1,3)="001" 3860 SEARCH #6,2,1;H$,H1,H2 3870 IF NOT H2 STOP 3880 LET H2=2 3890 SEARCH #6,1,0;H$,H1,H2 3900 IF H2 STOP 3910 SEARCH #6,4,1;H$,H1,H2 3920 IF H2 STOP 3930 WRITE #6,H1;H$; 3940 PRINT TAB (1,23);H$; 3950 GOTO 3800 3960 LET X$=H1$(1,6) 3970 SEARCH #8,2,1;X$,R,S 3980 IF S GOTO 2180 3990 READ #8,R,2;P2(0),P2(1),P4; 4000 READ #8,R,232;P1$ 4010 GOTO 2260 4020 LET V1$=P4 USING "&&&&&&" /* ANAGRAFICO 730 4030 SEARCH #7,2,1;V1$,R1,S1 4040 IF S1 CLEAR A$,A1$,A2$,A3$,A4$,A5$,A6$,R$ 4050 IF NOT S1 READ #7,R1;R$; 4060 LET A$=V1$(3,6) 4070 FOR R0=64 TO 24 STEP -1 4080 IF R$(R0,R0)<>" " GOTO 4110 4090 NEXT R0 4100 LET R0=64 4110 LET A1$=R$(24,R0)," " 4120 IF LEN A1$>32 GOTO 4140 4130 LET A1$( LEN A1$+1)=R$(65,81) 4140 LET A2$=R$(175,215) 4150 LET A3$=R$(134,138) 4160 LET A4$=R$(139,169) 4170 LET A5$=R$(170,174) 4180 LET A6$=" ",A6$ 4190 LET A7$=R$(7,22) 4200 LET V1$=A$ 4210 GOTO 2960