Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
7016 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Mapper;
6
 
7
use LeadersLinked\Model\PlanningTaskUser;
8
use LeadersLinked\Mapper\Common\MapperCommon;
9
use Laminas\Db\Adapter\AdapterInterface;
10
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
11
 
12
class PlanningTaskUserMapper extends MapperCommon
13
{
14
    const _TABLE = 'tbl_planning_task_users';
15
 
16
    /**
17
     *
18
     * @var PlanningTaskUserMapper
19
     */
20
    private static $_instance;
21
 
22
    /**
23
     *
24
     * @param AdapterInterface $adapter
25
     */
26
    private function __construct($adapter)
27
    {
28
        parent::__construct($adapter);
29
    }
30
 
31
    /**
32
     *
33
     * @param AdapterInterface $adapter
34
     * @return \LeadersLinked\Mapper\PlanningTaskUserMapper
35
     */
36
    public static function getInstance($adapter)
37
    {
38
        if(self::$_instance == null) {
39
            self::$_instance = new PlanningTaskUserMapper($adapter);
40
        }
41
        return self::$_instance;
42
    }
43
 
44
 
45
 
46
    /**
47
     *
48
     * @param int $task_id
49
     * @return PlanningTaskUser
50
     */
51
    public function fetchAllByTaskId($task_id)
52
    {
53
        $prototype = new PlanningTaskUser();
54
        $select = $this->sql->select(self::_TABLE);
55
        $select->where->equalTo('task_id', $task_id);
56
 
57
 
58
        return $this->executeFetchAllObject($select, $prototype);
59
 
60
    }
61
 
62
 
63
    /**
64
     *
65
     * @param PlanningTaskUser $record
66
     * @return boolean
67
     */
68
    public function insert($record)
69
    {
70
        $hydrator = new ObjectPropertyHydrator();
71
        $values = $hydrator->extract($record);
72
        $values = $this->removeEmpty($values);
73
        $insert = $this->sql->insert(self::_TABLE);
74
        $insert->values($values);
75
 
76
 
77
        $result = $this->executeInsert($insert);
78
        if($result) {
79
            $record->id = $this->lastInsertId;
80
        }
81
 
82
        return $result;
83
 
84
    }
85
 
86
    /**
87
     *
88
     * @param PlanningTaskUser $record
89
     * @return boolean
90
     */
91
    public function update($record)
92
    {
93
        $hydrator = new ObjectPropertyHydrator();
94
        $values = $hydrator->extract($record);
95
        $values = $this->removeEmpty($values);
96
 
97
        $update = $this->sql->update(self::_TABLE);
98
        $update->set($values);
99
        $update->where->equalTo('id', $record->id);
100
        return $this->executeUpdate($update);
101
    }
102
 
103
    /**
104
     *
105
     * @param PlanningTaskUser $record
106
     * @return boolean
107
     */
108
    public function delete($record)
109
    {
110
        $delete = $this->sql->delete(self::_TABLE);
111
        $delete->where->equalTo('id', $record->id);
112
 
113
        return $this->executeDelete($delete);
114
    }
115
 
116
    /**
117
     *
118
     * @param int $task_id
119
     * @return boolean
120
     */
121
    public function deleteAllByTaskId($task_id)
122
    {
123
        $delete = $this->sql->delete(self::_TABLE);
124
        $delete->where->equalTo('task_id', $task_id);
125
 
126
        return $this->executeDelete($delete);
127
    }
128
 
129
    /**
130
     *
131
     * @param string $uuid
132
     * @return PlanningTaskUser
133
     */
134
    public function fetchOneByUuid($uuid)
135
    {
136
        $prototype = new PlanningTaskUser();
137
        $select = $this->sql->select(self::_TABLE);
138
        $select->where->equalTo('uuid', $uuid);
139
 
140
        return $this->executeFetchOneObject($select, $prototype);
141
    }
142
 
143
 
144
 
145
}