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

Correction : affichage erreur coresponsable soustraitence

Correction : add et edit d'une fiche
parent 75238e51
......@@ -61,7 +61,9 @@ class FichesController extends AppController
'TraitementRegistre',
'User',
'Valeur',
'WebdpoFiche'
'WebdpoFiche',
'WebdpoCoresponsable',
'WebdpoSoustraitance'
];
/**
......@@ -351,7 +353,12 @@ class FichesController extends AppController
}
}
if ($success == true) {
if ($success == true &&
empty($this->Fiche->validationErrors) &&
empty($this->WebdpoFiche->validationErrors) &&
empty($this->WebdpoCoresponsable->validationErrors) &&
empty($this->WebdpoSoustraitance->validationErrors)
) {
$this->Fiche->commit();
$this->Session->setFlash(__d('fiche', 'fiche.flashsuccessTraitementEnregistrer'), 'flashsuccess');
......@@ -691,7 +698,12 @@ class FichesController extends AppController
$success = $this->WebdpoFiche->saveWithVirtualFields($data, $formulaireFields, $formulaireOptions, $formulaireOLD['Formulaire']['oldformulaire']);
if ($success == true) {
if ($success == true &&
empty($this->Fiche->validationErrors) &&
empty($this->WebdpoFiche->validationErrors) &&
empty($this->WebdpoCoresponsable->validationErrors) &&
empty($this->WebdpoSoustraitance->validationErrors)
) {
$this->Fiche->commit();
$this->Session->setFlash(__d('fiche', 'fiche.flashsuccessTraitementModifier'), 'flashsuccess');
......@@ -718,12 +730,20 @@ class FichesController extends AppController
]);
// On récupère en BDD les champs tous les champs du formulaire
$this->getFormulaireFields($fiche['Fiche']['form_id']);
$this->getFormulaireFields($fiche['Fiche']['form_id'], false);
// Récupère en BDD les normes. Renvoie les normes et les descriptions
$this->getNormes();
if (empty($this->request->data)) {
$this->request->data['Fiche']['norme_id'] = $fiche['Fiche']['norme_id'];
$this->request->data['Fiche']['coresponsable'] = $fiche['Fiche']['coresponsable'];
$this->request->data['Fiche']['soustraitance'] = $fiche['Fiche']['soustraitance'];
$this->request->data['Fiche']['obligation_pia'] = $fiche['Fiche']['obligation_pia'];
$this->request->data['Fiche']['realisation_pia'] = $fiche['Fiche']['realisation_pia'];
$this->request->data['Fiche']['depot_pia'] = $fiche['Fiche']['depot_pia'];
// Récupère les valeurs des champs du traitement
$this->getValueFields($id);
}
......@@ -752,43 +772,9 @@ class FichesController extends AppController
// On récupère la soustraitance
$this->_soustraitances($id);
// if ($formulaireOLD['Formulaire']['oldformulaire'] === true) {
// // Reprise des données de la version v1.1.0 pour la coresponsabilité
//// $responsables = $this->_responsables();
//// $this->set(compact('responsables'));
//// $this->request->data['Fiche']['coresponsableid'] = $fiche['Fiche']['coresponsableid'];
//
// // Reprise des données de la version v1.1.0 pour la soustraitance
// if ($formulaireOLD['Formulaire']['soustraitant'] === true && $fiche['Fiche']['soustraitance'] === true) {
// $soustraitance = $this->Formulaire->find('first', [
// 'conditions' => [
// 'id' => $fiche['Fiche']['form_id']
// ],
// 'fields' => [
// 'soustraitant'
// ]
// ]);
//
// $soustraitants = $this->_soustraitants();
//
// $this->set(compact('soustraitance', 'soustraitants'));
// }
// } else {
// // Récupére en BDD les options des champs défini lors de la création du formulaire
// $this->getOptionsFields($fiche['Fiche']['form_id']);
// }
// Récupére en BDD les options des champs défini lors de la création du formulaire
$this->getOptionsFields($fiche['Fiche']['form_id']);
$this->request->data['Fiche']['norme_id'] = $fiche['Fiche']['norme_id'];
$this->request->data['Fiche']['coresponsable'] = $fiche['Fiche']['coresponsable'];
$this->request->data['Fiche']['soustraitance'] = $fiche['Fiche']['soustraitance'];
$this->request->data['Fiche']['obligation_pia'] = $fiche['Fiche']['obligation_pia'];
$this->request->data['Fiche']['realisation_pia'] = $fiche['Fiche']['realisation_pia'];
$this->request->data['Fiche']['depot_pia'] = $fiche['Fiche']['depot_pia'];
$typages = $this->_typages();
$this->set(compact('formulaireOLD', 'typages'));
......@@ -2201,23 +2187,4 @@ class FichesController extends AppController
return $typages;
}
public function test()
{
if (empty($this->request->data) === false) {
$webdpoFiche = ClassRegistry::init('WebdpoFiche');
$webdpoFiche->invalidate('outilnom', 'Erreur outilnom');
debug($this->request->data);
$webdpoSoustraitance = ClassRegistry::init('WebdpoSoustraitance');
$webdpoSoustraitance->validate = ['coucou' => ['notBlank' => ['rule' => ['notBlank']]]];
debug(in_array(false, $webdpoSoustraitance->saveAll($this->request->data['WebdpoSoustraitance'], ['atomic' => false, 'validate' => 'only'])) !== true);//@fixme
debug($webdpoSoustraitance->validationErrors);
/*for($i=0;$i<=1;$i++){
$webdpoSoustraitance->invalidate("coucou['.$i.']", 'Erreur coucou');
}*/
}
}
}
<?php
echo $this->Html->script([
'smalot-bootstrap-datetimepicker/js/bootstrap-datetimepicker.min',
'smalot-bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.fr.js'
]);
echo $this->Html->css('/js/smalot-bootstrap-datetimepicker/css/bootstrap-datetimepicker.min');
$calendrier = [];
foreach ($champs as $key => $value) {
$details = json_decode($value['Champ']['details'], true);
......
<!-- Onglet Information concernant le traitement -->
<div id="information_traitement" class="tab-pane">
<div id="information_traitement" class="tab-pane active">
<?php
// echo $this->WebcilForm->create('informationGenerale', [
// 'autocomplete' => 'off',
......
<?php
echo $this->Html->script('jquery-mask-plugin/dist/jquery.mask.min.js');
if (isset($this->validationErrors['Fiche']) && !empty($this->validationErrors['Fiche'])) {
?>
<div class="alert alert-danger" role="alert">
<span class="fa fa-exclamation-circle fa-fw" aria-hidden="true"><!----></span>
<span class="sr-only">Error:</span>
Ces erreurs se sont produites sur les champs suivants :
<ul>
<?php
$champ = null;
foreach ($this->validationErrors['Fiche'] as $key => $errorChamps) {
foreach ($champs as $value) {
$options = json_decode($value['Champ']['details'], true);
if (isset($options['name']) === true && $key == $options['name']) {
$champ = $options['label'];
}
}
foreach ($errorChamps as $error) {
if ($champ === null) {
$champ = __d('fiche', 'fiche.champ'.ucfirst($key));
}
echo '<li>' . $champ . /*' : ' . $error .*/ '</li>';
}
$champ = null;
}
?>
</ul>
</div>
<?php
}
echo $this->WebcilForm->create('Fiche', [
'type' => 'file',
'autocomplete' => 'off',
'inputDefaults' => ['div' => false],
'class' => 'form-horizontal',
'novalidate' => 'novalidate'
]);
?>
<div class="container-fluid" role="main">
<ul class="nav nav-tabs nav-justified" role="tablist">
<li class="active">
<a href="#information_traitement" role="tab" data-toggle="tab">
<i class="fa fa-pencil fa-fw"><!----></i>
<?php
echo __d('fiche', 'fiche.ongletInformationTraitement');
?>
</a>
</li>
<li>
<a href="#information_complementaire" role="tab" data-toggle="tab">
<i class="fa fa-pencil fa-fw"><!----></i>
<?php
echo __d('fiche', 'fiche.ongletInformationComplementaire');
?>
</a>
</li>
<?php
if ($soustraitance['Formulaire']['soustraitant'] === true) {
?>
<li>
<a href="#ongletSoustraitance" role="tab" data-toggle="tab">
<i class="fa fa-pencil fa-fw"><!----></i>
<?php
echo __d('fiche', 'fiche.ongletSousTraitant');
?>
</a>
</li>
<?php
}
?>
<li>
<a href="#info_formulaire" role="tab" data-toggle="tab">
<i class="fa fa-pencil fa-fw"><!----></i>
<?php
echo __d('fiche', 'fiche.ongletFormulaire');
?>
</a>
</li>
<li>
<a href="#annexe" role="tab" data-toggle="tab">
<i class="fa fa-pencil fa-fw"><!----></i>
<?php
echo __d('fiche', 'fiche.ongletAnnexe');
?>
</a>
</li>
<?php
if (!empty($responsables)) {
?>
<li id="liOngletCoresponsable" class="disabled">
<a id="aOngletCoresponsable" href="#ongletCoresponsable" role="" data-toggle="">
<i class="fa fa-pencil fa-fw"><!----></i>
<?php
echo __d('fiche', 'fiche.ongletCoresponsable');
?>
</a>
</li>
<?php
}
?>
</ul>
<div class="tab-content">
<!-- Onglet Information concernant le traitement -->
<div id="information_traitement" class="tab-pane active">
<br/>
<!-- Information sur le rédacteur -->
<div class="col-md-12">
<span class='labelFormulaire'>
<?php
echo __d('fiche', 'fiche.textInfoContact');
?>
</span>
<div class="row row35"></div>
</div>
<div class="row">
<!-- Colonne de gauche -->
<div class="col-md-6">
<?php
echo $this->WebcilForm->input('declarantpersonnenom', [
'id' => 'declarantpersonnenom',
'readonly' => true,
'required' => true
]);
echo $this->WebcilForm->input('declarantservice', [
'id' => 'declarantservice',
'readonly' => true,
'required' => true
]);
echo $this->WebcilForm->input('declarantpersonneportable', [
'id' => 'declarantpersonneportable',
'readonly' => true,
'placeholder' => false
]);
?>
</div>
<!-- Colonne de droite -->
<div class="col-md-6">
<?php
echo $this->WebcilForm->inputs([
'declarantpersonneemail' => [
'id' => 'declarantpersonneemail',
'readonly' => true,
'required' => true
],
'declarantpersonnefix' => [
'id' => 'declarantpersonnefix',
'readonly' => true,
'placeholder' => false
]
]);
?>
</div>
</div>
<?php
if ($this->Autorisation->isDpo()) {
?>
<!-- Information sur la norme -->
<div class="col-md-12">
<span class='labelFormulaire'>
<?php
echo __d('fiche', 'fiche.textInfoNorme');
?>
</span>
<div class="row row35"></div>
</div>
<div class="row">
<!-- Colonne de gauche -->
<div class="col-md-6">
<?php
echo $this->WebcilForm->input('norme', [
'id' => 'norme',
'options' => $options_normes,
'class' => 'usersDeroulant transformSelect form-control',
'empty' => true,
'data-placeholder' => __d('norme', 'norme.placeholderFiltreNorme'),
'value' => $this->request->data['Fiche']['norme_id']
]);
?>
</div>
<!-- Colonne de droite -->
<div class="col-md-6">
<?php
echo $this->WebcilForm->input('descriptionNorme', [
'id' => 'descriptionNorme',
'type' => 'textarea',
'readonly' => true,
'placeholder' => false
]);
?>
</div>
</div>
<?php
} else {
echo $this->WebcilForm->hidden('norme', ['value' => '']);
}
?>
<!-- Information concernant le traitement -->
<div class="col-md-12">
<span class='labelFormulaire'>
<?php
echo __d('fiche', 'fiche.textInfoTraitement');
?>
</span>
<div class="row row35"></div>
</div>
<div class="row">
<!-- Colonne de gauche -->
<div class="col-md-6">
<?php
echo $this->WebcilForm->inputs([
'outilnom' => [
'id' => 'outilnom',
'required' => true,
'placeholder' => false
],
'transfertHorsUe' => [
'id' => 'transfertHorsUe',
'options' => [
'Oui' => 'Oui',
'Non' => 'Non'
],
'class' => 'transformSelect form-control',
'required' => true,
'empty' => false,
'placeholder' => false
],
'donneesSensible' => [
'id' => 'donneesSensible',
'options' => [
'Oui' => 'Oui',
'Non' => 'Non'
],
'class' => 'transformSelect form-control',
'required' => true,
'empty' => false,
'placeholder' => false
]
]);
?>
</div>
<!-- Colonne de droite -->
<div class="col-md-6">
<?php
echo $this->WebcilForm->input('finaliteprincipale', [
'id' => 'finaliteprincipale',
'type' => 'textarea',
'required' => true,
'placeholder' => false
]);
?>
</div>
</div>
<?php
if (!empty($responsables)) {
?>
<!-- Co-responsabilité sur le traitement -->
<div class="col-md-12">
<span class='labelFormulaire'>
<?php
echo __d('fiche', 'fiche.textInfoCoresponsable');
?>
</span>
<div class="row row35"></div>
</div>
<div class="row">
<!-- Colonne de gauche -->
<div class="col-md-6">
<?php
echo $this->WebcilForm->input('coresponsable', [
'id' => 'coresponsable',
'options' => [
true => 'Oui',
false => 'Non'
],
'class' => 'transformSelect form-control',
'required' => true,
'empty' => false,
'data-placeholder' => ' ',
'default' => false
]);
?>
</div>
</div>
<?php
} else {
echo $this->WebcilForm->hidden('coresponsable', ['value' => '0']);
}
?>
</div>
<!-- Fin onglet Information concernant le traitement-->
<?php
// Onglet information complémentaire
echo $this->element("Fiches/tabs/informationComplementaire");
// Onglet sous-traitant
echo $this->WebcilForm->input('soustraitantid', [
'id' => 'soustraitantid_hidden',
'type' => 'hidden'
]);
if ($soustraitance['Formulaire']['soustraitant'] === true) {
echo $this->element("Fiches/ongletSoustraitance");
} echo $this->WebcilForm->input('soustraitant', [
'id' => 'soustraitant',
'type' => 'hidden',
'value' => $soustraitance['Formulaire']['soustraitant']
]);
// Fin onglet sous-traitant
?>
<!-- Onglet Formulaire -->
<div id="info_formulaire" class="tab-pane">
<!-- Corps du formulaire -->
<div id="form-container" class="col-md-12">
<?php
echo $this->element('Fiches/tabs/formulaire');
?>
</div>
</div>
<!-- Fin onglet Formulaire -->
<?php
// Onglet Annexe(s)
echo $this->element('Fiches/tabs/annexe');
// Fin onglet Annexe(s)
// Onglet Co-responsable
echo $this->element('Fiches/ongletCoresponsable');
// Fin onglet Co-responsable
?>
</div>
<div class="row">
<?php
echo $this->WebcilForm->hidden('id', ['value' => $id]);
?>
<!-- Groupe bouton -->
<div class="col-md-12 top17 text-center">
<div class="btn-group">
<?php
// Groupe de boutons
echo $this->WebcilForm->buttons(['Cancel', 'Save']);
?>
</div>
</div>
</div>
</div>
<?php
echo $this->WebcilForm->end();
?>
<script type="text/javascript">
$(document).ready(function () {
var descriptions = <?php echo json_encode($descriptions_normes)?>;
var normeId = <?php echo json_encode($norme_id);?>;
if (normeId !== null) {
var str = descriptions[normeId].replace(/<br\s*[\/]?>/gi, "\n");
$("#descriptionNorme").val(str);
}
$("#norme").change(function () {
idNorme = $(this).val();
var str = '';
if (idNorme === '') {
str = null;
} else {
str = descriptions[idNorme].replace(/<br\s*[\/]?>/gi, "\n");
}
$("#descriptionNorme").val(str);
});
// Mise en évidence des onglets ayant des erreurs.
$("div.form-group .error-message").closest("div.tab-pane").each(function(idx, pane) {
$( "a[href='#"+$(pane).attr('id')+"']" ).append("<span class='fa fa-exclamation-circle fa-danger' aria-hidden='true'><!----></span>");
});
// Mask champs
// Information sur le rédacteur
$('#declarantpersonneportable').mask("00 00 00 00 00", {placeholder: "__ __ __ __ __"});
$('#declarantpersonnefix').mask("00 00 00 00 00", {placeholder: "__ __ __ __ __"});
});
</script>
\ No newline at end of file
<?php
echo $this->WebcilForm->create();
echo $this->WebcilForm->input('WebdpoFiche.outilnom');
echo $this->Form->input('WebdpoSoustraitance.0.coucou');
echo $this->Form->input('WebdpoSoustraitance.1.coucou');
echo $this->WebcilForm->buttons(['Cancel', 'Save']);
echo $this->WebcilForm->end();
\ No newline at end of file
<?php
echo $this->Html->script([
'FormulaireGenerator/createFormulaire',
]);
echo $this->WebcilForm->create('Formulaire', [
'autocomplete' => 'off',
'inputDefaults' => ['div' => false],
......@@ -66,10 +70,10 @@ if ($formulaireOLD === false) {
<!-- Co-responsable -->
<?php
if ($formulaireOLD === true) {
if ($formulaireOLD === false) {
?>
<li>
<a href="#ongletCoresponsable" role="tab" data-toggle="tab">
<a href="#ongletComplementaireCoresponsable" role="tab" data-toggle="tab">
<i class="fa fa-eye fa-fw"><!----></i>
<?php
echo __d('fiche', 'fiche.ongletCoresponsable');
......@@ -80,7 +84,7 @@ if ($formulaireOLD === false) {
} else {
?>
<li>
<a href="#ongletComplementaireCoresponsable" role="tab" data-toggle="tab">
<a href="#ongletCoresponsable" role="tab" data-toggle="tab">
<i class="fa fa-eye fa-fw"><!----></i>
<?php
echo __d('fiche', 'fiche.ongletCoresponsable');
......@@ -93,20 +97,7 @@ if ($formulaireOLD === false) {
<!-- Sous-traitance -->
<?php
if ($formulaireOLD === true) {
if ($soustraitantOLD === true) {
?>
<li>
<a href="#soustraitant" role="tab" data-toggle="tab">
<i class="fa fa-eye fa-fw"><!----></i>
<?php