Proyectos de Subversion LeadersLinked - Backend

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Form;
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;
14989 efrain 13
use LeadersLinked\Mapper\BehaviorMapper;
1 www 14
 
15
class CompetencyForm extends Form
16
{
17
 
18
    /**
19
     *
20
     * @param AdapterInterface $adapter
21
     */
66 efrain 22
    public function __construct($adapter, $company_id = 0)
1 www 23
    {
24
        parent::__construct();
15370 efrain 25
        $this->setInputFilter(new CompetencyFilter($adapter));
1 www 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' => [
14989 efrain 34
                'value_options' => $this->getSelectCompetencyTypesOptions($adapter, $company_id)
1 www 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
                'id'    => 'description',
53
            ]
54
        ]);
55
 
888 geraldo 56
        $this->add([
14989 efrain 57
            'name' => 'behavior_id',
58
            'type' => \Laminas\Form\Element\Select::class,
888 geraldo 59
            'attributes' => [
14989 efrain 60
                'multiple' 	=> 'yes',
61
                'id' =>  'behavior_id',
62
            ],
63
            'options' => [
64
                'disable_inarray_validator' => true,
65
                'value_options' =>  $this->getSelectBehaviorsOptions($adapter, $company_id)
888 geraldo 66
            ]
67
        ]);
28 efrain 68
 
888 geraldo 69
 
70
 
28 efrain 71
        $this->add([
1 www 72
            'name' => 'status',
73
            'type' => \Laminas\Form\Element\Checkbox::class,
74
            'attributes' => [
75
                'id' 			=> 'status',
76
            ],
77
            'options' => [
78
                'use_hidden_element' => 0,
79
                'unchecked_value' => \LeadersLinked\Model\Competency::STATUS_INACTIVE,
80
                'checked_value'=> \LeadersLinked\Model\Competency::STATUS_ACTIVE,
81
            ]
82
        ]);
14989 efrain 83
 
84
 
1 www 85
 
86
    }
87
 
88
    /**
89
     *
90
     * @param AdapterInterface $adapter
91
     */
14989 efrain 92
    private function getSelectCompetencyTypesOptions($adapter, $company_id)
1 www 93
    {
94
        $options = [];
95
 
96
        $mapper = CompetencyTypeMapper::getInstance($adapter);
97
 
66 efrain 98
        if($company_id) {
15086 efrain 99
            $records = $mapper->fetchAllActiveByCompanyId($company_id);
66 efrain 100
        } else {
15086 efrain 101
            $records = $mapper->fetchAllActiveByDefault();
66 efrain 102
        }
103
 
104
 
1 www 105
        foreach($records as $record)
106
        {
107
            $options[$record->uuid] = $record->name;
108
        }
109
        return $options;
110
    }
14989 efrain 111
 
112
 
113
    /**
114
     *
115
     * @param AdapterInterface $adapter
116
     */
117
    private function getSelectBehaviorsOptions($adapter, $company_id)
118
    {
119
        $options = [];
120
 
121
        $mapper = BehaviorMapper::getInstance($adapter);
122
 
123
        if($company_id) {
15086 efrain 124
            $records = $mapper->fetchAllActiveByCompanyId($company_id);
14989 efrain 125
        } else {
15086 efrain 126
            $records = $mapper->fetchAllActiveByDefault();
14989 efrain 127
        }
128
 
129
 
130
        foreach($records as $record)
131
        {
132
            $options[$record->uuid] = $record->description;
133
        }
134
        return $options;
135
    }
1 www 136
}