1 ! ************SALAIRE*****************
5 ! *********PAR G. CHRETIENNOT*********
7 ! ***********ET P. SOUVIGNY***********
8 TI$="0D7C8BAABAB602FC":TO$="0D7C91B2BAB602FC":CALL COLOR("0WIHL")
9 CLS "YBR":A$="FFIICCHHEE":B$="DDEE":C$="SSAALLAAIIRREE"
10 LOCATE (3,15):PRINT A$:LOCATE (4,15):PRINT A$:CALL SPEECH("L,"&TI$)
11 LOCATE (5,18):PRINT B$:LOCATE (6,18):PRINT B$:CALL SPEECH("L,"&TO$)
12 LOCATE (7,13):PRINT C$:LOCATE (8,13):PRINT C$:CALL SPEECH("L,"&TI$)
13 CALL COLOR("0MB")
18 LOCATE (10,10):PRINT "1--> SALAIRE HORAIRE"
19 LOCATE (13,10):PRINT "2--> SALAIRE MENSUEL":LOCATE (16,10)
20 PRINT "3--> FIN PROGRAMME":LOCATE (17,15):CALL COLOR("0YR")
21 PRINT "VOTRE CHOIX";
22 CALL COLOR("0BB"):FOR I=1 TO 10000:K$=KEY$
23 IF K$="1" THEN 26
24 IF K$="2" THEN 144 ELSE IF K$="3" THEN CLS:END ELSE IF K$="" THEN 25
25 CALL SPEECH("L,"&TO$):NEXT I
26 CLS
27 ! QUESTIONNAIRE
28 CALL COLOR("0WB"):LOCATE (2,8):PRINT "*****QUESTIONNAIRE*****":X=3
29 FOR I=1 TO 40:LOCATE (X,I):PRINT "-":NEXT I:CALL COLOR("0YB")
30 LOCATE (5,1):INPUT "NOM DU SALARIE ?";NS$:PRINT:INPUT "PRENOM ?";PS$
31 PRINT:INPUT "NUMERO SEC.SOC.?";NSS$
32 IF LEN(NSS$)=13 AND SEG$(NSS$,1,1)="1" THEN 34
33 IF LEN(NSS$)=13 AND SEG$(NSS$,1,1)="2" THEN 34 ELSE 31
34 PRINT:INPUT "PROFESSION ?";P$:PRINT:INPUT "CATEGORIE PROF.?";CP$:PRINT
35 INPUT "PERIODE DU ?";PT1$:INPUT "AU ?";PT2$
36 IF LEN(PT1$)<>8 OR LEN(PT2$)<>8 THEN 35
37 IF RETOUR=1 THEN RETURN
38 PRINT:INPUT "TAUX HORAIRE ?";TH:INPUT "NB HEURES NORM.?";NHN
39 INPUT "NB HEURES A 25%?";NHAA
40 IF NHAA<8 THEN 42
41 INPUT "NB HEURES A 50%?";NHAB
42 CALL EFF:LOCATE (5,1):INPUT "PLAFOND SEC.SOC.?";PSS:PRINT
43 INPUT "S.S MALADIE t(??.??) ?";SSM:PRINT
44 INPUT "S.S MALADIE t1(??.??) ?";SST:PRINT
45 INPUT "ASS. VIEILLESSE t1(??.??) ?";AV:PRINT
46 INPUT "ASSEDIC(chomage) t1(??.??) ?";ASS(1):PRINT
47 INPUT "ASSEDIC(chomage) t2(??.??) ?";ASS(2):PRINT
48 CALL EFF:LOCATE (5,1):INPUT "RETRAITE COMPL. t1 (??.??) ?";RC(1):PRINT
49 INPUT "RETRAITE COMPL. t2(??.??) ?";RC(2):PRINT
50 INPUT "ASS. MAL. COMPL. t1(??.??) ?";AMC(1):PRINT
51 INPUT "ASS. MAL. COMPL. t2(??.??) ?";ASM(2):PRINT
52 INPUT "ACCOMPTES ?";ACC:PRINT:INPUT "INDEMNITES?";ID:PRINT
53 INPUT "PRIMES (NON SOUM.A COT.) ?";PNC:PRINT
54 INPUT "PRIMES ?";PV:CALL COLOR("0GbILHF")
55 CLS:A$="VVEEUUIILLLLEEZZ PPAATTIIEENNTTEERR"
56 LOCATE (10,3):PRINT A$:LOCATE (11,3):PRINT A$
57 IF RETOUR=1 THEN RETURN
58 ! CALCULS
59 A=TH*NHN:B=TH*NHAA*.25:C=TH*NHAB*.5:D=A+B+C:SB=D+ID+PV
60 E=SB*SMM/100:IF SB>=PSS THEN F=PSS*SST/100 ELSE F=SB*SST/100
61 IF SB>=PSS THEN G=PSS*AV/100 ELSE G=SB*AV/100
62 IF SB>=PSS THEN H=PSS*ASS(1)/100 ELSE H=SB*ASS(1)/100
63 IF SB>=PSS THEN I=(SB-PSS)*ASS(2)/100
64 IF SB>=PSS THEN J=PSS*RC(1)/100 ELSE J=SB*RC(1)/100
65 IF SB>=PSS THEN K=(SB-PSS)*RC(2)/100
66 IF SB>=PSS THEN L=PSS*AMC(1)/100 ELSEL=SB*AMC(1)/100
67 IF SB>=PSS THEN M=(SB-PSS)*AMC(2)/100
68 TCO=E+F+G+H+I+J+K+L+M:SNET=(SB+PNC)-(TCO+ACC)
69 PAUSE 2
70 ! TABLEAU
71 CALL COLOR("0MB"):CLS:LOCATE (1,1)
72 IMAGE "* ############### *#######.##* *"
73 IMAGE "* ############### *######.##*#####.## *"
74 IMAGE "*############*#####.# X ##.#:100=####.#*"
75 IMAGE "*############*########.## ########.## *"
76 IMAGE "* * *"
77 IMAGE "*############*######################.##*"
78 IMAGE "* * * *"
79 CALL LIGNE:PRINT USING"* #################### ############## *",NS$,PS$
80 CALL SPEECH("L,"&TO$)
81 PRINT USING"* ############# #################### *",NSS$,P$
82 CALL SPEECH("L,"&TO$)
83 PRINT USING"* ########## DU ######## AU ######## *",CP$,PT1$,PT2$
84 CALL SPEECH("L,"&TO$)
85 CALL COLOR("1YB"):CALL LIGNE
86 CALL SPEECH("L,"&TO$)
87 PRINT USING"* SALAIRE BRUT * *######.## *",SB
88 CALL SPEECH("L,"&TO$)
89 PRINT USING 72,"S.S MALADIE",E+F
90 CALL SPEECH("L,"&TO$)
91 PRINT USING 72,"ASS.VIEIL.",G
92 CALL SPEECH("L,"&TO$)
93 PRINT USING 72,"CHOMAGE",H+I
94 CALL SPEECH("L,"&TO$)
95 PRINT USING 72,"ASS.MAL.COMPL.",L+M
96 CALL SPEECH("L,"&TO$)
97 PRINT USING 72,"RETRAITE COMPL.",J+K
98 CALL SPEECH("L,"&TO$)
99 CALL LIGNE
100 CALL SPEECH("L,"&TO$)
101 PRINT USING 73,"TOTAUX",TCO,TCO
102 CALL SPEECH("L,"&TO$)
103 CALL LIGNE
104 CALL SPEECH("L,"&TO$)
105 PRINT USING 73,"SAL.NET IMP.","",SB-TCO
106 CALL SPEECH("L,"&TO$)
107 PRINT USING 73,"ACCOMPTE","",ACC
108 CALL SPEECH("L,"&TO$)
109 PRINT USING 73,"PRIMES N.COT.","",PNC:CALL LIGNE
110 CALL SPEECH("L,"&TO$)
111 PRINT USING 73,"SALAIRE NET","",SNET:CALL LIGNE:CALL COLOR("0RB")
112 CALL SPEECH("L,"&TO$)
113 PAUSE 7:LOCATE (22,7):PRINT "VERIFICATION DES CALCULS ?";
114 CALL COLOR("0BB")
115 ACCEPT VALIDATE("ON")SIZE(1),REP$:IF REP$="N" THEN CALL ASALA
116 CLS:CALL COLOR("0MB"):LOCATE (1,1):CALL LIGNE
117 CALL SPEECH("L,"&TO$)
118 PRINT "* VERIFICATION DES CALCULS *":CALL LIGNE
119 CALL SPEECH("L,"&TO$)
120 CALL COLOR("0YB")
121 CALL SPEECH("L,"&TO$)
122 PRINT USING 74,"SEC.SOC.MAL.",SB,SMM,E+F:PRINT USING 76
123 CALL SPEECH("L,"&TO$)
124 PRINT USING 74,"ASS.VIEIL.",PSS,AV,G
125 CALL SPEECH("L,"&TO$)
126 PRINT USING 76
127 CALL SPEECH("L,"&TO$)
128 PRINT USING 74,"CHOMAGE",PSS,ASS(1),H+I
129 CALL SPEECH("L,"&TO$)
130 PRINT USING 76
131 CALL SPEECH("L,"&TO$)
132 PRINT USING 74,"RET.COMPL.",PSS,RC(1),J+K
133 CALL SPEECH("L,"&TO$)
134 PRINT USING 76
135 CALL SPEECH("L,"&TO$)
136 PRINT USING 74,"MAL.COMPL.",SB,RC(1),J+K
137 CALL SPEECH("L,"&TO$)
138 CALL COLOR("0RB"):CALL LIGNE:CALL COLOR("0bB"):CALL LIGNE
139 CALL SPEECH("L,"&TO$)
140 PRINT USING 76:PRINT USING 75,"TOTAUX",TCO,TCO
141 CALL SPEECH("L,"&TO$)
142 CALL LIGNE:PAUSE 10:CALL ASALA
143 CLS:END
144 ! CALCULS MENSUELS
145 CLS:RETOUR=1:GOSUB 28:PRINT:INPUT "SAL.MENS.BRUT ?";SB:CALL EFF
146 RETOUR=1:GOSUB 42:RETOUR=0:SBM=SB+ID+PV
147 ! CALCULS
148 E=SBM*SMM/100:IF SBM>=PSS THEN F=PSS*SST/100 ELSE F=SBM*SST/100
149 IF SBM>=PSS THEN G=PSS+AV/100 ELSE G=SBM*AV/100
150 IF SBM>=PSS THEN H=PSS*ASS(1)/100:I=(SBM-PSS)*ASS(2)/100:GOTO 152
151 H=SBM*ASS(1)/100
152 IF SBM>=PSS THEN J=SS*RC(1)/100:K=(SBM-PSS)*RC(2)/100 ELSE J=SB*RC(1)/100
153 IF SBM>=PSS THEN L=PSS*AMC(1)/100:M=(SBM-PSS)*AMC(2)/100:GOTO 155
154 L=SBM*AMC(1)/100
155 TCO=E+F+G+H+I+K+L+M:SNET=SBM-TCO-ACC:SB=SBM
156 GOTO 70
157 SUB EFF:FOR I=5 TO 21:LOCATE (I,1):PRINT TAB(40):NEXT I:SUBEND
158 SUB LIGNE:FOR I=1 TO 40:PRINT "*";:NEXT I:SUBEND
159 SUB ASALA:CALL COLOR("0GB")
160 PRINT TAB(11);"UNE AUTRE FICHE ?";CALL COLOR("0BB")
161 ACCEPT VALIDATE("ON")SIZE(1),REP$:IF REP$="O" THEN RUN ELSE CLS:END
162 SUBEND