Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1659 | Rev 1667 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1603 nelberth 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Mapper;
6
 
7
use LeadersLinked\Model\HighPerformanceTeamsGroupsMembers;
8
use LeadersLinked\Model\HighPerformanceTeamsGroups;
1659 nelberth 9
use LeadersLinked\Model\User;
1603 nelberth 10
use LeadersLinked\Mapper\Common\MapperCommon;
11
use Laminas\Db\Adapter\AdapterInterface;
12
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
13
use Laminas\Db\ResultSet\HydratingResultSet;
14
use Laminas\Paginator\Adapter\DbSelect;
15
use Laminas\Paginator\Paginator;
16
 
17
 
18
class HighPerformanceTeamsGroupsMembersMapper extends MapperCommon{
19
    const _TABLE = 'tbl_high_performance_team_group_members';
20
 
21
    /**
22
     *
23
     * @var HighPerformanceTeamsGroupsMembersMapper
24
     */
25
    private static $_instance;
26
 
27
    /**
28
     *
29
     * @param AdapterInterface $adapter
30
     */
31
    private function __construct($adapter)
32
    {
33
        parent::__construct($adapter);
34
    }
35
 
36
    /**
37
     *
38
     * @param AdapterInterface $adapter
39
     * @return \LeadersLinked\Mapper\HighPerformanceTeamsGroupsMembersMapper
40
     */
41
    public static function getInstance($adapter)
42
    {
43
        if(self::$_instance == null) {
44
            self::$_instance = new HighPerformanceTeamsGroupsMembersMapper($adapter);
45
        }
46
        return self::$_instance;
47
    }
48
 
49
 
50
 
51
    public function fetchAllDataTable($search, $page = 1, $records_per_page = 10, $order_field= 'title', $order_direction = 'ASC', $idUser)
52
    {
53
        $prototype = new HighPerformanceTeamsGroupsMembers();
54
        $select = $this->sql->select(self::_TABLE);
55
        $select->where->equalTo('user_id', $idUser);
56
        $select->where->notEqualTo('status', HighPerformanceTeamsGroupsMembers::STATUS_DELETE);
57
 
58
 
59
        if($search) {
60
            $select->where->like('title', '%' . $search . '%');
61
        }
62
        $select->order($order_field . ' ' . $order_direction);
63
 
64
        $hydrator   = new ObjectPropertyHydrator();
65
        $resultset  = new HydratingResultSet($hydrator, $prototype);
66
 
67
        $adapter = new DbSelect($select, $this->sql, $resultset);
68
        $paginator = new Paginator($adapter);
69
        $paginator->setItemCountPerPage($records_per_page);
70
        $paginator->setCurrentPageNumber($page);
71
 
72
 
73
        return $paginator;
74
    }
75
    public function fetchAllDataTableInnerJoin($search, $page = 1, $records_per_page = 10, $order_field= 'title', $order_direction = 'ASC', $idUser,$tableJoin)
76
    {
77
        $prototype = new HighPerformanceTeamsGroups();
78
        $select = $this->sql->select();
79
        $select->from(['g' => $tableJoin]);
80
        $select->join(['gm' => self::_TABLE], 'gm.group_id = g.id', []);
81
        $select->where->equalTo('gm.user_id', $idUser);
82
        $select->where->notEqualTo('gm.status', HighPerformanceTeamsGroupsMembers::STATUS_DELETE);
83
 
84
 
85
        if($search) {
86
            $select->where->like('title', '%' . $search . '%');
87
        }
88
        $select->order($order_field . ' ' . $order_direction);
89
 
90
        $hydrator   = new ObjectPropertyHydrator();
91
        $resultset  = new HydratingResultSet($hydrator, $prototype);
92
 
93
        $adapter = new DbSelect($select, $this->sql, $resultset);
94
        $paginator = new Paginator($adapter);
95
        $paginator->setItemCountPerPage($records_per_page);
96
        $paginator->setCurrentPageNumber($page);
97
 
98
 
99
        return $paginator;
100
    }
101
 
1659 nelberth 102
    public function fetchAllInnerJoinUser($group_id, $table_user)
1603 nelberth 103
    {
1659 nelberth 104
        $prototype = new User();
105
        $select = $this->sql->select();
106
        $select->from(['u' => $table_user]);
107
        $select->join(['m' => self::_TABLE], 'm.user_id = u.id', []);
108
        $select->where->equalTo('m.group_id', $group_id);
1666 nelberth 109
        $select->where->notEqualTo('m.status', HighPerformanceTeamsGroupsMembers::STATUS_CANCELLED);
110
        $select->where->notEqualTo('m.status', HighPerformanceTeamsGroupsMembers::STATUS_REJECTED);
1603 nelberth 111
        return $this->executeFetchAllObject($select, $prototype);
112
    }
113
    public function insert($datos)
114
    {
115
        $hydrator = new ObjectPropertyHydrator();
116
        $values = $hydrator->extract($datos);
117
        $values = $this->removeEmpty($values);
118
        $insert = $this->sql->insert(self::_TABLE);
119
        $insert->values($values);
120
 
121
 
122
        $result = $this->executeInsert($insert);
123
        if($result) {
124
            $datos->id = $this->lastInsertId;
125
        }
126
 
127
        return $result;
128
 
129
    }
1620 nelberth 130
    public function fetchOneByGroupIdAndUserId($group_id, $user_id)
131
    {
132
        $prototype = new HighPerformanceTeamsGroupsMembers();
133
 
134
        $select = $this->sql->select(self::_TABLE);
135
        $select->where->equalTo('group_id', $group_id)->and->equalTo('user_id', $user_id);
136
 
137
        return $this->executeFetchOneObject($select, $prototype);
138
    }
1603 nelberth 139
    public function update($form)
140
    {
141
        $hydrator = new ObjectPropertyHydrator();
142
        $values = $hydrator->extract($form);
143
        $values = $this->removeEmpty($values);
144
 
145
        $update = $this->sql->update(self::_TABLE);
146
        $update->set($values);
147
        $update->where->equalTo('id', $form->id);
148
        return $this->executeUpdate($update);
149
    }
150
 
151
    public function delete($form_id)
152
    {
153
        $delete = $this->sql->delete(self::_TABLE);
154
        $delete->where->equalTo('id', $form_id);
155
 
156
        return $this->executeDelete($delete);
157
    }
158
 
159
    public function fetchOneById($id)
160
    {
161
        $prototype = new HighPerformanceTeamsGroupsMembers();
162
        $select = $this->sql->select(self::_TABLE);
163
        $select->where->equalTo('id', $id);
164
 
165
        return $this->executeFetchOneObject($select, $prototype);
166
    }
167
    public function fetchOneByUserId($id)
168
    {
169
        $prototype = new HighPerformanceTeamsGroupsMembers();
170
        $select = $this->sql->select(self::_TABLE);
171
        $select->where->equalTo('user_id', $id);
172
 
173
        return $this->executeFetchOneObject($select, $prototype);
174
    }
175
    public function fetchOneByGroupId($id)
176
    {
177
        $prototype = new HighPerformanceTeamsGroupsMembers();
178
        $select = $this->sql->select(self::_TABLE);
179
        $select->where->equalTo('group_id', $id);
180
 
181
        return $this->executeFetchOneObject($select, $prototype);
182
    }
183
 
184
 
185
}