Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1667 | | 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);
1667 nelberth 111
        $select->where->notEqualTo('m.status', HighPerformanceTeamsGroupsMembers::STATUS_INVITED);
1603 nelberth 112
        return $this->executeFetchAllObject($select, $prototype);
113
    }
2018 nelberth 114
 
1603 nelberth 115
    public function insert($datos)
116
    {
117
        $hydrator = new ObjectPropertyHydrator();
118
        $values = $hydrator->extract($datos);
119
        $values = $this->removeEmpty($values);
120
        $insert = $this->sql->insert(self::_TABLE);
121
        $insert->values($values);
122
 
123
 
124
        $result = $this->executeInsert($insert);
125
        if($result) {
126
            $datos->id = $this->lastInsertId;
127
        }
128
 
129
        return $result;
130
 
131
    }
1620 nelberth 132
    public function fetchOneByGroupIdAndUserId($group_id, $user_id)
133
    {
134
        $prototype = new HighPerformanceTeamsGroupsMembers();
135
 
136
        $select = $this->sql->select(self::_TABLE);
137
        $select->where->equalTo('group_id', $group_id)->and->equalTo('user_id', $user_id);
138
 
139
        return $this->executeFetchOneObject($select, $prototype);
140
    }
1603 nelberth 141
    public function update($form)
142
    {
143
        $hydrator = new ObjectPropertyHydrator();
144
        $values = $hydrator->extract($form);
145
        $values = $this->removeEmpty($values);
146
 
147
        $update = $this->sql->update(self::_TABLE);
148
        $update->set($values);
149
        $update->where->equalTo('id', $form->id);
150
        return $this->executeUpdate($update);
151
    }
152
 
153
    public function delete($form_id)
154
    {
155
        $delete = $this->sql->delete(self::_TABLE);
156
        $delete->where->equalTo('id', $form_id);
157
 
158
        return $this->executeDelete($delete);
159
    }
160
 
161
    public function fetchOneById($id)
162
    {
163
        $prototype = new HighPerformanceTeamsGroupsMembers();
164
        $select = $this->sql->select(self::_TABLE);
165
        $select->where->equalTo('id', $id);
166
 
167
        return $this->executeFetchOneObject($select, $prototype);
168
    }
169
    public function fetchOneByUserId($id)
170
    {
171
        $prototype = new HighPerformanceTeamsGroupsMembers();
172
        $select = $this->sql->select(self::_TABLE);
173
        $select->where->equalTo('user_id', $id);
174
 
175
        return $this->executeFetchOneObject($select, $prototype);
176
    }
177
    public function fetchOneByGroupId($id)
178
    {
179
        $prototype = new HighPerformanceTeamsGroupsMembers();
180
        $select = $this->sql->select(self::_TABLE);
181
        $select->where->equalTo('group_id', $id);
182
 
183
        return $this->executeFetchOneObject($select, $prototype);
184
    }
185
 
186
 
187
}