Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16766 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
15446 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Form\Competency;
6
 
7
use Laminas\Form\Form;
8
use Laminas\Db\Adapter\AdapterInterface;
9
use Laminas\Log\LoggerInterface;
10
use LeadersLinked\Mapper\CompanySizeMapper;
11
use LeadersLinked\Mapper\IndustryMapper;
12
use LeadersLinked\Mapper\CompetencyTypeMapper;
13
use LeadersLinked\Mapper\BehaviorMapper;
14
 
15
class CompetencyForm extends Form
16
{
17
 
18
    /**
19
     *
20
     * @param AdapterInterface $adapter
21
     */
22
    public function __construct($adapter, $company_id = 0)
23
    {
24
        parent::__construct();
25
        $this->setInputFilter(new CompetencyFilter($adapter));
26
 
27
        $this->add([
28
            'name' => 'competency_type_id',
29
            'type' => \Laminas\Form\Element\Select::class,
30
            'attributes' => [
31
                'id' => 'competency_type_id',
32
            ],
33
            'options' => [
34
                'value_options' => $this->getSelectCompetencyTypesOptions($adapter, $company_id)
35
            ]
36
        ]);
37
 
38
 
39
        $this->add([
40
            'name' => 'name',
41
            'type' => \Laminas\Form\Element\Text::class,
42
             'attributes' => [
43
                'maxlength' 	=> 128,
44
                'id' 			=> 'name',
45
            ]
46
        ]);
47
 
48
        $this->add([
49
            'name' => 'description',
50
            'type' => \Laminas\Form\Element\Textarea::class,
51
            'attributes' => [
52
                'rows' => 5,
53
                'maxlength' 	=> 512,
54
                'id'    => 'description',
55
            ]
56
        ]);
57
 
58
        $this->add([
59
            'name' => 'behavior_id',
60
            'type' => \Laminas\Form\Element\Select::class,
61
            'attributes' => [
62
                'multiple' 	=> 'yes',
63
                'id' =>  'behavior_id',
64
            ],
65
            'options' => [
66
                'disable_inarray_validator' => true,
67
                'value_options' =>  $this->getSelectBehaviorsOptions($adapter, $company_id)
68
            ]
69
        ]);
16770 efrain 70
 
15446 efrain 71
 
72
        $this->add([
73
            'name' => 'status',
74
            'type' => \Laminas\Form\Element\Checkbox::class,
75
            'attributes' => [
76
                'id' 			=> 'status',
77
            ],
78
            'options' => [
16766 efrain 79
                'use_hidden_element' => false,
15446 efrain 80
                'unchecked_value' => \LeadersLinked\Model\Competency::STATUS_INACTIVE,
81
                'checked_value'=> \LeadersLinked\Model\Competency::STATUS_ACTIVE,
82
            ]
83
        ]);
84
 
85
 
86
 
87
    }
88
 
89
    /**
90
     *
91
     * @param AdapterInterface $adapter
92
     */
93
    private function getSelectCompetencyTypesOptions($adapter, $company_id)
94
    {
95
        $options = [];
96
 
97
        $mapper = CompetencyTypeMapper::getInstance($adapter);
98
 
99
        if($company_id) {
100
            $records = $mapper->fetchAllActiveByCompanyId($company_id);
101
        } else {
102
            $records = $mapper->fetchAllActiveByDefault();
103
        }
104
 
105
 
106
        foreach($records as $record)
107
        {
108
            $options[$record->uuid] = $record->name;
109
        }
110
        return $options;
111
    }
112
 
113
 
114
    /**
115
     *
116
     * @param AdapterInterface $adapter
117
     */
118
    private function getSelectBehaviorsOptions($adapter, $company_id)
119
    {
120
        $options = [];
121
 
122
        $mapper = BehaviorMapper::getInstance($adapter);
123
 
124
        if($company_id) {
125
            $records = $mapper->fetchAllActiveByCompanyId($company_id);
126
        } else {
127
            $records = $mapper->fetchAllActiveByDefault();
128
        }
129
 
130
 
131
        foreach($records as $record)
132
        {
133
            $options[$record->uuid] = $record->description;
134
        }
135
        return $options;
136
    }
137
}