Fondamenti di programmazione

Corso php a cura del prof. Pietro De Paolis

Stipendio mensile e indennità integrativa speciale

Stiamo proseguendo nella costruzione di un programma abbastanza complicato, cioè quello che calcola lo stipendio netto del personale docente come quello della pagina: Calcolo dello stipendio personale scuola ; ma siamo ancora molto lontani. Sono richieste diverse competenze, cioè diverse cose da tenere in conto. Fin qui abbiamo analizzato la tabella dello stipendio annuo lordo, cioè la seguente:

anni di servizioCollaboratore scolastico Collaboratore scolastico dei servizi Assistenti amministrativi Coordinatore amm.e tecnico Dir. servizi gen. ed amm. e amm. Docente sc. materna ed elem. Docente diplomato istituti sec. II° Docente scuola media Docente laureato istituti sec. II°
  da 0 a 2
 13659.90
 14010.01
 15302.38
 17495.96
 20230.62
 17582.23
 17582.23
 19082.50
 19082.50
 da 3 a 8
 13925.18
 14268.28
 15646.28
 17968.93
 20819.59
 18057.22
 18057.22
 19609.37
 20163.59
 da 9 a 14
 14896.91
 15223.27
 16874.38
 19425.88
 22664.73
 19520.02
 19520.02
 21331.19
 21893.39
 da 15 a 20
 15784.44
 16120.67
 18037.47
 21127.37
 24774.81
 21228.70
 21228.70
 23313.53
 24027.25
 da 21 a 27
 16668.09
 17031.95
 19207.56
 22778.93
 27053.50
 22887.02
 23701.35
 25238.19
 26745.11
 da 28 a 34
 17334.59
 17677.28
 20040.76
 24408.24
 29394.78
 24523.25
 25323.78
 27126.29
 28525.83
 da 35 a
 17801.67
 18159.30
 20679.35
 25621.63
 31672.27
 25741.51
 26556.37
 28525.83
 29945.29

 

ma abbiamo trascurato per semplicità diverse altre cose, per esempio abbiamo trascurato la indennità integrativa speciale.

Indennità integrativa speciale

Nello stipendio lordo del personale della scuola è compresa una parte che si chiama appunto indennità integrativa speciale. Per ogni tipo di personale la indennità integrativa speciale per un anno è la seguente:

Collaboratore scolastico Collaboratore scolastico dei servizi Assistenti amministrativi Coordinatore amm.e tecnico Dir. servizi gen. ed amm. e amm. Docente sc. materna ed elem. Docente diplomato istituti sec. II° Docente scuola media Docente laureato istituti sec. II°
 6207.16
 6207.16
 6280.06
 6371.71
6641.40
6384.11
 6384.11
 6459.63
 6459.63

Un tempo questa indennità veniva aumentata per tener conto del costo della vita in base alla inflazione del periodo. Poi è stata mantenuta costante per molti anni, ma sempre separata dallo stipendio annuo. Infine in base all'ultimo contratto essa è stata inglobata o conglobata nello stipendio annuo lordo e vale per 12 mesi, nel senso che l'importo annuo va diviso per dodici per ottenere l'importo mensile.

Per i nostri calcoli potremmo anche non tenere conto di questo fatto. Ma ... vogliamo calcolare lo stipendio netto? Ci serve allora separare la indennità integrativa speciale dallo stipendio lordo; questo è dovuto al fatto che le ritenute previdenziali ed assistenziali vengono calcolate con percentuale diversa come vedremo in seguito.

Come fare per separare la indennità integrativa dallo stipendio? Basta fare una differenza. Cioè se dallo stipendio annuo lordo togliamo la rispettiva indennità integrativa speciale otteniamo lo stipendio annuo lordo depurato dell'indennità integrativa speciale. Notiamo che questa indennità non varia in base agli anni di servizio ma varia solo in base al tipo di personale. Ci costruiamo allora un nuovo file di testo che chiameremo indennita.txt ed il cui contenuto è il seguente:

6207.16
6207.16
6280.06
6371.71
6641.40
6384.11
6384.11
6459.63
6459.63

Contenuto del file indennita.txt

Naturalmente questo file va letto come al solito modo e salvato in una matrice che chiameremo matrice2[$t]. Le istruzioni sono:

$nomefile = "indennita.txt";

