Skip to content
Snippets Groups Projects
Commit 3f1c6dba authored by Théo BOYER's avatar Théo BOYER
Browse files

[Bilan] Fix calcul et paragraphe des sous-traitants

parent 90ca4f34
No related branches found
No related tags found
1 merge request!306[Ergonomie] Fix Bilan + Calcul dynamique de l'impact potentiel + PDF AIPD + Odre d'éléments traitements + Données Hors UE
Pipeline #90530 failed
......@@ -2,7 +2,6 @@ CHANGELOG
=========
## [2.4.9] - 2025-XX-XX
### Ajout
- [Global] Ajout des champs absents dans les documents Word générés depuis la liste des différents modules.
- [Formulaire] Ajout d'un label aux champs type et liste des structures dans la gestion des droits des modèles d'AIPD et dans les référentiels, ainsi que dans la duplication.
- [Accessibilité] Ajout du plan d'actions 2025.
- [Preuves] Ajout de la possibilité de déposer des documents ayant comme extension .txt, .log, .csv et .md.
......@@ -24,14 +23,16 @@ CHANGELOG
- [Traitements] Le critère « Décisions automatisées avec effet » est renommé en « Décision automatique avec effet juridique ».
- [Traitements] Le critère « Exclusion automatique d'un service » est renommé en « Exclusion du bénéfice d’un droit, d’un service ou contrat ».
- [Traitements] Déplacement des mesures de sécurité et confidentialité par ordre alphabétique.
- [Sous-traitants] Inversion de la case à cocher de l'envoi de données hors UE en dans l'UE.
- [Indice de maturité] Modification du bouton de modification pour s'afficher que s'il y a des préconisations dans la synthèse d'un indice de maturité.
- [Bilan] Modification de l'affichage des données du dernier indice de maturité dans le bilan.
- [AIPD] Modification des dates des avis des acteurs pour ne rien afficher par défaut dans le PDF d'une AIPD.
### Fix
- [Traitements] Fix de certains champs manquants dans le document Word généré depuis la liste des traitements.
- [Global] Fix de certains champs manquants dans les documents PDF et Word générés depuis les différents modules.
- [Indice de maturité] Fix de l'affichage du graphique dans le bilan et la synthèse d'un indice de maturité.
- [Bilan] Fix de l'affichage de la date dans le tableau des actions de protection mises en place.
- [Bilan] Fix de certaines données présentes dans le tableau annexe du registre des traitements.
- [Bilan] Fix de certaines données calculées dans le paragraphe du registre des sous-traitants.
- [Registre public] Fix affichage des durées de conservation.
- [Migration] Fix d'une migration qui cause une erreur lors du déploiement.
......
......@@ -56,6 +56,25 @@ class ContractorGenerator extends AbstractGenerator implements ImpressionGenerat
$nbMaintainsTreatmentRegister = 0;
$nbSendingDataOutsideEu = 0;
foreach ($data as $contractor) {
// Verified contractual clauses
if ($contractor->isContractualClausesVerified()) {
++$nbVerifiedContractualClauses;
}
// Adopted security features
if ($contractor->isAdoptedSecurityFeatures()) {
++$nbAdoptedSecurityFeatures;
}
// Maintains treatment register
if ($contractor->isMaintainsTreatmentRegister()) {
++$nbMaintainsTreatmentRegister;
}
// Sending data outside EU
if (!$contractor->isSendingDataOutsideEu()) {
++$nbSendingDataOutsideEu;
}
}
$section->addTitle('Registre des sous-traitants', 2);
if (empty($data)) {
......@@ -65,7 +84,27 @@ class ContractorGenerator extends AbstractGenerator implements ImpressionGenerat
}
$section->addText("Un recensement des sous-traitants gérants des données à caractère personnel de {$collectivity} a été effectué.");
$section->addText("Il y a {$nbContractors} sous-traitants identifiés, les clauses contractuelles de {$nbVerifiedContractualClauses} d’entre eux ont été vérifiées. {$nbAdoptedSecurityFeatures} sous-traitants ont adopté les éléments de sécurité nécessaires. {$nbMaintainsTreatmentRegister} sous-traitants tiennent à jour un registre des traitements. {$nbSendingDataOutsideEu} sous-traitants envois des données hors UE.");
$section->addText("Il y a " . ($nbContractors == 1 ? " un sous-traitant identifié." : "{$nbContractors} sous-traitants identifiés."));
$section->addListItem(
($nbVerifiedContractualClauses == 0 ? "Aucune clause contractuelle n’a été vérifiée ;" :
($nbVerifiedContractualClauses == 1 ? "1 clause contractuelle a été vérifiée ;" :
"{$nbVerifiedContractualClauses} clauses contractuelles vérifiées ;"))
);
$section->addListItem(
($nbAdoptedSecurityFeatures == 0 ? "Aucun sous-traitant n’a adopté les éléments de sécurité nécessaires ;" :
($nbAdoptedSecurityFeatures == 1 ? "1 sous-traitant a adopté les éléments de sécurité nécessaires ;" :
"{$nbAdoptedSecurityFeatures} sous-traitants ont adopté les éléments de sécurité nécessaires ;"))
);
$section->addListItem(
($nbMaintainsTreatmentRegister == 0 ? "Aucun sous-traitant ne tient à jour un registre des traitements ;" :
($nbMaintainsTreatmentRegister == 1 ? "1 sous-traitant tient à jour un registre des traitements ;" :
"{$nbMaintainsTreatmentRegister} sous-traitants tiennent à jour un registre des traitements ;"))
);
$section->addListItem(
($nbSendingDataOutsideEu == 0 ? "Aucun sous-traitant n'envoie des données hors Union européenne." :
($nbSendingDataOutsideEu == 1 ? "1 sous-traitant envoie des données hors Union européenne." :
"{$nbSendingDataOutsideEu} sous-traitants envoient des données hors Union européenne."))
);
$ContractorsListTable = $section->addTable($this->tableStyle);
$ContractorsListTable->addRow(null, ['tblHeader' => true, 'cantsplit' => true]);
......@@ -89,23 +128,6 @@ class ContractorGenerator extends AbstractGenerator implements ImpressionGenerat
$cell->addText($contractor->isMaintainsTreatmentRegister() ? 'Oui' : 'Non');
$cell = $ContractorsListTable->addCell(1500);
$cell->addText($contractor->isSendingDataOutsideEu() ? 'Oui' : 'Non');
// Verified contractual clauses
if ($contractor->isContractualClausesVerified()) {
++$nbVerifiedContractualClauses;
}
// Adopted security features
if ($contractor->isAdoptedSecurityFeatures()) {
++$nbAdoptedSecurityFeatures;
}
// Maintains treatment register
if ($contractor->isMaintainsTreatmentRegister()) {
++$nbMaintainsTreatmentRegister;
}
// Sending data outside EU
if (!$contractor->isSendingDataOutsideEu()) {
++$nbSendingDataOutsideEu;
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment