public function getHistory($sTableName, $row_id)
 {
     $oWhere = new \Zend\Db\Sql\Where();
     $oWhere->equalTo('table_name', $sTableName);
     $oWhere->equalTo('row_id', $row_id);
     $rowset = $this->select(function (Select $select) use($oWhere) {
         $select->where($oWhere);
     });
     return $rowset->toArray();
 }
 /**
  * Retourne les particpants d'un raid.
  * @param type $iIdRaid
  */
 function getParticipantRaid($iIdRaid)
 {
     $sql = new \Zend\Db\Sql\Sql($this->getAdapter());
     $oQuery = $sql->select();
     $oQuery->from(array('rp' => 'raid_personnage'))->join(array('r' => 'raids'), 'r.idRaid=rp.idRaid', array(), \Zend\Db\Sql\Select::JOIN_INNER)->join(array('p' => 'personnages'), 'p.idPersonnage=rp.idPersonnage', array('personnage_nom' => 'nom', 'personnage_royaume' => 'royaume', 'ilvl'), \Zend\Db\Sql\Select::JOIN_INNER)->join(array('c' => 'classes'), 'c.idClasses=p.idClasses', array('classe_nom' => 'nom', 'classe_couleur' => 'couleur'), \Zend\Db\Sql\Select::JOIN_INNER)->join(array('rac' => 'race'), 'rac.idRace=p.idRace', array('race_nom' => 'nom'), \Zend\Db\Sql\Select::JOIN_INNER);
     $where = new \Zend\Db\Sql\Where();
     $where->equalTo("rp.idRaid", $iIdRaid);
     $oQuery->where($where);
     $oQuery->order('p.nom');
     $aAllParticpantTmp = $this->fetchAllArray($oQuery);
     foreach ($aAllParticpantTmp as $aValue) {
         $aValue['roster'] = 0;
         $aValue['apply'] = null;
         $aValue['abs'] = false;
         $aAllParticpant[$aValue['idPersonnage']] = $aValue;
     }
     $oQuery->join(array('rhp' => 'roster_has_personnage'), 'rhp.idRoster = r.idRosterTmp AND rhp.idPersonnage = rp.idPersonnage', array('apply' => 'isApply'), \Zend\Db\Sql\Select::JOIN_INNER);
     $aMembreRosterTmp = $this->fetchAllArray($oQuery);
     foreach ($aMembreRosterTmp as $aValue) {
         $aMembreRoster[$aValue['idPersonnage']] = $aValue;
     }
     if (isset($aMembreRoster)) {
         $aParticipantRoster = array_intersect_key($aAllParticpant, $aMembreRoster);
         foreach ($aParticipantRoster as $key => $value) {
             $aAllParticpant[$key]['roster'] = 1;
             $aAllParticpant[$key]['apply'] = $aMembreRoster[$key]['apply'];
             $aAllParticpant[$key]['abs'] = false;
         }
     }
     return $aAllParticpant;
 }
Exemple #3
0
 public function addCategory($parentCategoryId = null, $categoryId, $siteId = 1)
 {
     $where = new \Zend\Db\Sql\Where();
     $where->equalTo('website_id', $siteId)->equalTo('category_id', $categoryId);
     if (null === $parentCategoryId) {
         $where->isNull('parent_category_id');
     } else {
         $where->equalTo('parent_category_id', $parentCategoryId);
     }
     $table = 'catalog_category_website';
     $row = array('category_id' => $categoryId, 'parent_category_id' => $parentCategoryId, 'website_id' => $siteId);
     $select = $this->getSelect($table)->where($where);
     $result = $this->selectOne($select);
     if (false === $result) {
         $this->insert($row, $table);
     }
 }
 /**
  * {@inheritDoc}
  */
 public function loadStream($sourceFQCN, $sourceId, $version = null)
 {
     $tableGateway = $this->getTablegateway($sourceFQCN);
     $sql = $tableGateway->getSql();
     $where = new \Zend\Db\Sql\Where();
     $where->equalTo('sourceId', $sourceId);
     if (!is_null($version)) {
         $where->AND->greaterThanOrEqualTo('sourceVersion', $version);
     }
     $select = $sql->select()->where($where)->order('sourceVersion');
     $eventsData = $tableGateway->selectWith($select);
     $events = array();
     foreach ($eventsData as $eventData) {
         $eventClass = $eventData->eventClass;
         $payload = $this->getSerializer()->deserialize($eventData->payload, 'array', 'json');
         $event = new $eventClass($payload, $eventData->eventId, (int) $eventData->timestamp, (double) $eventData->eventVersion);
         $event->setSourceVersion((int) $eventData->sourceVersion);
         $event->setSourceId($sourceId);
         $events[] = $event;
     }
     return $events;
 }
