Commit 36b0adc3 authored by Théo GUILLON's avatar Théo GUILLON
Browse files

Correction : modification coresponsable

Correction : modification soustraitance
Ajout : erreur lorsqu'il y a pas de soustraitance
Ajout : erreur lorsqu'il y a pas de coresponsable
parent 17aa9503
......@@ -59,6 +59,47 @@ class Coresponsable extends AppModel {
* @version v1.0.0
*/
public $validate = [
'fiche_id' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
'responsable_id' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
'nomcoresponsable' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
'prenomcoresponsable' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
'fonctioncoresponsable' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
'emailcoresponsable' => [
[
'rule' => ['custom', REGEXP_EMAIL_FR],
'message' => 'validation.adresseMailNonValide'
]
],
'telephonecoresponsable' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
'raisonsocialestructure' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
'siretstructure' => [
'luhn' => [
'rule' => [
......@@ -68,14 +109,13 @@ class Coresponsable extends AppModel {
'message' => 'validation.numeroSIRETNonValide'
],
[
'rule' => 'numeric',
'rule' => 'numeric',
'message' => 'validation.numeroSIRETUniquementComposeChiffre'
],
],
'emailcoresponsable' => [
[
'rule' => ['custom', REGEXP_EMAIL_FR],
'message' => 'validation.adresseMailNonValide'
'apestructure' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
];
......
......@@ -323,14 +323,18 @@ class Fiche extends AppModel {
'organisation_id' => [
'areUnique' => [
'on' => 'update',
'rule' => array('areUnique', array('organisation_id', 'numero'), false),
'rule' => [
'areUnique', ['organisation_id', 'numero'], false
],
'message' => '... est déjà utilisée.'
]
],
'numero' => [
'areUnique' => [
'on' => 'update',
'rule' => array('areUnique', array('organisation_id', 'numero'), false),
'rule' => [
'areUnique', ['organisation_id', 'numero'], false
],
'message' => '... est déjà utilisée.'
]
],
......
......@@ -55,6 +55,21 @@ class Soustraitance extends AppModel {
* @version v1.0.0
*/
public $validate = [
'fiche_id' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
'soustraitant_id' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
'raisonsociale' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
'siret' => [
'luhn' => [
'rule' => [
......@@ -68,6 +83,11 @@ class Soustraitance extends AppModel {
'message' => 'validation.numeroSIRETUniquementComposeChiffre'
],
],
'ape' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
];
/**
......
......@@ -116,35 +116,6 @@ class WebdpoFiche extends AppModel {
]
],
// ---------------------------------------------------------------------
// ---------------------------------------------------------------------
'soustraitantid' => [
'checkNotBlankIf' => [
'rule' => ['checkNotBlankIf', 'soustraitant', true, ['1']]
]
],
'soustraitantsiret' => [
'checkNotBlankIf' => [
'rule' => ['checkNotBlankIf', 'soustraitant', true, ['1']]
]
],
'soustraitantape' => [
'checkNotBlankIf' => [
'rule' => ['checkNotBlankIf', 'soustraitant', true, ['1']]
]
],
// ---------------------------------------------------------------------
// --------------------------- CORESPONSABLE ---------------------------
'coresponsable' => [
'notBlank' => [
'rule' => ['notBlank']
]
],
'coresponsables' => [
'checkNotBlankIf' => [
'rule' => ['checkNotBlankIf', 'coresponsable', true, ['1']]
]
],
// ---------------------------------------------------------------------
// ------------------------------- AIPD --------------------------------
// @info: usepia est un champ virtuel nécessaire venant du modèle Formulaire
'ressources_humaines' => [
......@@ -541,71 +512,73 @@ class WebdpoFiche extends AppModel {
protected function cleanupData(array $data, array $formulaireChamps, bool $formulaireOLD, array $fieldsToDelete)
{
// Fonctionnement pour les versions antérieur à la v1.1.0
if ($formulaireOLD == true) {
if ($data[$this->alias]['soustraitant'] == '0') {
$data[$this->alias]['soustraitant'] = 'Non';
unset(
$data[$this->alias]['soustraitantraisonsociale'],
$data[$this->alias]['soustraitantsiret'],
$data[$this->alias]['soustraitantape'],
$data[$this->alias]['soustraitanttelephone'],
$data[$this->alias]['soustraitantfax'],
$data[$this->alias]['soustraitantadresse'],
$data[$this->alias]['soustraitantemail']
);
} else {
$data[$this->alias]['soustraitant'] = 'Oui';
}
// @TODO faire cela au moment de la génération
// Ajout textuel de la coresponsabilité
if ($data['Fiche']['coresponsable'] == true) {
$data[$this->alias]['coresponsable'] = 'Oui';
} else {
// Suppression de la valeur de décrivant la prise de décision automatique si cela n'a pas été indiquer à Oui
if (isset($data[$this->alias]['decisionAutomatisee']) === false) {
$data[$this->alias]['decisionAutomatisee'] = 'Non';
}
$data[$this->alias]['coresponsable'] = 'Non';
}
if ($data[$this->alias]['decisionAutomatisee'] === 'Non') {
unset($data[$this->alias]['descriptionDecisionAutomatisee']);
}
// @TODO faire cela au moment de la génération
//Ajout textuel de la sous-traitance
if ($data['Fiche']['soustraitance'] == true) {
$data[$this->alias]['soustraitance'] = 'Oui';
} else {
$data[$this->alias]['soustraitance'] = 'Non';
}
// @TODO faire cela au moment de la génération
// @TODO passer le champ en column dans fiches
// Add value textuel en fonction
if (isset($data[$this->alias]['decisionAutomatisee']) === false) {
$data[$this->alias]['decisionAutomatisee'] = 'Non';
}
// Suppression de la valeur de décrivant la prise de décision automatique si cela n'a pas été indiquer à Oui
if ($data[$this->alias]['decisionAutomatisee'] === 'Non') {
unset($data[$this->alias]['descriptionDecisionAutomatisee']);
}
/**
* On supprimer les valeurs des champs du formulaire de la co-reponsabilité si il est indiqué qu'il n'y a pas
* de co-responsabilité sur le traitement
*/
if ($data['Fiche']['coresponsable'] == false) {
foreach ($formulaireChamps as $champ) {
if ($champ['Champ']['champ_coresponsable'] === true) {
$champDetails = json_decode(Hash::get($champ, 'Champ.details'));
if (isset($data[$this->alias][$champDetails->name])) {
unset($data[$this->alias][$champDetails->name]);
}
}
}
}
// if ($data['Fiche']['coresponsable'] == false) {
// foreach ($formulaireChamps as $champ) {
// if ($champ['Champ']['champ_coresponsable'] === true) {
// $champDetails = json_decode(Hash::get($champ, 'Champ.details'));
//
// if (isset($data[$this->alias][$champDetails->name])) {
// unset($data[$this->alias][$champDetails->name]);
// }
// }
// }
// }
/**
* On supprimer les valeurs des champs du formulaire de la sous-traitance si il est indiqué qu'il n'y a pas
* de sous-traitance sur le traitement
*/
if ($data['Fiche']['soustraitance'] == false) {
foreach ($formulaireChamps as $champ) {
if ($champ['Champ']['champ_soustraitant'] === true) {
$champDetails = json_decode(Hash::get($champ, 'Champ.details'));
if (isset($data[$this->alias][$champDetails->name])) {
unset($data[$this->alias][$champDetails->name]);
}
}
}
}
// if ($data['Fiche']['soustraitance'] == false) {
// foreach ($formulaireChamps as $champ) {
// if ($champ['Champ']['champ_soustraitant'] === true) {
// $champDetails = json_decode(Hash::get($champ, 'Champ.details'));
//
// if (isset($data[$this->alias][$champDetails->name])) {
// unset($data[$this->alias][$champDetails->name]);
// }
// }
// }
// }
// @TODO passer le champ en column dans fiches
// Suppression des valeurs associées aux transfère hors UE si cela n'a pas été indiquer dans les infos générale
if ($data[$this->alias]['transfertHorsUe'] === 'Non') {
unset($data[$this->alias]['horsue']);
}
// @TODO passer le champ en column dans fiches
// Suppression des valeurs associées aux données sensible si cela n'a pas été indiquer dans les infos générale
if ($data[$this->alias]['donneesSensible'] === 'Non') {
unset($data[$this->alias]['donneessensibles']);
......@@ -757,26 +730,29 @@ class WebdpoFiche extends AppModel {
private function coresponsableSave ($fiche_id, $dataCoresponsable, $useCoresponsable)
{
if (empty($fiche_id)) {
$success = true;
$Coresponsable = ClassRegistry::init('Coresponsable');
if (empty($dataCoresponsable['currentCoresponsable'])
&& empty($dataCoresponsable['coresponsables'])
&& $useCoresponsable == true
) {
$Coresponsable->invalidate('coresponsables', 'Champ obligatoire');
return false;
}
$success = true;
$Coresponsable = ClassRegistry::init('Coresponsable');
if (empty($fiche_id)) {
return false;
}
if ($useCoresponsable == false) {
$success = $Coresponsable->deleteAll([
'Coresponsable.fiche_id' => $fiche_id
]) && $success;
'Coresponsable.fiche_id' => $fiche_id
]) && $success;
return true;
}
if (empty($dataCoresponsable['currentCoresponsable']) && empty($dataCoresponsable['coresponsables'])) {
// @TODO Erreur sur le champs Coresponsables
return false;
}
if (isset($dataCoresponsable['currentCoresponsable']) && !empty($dataCoresponsable['currentCoresponsable']) && !empty($dataCoresponsable['coresponsables'])) {
foreach ($dataCoresponsable['currentCoresponsable'] as $currentCoresponsable) {
if (($key = array_search($currentCoresponsable['responsable_id'], $dataCoresponsable['coresponsables'])) !== false) {
......@@ -786,7 +762,8 @@ class WebdpoFiche extends AppModel {
$noDeleteCoresponsable = Hash::extract($dataCoresponsable['currentCoresponsable'], '{n}.coresponsable_id');
$success = $Coresponsable->deleteAll([
'Coresponsable.id !=' => $noDeleteCoresponsable
'Coresponsable.id !=' => $noDeleteCoresponsable,
'Coresponsable.fiche_id' => $fiche_id
]) && $success;
} else {
$success = $Coresponsable->deleteAll([
......@@ -833,12 +810,20 @@ class WebdpoFiche extends AppModel {
private function soustraitanceSave ($fiche_id, $dataSoustraitance, $useSoustraitance)
{
if (empty($fiche_id)) {
$success = true;
$Soustraitance = ClassRegistry::init('Soustraitance');
if (empty($dataSoustraitance['currentSoustraitance'])
&& empty($dataSoustraitance['soustraitances'])
&& $useSoustraitance == true
) {
$Soustraitance->invalidate('soustraitances', 'Champ obligatoire');
return false;
}
$success = true;
$Soustraitance = ClassRegistry::init('Soustraitance');
if (empty($fiche_id)) {
return false;
}
if ($useSoustraitance == false) {
$success = $Soustraitance->deleteAll([
......@@ -848,11 +833,6 @@ class WebdpoFiche extends AppModel {
return true;
}
if (empty($dataSoustraitance['currentSoustraitance']) && empty($dataSoustraitance['soustraitances'])) {
// @TODO Erreur sur le champs Soustraitances
return false;
}
if (isset($dataSoustraitance['currentSoustraitance']) && !empty($dataSoustraitance['currentSoustraitance']) && !empty($dataSoustraitance['soustraitances'])) {
foreach ($dataSoustraitance['currentSoustraitance'] as $currentSoustraitance) {
if (($key = array_search($currentSoustraitance['soustraitant_id'], $dataSoustraitance['soustraitances'])) !== false) {
......@@ -862,7 +842,8 @@ class WebdpoFiche extends AppModel {
$noDeleteSoustraitance = Hash::extract($dataSoustraitance['currentSoustraitance'], '{n}.soustraitance_id');
$success = $Soustraitance->deleteAll([
'Soustraitance.id !=' => $noDeleteSoustraitance
'Soustraitance.id !=' => $noDeleteSoustraitance,
'Soustraitance.fiche_id' => $fiche_id
]) && $success;
} else {
$success = $Soustraitance->deleteAll([
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment