Exemple #1
0
 public function testReset()
 {
     // add only last id filter
     $this->filter->addLastIdFilter(1);
     $filters = $this->getAppliedFilters($this->filter);
     $this->assertCount(1, $filters['complex_filter']);
     // add date filter in initial mode
     $this->filter->addDateFilter('created_at', 'to', new \DateTime());
     $filters = $this->getAppliedFilters($this->filter);
     $this->assertCount(2, $filters['complex_filter']);
     // add dummy simple filter
     $this->filter->addFilter('test', ['test' => true]);
     $filters = $this->getAppliedFilters($this->filter);
     $this->assertCount(1, $filters['filter']);
     // reset only simple filter
     $this->filter->reset('filter');
     $filters = $this->getAppliedFilters($this->filter);
     $this->assertArrayNotHasKey('filter', $filters);
     $this->filter->reset();
     $filters = $this->getAppliedFilters($this->filter);
     $this->assertArrayNotHasKey('complex_filter', $filters);
     $this->assertArrayNotHasKey('filter', $filters);
     // add dummy simple filter
     $this->filter->addFilter('test', ['test' => true]);
     $filters = $this->getAppliedFilters($this->filter);
     $this->assertCount(1, $filters['filter']);
     $this->filter->reset(BatchFilterBag::FILTER_TYPE_SIMPLE, 'test');
     $filters = $this->getAppliedFilters($this->filter);
     $this->assertFalse(isset($filters['filter']['test']));
 }
 /**
  * @param \DateTime $date
  * @param array     $websiteIds
  * @param array     $storeIds
  * @param string    $format
  *
  * @return array
  */
 protected function getBatchFilter(\DateTime $date, array $websiteIds = [], array $storeIds = [], $format = 'Y-m-d H:i:s')
 {
     if ($this->websiteId !== StoresSoapIterator::ALL_WEBSITES) {
         if (!empty($websiteIds)) {
             $this->filter->addWebsiteFilter($websiteIds);
         }
         if (!empty($storeIds)) {
             $this->filter->addStoreFilter($storeIds);
         }
     }
     $initMode = $this->mode == self::IMPORT_MODE_INITIAL;
     if ($initMode) {
         $dateField = 'created_at';
         $dateKey = 'to';
     } else {
         $dateField = 'updated_at';
         $dateKey = 'from';
     }
     $this->filter->addDateFilter($dateField, $dateKey, $date, $format);
     $lastId = $this->getLastId();
     if (!is_null($lastId) && $initMode) {
         $this->filter->addLastIdFilter($lastId, $this->getIdFieldName());
     }
     $this->logAppliedFilters($this->filter);
     return $this->filter->getAppliedFilters();
 }
 /**
  * @param \DateTime $date
  * @param array $websiteIds
  * @param array $storeIds
  * @param string $format
  *
  * @return array
  */
 protected function getBatchFilter(\DateTime $date, array $websiteIds = [], array $storeIds = [], $format = 'Y-m-d H:i:s')
 {
     $this->applyWebsiteFilters($websiteIds, $storeIds);
     if ($this->isInitialSync()) {
         $this->filter->addDateFilter('created_at', 'from', $this->getToDate($date), $format);
         $this->filter->addDateFilter('created_at', 'to', $date, $format);
     } else {
         $this->filter->addDateFilter('updated_at', 'from', $date, $format);
     }
     $this->modifyFilters();
     $this->logAppliedFilters($this->filter);
     return $this->filter->getAppliedFilters();
 }