Blame view

src/Model/Table/SuivisTable.php 3.53 KB
6c4edfa3   Alexandre   First Commit LabI...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
namespace App\Model\Table;

use App\Model\Entity\Suivi;
use Cake\ORM\Query;
use Cake\ORM\RulesChecker;
use Cake\ORM\Table;
use Cake\Validation\Validator;

/**
 * Suivis Model
 *
 * @property \Cake\ORM\Association\BelongsTo $Materiels
 * @property \Cake\ORM\Association\HasMany $Documents
 */
0e5846aa   Alexandre   Css bouton valide...
16
class SuivisTable extends AppTable
6c4edfa3   Alexandre   First Commit LabI...
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{

    /**
     * Initialize method
     *
     * @param array $config The configuration for the Table.
     * @return void
     */
    public function initialize(array $config)
    {
        parent::initialize($config);

        $this->table('suivis');
        $this->displayField('id');
        $this->primaryKey('id');

        $this->addBehavior('Timestamp');

        $this->belongsTo('Materiels', [
            'foreignKey' => 'materiel_id',
            'joinType' => 'INNER'
        ]);
        $this->hasMany('Documents', [
            'foreignKey' => 'suivi_id'
        ]);
    }

    /**
     * Default validation rules.
     *
     * @param \Cake\Validation\Validator $validator Validator instance.
     * @return \Cake\Validation\Validator
     */
    public function validationDefault(Validator $validator)
    {
19798ef9   Alexandre   Mode_install, maj...
52
    	$validator
6c4edfa3   Alexandre   First Commit LabI...
53
54
            ->integer('id')
            ->allowEmpty('id', 'create');
19798ef9   Alexandre   Mode_install, maj...
55
    	
6c4edfa3   Alexandre   First Commit LabI...
56
        $validator
19798ef9   Alexandre   Mode_install, maj...
57
58
59
            ->integer('materiel_id');
    	
    	$validator
6c4edfa3   Alexandre   First Commit LabI...
60
61
62
            ->allowEmpty('date_controle');

        $validator
0e5846aa   Alexandre   Css bouton valide...
63
64
          ->allowEmpty('date_prochain_controle');
        
6c4edfa3   Alexandre   First Commit LabI...
65
        $validator
19798ef9   Alexandre   Mode_install, maj...
66
67
            ->allowEmpty('type_intervention')
            ->add('type_intervention', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
6c4edfa3   Alexandre   First Commit LabI...
68
69

        $validator
19798ef9   Alexandre   Mode_install, maj...
70
71
            ->notEmpty('organisme')
            ->add('organisme', 'valid', ['rule' => 'check_string', 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
6c4edfa3   Alexandre   First Commit LabI...
72
73

        $validator
19798ef9   Alexandre   Mode_install, maj...
74
75
76
77
            ->numeric('frequence', 'Veuillez saisir des chiffres uniquement.')
            ->allowEmpty('frequence')
            ->maxLength('frequence', 8, '8 Chiffres maximum');
        
6c4edfa3   Alexandre   First Commit LabI...
78
        $validator
19798ef9   Alexandre   Mode_install, maj...
79
80
            ->allowEmpty('commentaire')
            ->add('commentaire', 'valid', ['rule' => ['check_string_with_some_special_cars'], 'message' => 'Ce champ contient des caractères interdits', 'provider' => 'table']);
6c4edfa3   Alexandre   First Commit LabI...
81

6c4edfa3   Alexandre   First Commit LabI...
82
83
84
85

        return $validator;
    }

0e5846aa   Alexandre   Css bouton valide...
86

19798ef9   Alexandre   Mode_install, maj...
87
    
6c4edfa3   Alexandre   First Commit LabI...
88
89
90
91
92
93
94
95
96
    /**
     * Returns a rules checker object that will be used for validating
     * application integrity.
     *
     * @param \Cake\ORM\RulesChecker $rules The rules object to be modified.
     * @return \Cake\ORM\RulesChecker
     */
    public function buildRules(RulesChecker $rules)
    {
0e5846aa   Alexandre   Css bouton valide...
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
    	
    	$checkNextDateControlIsAfterDateControl = function($entity) {
    		
    		 $controle = $entity->date_controle;
    		 if (empty($controle)) return true;
    		 $prochainControle = $entity->date_prochain_controle;
    		 $controle = explode("/", $controle);
    		 $prochainControle = explode("/", $prochainControle);
    		 $controle = $controle[2].$controle[1].$controle[0];
    		 $prochainControle = $prochainControle[2].$prochainControle[1].$prochainControle[0];
    		 if ($controle > $prochainControle) {
    			 return false;
    		 }
    		 return true;

    	};
    	
    	$rules->add($checkNextDateControlIsAfterDateControl, [
    			'errorField' => 'date_prochain_controle',
    			'message' => 'La date de la prochaine intervention dois être postérieure à la date de l\'intervention précédente.'
    	]);
    	
6c4edfa3   Alexandre   First Commit LabI...
119
120
121
122
        $rules->add($rules->existsIn(['materiel_id'], 'Materiels'));
        return $rules;
    }
}