Exemple #5
0
 public function getUsersByEmail($email, $id = 0)
 {
     $where = new \Zend\Db\Sql\Where();
     $where->notEqualTo('id', (int) $id);
     $where->equalTo('email', $email);
     $rowset = $this->select($where);
     $row = $rowset->current();
     if (!$row) {
         return false;
     }
     return $row;
 }
Exemple #6
0
 /**
  * @param array $where ['equalTo' => ['type', 'single'], 'in' => ['id', [1, 2]], ]
  * @param null $limit
  * @param int $offset
  * @param string $order
  * @return null|\Zend\Db\ResultSet\ResultSetInterface
  */
 public function getItemsWhere($where = [], $limit = null, $offset = 0, $order = 'id asc')
 {
     $select = $this->getSelect()->from($this->getTable());
     if ($where) {
         $whereObj = new \Zend\Db\Sql\Where();
         foreach ($where as $key => $params) {
             if (in_array($key, $this->fields)) {
                 if (is_array($params)) {
                     if ($params) {
                         $whereObj->in($key, $params);
                     } else {
                         // в случае когда передано $service->getItemsWhere(['id => []]);
                         return [];
                     }
                 } else {
                     $whereObj->equalTo($key, $params);
                 }
             } else {
                 $allowedMethods = ['equalTo', 'notEqualTo', 'lessThan', 'greaterThan', 'lessThanOrEqualTo', 'greaterThanOrEqualTo', 'like', 'notLike', 'expression', 'literal', 'isNull', 'isNotNull', 'in', 'notIn', 'between'];
                 if (!in_array($key, $allowedMethods)) {
                     throw new \Exception("method '" . $key . "' not allowed in where.");
                 }
                 call_user_func_array([$whereObj, $key], $params);
             }
         }
         $select->where($whereObj);
     }
     if ($limit !== null) {
         $select->limit($limit);
     }
     if ($offset) {
         $select->offset($offset);
     }
     $select->order($order);
     return $this->tableGateway->selectWith($select);
 }
Exemple #7
0
 /**
  * Retourne le select query deja configuré par l'adapter et le nom de la table pour le frontend
  *
  * @return Zend\Db\Sql\Select
  */
 public function getBaseQueryFrontend($iIdRoster)
 {
     try {
         $sql = new \Zend\Db\Sql\Sql($this->getAdapter());
         $query = $sql->select();
         $query->from($this->table)->columns(array('*'));
         $where = new \Zend\Db\Sql\Where();
         $where->equalTo("idRosterTmp", $iIdRoster);
         $query->where($where);
         $query->order('date DESC');
         return $query;
     } catch (\Exception $exc) {
         throw new DatabaseException(4000, 4, $this->_getServiceLocator(), $iIdRoster, $exc);
     }
 }
<?php

