Rev 1667 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
<?phpdeclare(strict_types=1);namespace LeadersLinked\Mapper;use LeadersLinked\Model\HighPerformanceTeamsGroupsMembers;use LeadersLinked\Model\HighPerformanceTeamsGroups;use LeadersLinked\Model\User;use LeadersLinked\Mapper\Common\MapperCommon;use Laminas\Db\Adapter\AdapterInterface;use LeadersLinked\Hydrator\ObjectPropertyHydrator;use Laminas\Db\ResultSet\HydratingResultSet;use Laminas\Paginator\Adapter\DbSelect;use Laminas\Paginator\Paginator;class HighPerformanceTeamsGroupsMembersMapper extends MapperCommon{const _TABLE = 'tbl_high_performance_team_group_members';/**** @var HighPerformanceTeamsGroupsMembersMapper*/private static $_instance;/**** @param AdapterInterface $adapter*/private function __construct($adapter){parent::__construct($adapter);}/**** @param AdapterInterface $adapter* @return \LeadersLinked\Mapper\HighPerformanceTeamsGroupsMembersMapper*/public static function getInstance($adapter){if(self::$_instance == null) {self::$_instance = new HighPerformanceTeamsGroupsMembersMapper($adapter);}return self::$_instance;}public function fetchAllDataTable($search, $page = 1, $records_per_page = 10, $order_field= 'title', $order_direction = 'ASC', $idUser){$prototype = new HighPerformanceTeamsGroupsMembers();$select = $this->sql->select(self::_TABLE);$select->where->equalTo('user_id', $idUser);$select->where->notEqualTo('status', HighPerformanceTeamsGroupsMembers::STATUS_DELETE);if($search) {$select->where->like('title', '%' . $search . '%');}$select->order($order_field . ' ' . $order_direction);$hydrator = new ObjectPropertyHydrator();$resultset = new HydratingResultSet($hydrator, $prototype);$adapter = new DbSelect($select, $this->sql, $resultset);$paginator = new Paginator($adapter);$paginator->setItemCountPerPage($records_per_page);$paginator->setCurrentPageNumber($page);return $paginator;}public function fetchAllDataTableInnerJoin($search, $page = 1, $records_per_page = 10, $order_field= 'title', $order_direction = 'ASC', $idUser,$tableJoin){$prototype = new HighPerformanceTeamsGroups();$select = $this->sql->select();$select->from(['g' => $tableJoin]);$select->join(['gm' => self::_TABLE], 'gm.group_id = g.id', []);$select->where->equalTo('gm.user_id', $idUser);$select->where->notEqualTo('gm.status', HighPerformanceTeamsGroupsMembers::STATUS_DELETE);if($search) {$select->where->like('title', '%' . $search . '%');}$select->order($order_field . ' ' . $order_direction);$hydrator = new ObjectPropertyHydrator();$resultset = new HydratingResultSet($hydrator, $prototype);$adapter = new DbSelect($select, $this->sql, $resultset);$paginator = new Paginator($adapter);$paginator->setItemCountPerPage($records_per_page);$paginator->setCurrentPageNumber($page);return $paginator;}public function fetchAllInnerJoinUser($group_id, $table_user){$prototype = new User();$select = $this->sql->select();$select->from(['u' => $table_user]);$select->join(['m' => self::_TABLE], 'm.user_id = u.id', []);$select->where->equalTo('m.group_id', $group_id);$select->where->notEqualTo('m.status', HighPerformanceTeamsGroupsMembers::STATUS_CANCELLED);$select->where->notEqualTo('m.status', HighPerformanceTeamsGroupsMembers::STATUS_REJECTED);$select->where->notEqualTo('m.status', HighPerformanceTeamsGroupsMembers::STATUS_INVITED);return $this->executeFetchAllObject($select, $prototype);}public function insert($datos){$hydrator = new ObjectPropertyHydrator();$values = $hydrator->extract($datos);$values = $this->removeEmpty($values);$insert = $this->sql->insert(self::_TABLE);$insert->values($values);$result = $this->executeInsert($insert);if($result) {$datos->id = $this->lastInsertId;}return $result;}public function fetchOneByGroupIdAndUserId($group_id, $user_id){$prototype = new HighPerformanceTeamsGroupsMembers();$select = $this->sql->select(self::_TABLE);$select->where->equalTo('group_id', $group_id)->and->equalTo('user_id', $user_id);return $this->executeFetchOneObject($select, $prototype);}public function update($form){$hydrator = new ObjectPropertyHydrator();$values = $hydrator->extract($form);$values = $this->removeEmpty($values);$update = $this->sql->update(self::_TABLE);$update->set($values);$update->where->equalTo('id', $form->id);return $this->executeUpdate($update);}public function delete($form_id){$delete = $this->sql->delete(self::_TABLE);$delete->where->equalTo('id', $form_id);return $this->executeDelete($delete);}public function fetchOneById($id){$prototype = new HighPerformanceTeamsGroupsMembers();$select = $this->sql->select(self::_TABLE);$select->where->equalTo('id', $id);return $this->executeFetchOneObject($select, $prototype);}public function fetchOneByUserId($id){$prototype = new HighPerformanceTeamsGroupsMembers();$select = $this->sql->select(self::_TABLE);$select->where->equalTo('user_id', $id);return $this->executeFetchOneObject($select, $prototype);}public function fetchOneByGroupId($id){$prototype = new HighPerformanceTeamsGroupsMembers();$select = $this->sql->select(self::_TABLE);$select->where->equalTo('group_id', $id);return $this->executeFetchOneObject($select, $prototype);}}