$fp = fopen($nomefile, "r");

for ($t=1; $t<10; $t++)  $matrice2[$t] = fgets ($fp, 4096);

fclose($fp);

Riscriviamo, ora, il listato di stipendio7.php nel seguente modo:

<html>

<body background="sfondo2.jpg">

<?php

print ("Programma per calcolare lo stipendio mensile lordo.<br><br>");

$personale = $_GET['personale'];

$anniservizio = $_GET['anniservizio'];

// gestione degli errori

if ($personale == 0) {

                               print ("Non hai indicato il tipo di personale. Torna indietro! <br>");

                              exit;

                                };

if ($anniservizio == 0) {

                                print ("Non hai indicato gli anni di servizio. Torna indietro! <br>");

                               exit;

                                };

 

// leggo il file stipendi05.txt

$nomefile = "stipendi05.txt";

$fp = fopen($nomefile, "r");

for ($t=1; $t<81; $t++)  $matrice[$t] = fgets ($fp, 4096);

fclose($fp);

 

// leggo file dell'indennità

$nomefile = "indennita.txt";

$fp = fopen($nomefile, "r");

for ($t=1; $t<10; $t++)  $matrice2[$t] = fgets ($fp, 4096);

fclose($fp);

 

$tre = $anniservizio.$personale;

$uno = $anniservizio."0";

 

// faccio dei calcoli

$mensile= ($matrice[$tre]-$matrice2[$personale])/12;

$integrativa = $matrice2[$personale]/12;

// stampo i risultati

print ("Personale: $matrice[$personale] <br>");

print ("Anni di servizio: $matrice[$uno] <br>");

print ("Lo stipendio mensile lordo depurato della Indennità Integrativa speciale è € $mensile <br>");

print ("La indennità integrativa speciale lorda da sommare allo stipendio mensile è € $integrativa <br>");

?>

<body>

</html>

 

Listato di stipendio8.php

 

e salviamolo come stipendio8.php.

 Modifichiamo anche la istruzione di stipendio6.php:

<form action="stipendio8.php" name="modulo1">

 in modo che richiami stipendio8.php ed eseguiamo stipendio6.php ottenendo:

 Vediamo che siamo passati allo stipendio mensile lordo dividendo quello annuo per 12 mesi.

Compenso individuale accessorio

Oltre allo stipendio base che abbiamo imparato a calcolare vi è un altro importo da pagare per alcuni tipi di personale. Tale importo è detto compenso individuale accessorio che abbreviamo con cia.

Tale compenso non spetta a tutti i tipi di personale ma solo al personale detto ATA, cioè quello non docente, secondo la seguente tabella. 

Personale ATA Compenso individuale accessorio mensile
Area B/C € 52,83
Area A/As € 48,25

che equivale alla seguente:

Collaboratore scolastico Collaboratore scolastico dei servizi Assistenti amministrativi Coordinatore amm.e tecnico
€ 48,25 € 48,25 € 52,83 € 52,83

Notiamo che questa volta il compenso è mensile e spetta solo al personale delle prime quattro colonne. Non spetta al resto del personale. Qui non occorre creare un file in quanto si tratta solo di pochi valori e li possiamo inserire direttamente nel nostro programma.

Tale compenso, che è sempre lordo, va aggiunto allo stipendio mensile lordo e vale per 12 mesi e non 13 mesi come lo stipendio principale.

Per individuare il tipo di personale da darlo ricordiamo che noi abbiamo la variabile $personale, che assume dei valori da 0 a 9; lo 0 è stato scartato in quanto è un errore dell'utente che non ha fatto la selezione; i valori 1 e 2 rappresentano le prime due colonne della tabella del Compenso individuale accessorio; il 3 e il 4 rappresentano le colonne tre e quattro.

Ci serve allora una opportuna if da inserire in stipendio8.php e può essere la seguente:

if ($personale<5) {

                            if ($personale<3) $cia=48.25;

                            if (($personale==3)||($personale==4)) $cia=52.83;

                            print ("Il compenso individuale accessorio è € $cia <br>");

                            $imponibile = ($mensile + $integrativa + $cia);

                            print ("Totale competenze lorde mensili: € $imponibile <br>");

                            };

 