/** @var $adapter Zend\Db\Adapter\Adapter */
$adapter = (include file_exists('bootstrap.php') ? 'bootstrap.php' : 'bootstrap.dist.php');
refresh_data($adapter);
$where = new Zend\Db\Sql\Where();
$where->equalTo('id', 1)->OR->equalTo('id', 2);
$where->OR->NEST->like('name', 'Ralph%')->OR->greaterThanOrEqualTo('age', 30)->AND->lessThanOrEqualTo('age', 50)->UNNEST->literal('foo = ?', 'bar');
$target = <<<EOS
SELECT "foo".* FROM "foo" WHERE "id" = '1' OR "id" = '2' OR ("name" LIKE 'Ralph%' OR "age" >= '30' AND "age" <= '50') AND foo = 'bar'
EOS;
$select = new Zend\Db\Sql\Select('foo');
$select->where($where);
assert_example_works($target == $select->getSqlString());
 /**
  * Update package assignments
  *
  * Sets a new package on existing assignments. Updated assignments have
  * their status reset to "not notified" and their options (force, schedule,
  * post cmd) removed.
  *
  * @param integer $oldPackageId package to be replaced
  * @param integer $newPackageId new package
  * @param bool $deployNonnotified Update assignments with status 'not notified'
  * @param bool $deploySuccess Update assignments with status 'success'
  * @param bool $deployNotified Update assignments with status 'notified'
  * @param bool $deployError Update assignments with status 'error'
  * @param bool $deployGroups Update assignments for groups
  * @throws RuntimeException if an error occurs
  */
 public function updateAssignments($oldPackageId, $newPackageId, $deployNonnotified, $deploySuccess, $deployNotified, $deployError, $deployGroups)
 {
     if (!($deployNonnotified or $deploySuccess or $deployNotified or $deployError or $deployGroups)) {
         return;
         // nothing to do
     }
     $clientConfig = $this->_serviceManager->get('Database\\Table\\ClientConfig');
     $groupInfo = $this->_serviceManager->get('Database\\Table\\GroupInfo');
     $where = new \Zend\Db\Sql\Where();
     $where->equalTo('ivalue', $oldPackageId);
     // Additional filters are only necessary if not all conditions are set
     if (!($deployNonnotified and $deploySuccess and $deployNotified and $deployError and $deployGroups)) {
         $groups = $groupInfo->getSql()->select()->columns(array('hardware_id'));
         $filters = new \Zend\Db\Sql\Where(null, \Zend\Db\Sql\Where::COMBINED_BY_OR);
         if ($deployNonnotified) {
             $filters->isNull('tvalue')->and->notIn('hardware_id', $groups);
         }
         if ($deploySuccess) {
             $filters->equalTo('tvalue', \Model\Package\Assignment::SUCCESS);
         }
         if ($deployNotified) {
             $filters->equalTo('tvalue', \Model\Package\Assignment::NOTIFIED);
         }
         if ($deployError) {
             $filters->like('tvalue', \Model\Package\Assignment::ERROR_PREFIX . '%');
         }
         if ($deployGroups) {
             $filters->in('hardware_id', $groups);
         }
         $where->addPredicate($filters);
     }
     $now = $this->_serviceManager->get('Library\\Now')->format(\Model\Package\Assignment::DATEFORMAT);
     try {
         // Remove DOWNLOAD_* options from updated assignments
         $subquery = $clientConfig->getSql()->select()->columns(array('hardware_id'))->where(array('name' => 'DOWNLOAD', $where));
         $delete = new \Zend\Db\Sql\Where();
         $delete->equalTo('ivalue', $oldPackageId)->in('hardware_id', $subquery)->notEqualTo('name', 'DOWNLOAD_SWITCH')->like('name', 'DOWNLOAD_%');
         $clientConfig->delete($delete);
         // Update package ID and reset status
         $clientConfig->update(array('ivalue' => $newPackageId, 'tvalue' => \Model\Package\Assignment::NOT_NOTIFIED, 'comments' => $now), array('name' => 'DOWNLOAD', $where));
     } catch (\Exception $e) {
         throw new RuntimeException($e->getMessage(), (int) $e->getCode(), $e);
     }
 }
