Blame view

src/Model/Table/SuivisTable.php 3.66 KB
6c4edfa3   Alexandre   First Commit LabI...
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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
ebe38bef   Alexandre   #3586 Ajout assoc...
14
 * @property \Cake\ORM\Association\BelongsTo $TypeSuivis
6c4edfa3   Alexandre   First Commit LabI...
15
16
 * @property \Cake\ORM\Association\HasMany $Documents
 */
0e5846aa   Alexandre   Css bouton valide...
17
class SuivisTable extends AppTable
6c4edfa3   Alexandre   First Commit LabI...
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{

    /**
     * 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'
        ]);
ebe38bef   Alexandre   #3586 Ajout assoc...
40
41
42
43
44
        
        $this->belongsTo('TypeSuivis', [
        		'foreignKey' => 'type_suivi_id'
        ]);
        
6c4edfa3   Alexandre   First Commit LabI...
45
46
47
48
49
50
51
52
53
54
55
56
57
        $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...
58
    	$validator
6c4edfa3   Alexandre   First Commit LabI...
59
60
            ->integer('id')
            ->allowEmpty('id', 'create');
19798ef9   Alexandre   Mode_install, maj...
61
    	
6c4edfa3   Alexandre   First Commit LabI...
62
        $validator
19798ef9   Alexandre   Mode_install, maj...
63
64
65
            ->integer('materiel_id');
    	
    	$validator
6c4edfa3   Alexandre   First Commit LabI...
66
67
68
            ->allowEmpty('date_controle');

        $validator
0e5846aa   Alexandre   Css bouton valide...
69
          ->allowEmpty('date_prochain_controle');
6c4edfa3   Alexandre   First Commit LabI...
70
71

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

        $validator
19798ef9   Alexandre   Mode_install, maj...
76
77
78
79
            ->numeric('frequence', 'Veuillez saisir des chiffres uniquement.')
            ->allowEmpty('frequence')
            ->maxLength('frequence', 8, '8 Chiffres maximum');
        
6c4edfa3   Alexandre   First Commit LabI...
80
        $validator
e55ca961   Alexandre   Version: 2.4.2.8
81
82
83
            ->allowEmpty('type_frequence');
            
        $validator
19798ef9   Alexandre   Mode_install, maj...
84
85
            ->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...
86

6c4edfa3   Alexandre   First Commit LabI...
87
88
89
90

        return $validator;
    }

0e5846aa   Alexandre   Css bouton valide...
91

19798ef9   Alexandre   Mode_install, maj...
92
    
6c4edfa3   Alexandre   First Commit LabI...
93
94
95
96
97
98
99
100
101
    /**
     * 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...
102
103
104
105
    	
    	$checkNextDateControlIsAfterDateControl = function($entity) {
    		
    		 $controle = $entity->date_controle;
ebe38bef   Alexandre   #3586 Ajout assoc...
106
107
108
    		 $p_controle = $entity->date_prochain_controle;
    		 if (empty($controle) || empty($p_controle)) return true;
    		 $prochainControle = $p_controle;
0e5846aa   Alexandre   Css bouton valide...
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
    		 $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...
125
        $rules->add($rules->existsIn(['materiel_id'], 'Materiels'));
ebe38bef   Alexandre   #3586 Ajout assoc...
126
        $rules->add($rules->existsIn(['type_suivi_id'], 'TypeSuivis'));
6c4edfa3   Alexandre   First Commit LabI...
127
128
129
        return $rules;
    }
}