Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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