Exemple #10
0
 public function getUserTreeMenus($role_id, $parent_id = 0)
 {
     $adapter = $this->adapter;
     $result = array();
     $select = new Select();
     $select->from($this->table);
     //        $select->columns(array(new Expression('DISTINCT(menus.id) as id'), 'name', 'type', 'url', 'target'));
     $select->join('resources', 'resources.id = menus.resource_id', array('resource_name' => 'name'), 'left');
     $select->join('role_resources', 'menus.resource_id = role_resources.resource_id', array('role_id' => 'role_id'), 'left');
     $where = new \Zend\Db\Sql\Where();
     if ($role_id != 1) {
         $where->addPredicate(new \Zend\Db\Sql\Predicate\Expression("(role_resources.role_id = {$role_id} OR menus.type = 1)"));
     }
     $where->equalTo('parent_id', $parent_id);
     $where->equalTo('status', 1);
     if (!empty($where)) {
         $select->where($where);
     }
     $select->order('order' . ' ' . 'ASC');
     $sql = new Sql($adapter);
     $statement = $sql->getSqlStringForSqlObject($select);
     //echo $statement;
     //        die();
     $resultSet = $adapter->query($statement, $adapter::QUERY_MODE_EXECUTE);
     $resultSet->buffer();
     if (!empty($resultSet)) {
         $exist_ids = array();
         foreach ($resultSet as $key => $data) {
             if (!in_array($data->id, $exist_ids)) {
                 $exist_ids[] = $data->id;
                 $result[$key]['data'] = $data;
                 $result[$key]['child'] = $this->getUserTreeMenus($role_id, $data->id);
             }
         }
     }
     return $result;
 }
 /**
  * Retourne les loots du raid.
  * @param type $iIdRaid
  */
 public function getLootRaid($iIdRaid)
 {
     $oQuery = $this->getQueryBaseLoot();
     $oQuery->order('item_date');
     //   $oQuery->join(array('rhp' => 'roster_has_personnage'), 'rhp.idRoster = r.idRosterTmp AND rhp.idPersonnage = ipr.idPersonnage', array(), \Zend\Db\Sql\Select::JOIN_INNER);
     $predicate = new \Zend\Db\Sql\Where();
     $predicate->equalTo("r.idRaid", $iIdRaid);
     $oQuery->where($predicate);
     $aLoots = $this->fetchAllArray($oQuery);
     foreach ($aLoots as $key => $loot) {
         switch ($loot['valeur']) {
             //spé
             case 0:
                 $aLoots[$key]['spe'] = 'spé 1';
                 break;
                 //spé
             //spé
             case 1:
                 $aLoots[$key]['spe'] = 'spé 2';
                 break;
                 //spé
             //spé
             case 2:
                 $aLoots[$key]['spe'] = 'spé 3';
                 break;
                 //spé
             //spé
             case 3:
                 $aLoots[$key]['spe'] = 'spé 4';
                 break;
             default:
                 $aLoots[$key]['spe'] = 'spé 1';
                 break;
         }
     }
     return $aLoots;
 }
 /**
  * index Action
  * Receive the search params
  * Build the search query
  * Generate the search result as a list
  * @return type
  * Author: Tahmina Khatoon
  */
 public function indexAction()
 {
     $searchform = new MenusSearchForm();
     /**
      * Set Resource List
      */
     $options = $this->getResourcesTable()->dropdownResources();
     $searchform->get('resource_id')->setOptions(array('value_options' => $options));
     /**
      * Set Parent Menu List
      */
     $menuoptions = $this->dropdownMenus();
     $searchform->get('parent_id')->setOptions(array('value_options' => $menuoptions));
     $searchform->get('submit')->setValue('Search');
     $select = new Select();
     $order_by = $this->params()->fromRoute('order_by') ? $this->params()->fromRoute('order_by') : 'order';
     $order = $this->params()->fromRoute('order') ? $this->params()->fromRoute('order') : Select::ORDER_DESCENDING;
     $page = $this->params()->fromRoute('page') ? (int) $this->params()->fromRoute('page') : 1;
     $item_per_page = $this->params()->fromRoute('item_per_page') ? (int) $this->params()->fromRoute('item_per_page') : 10;
     $page_range = $this->params()->fromRoute('page_range') ? (int) $this->params()->fromRoute('page_range') : 7;
     $select->order($order_by . ' ' . $order);
     $search_by = $this->params()->fromRoute('search_by') ? $this->params()->fromRoute('search_by') : '';
     $select->join('resources', 'resources.id = menus.resource_id', array('resource_name' => 'name'), 'left');
     $select->join(array('parents' => 'menus'), 'parents.id = menus.parent_id', array('parent_name' => 'name'), 'left');
     $where = new \Zend\Db\Sql\Where();
     $formdata = array();
     if (!empty($search_by)) {
         $formdata = (array) json_decode($search_by);
         if (!empty($formdata['name'])) {
             $where->addPredicate(new \Zend\Db\Sql\Predicate\Like('menus.name', '%' . $formdata['name'] . '%'));
         }
         if (!empty($formdata['type'])) {
             $where->equalTo('menus.type', $formdata['type']);
         }
         if (!empty($formdata['resource_id'])) {
             $where->equalTo('menus.resource_id', $formdata['resource_id']);
         }
         if (!empty($formdata['url'])) {
             $where->addPredicate(new \Zend\Db\Sql\Predicate\Like('menus.url', '%' . $formdata['url'] . '%'));
         }
         if (!empty($formdata['target'])) {
             $where->equalTo('menus.target', $formdata['target']);
         }
         if (!empty($formdata['parent_id'])) {
             $where->equalTo('menus.parent_id', $formdata['parent_id']);
         }
         if (!empty($formdata['status'])) {
             $where->equalTo('menus.status', $formdata['status']);
         }
     }
     if (!empty($where)) {
         $select->where($where);
     }
     $paginator = $this->getMenusTable()->fetchAll($select, true);
     $paginator->setCurrentPageNumber($page)->setItemCountPerPage($item_per_page)->setPageRange($page_range);
     $totalRecord = $paginator->getTotalItemCount();
     $currentPage = $paginator->getCurrentPageNumber();
     $totalPage = $paginator->count();
     $searchform->setData($formdata);
     $this->vm->setVariables(array('flashMessages' => $this->flashMessenger()->getMessages(), 'search_by' => $search_by, 'order_by' => $order_by, 'order' => $order, 'page' => $page, 'item_per_page' => $item_per_page, 'paginator' => $paginator, 'pageAction' => 'menus/index', 'form' => $searchform, 'totalRecord' => $totalRecord, 'currentPage' => $currentPage, 'totalPage' => $totalPage));
     return $this->vm;
 }
 /**
  * Update package assignments
  *
  * Sets a new package on existing assignments. Updated assignments have
  * their status reset to "pending" and their options (force, schedule,
  * post cmd) removed.
  *
  * @param integer $oldPackageId package to be replaced
  * @param integer $newPackageId new package
  * @param bool $deployPending Update assignments with status 'pending'
  * @param bool $deployRunning Update assignments with status 'running'
  * @param bool $deploySuccess Update assignments with status 'success'
  * @param bool $deployError Update assignments with status 'error'
  * @param bool $deployGroups Update assignments for groups
  * @throws RuntimeException if an error occurs
  */
 public function updateAssignments($oldPackageId, $newPackageId, $deployPending, $deployRunning, $deploySuccess, $deployError, $deployGroups)
 {
     if (!($deployPending or $deployRunning or $deploySuccess or $deployError or $deployGroups)) {
         return;
         // nothing to do
     }
     $clientConfig = $this->_serviceManager->get('Database\\Table\\ClientConfig');
     $groupInfo = $this->_serviceManager->get('Database\\Table\\GroupInfo');
     $where = new \Zend\Db\Sql\Where();
     $where->equalTo('ivalue', $oldPackageId);
     $where->equalTo('name', 'DOWNLOAD');
     // Additional filters are only necessary if not all conditions are set
     if (!($deployPending and $deployRunning and $deploySuccess and $deployError and $deployGroups)) {
         $groups = $groupInfo->getSql()->select()->columns(array('hardware_id'));
         $filters = new \Zend\Db\Sql\Where(null, \Zend\Db\Sql\Where::COMBINED_BY_OR);
         if ($deployPending) {
             $filters->isNull('tvalue')->and->notIn('hardware_id', $groups);
         }
         if ($deployRunning) {
             $filters->equalTo('tvalue', \Model\Package\Assignment::RUNNING);
         }
         if ($deploySuccess) {
             $filters->equalTo('tvalue', \Model\Package\Assignment::SUCCESS);
         }
         if ($deployError) {
             $filters->like('tvalue', \Model\Package\Assignment::ERROR_PREFIX . '%');
         }
         if ($deployGroups) {
             $filters->in('hardware_id', $groups);
         }
         $where->addPredicate($filters);
     }
     $now = $this->_serviceManager->get('Library\\Now')->format(\Model\Package\Assignment::DATEFORMAT);
     try {
         // Remove DOWNLOAD_* options from updated assignments
         $subquery = $clientConfig->getSql()->select()->columns(array('hardware_id'))->where($where);
         // @codeCoverageIgnoreStart
         if ($clientConfig->getAdapter()->getPlatform()->getName() == 'MySQL') {
             // MySQL does not allow subquery on the same table for DELETE
             // statements. Fetch result as a list instead.
             $subquery = array_column($clientConfig->selectWith($subquery)->toArray(), 'hardware_id');
         }
         // @codeCoverageIgnoreEnd
         if ($subquery) {
             // $subquery is either an SQL statement or a non-empty array.
             $delete = new \Zend\Db\Sql\Where();
             $delete->equalTo('ivalue', $oldPackageId)->notEqualTo('name', 'DOWNLOAD_SWITCH')->in('hardware_id', $subquery)->like('name', 'DOWNLOAD_%');
             $clientConfig->delete($delete);
         }
         // Update package ID and reset status
         $clientConfig->update(array('ivalue' => $newPackageId, 'tvalue' => \Model\Package\Assignment::PENDING, 'comments' => $now), $where);
     } catch (\Exception $e) {
         throw new RuntimeException($e->getMessage(), (int) $e->getCode(), $e);
     }
 }