Exemple #1
0
        # Moyenne de DU et DP
        $moy = ($notedp + $notedh) / 2;
        $corps .= '<td border="0.5" width="' . $col4 . '%">' . sprintf("%.2f", $moy) . '</td>';
        #Coefficient
        $corps .= '<td border="0.5" width="' . $col5 . '%">' . $g['COEFF'] . '</td>';
        #Total
        $total = $moy * $g['COEFF'];
        $corps .= '<td border="0.5" width="' . $col6 . '%">' . sprintf("%.2f", $total) . '</td>';
        #Rang
        $corps .= '<td border="0.5" width="' . $col7 . '%"></td>';
        #Moyenne de classe
        $corps .= '<td border="0.5" width="' . $col8 . '%"></td>';
        #Min / Max
        $corps .= '<td border="0.5" width="' . $col9 . '%"></td>';
        #Appreciation
        $corps .= '<td border="0.5" width="' . $col10 . '%">' . getAppreciations($moy) . '</td>';
        # Sommes
        $sumdh += $notedh;
        $sumdp += $notedp;
        $sumcoeff += $g['COEFF'];
        $sumtotal += $total;
        $corps .= '</tr>';
    }
    # Ecrire le GROUPE 1
    $corps .= '<tr style="background-color:#F7F7F7;line-height:14px;text-align:center;">' . '<td border="0.5" witdh="' . $col1 . '%" style="text-align:left">' . $gp[0]['DESCRIPTION'] . '</td>' . '<td border="0.5" width="' . $col2 . '%">' . $sumdp . '</td>' . '<td border="0.5" width="' . $col3 . '%">' . $sumdh . '</td>';
    # Moyenne totale du groupe
    $moy = ($sumdh + $sumdp) / $sumcoeff;
    $corps .= '<td border="0.5" width="' . $col4 . '%">' . sprintf("%.2f", $moy) . '</td>' . '<td border="0.5" width="' . $col5 . '%">' . $sumcoeff . '</td>' . '<td border="0.5" width="' . $col6 . '%">' . $sumtotal . '</td>' . '<td style="text-align:left" border="0.5" colspan="4" width="' . ($col7 + $col8 + $col9 + $col10) . '%">' . 'Moyenne : </td></tr>';
}
$corps .= "</tbody></table>";
$pdf->WriteHTMLCell(0, 5, 20, $y + 35, $corps);
Exemple #2
0
function getBody($groupe, $col, $el, $codeperiode, &$sumtotal = 0, &$sumcoeff = 0)
{
    $str = "";
    $sumdh = $sumdp = $summoy = 0;
    foreach ($groupe as $g) {
        if ($g['IDELEVE'] == $el['IDELEVE']) {
            $str .= '<tr style="text-align:center;font-weight:bold;">';
            # Matiere
            //$g['NOM'] = preg_replace("%[^\033-\176\r\n\t]%", '', $g['NOM']);
            //$g['PRENOM'] = preg_replace("%[^\033-\176\r\n\t]%", '', $g['PRENOM']);
            $str .= '<td border="1" style="text-align:left;" ' . 'width="' . $col[1] . '%">&nbsp;&nbsp;<b style="text-transform:uppercase">' . trim($g['BULLETIN']) . '</b><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size:7px;font-weight:normal">' . ($g['CIVILITE'] . ' ' . $g['NOM']) . '</span></td>';
            # DP
            if ($codeperiode === "T") {
                if ($g['SEQ1'] != "" && $g['SEQ1'] != null) {
                    $str .= '<td  style="line-height:17px" border="1" width="' . $col[2] . '%">' . sprintf("%.2f", $g['SEQ1']) . '</td>';
                } else {
                    $str .= '<td border="1" width="' . $col[2] . '%"></td>';
                }
                # DH
                if ($g['SEQ2'] != "" && $g['SEQ2'] != null) {
                    $str .= '<td  style="line-height:17px" border="1" width="' . $col[3] . '%">' . sprintf("%.2f", $g['SEQ2']) . '</td>';
                } else {
                    $str .= '<td border="1" width="' . $col[3] . '%"></td>';
                }
            }
            # Moyenne DP et DH
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[4] . '%">' . sprintf("%.2f", $g['MOYENNE']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[4] . '%"></td>';
            }
            # Coeff
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[5] . '%">' . sprintf("%.0f", $g['COEFF']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[5] . '%"></td>';
            }
            # Total = coeff * moy
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[6] . '%">' . sprintf("%.2f", $g['TOTAL']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[6] . '%"></td>';
            }
            # Rang
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[7] . '%">' . $g['RANG'] . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[7] . '%"></td>';
            }
            #Moyenne de classe
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[8] . '%">' . sprintf("%.2f", $g['MOYCL']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[8] . '%"></td>';
            }
            #Min / Max
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[9] . '%">' . sprintf("%.2f", $g['NOTEMIN']) . ' / ' . sprintf("%.2f", $g['NOTEMAX']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[9] . '%"></td>';
            }
            #Appreciation
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px;text-align:left;"' . ' border="1" width="' . $col[10] . '%" >&nbsp;&nbsp;<b style="text-transform:uppercase">' . getAppreciations($g['MOYENNE']) . '</b></td>';
            } else {
                $str .= '<td border="1" width="' . $col[10] . '%"></td>';
            }
            # Sommes
            #$sumdh += $g['MOYENNE'];
            #$sumdp += $g['DP'];
            $sumcoeff += $g['COEFF'];
            $sumtotal += $g['TOTAL'];
            $summoy += $g['MOYENNE'];
            $str .= '</tr>';
        }
    }
    if (!empty($groupe)) {
        $param = ["sumtotal" => $sumtotal, "sumcoeff" => $sumcoeff, "description" => $g['DESCRIPTION'], "codeperiode" => $codeperiode];
        $str .= printGroupe($col, $param);
    }
    return $str;
}
#Impression des statistique par matiere
#
if (empty($notations)) {
    return;
}
$pdf->AddPage();
# Mettre la page en paysage, valeur par defaut est en portrait
$y = FIRST_TITLE;
#Deactiver le rendu par defaut des entetes pour les page en paysage
$pdf->setPageOrientation('L');
//$pdf->LandScapeHeader();
$pdf->setFont("Times", "", 13);
$titre = '<p style="text-decoration:underline">STATISTIQUES DES NOTES PAR CLASSE</p>';
$pdf->WriteHTMLCell(0, 50, 100, $y + 10, $titre);
$cours = '<p><i style="text-decoration:underline">Mati&egrave;re</i> :  ' . $matiere['LIBELLE'] . '</p>';
$pdf->WriteHTMLCell(0, 50, 10, $y + 20, $cours);
$pdf->WriteHTMLCell(0, 50, 10, $y + 26, '<p>P&eacute;riode : ' . $notations[0]['SEQUENCELIBELLE'] . '</p>');
$corps = '<table border="0.5" cellpadding="5"><thead>' . '<tr style="text-align:center;font-weight:bold"><th rowspan="2">Classe</th>' . '<th rowspan="2">Enseignants</th>' . '<th rowspan="2">Effectif &eacute;valu&eacute;</th>' . '<th rowspan="2">Moyenne g&eacute;n&eacute;rale de la classe</th>' . '<th rowspan="2">Nombre de Moy >= 10</th>' . '<th colspan="2">Taux de r&eacute;ussite</th><th rowspan="2">Taux de r&eacute;ussite g&eacute;n&eacute;ral</th>' . '<th rowspan="2">Observation</th></tr>' . '<tr><th>Gar&ccedil;ons</th><th>Filles</th></tr></thead><tbody>';
foreach ($notations as $n) {
    $notes = $array_notes[$n['IDNOTATION']];
    $nbre = effectifEvalues($notes);
    # taux[0] = taux des garcons
    # taux[1] = taux des filles
    # taux[2] = taux generale de reussite
    $taux = tauxReussites($notes);
    $corps .= '<tr style="text-align:center"><td>' . $n['NIVEAUHTML'] . '</td><td>' . $n['NOM'] . ' ' . $n['PRENOM'] . '</td>' . '<td>' . $nbre . '</td><td>' . sprintf("%.2f", $n['NOTEMOYENNE']) . '</td>' . '<td>' . count(moyenneSup10($notes)) . '</td>' . '<td>' . sprintf("%.2f", $taux[0]) . '%</td><td>' . sprintf("%.2f", $taux[1]) . '%</td>' . '<td>' . sprintf("%.2f", $taux[2]) . '%</td>' . '<td>' . getAppreciations($n['NOTEMOYENNE']) . '</td></tr>';
}
$corps .= '</tbody></table>';
$pdf->WriteHTMLCell(0, 5, 10, $y + 35, $corps);
$pdf->Output();
Exemple #4
0
function getBody($groupe, $col, $el, &$sumtotal = 0, &$sumcoeff = 0)
{
    $str = "";
    $sumdh = $sumdp = $summoy = 0;
    foreach ($groupe as $g) {
        if ($g['IDELEVE'] == $el['IDELEVE']) {
            $str .= '<tr style="text-align:center">';
            # Matiere
            //$g['NOM'] = preg_replace("%[^\033-\176\r\n\t]%", '', $g['NOM']);
            //$g['PRENOM'] = preg_replace("%[^\033-\176\r\n\t]%", '', $g['PRENOM']);
            $str .= '<td border="0.5" style="text-align:left" width="' . $col[1] . '%">&nbsp;&nbsp;<b>' . strtoupper($g['BULLETIN']) . '</b><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size:7px">' . ($g['CIVILITE'] . ' ' . $g['NOM'] . ' ' . $g['PRENOM']) . '</span></td>';
            # DP
            if ($g['DP'] != "" && $g['DP'] != null) {
                $str .= '<td border="0.5" width="' . $col[2] . '%">' . sprintf("%.2f", $g['DP']) . '</td>';
            } else {
                $str .= '<td border="0.5" width="' . $col[2] . '%"></td>';
            }
            # DH
            if ($g['DH'] != "" && $g['DH'] != null) {
                $str .= '<td border="0.5" width="' . $col[3] . '%">' . sprintf("%.2f", $g['DH']) . '</td>';
            } else {
                $str .= '<td border="0.5" width="' . $col[3] . '%"></td>';
            }
            # Moyenne DP et DH
            $str .= '<td border="0.5" width="' . $col[4] . '%">' . sprintf("%.2f", $g['MOYENNE']) . '</td>';
            # Coeff
            $str .= '<td border="0.5" width="' . $col[5] . '%">' . $g['COEFF'] . '</td>';
            # Total = coeff * moy
            $str .= '<td border="0.5" width="' . $col[6] . '%">' . sprintf("%.2f", $g['TOTAL']) . '</td>';
            # Rang
            $str .= '<td border="0.5" width="' . $col[7] . '%">' . $g['RANG'] . '</td>';
            #Moyenne de classe
            $str .= '<td border="0.5" width="' . $col[8] . '%">' . sprintf("%.2f", $g['MOYCL']) . '</td>';
            #Min / Max
            $str .= '<td border="0.5" width="' . $col[9] . '%">' . sprintf("%.2f", $g['NOTEMIN']) . ' / ' . sprintf("%.2f", $g['NOTEMAX']) . '</td>';
            #Appreciation
            $str .= '<td border="0.5" width="' . $col[10] . '%" style="text-align:left">&nbsp;&nbsp;' . getAppreciations($g['MOYENNE']) . '</td>';
            # Sommes
            $sumdh += $g['DH'];
            $sumdp += $g['DP'];
            $sumcoeff += $g['COEFF'];
            $sumtotal += $g['TOTAL'];
            $summoy += $g['MOYENNE'];
            $str .= '</tr>';
        }
    }
    if (!empty($groupe)) {
        $str .= printGroupe($sumtotal, $sumcoeff, $col, $g['DESCRIPTION']);
    }
    return $str;
}
Exemple #5
0
$pdf->SetPrintHeader(false);
$y = PDF_Y;
$x = PDF_X;
$middle = PDF_MIDDLE;
$pdf->setFont("Times", '', 9);
$titre = '<b>LISTE DES NOTES DE L\'ELEVE : <br/>' . $eleve['NOM'] . ' ' . $eleve['PRENOM'] . '</b>';
$pdf->WriteHTMLCell(0, 5, $middle - 25, $y, $titre);
$pdf->WriteHTMLCell(100, 100, 150, $y, '<b>Ann&eacute;e Acad. ' . $_SESSION['anneeacademique'] . '</b>');
$cols[0] = 10;
$cols[1] = 20;
$cols[2] = 20;
$cols[3] = 10;
$cols[4] = 7;
$cols[5] = 20;
$pdf->setFont("Times", '', 7);
$corps = '<table cellpadding="2" border="1"><thead>
    <tr  border ="1"   style="font-weight:bold"  >
        <td border="1"  width ="' . $cols[0] . '%">S&eacute;quences</td>
        <td border="1"  width ="' . $cols[1] . '%">Mati&egrave;res</td>
        <td border="1"  width ="' . $cols[2] . '%"  >Description</td>
        <td border="1"  width ="' . $cols[3] . '%" >Date</td>
        <td border="1"  width ="' . $cols[4] . '%" >Note</td>
        <td border="1"  width ="' . $cols[5] . '%" >Appr&eacute;ciation</td>
      </tr></thead><tbdoy>';
