Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15446 | Ir a la última revisión | | 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
        ]);
70
 
71
 
72
 
73
        $this->add([
74
            'name' => 'status',
75
            'type' => \Laminas\Form\Element\Checkbox::class,
76
            'attributes' => [
77
                'id' 			=> 'status',
78
            ],
79
            'options' => [
16766 efrain 80
                'use_hidden_element' => false,
15446 efrain 81
                'unchecked_value' => \LeadersLinked\Model\Competency::STATUS_INACTIVE,
82
                'checked_value'=> \LeadersLinked\Model\Competency::STATUS_ACTIVE,
83
            ]
84
        ]);
85
 
86
 
87
 
88
    }
89
 
90
    /**
91
     *
92
     * @param AdapterInterface $adapter
93
     */
94
    private function getSelectCompetencyTypesOptions($adapter, $company_id)
95
    {
96
        $options = [];
97
 
98
        $mapper = CompetencyTypeMapper::getInstance($adapter);
99
 
100
        if($company_id) {
101
            $records = $mapper->fetchAllActiveByCompanyId($company_id);
102
        } else {
103
            $records = $mapper->fetchAllActiveByDefault();
104
        }
105
 
106
 
107
        foreach($records as $record)
108
        {
109
            $options[$record->uuid] = $record->name;
110
        }
111
        return $options;
112
    }
113
 
114
 
115
    /**
116
     *
117
     * @param AdapterInterface $adapter
118
     */
119
    private function getSelectBehaviorsOptions($adapter, $company_id)
120
    {
121
        $options = [];
122
 
123
        $mapper = BehaviorMapper::getInstance($adapter);
124
 
125
        if($company_id) {
126
            $records = $mapper->fetchAllActiveByCompanyId($company_id);
127
        } else {
128
            $records = $mapper->fetchAllActiveByDefault();
129
        }
130
 
131
 
132
        foreach($records as $record)
133
        {
134
            $options[$record->uuid] = $record->description;
135
        }
136
        return $options;
137
    }
138
}