diff --git a/module/Formation/src/Formation/Controller/FormationInstanceDocumentController.php b/module/Formation/src/Formation/Controller/FormationInstanceDocumentController.php index 7cda8a677b04205213d7a646682edc94ffc8855b..9d3496f4c5493466120c1261b15ec94fa2ed70f2 100644 --- a/module/Formation/src/Formation/Controller/FormationInstanceDocumentController.php +++ b/module/Formation/src/Formation/Controller/FormationInstanceDocumentController.php @@ -4,6 +4,8 @@ namespace Formation\Controller; use Application\Service\Agent\AgentServiceAwareTrait; use Application\Service\Macro\MacroServiceAwareTrait; +use Formation\Entity\Db\Formation; +use Formation\Entity\Db\FormationInstanceInscrit; use Formation\Entity\Db\Seance; use Formation\Provider\Etat\SessionEtats; use Formation\Provider\Template\PdfTemplates; @@ -127,21 +129,35 @@ class FormationInstanceDocumentController extends AbstractActionController $inscriptions = $this->getFormationInstanceInscritService()->getFormationsBySuivies($agent); - $texte = "<ul>"; + $array = []; foreach ($inscriptions as $inscription) { - $dureeSuivie = $inscription->getDureePresence(); - $session = $inscription->getInstance(); - $sessionEtat = $session->getEtat()->getCode(); - if ($dureeSuivie != '0 heures ' AND ($sessionEtat === SessionEtats::ETAT_CLOTURE_INSTANCE OR $sessionEtat === SessionEtats::ETAT_ATTENTE_RETOURS)) { - $libelle = $session->getFormation()->getLibelle(); - $periode = $session->getPeriode(); - $texte .= "<li>"; - $texte .= $libelle . " (". $periode . ")<br/>"; - $texte .= $dureeSuivie . " suivies sur " . $session->getDuree() . " de formation"; - $texte .= "</li>"; + $annee = Formation::getAnnee($inscription->getInstance()->getDebut(true)); + $array[$annee][] = $inscription; + } + ksort($array); + $array = array_reverse($array, true); + + $texte = ""; + foreach ($array as $annee => $inscriptions) { + usort($inscriptions, function (FormationInstanceInscrit $a, FormationInstanceInscrit $b) { return $a->getInstance()->getDebut(true) > $b->getInstance()->getDebut(true);}); + $texte .= "<div>"; + $texte .= "<h3>Formations pour l'année ".$annee."/" . ($annee+1)."</h3>"; + $texte .= "<ul>"; + foreach ($inscriptions as $inscription) { + $dureeSuivie = $inscription->getDureePresence(); + $session = $inscription->getInstance(); + $sessionEtat = $session->getEtat()->getCode(); + if ($dureeSuivie != '0 heures ' and ($sessionEtat === SessionEtats::ETAT_CLOTURE_INSTANCE or $sessionEtat === SessionEtats::ETAT_ATTENTE_RETOURS)) { + $libelle = $session->getFormation()->getLibelle(); + $periode = $session->getPeriode(); + $texte .= "<li>"; + $texte .= $libelle . " (" . $periode . ")<br/>"; + $texte .= $dureeSuivie . " suivies sur " . $session->getDuree() . " de formation"; + $texte .= "</li>"; + } } + $texte .= "</ul>"; } - $texte .= "<ul>"; $vars = [ 'agent' => $agent, @@ -153,6 +169,7 @@ class FormationInstanceDocumentController extends AbstractActionController $exporter->setRenderer($this->renderer); $exporter->getMpdf()->SetTitle($rendu->getSujet()); $exporter->setHeaderScript('/application/document/pdf/entete-logo-ccc'); + $exporter->getMpdf()->SetMargins(0,0,50); $exporter->setFooterScript('/application/document/pdf/pied-vide'); $exporter->addBodyHtml($corps); return $exporter->export($rendu->getSujet(), PdfExporter::DESTINATION_BROWSER, null);