foreach ($notes as $n) {
    $d = new DateFR($n['DATEDEVOIR']);
    $corps .= '<tr><td border="1"  width ="' . $cols[0] . '%">' . $n['LIBELLEHTML'] . "</td>" . '<td border="1"  width ="' . $cols[1] . '%">' . $n['BULLETIN'] . "</td>" . '<td border="1"  width ="' . $cols[2] . '%">' . $n['DESCRIPTION'] . '</td>' . '<td border="1"  width ="' . $cols[3] . '%">' . $d->getDate() . " " . $d->getMois(3) . " " . $d->getYear(2) . "</td>" . '<td align="right" border="1"  width ="' . $cols[4] . '%">' . $n['NOTE'] . "</td>" . '<td border="1"  width ="' . $cols[5] . '%">' . getAppreciations($n['NOTE']) . '</td></tr>';
}
$corps .= '</tbody></table>';
$pdf->WriteHTMLCell(0, 5, $x + 10, $y + 10, $corps);
$pdf->Output();
Exemple #6
0
$pdf->WriteHTMLCell(0, 5, 90, $y + 25, '<p>Note mini : <i>' . $notation['NOTEMIN'] . '</i></p>');
$pdf->WriteHTMLCell(0, 5, 140, $y + 25, '<p>Coefficient : <i>' . $enseignement['COEFF'] . '</i></p>');
$pdf->WriteHTMLCell(0, 5, 90, $y + 30, '<p>Note moy. : <i>' . sprintf("%.2f", $notation['NOTEMOYENNE']) . '</i></p>');
$pdf->WriteHTMLCell(0, 5, 140, $y + 30, '<p>P&eacute;riode : ' . $notation['SEQUENCELIBELLE'] . '</p>');
$corps = '<table border="0.5" cellpadding="5"><tr style="text-align:center"><td rowspan="2">Effectif &eacute;valu&eacute;</td>' . '<td rowspan="2">Moyenne g&eacute;n&eacute;rale de la classe</td>' . '<td rowspan="2">Nombre de Moy >= 10</td>' . '<td colspan="2">Taux de r&eacute;ussite</td><td rowspan="2">Taux de r&eacute;ussite g&eacute;n&eacute;ral</td>' . '<td rowspan="2">Observation</td></tr>' . '<tr><td>Gar&ccedil;ons</td><td>Filles</td></tr>';
$nbre = effectifEvalues($notes);
# taux[0] = taux des garcons
# taux[1] = taux des filles
# taux[2] = taux generale de reussite
$taux = tauxReussites($notes);
$corps .= '<tr style="text-align:center"><td>' . $nbre . '</td><td>' . sprintf("%.2f", $notation['NOTEMOYENNE']) . '</td>' . '<td>' . count(moyenneSup10($notes)) . '</td>' . '<td>' . sprintf("%.2f", $taux[0]) . '%</td><td>' . sprintf("%.2f", $taux[1]) . '%</td><td>' . sprintf("%.2f", $taux[2]) . '%</td>' . '<td>' . getAppreciations($notation['NOTEMOYENNE']) . '</td></tr>';
$corps .= '</table>';
$pdf->WriteHTMLCell(0, 5, 10, $y + 40, $corps);
$corps = '<table cellpadding = "2"><thead ><tr border="0.5" style="font-weight:bold"><th width="5%" border="0.5">N°</th>' . '<th border="0.5"width="50%">Noms et Pr&eacute;noms</th>';
$corps .= '<th width="10%" border="0.5">Note</th><th width="15%" border="0.5">Absent</th>' . '<th width="20%" border="0.5">Observations</th></tr></thead><tbody>';
$i = 1;
foreach ($notes as $n) {
    $absent = "";
    $ap = getAppreciations($n['NOTE']);
    $corps .= '<tr><td width="5%" border="0.5">' . $i . '</td>' . '<td width="50%" border="0.5">' . $n['NOM'] . ' ' . $n['PRENOM'] . '</td>';
    if ($n['ABSENT'] == 1) {
        $n['NOTE'] = "";
        $absent = 'ABSENT';
        $ap = "";
    }
    $corps .= '<td width="10%" border="0.5">' . $n['NOTE'] . '</td>' . '<td width="15%" border="0.5">' . $absent . '</td>' . '<td width="20%" border="0.5">' . $ap . '</td></tr>';
    $i++;
}
$corps .= '</tbody></table>';
$pdf->WriteHTMLCell(0, 5, 10, $y + 80, $corps);
$pdf->Output();
Exemple #7
0
    }
    $corps .= '<td border="1" width="' . ($col[3] + 1) . '%">' . $sexeredouble . '</td>';
    $corps .= getBodyRecapitulatif($groupe1, $col[2], $rang['IDELEVE']);
    $corps .= getBodyRecapitulatif($groupe2, $col[2], $rang['IDELEVE']);
    $corps .= getBodyRecapitulatif($groupe3, $col[2], $rang['IDELEVE']);
    $corps .= printTravailRecapitulatif($rang, $col[2], $prev);
    $prev = $rang['RANG'];
    # Discripline
    foreach ($discipline as $disc) {
        if ($disc['IDELEVE'] == $rang['IDELEVE']) {
            break;
        }
    }
    $disc = array();
    $corps .= printDisciplineRecapitulatif($disc, $col[4]);
    $corps .= '<td border="1" width="' . ($col[3] + 3) . '%"><b style="text-transform:uppercase">' . getAppreciations($rang['MOYGENERALE']) . '</b></td>';
    $i++;
    $corps .= '</tr>';
}
$corps .= '</tbody></table>';
$pdf->WriteHTMLCell(0, 0, $x - 5, $y + 5, $corps);
$pdf->Output();
function writeVerticalText($input)
{
    $str = '';
    for ($i = 0; $i < strlen($input) - 1; $i++) {
        $str .= $input[$i] . '<br style="line-height:7px" />';
    }
    $str .= $input[$i];
    return $str;
}
Exemple #8
0
function getBodyAnnuelle($groupe, $col, $el, &$sumtotal = 0, &$sumcoeff = 0)
{
    $str = "";
    foreach ($groupe as $g) {
        if ($g['IDELEVE'] == $el['IDELEVE']) {
            $str .= '<tr style="text-align:center;font-weight:bold;">';
            # Matiere
            //$g['NOM'] = preg_replace("%[^\033-\176\r\n\t]%", '', $g['NOM']);
            //$g['PRENOM'] = preg_replace("%[^\033-\176\r\n\t]%", '', $g['PRENOM']);
            $str .= '<td border="1" style="text-align:left;" ' . 'width="' . $col[10] . '%">&nbsp;&nbsp;<b style="text-transform:uppercase">' . trim($g['BULLETIN']) . '</b><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size:7px;font-weight:normal">' . ($g['CIVILITE'] . ' ' . $g['NOM']) . '</span></td>';
            # NOTES SEQUENTIELLES
            if (!empty($g['SEQ1'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[1] . '%">' . sprintf("%.2f", $g['SEQ1']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[1] . '%"></td>';
            }
            if (!empty($g['SEQ2'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[2] . '%">' . sprintf("%.2f", $g['SEQ2']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[2] . '%"></td>';
            }
            if (!empty($g['SEQ3'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[3] . '%">' . sprintf("%.2f", $g['SEQ3']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[3] . '%"></td>';
            }
            if (!empty($g['SEQ4'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[4] . '%">' . sprintf("%.2f", $g['SEQ4']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[4] . '%"></td>';
            }
            if (!empty($g['SEQ5'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[5] . '%">' . sprintf("%.2f", $g['SEQ5']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[5] . '%"></td>';
            }
            if (!empty($g['SEQ6'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[6] . '%">' . sprintf("%.2f", $g['SEQ6']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[6] . '%"></td>';
            }
            # Moyenne DES 6 SEQUENCE
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[7] . '%">' . sprintf("%.2f", $g['MOYENNE']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[7] . '%"></td>';
            }
            # Coeff
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[11] . '%">' . sprintf("%.0f", $g['COEFF']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[11] . '%"></td>';
            }
            # Total = coeff * moy
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[13] . '%">' . sprintf("%.2f", sprintf("%.2f", $g['MOYENNE']) * $g['COEFF']) . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[13] . '%"></td>';
            }
            # Rang
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px" border="1" width="' . $col[8] . '%">' . $g['RANG'] . '</td>';
            } else {
                $str .= '<td border="1" width="' . $col[8] . '%"></td>';
            }
            #Appreciation
            if (!empty($g['COEFF'])) {
                $str .= '<td  style="line-height:17px;text-align:left;"' . ' border="1" width="' . $col[9] . '%" >&nbsp;&nbsp;<b style="text-transform:uppercase">' . getAppreciations($g['MOYENNE']) . '</b></td>';
            } else {
                $str .= '<td border="1" width="' . $col[9] . '%"></td>';
            }
            $sumcoeff += $g['COEFF'];
            $sumtotal += $g['TOTAL'];
            $str .= '</tr>';
        }
    }
    if (!empty($groupe)) {
        $param = ["sumtotal" => $sumtotal, "sumcoeff" => $sumcoeff, "description" => $g['DESCRIPTION']];
        $str .= printGroupeAnnuelle($col, $param);
    }
    return $str;
}