Example #1
0
 /**
  * Define cache cells
  *
  * @return array
  */
 protected function defineCacheCells()
 {
     $list = parent::defineCacheCells();
     $list['all'] = array();
     $list['status'] = array(self::ATTRS_CACHE_CELL => array('status'));
     return $list;
 }
Example #2
0
 /**
  * Find one by record
  *
  * @param array                $data   Record
  * @param \XLite\Model\AEntity $parent Parent model OPTIONAL
  *
  * @return \XLite\Model\AEntity|void
  */
 public function findOneByRecord(array $data, \XLite\Model\AEntity $parent = null)
 {
     $entity = parent::findOneByRecord($data, $parent);
     if (!$entity && isset($data['name']) && $data['name'] && isset($data['group']) && $data['group'] && isset($data['sku']) && $data['sku']) {
         $entity = $this->defineOneBySkuAndNameQuery($data['sku'], $data['group'], $data['name'])->getSingleResult();
     }
     return $entity;
 }
Example #3
0
File: Role.php Project: kingsj/core
 /**
  * Find one by record
  *
  * @param array                $data   Record
  * @param \XLite\Model\AEntity $parent Parent model OPTIONAL
  *
  * @return \XLite\Model\AEntity|void
  */
 public function findOneByRecord(array $data, \XLite\Model\AEntity $parent = null)
 {
     $model = parent::findOneByRecord($data, $parent);
     if (!$model && !empty($data['translations'])) {
         foreach ($data['translations'] as $translation) {
             $model = $this->findOneByName($translation['name']);
             if ($model) {
                 break;
             }
         }
     }
     return $model;
 }
Example #4
0
 /**
  * Update entity
  *
  * @param \XLite\Model\AEntity $entity Entity to update
  * @param array                $data   New values for entity properties
  * @param boolean              $flush  Flag OPTIONAL
  *
  * @return void
  */
 public function update(\XLite\Model\AEntity $entity, array $data = array(), $flush = self::FLUSH_BY_DEFAULT)
 {
     $name = null;
     foreach ($entity->getTranslations() as $translation) {
         if ($translation->getName()) {
             $name = $translation->getName();
             break;
         }
     }
     if ($name) {
         foreach ($entity->getTranslations() as $translation) {
             if (!$translation->getName()) {
                 $translation->setName($name);
             }
         }
     }
     parent::update($entity, $data, $flush);
 }
Example #5
0
 /**
  * Update single entity
  *
  * @param \XLite\Model\AEntity $entity Entity to use
  * @param array                $data   Data to save OPTIONAL
  *
  * @return void
  */
 protected function performUpdate(\XLite\Model\AEntity $entity, array $data = array())
 {
     parent::performUpdate($entity, $data);
     if (!$this->getBlockQuickDataFlag()) {
         $entity->updateQuickData();
     }
 }
Example #6
0
 /**
  * Define specific query builder
  *
  * @return \XLite\Model\QueryBuilder\AQueryBuilder
  */
 protected function defineFindAllSortedQueryBuilder()
 {
     return parent::createQueryBuilder('c')->addOrderBy('c.category_id');
 }
Example #7
0
 /**
  * Get identifiers list for specified query builder object
  *
  * @param \Doctrine\ORM\QueryBuilder $qb    Query builder
  * @param string                     $name  Name
  * @param mixed                      $value Value
  *
  * @return void
  */
 protected function addImportCondition(\Doctrine\ORM\QueryBuilder $qb, $name, $value)
 {
     if ('productClass' == $name && is_string($value)) {
         $alias = $qb->getMainAlias();
         $qb->linkInner($alias . '.productClass')->linkInner('productClass.translations', 'productClassTranslations')->andWhere('productClassTranslations.name = :productClass')->setParameter('productClass', $value);
     } else {
         $result = parent::addImportCondition($qb, $name, $value);
     }
 }
Example #8
0
 /**
  * Get detailed foreign keys
  *
  * @return array
  */
 protected function getDetailedForeignKeys()
 {
     $list = parent::getDetailedForeignKeys();
     $list[] = array('fields' => array('parent_id'), 'referenceRepo' => 'XLite\\Model\\Category', 'referenceFields' => array('category_id'), 'delete' => 'SET NULL');
     return $list;
 }
Example #9
0
 /**
  * Define cache cells
  *
  * @return array
  */
 protected function defineCacheCells()
 {
     $list = parent::defineCacheCells();
     $list['all_by_code'] = array();
     return $list;
 }
Example #10
0
 /**
  * Insert single entity
  *
  * @param \XLite\Model\AEntity|array $entity Data to insert OPTIONAL
  *
  * @return void
  */
 protected function performInsert($entity = null)
 {
     $entity = parent::performInsert($entity);
     if ($entity && !\XLite\Core\Database::getRepo('XLite\\Model\\Product')->getBlockQuickDataFlag()) {
         \XLite\Core\QuickData::getInstance()->updateMembershipData($entity);
     }
     return $entity;
 }
Example #11
0
 /**
  * Delete single entity
  *
  * @param \XLite\Model\AEntity $entity Entity to detach
  *
  * @return void
  */
 protected function performDelete(\XLite\Model\AEntity $entity)
 {
     $carts = (array) \XLite\Core\Database::getRepo('XLite\\Model\\Cart')->findAll();
     $items = array();
     foreach ($carts as $cart) {
         foreach ((array) $cart->getItemsByProductId($entity->getProductId()) as $item) {
             $cart->getItems()->removeElement($item);
             $items[] = $item;
         }
     }
     \XLite\Core\Database::getRepo('XLite\\Model\\OrderItem')->deleteInBatch($items);
     \XLite\Core\Database::getRepo('XLite\\Model\\Cart')->updateInBatch($carts);
     parent::performDelete($entity);
 }
Example #12
0
 /**
  * Find one by record
  *
  * @param array                $data   Record
  * @param \XLite\Model\AEntity $parent Parent model OPTIONAL
  *
  * @return \XLite\Model\AEntity
  */
 public function findOneByRecord(array $data, \XLite\Model\AEntity $parent = null)
 {
     if (isset($data['serviceName'])) {
         $result = $this->findOneByServiceName($data['serviceName']);
     } else {
         $result = parent::findOneByRecord($data, $parent);
     }
     return $result;
 }
Example #13
0
 /**
  * Define export iterator query builder
  *
  * @param integer $position Position
  *
  * @return \XLite\Model\QueryBuilder\AQueryBuilder
  */
 protected function defineExportIteratorQueryBuilder($position)
 {
     $queryBuilder = parent::defineExportIteratorQueryBuilder($position);
     $this->addSubTreeCondition($queryBuilder, $this->getRootCategoryId());
     return $queryBuilder;
 }