Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
192 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Mapper;
6
 
7
use Laminas\Db\Adapter\AdapterInterface;
8
use Laminas\Db\ResultSet\HydratingResultSet;
9
use Laminas\Db\Sql\Expression;
10
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
11
use Laminas\Log\LoggerInterface;
12
use Laminas\Paginator\Paginator;
13
use Laminas\Paginator\Adapter\DbSelect;
14
 
15
use LeadersLinked\Model\JobDescriptionSubordinate;
16
use LeadersLinked\Mapper\Common\MapperCommon;
17
use Laminas\Hydrator\ArraySerializableHydrator;
18
 
19
 
20
 
21
class JobDescriptionSubordinateMapper extends MapperCommon
22
{
23
    const _TABLE = 'tbl_job_description_subordinates';
24
 
25
 
26
    /**
27
     *
28
     * @var JobDescriptionSubordinateMapper
29
     */
30
    private static $_instance;
31
 
32
    /**
33
     *
34
     * @param AdapterInterface $adapter
35
     */
36
    private function __construct($adapter)
37
    {
38
        parent::__construct($adapter);
39
    }
40
 
41
    /**
42
     *
43
     * @param AdapterInterface $adapter
44
     * @return JobDescriptionSubordinateMapper
45
     */
46
    public static function getInstance($adapter)
47
    {
48
        if(self::$_instance == null) {
49
            self::$_instance = new JobDescriptionSubordinateMapper($adapter);
50
        }
51
        return self::$_instance;
52
    }
53
 
54
 
55
    /**
56
     *
57
     * @param int $id
58
     * @return JobDescriptionSubordinate
59
     */
60
    public function fetchOne($id)
61
    {
62
        $select = $this->sql->select(self::_TABLE);
63
        $select->where->equalTo('id', $id);
64
        $select->limit(1);
65
 
66
        $prototype = new JobDescriptionSubordinate();
67
        return $this->executeFetchOneObject($select, $prototype);
68
    }
69
 
533 geraldo 70
 
532 geraldo 71
    /**
72
     *
192 efrain 73
     * @param int $job_description_id_top_level
74
     * @param int $job_description_id_low_level
75
     * @return JobDescriptionSubordinate
76
     */
77
    public function fetchOneByJobDescriptionIdTopAndLowLevel($job_description_id_top_level, $job_description_id_low_level)
78
    {
79
        $select = $this->sql->select(self::_TABLE);
80
        $select->where->equalTo('job_description_id_top_level', $job_description_id_top_level);
81
        $select->where->equalTo('job_description_id_low_level', $job_description_id_low_level);
82
        $select->limit(1);
83
 
84
        $prototype = new JobDescriptionSubordinate();
85
        return $this->executeFetchOneObject($select, $prototype);
86
    }
87
 
88
 
89
    /**
90
     *
91
     * @param int $job_description_id_top_level
92
     * @return JobDescriptionSubordinate
93
     */
94
    public function fetchAllByJobDescriptionIdTopLevel($job_description_id_top_level)
95
    {
96
        $select = $this->sql->select(self::_TABLE);
97
        $select->where->equalTo('job_description_id_top_level', $job_description_id_top_level);
98
 
99
        $prototype = new JobDescriptionSubordinate();
100
        return $this->executeFetchAllObject($select, $prototype);
101
    }
102
 
103
    /**
104
     *
534 geraldo 105
     * @param int $job_description_id_low_level
106
     * @return JobDescriptionSubordinate
107
     */
108
    public function fetchAllByJobDescriptionIdLowLevel($job_description_id_low_level)
109
    {
110
        $select = $this->sql->select(self::_TABLE);
111
        $select->where->equalTo('job_description_id_low_level', $job_description_id_low_level);
112
 
113
        $prototype = new JobDescriptionSubordinate();
114
        return $this->executeFetchAllObject($select, $prototype);
115
    }
116
 
117
    /**
118
     *
192 efrain 119
     * @param JobDescriptionSubordinate $jobDescriptionSubordinate
120
     * @return boolean
121
     */
122
    public function insert($jobDescriptionSubordinate)
123
    {
124
        $hydrator = new ObjectPropertyHydrator();
125
        $values = $hydrator->extract($jobDescriptionSubordinate);
126
        $values = $this->removeEmpty($values);
127
 
128
        $insert = $this->sql->insert(self::_TABLE);
129
        $insert->values($values);
130
 
131
        //echo $insert->getSqlString($this->adapter->platform); exit;
132
 
133
 
134
        $result = $this->executeInsert($insert);
135
        if($result) {
136
            $jobDescriptionSubordinate->id = $this->getLastInsertId();
137
        }
138
        return $result;
139
 
140
    }
141
 
142
    /**
143
     *
144
     * @param JobDescriptionSubordinate $jobDescriptionSubordinate
145
     * @return boolean
146
     */
147
    public function update($jobDescriptionSubordinate)
148
    {
149
        $hydrator = new ObjectPropertyHydrator();
150
        $values = $hydrator->extract($jobDescriptionSubordinate);
151
        $values = $this->removeEmpty($values);
152
 
153
        $update = $this->sql->update(self::_TABLE);
154
        $update->set($values);
155
        $update->where->equalTo('id', $jobDescriptionSubordinate->id);
156
 
157
        return $this->executeUpdate($update);
158
    }
159
 
160
    /**
161
     *
162
     * @param JobDescriptionSubordinate $jobDescriptionSubordinate
163
     * @return boolean
164
     */
165
    public function delete($jobDescriptionSubordinate)
166
    {
167
        $delete = $this->sql->delete(self::_TABLE);
168
        $delete->where->equalTo('id', $jobDescriptionSubordinate->id);
169
 
170
        return $this->executeDelete($delete);
171
 
172
    }
173
 
174
    /**
175
     *
176
     * @param int $job_description_id_top_level
177
     * @return boolean
178
     */
179
    public function deleteAllByJobDescriptionIdTopLevel($job_description_id_top_level)
180
    {
181
        $delete = $this->sql->delete(self::_TABLE);
182
        $delete->where->equalTo('job_description_id_top_level', $job_description_id_top_level);
183
 
184
        return $this->executeDelete($delete);
185
 
186
    }
187
 
188
 
189
 
190
 
191
 
192
}