Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
90.54% |
67 / 74 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
TreatmentCloner | |
90.54% |
67 / 74 |
|
0.00% |
0 / 1 |
17.24 | |
0.00% |
0 / 1 |
cloneReferentForCollectivity | |
90.54% |
67 / 74 |
|
0.00% |
0 / 1 |
17.24 |
1 | <?php |
2 | |
3 | /** |
4 | * This file is part of the MADIS - RGPD Management application. |
5 | * |
6 | * @copyright Copyright (c) 2018-2019 Soluris - Solutions Numériques Territoriales Innovantes |
7 | * |
8 | * This program is free software: you can redistribute it and/or modify |
9 | * it under the terms of the GNU Affero General Public License as published by |
10 | * the Free Software Foundation, either version 3 of the License, or |
11 | * (at your option) any later version. |
12 | * |
13 | * This program is distributed in the hope that it will be useful, |
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | * GNU Affero General Public License for more details. |
17 | * |
18 | * You should have received a copy of the GNU Affero General Public License |
19 | * along with this program. If not, see <https://www.gnu.org/licenses/>. |
20 | */ |
21 | |
22 | declare(strict_types=1); |
23 | |
24 | namespace App\Domain\Admin\Cloner; |
25 | |
26 | use App\Domain\Registry\Model as RegistryModel; |
27 | use App\Domain\User\Model as UserModel; |
28 | |
29 | class TreatmentCloner extends AbstractCloner |
30 | { |
31 | /** |
32 | * @param RegistryModel\Treatment $referent |
33 | * |
34 | * @throws \Exception |
35 | */ |
36 | protected function cloneReferentForCollectivity($referent, UserModel\Collectivity $collectivity): RegistryModel\Treatment |
37 | { |
38 | $treatment = new RegistryModel\Treatment(); |
39 | |
40 | $treatment->setName($referent->getName()); |
41 | $treatment->setGoal($referent->getGoal()); |
42 | $treatment->setManager($referent->getManager()); |
43 | $treatment->setDpoMessage($referent->getDpoMessage()); |
44 | $treatment->setPublic($referent->getPublic()); |
45 | $treatment->setCoordonneesResponsableTraitement($referent->getCoordonneesResponsableTraitement()); |
46 | $treatment->setExemptAIPD($referent->getExemptAIPD()); |
47 | $treatment->setInnovativeUse($referent->isInnovativeUse()); |
48 | $treatment->setOtherCollectingMethod($referent->getOtherCollectingMethod()); |
49 | $treatment->setSoftware($referent->getSoftware()); |
50 | // Do not duplicate tools. Fixes https://gitlab.adullact.net/soluris/madis/-/issues/888 |
51 | // $treatment->setTools($referent->getTools()); |
52 | $treatment->setPaperProcessing($referent->isPaperProcessing()); |
53 | $treatment->setLegalBasis($referent->getLegalBasis()); |
54 | $treatment->setLegalBasisJustification($referent->getLegalBasisJustification()); |
55 | $treatment->setObservation($referent->getObservation()); |
56 | if (null !== $referent->getConcernedPeopleParticular()) { |
57 | $treatment->setConcernedPeopleParticular($referent->getConcernedPeopleParticular()); |
58 | } |
59 | if (null !== $referent->getConcernedPeopleUser()) { |
60 | $treatment->setConcernedPeopleUser($referent->getConcernedPeopleUser()); |
61 | } |
62 | if (null !== $referent->getConcernedPeopleAgent()) { |
63 | $treatment->setConcernedPeopleAgent($referent->getConcernedPeopleAgent()); |
64 | } |
65 | if (null !== $referent->getConcernedPeopleElected()) { |
66 | $treatment->setConcernedPeopleElected($referent->getConcernedPeopleElected()); |
67 | } |
68 | if (null !== $referent->getConcernedPeopleCompany()) { |
69 | $treatment->setConcernedPeopleCompany($referent->getConcernedPeopleCompany()); |
70 | } |
71 | if (null !== $referent->getConcernedPeoplePartner()) { |
72 | $treatment->setConcernedPeoplePartner($referent->getConcernedPeoplePartner()); |
73 | } |
74 | if (null !== $referent->getConcernedPeopleUsager()) { |
75 | $treatment->setConcernedPeopleUsager($referent->getConcernedPeopleUsager()); |
76 | } |
77 | if (null !== $referent->getConcernedPeopleOther()) { |
78 | $treatment->setConcernedPeopleOther($referent->getConcernedPeopleOther()); |
79 | } |
80 | $treatment->setDataCategories($referent->getDataCategories()); |
81 | $treatment->setDataCategoryOther($referent->getDataCategoryOther()); |
82 | $treatment->setDataOrigin($referent->getDataOrigin()); |
83 | $treatment->setRecipientCategory($referent->getRecipientCategory()); |
84 | if ($referent->getShelfLifes()) { |
85 | foreach ($referent->getShelfLifes() as $sl) { |
86 | /** @var RegistryModel\ShelfLife $sl */ |
87 | $newsl = new RegistryModel\ShelfLife(); |
88 | $newsl->setName($sl->getName()); |
89 | $newsl->setDuration(is_null($sl->getDuration()) ? '' : $sl->getDuration()); |
90 | $newsl->setUltimateFate($sl->getUltimateFate()); |
91 | $newsl->setTreatment($treatment); |
92 | $treatment->addShelfLife($newsl); |
93 | } |
94 | } |
95 | if (null !== $referent->getSecurityAccessControl()) { |
96 | $treatment->setSecurityAccessControl($referent->getSecurityAccessControl()); |
97 | } |
98 | if (null !== $referent->getSecurityUpdate()) { |
99 | $treatment->setSecurityUpdate($referent->getSecurityUpdate()); |
100 | } |
101 | if (null !== $referent->getSecuritySaving()) { |
102 | $treatment->setSecuritySaving($referent->getSecuritySaving()); |
103 | } |
104 | if (null !== $referent->getSecurityTracability()) { |
105 | $treatment->setSecurityTracability($referent->getSecurityTracability()); |
106 | } |
107 | if (null !== $referent->getSecurityOther()) { |
108 | $treatment->setSecurityOther($referent->getSecurityOther()); |
109 | } |
110 | $treatment->setStatut($referent->getStatut()); |
111 | $treatment->setLargeScaleCollection($referent->isLargeScaleCollection()); |
112 | $treatment->setDataCrossing($referent->isDataCrossing()); |
113 | $treatment->setAutomatedDecisionsWithLegalEffect($referent->isAutomatedDecisionsWithLegalEffect()); |
114 | $treatment->setEvaluationOrRating($referent->isEvaluationOrRating()); |
115 | $treatment->setAutomaticExclusionService($referent->isAutomaticExclusionService()); |
116 | $treatment->setVulnerablePeople($referent->isVulnerablePeople()); |
117 | $treatment->setSystematicMonitoring($referent->isSystematicMonitoring()); |
118 | $treatment->setActive($referent->isActive()); |
119 | $treatment->setSecurityEntitledPersons($referent->isSecurityEntitledPersons()); |
120 | $treatment->setSecurityOpenAccounts($referent->isSecurityOpenAccounts()); |
121 | $treatment->setSecuritySpecificitiesDelivered($referent->isSecuritySpecificitiesDelivered()); |
122 | $treatment->setAuthor($referent->getAuthor()); |
123 | $treatment->setCollectingMethod($referent->getCollectingMethod()); |
124 | $treatment->setEstimatedConcernedPeople($referent->getEstimatedConcernedPeople()); |
125 | $treatment->setLegalMentions($referent->getLegalMentions()); |
126 | $treatment->setConsentRequest($referent->getConsentRequest()); |
127 | $treatment->setConsentRequestFormat($referent->getConsentRequestFormat()); |
128 | |
129 | $treatment->setCollectivity($collectivity); |
130 | $treatment->setClonedFrom($referent); |
131 | |
132 | return $treatment; |
133 | } |
134 | } |