Modifichiamo ora il listato di stipendio8.php in modo da darci l'importo del compenso individuale accessorio solo per il personale che ha diritto e a questo punto possiamo anche inserire la somma totale dello stipendio lordo che chiamiamo $imponibile e che calcoliamo con la formula:

$imponibile = ($mensile + $integrativa + $cia);

Il listato è il seguente:

<html>

<body background="sfondo2.jpg">

<?php

print ("Programma per calcolare lo stipendio mensile lordo.<br><br>");

$personale = $_GET['personale'];

$anniservizio = $_GET['anniservizio'];

if ($personale == 0) {

                             print ("Non hai indicato il tipo di personale. Torna indietro! <br>");

                           exit;

                              };

if ($anniservizio == 0) {

                                 print ("Non hai indicato gli anni di servizio. Torna indietro! <br>");

                               exit;

                                };

// leggo il file stipendi05.txt

$nomefile = "stipendi05.txt";

$fp = fopen($nomefile, "r");

for ($t=1; $t<81; $t++) $matrice[$t] = fgets ($fp, 4096);

fclose($fp);

// leggo file dell'indennità

$nomefile = "indennita.txt";

$fp = fopen($nomefile, "r");

for ($t=1; $t<81; $t++) $matrice2[$t] = fgets ($fp, 4096);

fclose($fp);

$tre = $anniservizio.$personale;

$uno = $anniservizio."0";

// faccio dei calcoli

$mensile= ($matrice[$tre]-$matrice2[$personale])/12;

$integrativa = $matrice2[$personale]/12;

// stampo i risultati

print ("Personale: $matrice[$personale] <br>");

print ("Anni di servizio: $matrice[$uno] <br>");

print ("Lo stipendio mensile lordo depurato della Indennità Integrativa speciale è € $mensile <br>");

print ("La indennità integrativa speciale lorda da sommare allo stipendio mensile è € $integrativa <br>");

// calcolo il compenso individuale accessorio

if ($personale<5) {

                        if ($personale<3) $cia=48.25;

                       if (($personale==3)||($personale==4)) $cia=52.83;

                       print ("Il compenso individuale accessorio è € $cia <br>");

                       $imponibile = ($mensile + $integrativa + $cia);

                       print ("Totale competenze lorde mensili: € $imponibile <br>");

                       };

if ($personale==5) {

                            $imponibile = ($mensile + $integrativa);

                            print ("Totale competenze lorde mensili: € $imponibile <br>");

                            };

?>

<body>

</html>

 

Listato di stipendio9.php

 

Salviamo il programma come stipendio9.php

Modifichiamo anche la istruzione di stipendio6.php:

<form action="stipendio9.php" name="modulo1">

 in modo che richiami stipendio9.php ed eseguiamo stipendio6.php ottenendo:

Notiamo, infine, che nel programma abbiamo anche inserito  la posizione dei direttori dei servizi generali ed amministrativi, che corrisponde quando $personale assume il valore 5; per costoro non spetta il compenso indivuale accessorio ma altri emolumenti accessori che trascuriamo.

Retribuzione professionale docente

In aggiunta allo stipendio mensile il docente a tempo indeterminato percepisce anche una seconda somma, detta retribuzione professionale docente, secondo la seguente tabella.

Fasce di anzianità Retribuzione professionale docente mensile
da 0 a 14 anni € 154,82
da 15 a 27 anni € 190,65
da 28 anni € 239,17

Tale somma viene corrisposta per 12 mensilità e non per 13.

Questa tabella la possiamo modificare nel seguente modo:

$anniservizio anni di servizio Fasce di anzianità Retribuzione professionale docente mensile
1
  da 0 a 2
da 0 a 14 anni € 154,82
2
 da 3 a 8
da 0 a 14 anni € 154,82
3
 da 9 a 14
da 0 a 14 anni € 154,82
4
 da 15 a 20
da 15 a 27 anni € 190,65
5
 da 21 a 27
da 15 a 27 anni € 190,65
6
 da 28 a 34
da 28 anni € 239,17
7
 da 35 a
da 28 anni € 239,17

Questa modifica l'abbiamo fatta per valutare i valori di $anniservizio. Cioè se il valore di $anniservizio è minore di 4 la retribuzione professsionale docente, che metteremo nella variabile $rpd, sarà 154.82. Per valori compresi tra 4 e 5, $rpd sarà 190.65. Per valori di $anniservizio maggiori di 5 $rpd sarà 239.17

Passiamo ora ad impostare le if del nostro programma:

if ($personale>5) {

                            if($anniservizio<4) $rpd=154.82;

                            if(($anniservizio>3)&&($anniservizio<6)) $rpd=190.65;

                            if($anniservizio>5) $rpd=239.17;

                             };

 

Modifichiamo, allora, stipendio9.php in modo che comprensa anche la retribuzione professionale docenti. Otteniamo il seguente listato:

<html>

<body background="sfondo2.jpg">

<?php

print ("Programma per calcolare lo stipendio mensile lordo.<br><br>");

$personale = $_GET['personale'];

$anniservizio = $_GET['anniservizio'];

if ($personale == 0) {

                             print ("Non hai indicato il tipo di personale. Torna indietro! <br>");

                           exit;

                              };

if ($anniservizio == 0) {

                                 print ("Non hai indicato gli anni di servizio. Torna indietro! <br>");

                               exit;

                                };

// leggo il file stipendi05.txt

$nomefile = "stipendi05.txt";

$fp = fopen($nomefile, "r");

for ($t=1; $t<81; $t++) $matrice[$t] = fgets ($fp, 4096);

fclose($fp);

// leggo file dell'indennità

$nomefile = "indennita.txt";

$fp = fopen($nomefile, "r");

for ($t=1; $t<81; $t++) $matrice2[$t] = fgets ($fp, 4096);

fclose($fp);

$tre = $anniservizio.$personale;

$uno = $anniservizio."0";

// faccio dei calcoli

$mensile= ($matrice[$tre]-$matrice2[$personale])/12;

$integrativa = $matrice2[$personale]/12;

// stampo i risultati

print ("Personale: $matrice[$personale] <br>");

print ("Anni di servizio: $matrice[$uno] <br>");

print ("Lo stipendio mensile lordo depurato della Indennità Integrativa speciale è € $mensile <br>");

print ("La indennità integrativa speciale lorda da sommare allo stipendio mensile è € $integrativa <br>");

// calcolo il compenso individuale accessorio

if ($personale<5) {

                        if ($personale<3) $cia=48.25;

                       if (($personale==3)||($personale==4)) $cia=52.83;

                       print ("Il compenso individuale accessorio è € $cia <br>");

                       $imponibile = ($mensile + $integrativa + $cia);

                       print ("Totale competenze lorde mensili: € $imponibile <br>");

                       };

if ($personale==5) {

                            $imponibile = ($mensile + $integrativa);

                            print ("Totale competenze lorde mensili: € $imponibile <br>");

                            };

// calcolo la retribuzione professionale docenti

if ($personale>5) {

                         if($anniservizio<4) $rpd=154.82;

       if(($anniservizio>3)&&($anniservizio<6)) $rpd=190.65;

                        if($anniservizio>5) $rpd=239.17;

                        $imponibile = ($mensile + $integrativa + $rpd);

                        print ("La retribuzione professionale docenti è € $rpd <br>");

                        print ("Totale competenze lorde mensili: € $imponibile <br>");

 

                          };

?>

<body>

</html>

 

Listato di stipendio10.php

Salviamo il programma come stipendio10.php

Modifichiamo anche la istruzione di stipendio6.php:

<form action="stipendi010.php" name="modulo1">

 in modo che richiami stipendio10.php ed eseguiamo stipendio6.php ottenendo:

Notiamo che con:

if ($personale>5)

abbiamo compreso tutto il personale docente, cioè tutte le colonne della tabella principale dello stipendio dopo la quinta, che sono solo e tutti i docenti.

Ora dobbiamo verificare tutte le combinazioni di stipendio6.php in modo da vedere se funziona. Questa è una buona abitudine da prendere, cioè quella di far finta di essere degli utenti del programma e provare tutte le risposte possibili, anche quelle che si ritengano stupide; spesso escono molti errori di programmazione che non avevamo previsto e che occorre correggere.

Corso di programmazione in PHP

Dizionario php

 

prof. Pietro De Paolis

Indice Scuola Elettrica - generico


Scuola Elettrica



 

Altre applicazioni


Mappa per tipo di scuola

 

Indice di tutte le pagine del sito


Guida per navigare


Richiesta informazioni


Scuola Elettrica