Fondamenti di programmazione
Corso php a cura del prof. Pietro De Paolis
Calcolo delle ritenute previdenziali
Lo stipendio mensile che abbiamo calcolato fino ad ora è uno stipendio lordo, cioè non rappresenta il vero importo in Euro che il dipendente incassa a fine mese, ma rappresenta quello che incasserebbe se non ci fossero le tasse imposte dallo stato e le ritenute previdenziali.
Quanto alle tasse le vedremo in un secondo momento. Per chi volesse approfondire l'agomento di ritenute e tasse può consultare la nostra pagina sullo stipendio del personale scolastico. Qui ci interessa soltanto chiarire alcune formule da utilizzare per il calcolo dello stipendio netto.
Imponibile fiscale
Imponibile fiscale è l'importo sul quale si calcolano le tasse; l'imponibile fiscale si ottiene dallo stipendio mensile lordo detraendo le ritenute assistenziali e previdenziali.
Esempio
Un docente laureato ha lo stipendio lordo pari a 1.745,03 €. Le ritenute previdenziali e assistenziali ammontano a 190,60 €, quanto sarà l'imponibile fiscale?
Svolgimento
Imponibile = 1.745,03 -190.60 = 1554,43 €
Le ritenute previdenziali sono, quindi, una prima somma da detrarre dallo stipendio lordo. La parola ritenuta sta a significare un importo da detrarre, cioè togliere, allo stipendio lordo.
Vi sono tre tipi di ritenute.
Tipi di ritenute
1 - Ritenuta fondo opera e trattamento di fine rapporto. (TFR)
E' un importo da detrarre dallo stipendio lordo ed è pari ad una percentuale del 2,5% sullo stipendio lordo; tuttavia questa percentuale non si applica sull'intero stipendio lordo ma solo sull'80% di questo stipendio lordo. Inoltre questa ritenuta non si applica sulla retribuzione professionale docenti e non si applica sul compenso individuale accessorio del personale ATA.
Esempio
Docente laureato scuola secondaria superiore.
1 - Stipendio 1051,91 €
2 - Retribuzione professionale docenti: 154,82 €
3 - Indennità integrativa speciale conglobata nello stipendio: 538,30 €
Il reddito su cui calcolare la ritenuta del 2,50% è: stipendio + indennità integrativa speciale; si eccettua, quindi, la retribuzione professionale docente:
1051,91 + 538,30 = 1.590,21 €
ma si prende solo l'80% di questo reddito e si ottiene:
1590,21 . 0,80 . 0,025 = 31,80 €
Notiamo che 80% si può scrivere 0,80; mentre 2,5% si può scrivere 0,025
Modifica di stipendio10.php con le ritenute opera di previdenza
Intanto fissiamo una zona del programma dove andremo a mettere tutte le percentuali delle ritenute; poi assegnamo a queste percentuali dei nomi facili; per questa ritenuta scriveremo:
// coefficienti delle ritenute
$opera = 0.8*0.025;
Per cui tutte le somme che andrò a moltiplicare per questa variabile mi daranno la ritenuta ottenuta da sottrarre allo stipendio lordo.
Vediamo come fare.
Intanto notiamo che il nostro programma è diventato abbastanza lungo, per cui non lo riporteremo tutto ogni volta ma indicheremo solo il punto in cui effettuare le modifiche.
Per ottenere il listato completo occorre prendere il file di testo che daremo ogni volta ed aggiungere all'inizio le istruzioni riportate di seguito
<html>
<body background="sfondo2.jpg"> <font face="Verdana" color="#FF00FF" size="5" >Programma per il calcolo dello stipendio netto.</font><br> <font face="Verdana" size="4">Anno solare 2005<br><br>
|
parte da aggiungere all'inizio del file di testo prima delle istruzioni in php |
Prendiamo il listato di stipendio10.php al punto:
// faccio dei calcoli
$mensile= ($matrice[$tre]-$matrice2[$personale])/12;
$integrativa = $matrice2[$personale]/12;
// stampo i risultati
Prima di
// stampo i risultati
mi faccio uno spazio e incollo:
// coefficienti delle ritenute
$opera = 0.8*0.025;
ottenendo:
// faccio
dei calcoli
$mensile= ($matrice[$tre]-$matrice2[$personale])/12; $integrativa = $matrice2[$personale]/12; // coefficienti delle ritenute $opera = 0.8*0.025; // stampo i risultati
|
parte del listato di stipendio10.php modificata |
Poi dobbiamo trovare una zona dove fare i calcoli delle ritenute; va bene la parte finale del programma, prima della fine del codice in php.
print ('<td width="15%">Imponibile</td><td width="15%">Aliquota%</td>');
print ('<td width="15%">Ritenuta</td><tr></table>');
?>
<body>
</html>
Per cui mi faccio uno spazio ed inizio a scrivere il codice per il calcolo delle ritenute. Distinguiamo due zone una per il personale ATA e l'altra per il personale docente.
Per il personale ATA scriviamo:
// calcolo ritenute
// calcolo ritenute personale ATA
if ($personale<6 {
$imp1= $mensile + $integrativa;
$rite1= $imp1*$opera
};
Per il personale docente scriviamo:
// calcolo ritenute personale docente
if ($personale>5) {
$imp1= $mensile2 + $integrativa2;
$rite1= $imp1*$opera;
};
Il listato modificato sarà:
print
('<td width="15%">Imponibile</td><td
width="15%">Aliquota%</td>');
print ('<td width="15%">Ritenuta</td><tr></table>'); // calcolo ritenute // calcolo ritenute personale ATA if ($personale<6) { $imp1= $mensile + $integrativa; $rite1= $imp1*$opera; }; // calcolo ritenute personale docente if ($personale>5) { $imp1= $mensile2 + $integrativa2; $rite1= $imp1*$opera; }; ?> <body> </html>
|
parte del listato di stipendio10.php modificata |
Non ci resta ora che la stampa delle ritenute; per cui scriviamo subito dopo:
// calcolo
ritenute
// calcolo ritenute personale ATA if ($personale<6) { $imp1= $mensile + $integrativa; $rite1= $imp1*$opera; }; // calcolo ritenute personale docente if ($personale>5) { $imp1= $mensile2 + $integrativa2; $rite1= $imp1*$opera; }; // stampo le ritenute print('<tr><td width="35%">OP. DI PREV./TFR</td>'); $stampo= number_format($imp1, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td>"); print('<td width="15%">2,50 su 80</td>'); $stampo= number_format($rite1, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td></tr></table>");
?> </body> </html>
|
parte del listato di stipendio10.php modificata listato completo: stipendio10.txt |
Salviamolo come stipendio10.php ed eseguiamo di nuovo stipendio6.php ; otteniamo:
2 - Ritenuta per il fondo credito
Una seconda ritenuta da calcolare è quella per il fondo credito, che è un fondo per ottenere dei prestiti o dei mutui.
La ritenuta per il fondo credito è pari allo 0,35% applicato sul 100% del totale del reddito lordo, compreso il compenso indivuale accessorio e la retribuzione professionale docenti.
Esempio
Docente laureato scuola secondaria superiore.
1 - Stipendio 1051,91 €
2 - Retribuzione professionale docenti: 154,82 €
3 - Indennità integrativa speciale conglobata nello stipendio: 538,30 €
Il reddito su cui calcolare la ritenuta del 0,35% è: stipendio + retribuzione professionale docenti + indennità integrativa speciale;
1051,91 + 154,82+ 538,30 = 1.745,03 €
Pertanto la ritenuta fondo credito:
1745,03 . 0,0035 = 6,11 €
Notiamo che 0,35% si può scrivere 0,0035;
Modifica di stipendio10.php con le ritenute per il fondo credito
Useremo la variabile:
$fondo1= 0.0035;
da mettere nello spazio dei coefficienti che diventa:
// coefficienti delle ritenute
$opera = 0.8*0.025;
$fondo1 = 0.0035;
// stampo i risultati
Per il calcolo dell ritenute del personale ATA scriviamo:
if ($personale==5) $cia=0;
$imp2=$imp1+$cia;
$rite2= $imp2*$fondo1;
da notare che per il Direttore, cioè quando $personale==5 mettiamo $cia a zero.
da mettere in:
// calcolo ritenute
// calcolo ritenute personale ATA
if ($personale<6) {
$imp1= $mensile + $integrativa;
$rite1= $imp1*$opera;
if ($personale==5) $cia=0;
$imp2=$imp1+$cia;
$rite2= $imp2*$fondo1;
};
Mentre per il personale docente aggiungeremo:
$imp2=$imp1+$rpd2;
$rite2= $imp2*$fondo1;
da mettere in:
// calcolo ritenute personale docente
if ($personale>5) {
$imp1= $mensile2 + $integrativa2;
$rite1= $imp1*$opera;
$imp2=$imp1+$rpd2;
$rite2= $imp2*$fondo1;
};
// stampo le ritenute
// stampo opera di previdenza/tfr
Per la stampa aggiungeremo le seguenti istruzioni alla fine del programma:
// stampo fondo credito
print('<tr><td width="35%">FONDO CREDITO</td>');
$stampo= number_format($imp2, 2, ',', '.');
print ('<td width="15%" align="right">');
print("$stampo </td>");
print('<td width="15%">0,35 su 100</td>');
$stampo= number_format($rite2, 2, ',', '.');
print ('<td width="15%" align="right">');
print("$stampo </td></tr>");
In definitiva la parte modificata è:
// calcolo
ritenute
// calcolo ritenute personale ATA if ($personale<6) { $imp1= $mensile + $integrativa; $rite1= $imp1*$opera; if ($personale==5) $cia=0; $imp2=$imp1+$cia; $rite2= $imp2*$fondo1; }; // calcolo ritenute personale docente if ($personale>5) { $imp1= $mensile2 + $integrativa2; $rite1= $imp1*$opera; $imp2=$imp1+$rpd2; $rite2= $imp2*$fondo1; }; // stampo le ritenute // stampo opera di previdenza/tfr print('<tr><td width="35%">OP. DI PREV./TFR</td>'); $stampo= number_format($imp1, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td>"); print('<td width="15%">2,50 su 80</td>'); $stampo= number_format($rite1, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td></tr>"); // stampo fondo credito print('<tr><td width="35%">FONDO CREDITO</td>'); $stampo= number_format($imp2, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td>"); print('<td width="15%">0,35 su 100</td>'); $stampo= number_format($rite2, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td></tr>");
?> </body> </html>
|
parte del listato di stipendio10.php modificata listato completo: stipendio10.txt |
Salviamolo come stipendio10.php ed eseguiamo di nuovo stipendio6.php ; otteniamo:
3 - Ritenuta INPDAP
La ritenuta INPDAP a carico del dipendente si calcola applicando la percentuale di 8,75% sullo stipendio lordo compresa la indennità integrativa speciale, il compenso individuale accessorio e la retribuzione professionale docenti. Stiamo trascurando in questa fase i supplenti temporanei.
Esempio
Docente laureato scuola secondaria superiore.
1 - Stipendio 1051,91 €
2 - Retribuzione professionale docenti: 154,82 €
3 - Indennità integrativa speciale conglobata nello stipendio: 538,30 €
Il reddito su cui calcolare la ritenuta del 8,75% è: stipendio + retribuzione professionale docenti + indennità integrativa speciale;
1051,91 + 154,82+ 538,30 = 1.745,03 €
Pertanto la ritenuta INPDAP sarà:
1745,03 . 0,0875 = 152,69 €
Notiamo che 8,75% si può scrivere 0,0875;
Modifica di stipendio10.php con le ritenute per INPDAP
Useremo la variabile:
$inpdap1= 0.0875;
da mettere nello spazio dei coefficienti che diventa:
// coefficienti delle ritenute
$opera = 0.8*0.025;
$fondo1 = 0.0035;
$inpdap1 = 0.0875;
// stampo i risultati
Per il calcolo dell ritenute del personale ATA scriviamo:
$imp3=$imp2;
$rite3= $imp3*$inpdap1;
da mettere in:
// calcolo ritenute
// calcolo ritenute personale ATA
if ($personale<6) {
$imp1= $mensile + $integrativa;
$rite1= $imp1*$opera;
if ($personale==5) $cia=0;
$imp2=$imp1+$cia;
$rite2= $imp2*$fondo1;
$imp3=$imp2;
$rite3= $imp3*$inpdap1;
};
Analogamente per il personale docente aggiungeremo:
$imp3=$imp2;
$rite3= $imp3*$inpdap1;
da mettere in:
// calcolo ritenute personale docente
if ($personale>5) {
$imp1= $mensile2 + $integrativa2;
$rite1= $imp1*$opera;
$imp2=$imp1+$rpd2;
$rite2= $imp2*$fondo1;
$imp3=$imp2;
$rite3= $imp3*$inpdap1;
};
Per la stampa aggiungeremo le seguenti istruzioni alla fine del programma:
// stampo ritenuta INPDAP
print('<tr><td width="35%">INPDAP 100%</td>');
$stampo= number_format($imp3, 2, ',', '.');
print ('<td width="15%" align="right">');
print("$stampo </td>");
print('<td width="15%">8,75 su 100</td>');
$stampo= number_format($rite3, 2, ',', '.');
print ('<td width="15%" align="right">');
print("$stampo </td></tr>");
In definitiva la parte modificata è:
// calcolo
ritenute
// calcolo ritenute personale ATA if ($personale<6) { $imp1= $mensile + $integrativa; $rite1= $imp1*$opera; if ($personale==5) $cia=0; $imp2=$imp1+$cia; $rite2= $imp2*$fondo1; $imp3=$imp2; $rite3= $imp3*$inpdap1;
}; // calcolo ritenute personale docente if ($personale>5) { $imp1= $mensile2 + $integrativa2; $rite1= $imp1*$opera; $imp2=$imp1+$rpd2; $rite2= $imp2*$fondo1; $imp3=$imp2; $rite3= $imp3*$inpdap1; }; // stampo le ritenute // stampo opera di previdenza/tfr print('<tr><td width="35%">OP. DI PREV./TFR</td>'); $stampo= number_format($imp1, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td>"); print('<td width="15%">2,50 su 80</td>'); $stampo= number_format($rite1, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td></tr>"); // stampo fondo credito print('<tr><td width="35%">FONDO CREDITO</td>'); $stampo= number_format($imp2, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td>"); print('<td width="15%">0,35 su 100</td>'); $stampo= number_format($rite2, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td></tr>"); // stampo ritenuta INPDAP print('<tr><td width="35%">INPDAP 100%</td>'); $stampo= number_format($imp3, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td>"); print('<td width="15%">8,75 su 100</td>'); $stampo= number_format($rite3, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td></tr>");
?> </body> </html>
|
parte del listato di stipendio10.php modificata listato completo: stipendio10.txt |
Salviamolo come stipendio10.php ed eseguiamo di nuovo stipendio6.php ; otteniamo:
Non ci resta ora che fare la somma delle tre ritenute, cioè
$ritenute = $rite1 + $rite2 + $rite3;
che metteremo sia per il personale ATA che per il personale docente, nei rispettivi spazi di calcolo delle ritenute, nella parte finale.
Ci possiamo anche ricavare l'imponibile fiscale del mese togliendo dal totale dello mensile stipendio lordo il totale delle ritenute mensili, con la istruzione:
$imponibile2 = $imponibile - $ritenute;
Per la stampa aggiungeremo le seguenti istruzioni alla fine del programma:
// stampo totale delle tre ritenute
print('<tr><td width="80%" colspan="4" >Totale ritenute assistenziali e previdenziali</td>');
print ('<td width="10%" > </td>');
$stampo= number_format($ritenute, 2, ',', '.');
print ('<td width="10%" align="right"><font color="#008000"><b>');
print("$stampo </b></font></td></tr>");
La parte modificata del programma è:
// calcolo
ritenute
// calcolo ritenute personale ATA if ($personale<6) { $imp1= $mensile + $integrativa; $rite1= $imp1*$opera; if ($personale==5) $cia=0; $imp2=$imp1+$cia; $rite2= $imp2*$fondo1; $imp3=$imp2; $rite3= $imp3*$inpdap1; $ritenute = $rite1 + $rite2 + $rite3; $imponibile2 = $imponibile - $ritenute; }; // calcolo ritenute personale docente if ($personale>5) { $imp1= $mensile2 + $integrativa2; $rite1= $imp1*$opera; $imp2=$imp1+$rpd2; $rite2= $imp2*$fondo1; $imp3=$imp2; $rite3= $imp3*$inpdap1; $ritenute = $rite1 + $rite2 + $rite3; $imponibile2 = $imponibile - $ritenute; }; // stampo le ritenute // stampo opera di previdenza/tfr print('<tr><td width="35%">OP. DI PREV./TFR</td>'); $stampo= number_format($imp1, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td>"); print('<td width="15%">2,50 su 80</td>'); $stampo= number_format($rite1, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td></tr>"); // stampo fondo credito print('<tr><td width="35%">FONDO CREDITO</td>'); $stampo= number_format($imp2, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td>"); print('<td width="15%">0,35 su 100</td>'); $stampo= number_format($rite2, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td></tr>"); // stampo ritenuta INPDAP print('<tr><td width="35%">INPDAP 100%</td>'); $stampo= number_format($imp3, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td>"); print('<td width="15%">8,75 su 100</td>'); $stampo= number_format($rite3, 2, ',', '.'); print ('<td width="15%" align="right">'); print("$stampo </td></tr>"); // stampo totale delle tre ritenute print('<tr><td width="80%" colspan="4" >Totale ritenute assistenziali e previdenziali</td>'); print ('<td width="10%" > </td>'); $stampo= number_format($ritenute, 2, ',', '.'); print ('<td width="10%" align="right"><font color="#008000"><b>'); print("$stampo </b></font></td></tr>");
?> </body> </html>
|
parte del listato di stipendio10.php modificata listato completo: stipendio10.txt |
Salviamolo come stipendio10.php ed eseguiamo di nuovo stipendio6.php ; otteniamo:
Corso di programmazione in PHP
prof. Pietro De Paolis
Indice di tutte le pagine del sito