コード例 #1
0
ファイル: Customer.php プロジェクト: pradeep-wagento/magento2
 /**
  * Load search results
  *
  * @return $this
  */
 public function load()
 {
     $result = [];
     if (!$this->hasStart() || !$this->hasLimit() || !$this->hasQuery()) {
         $this->setResults($result);
         return $this;
     }
     $this->searchCriteriaBuilder->setCurrentPage($this->getStart());
     $this->searchCriteriaBuilder->setPageSize($this->getLimit());
     $searchFields = ['firstname', 'lastname', 'company'];
     $filters = [];
     foreach ($searchFields as $field) {
         $filters[] = $this->filterBuilder->setField($field)->setConditionType('like')->setValue($this->getQuery() . '%')->create();
     }
     $this->searchCriteriaBuilder->addFilters($filters);
     $searchCriteria = $this->searchCriteriaBuilder->create();
     $searchResults = $this->customerRepository->getList($searchCriteria);
     foreach ($searchResults->getItems() as $customer) {
         $customerAddresses = $customer->getAddresses();
         /** Look for a company name defined in default billing address */
         $company = null;
         foreach ($customerAddresses as $customerAddress) {
             if ($customerAddress->getId() == $customer->getDefaultBilling()) {
                 $company = $customerAddress->getCompany();
                 break;
             }
         }
         $result[] = ['id' => 'customer/1/' . $customer->getId(), 'type' => __('Customer'), 'name' => $this->_customerViewHelper->getCustomerName($customer), 'description' => $company, 'url' => $this->_adminhtmlData->getUrl('customer/index/edit', ['id' => $customer->getId()])];
     }
     $this->setResults($result);
     return $this;
 }
コード例 #2
0
 /**
  * Test a search using 'like' condition
  */
 public function testLike()
 {
     $attributeCode = 'description';
     $attributeCodeId = 42;
     $attribute = $this->getMock('Magento\\Catalog\\Model\\ResourceModel\\Eav\\Attribute', [], [], '', false);
     $attribute->expects($this->once())->method('getAttributeCode')->willReturn($attributeCode);
     $this->eavConfig->expects($this->once())->method('getAttribute')->with(Product::ENTITY, $attributeCodeId)->willReturn($attribute);
     $filtersData = ['catalog_product_entity_text' => [$attributeCodeId => ['like' => 'search text']]];
     $this->filterBuilder->expects($this->once())->method('setField')->with($attributeCode)->willReturn($this->filterBuilder);
     $this->filterBuilder->expects($this->once())->method('setValue')->with('search text')->willReturn($this->filterBuilder);
     $filter = $this->getMock('Magento\\Framework\\Api\\Filter');
     $this->filterBuilder->expects($this->once())->method('create')->willReturn($filter);
     $criteria = $this->getMock('Magento\\Framework\\Api\\Search\\SearchCriteria', [], [], '', false);
     $this->criteriaBuilder->expects($this->once())->method('create')->willReturn($criteria);
     $criteria->expects($this->once())->method('setRequestName')->with('advanced_search_container');
     $tempTable = $this->getMock('Magento\\Framework\\DB\\Ddl\\Table', [], [], '', false);
     $temporaryStorage = $this->getMock('Magento\\Framework\\Search\\Adapter\\Mysql\\TemporaryStorage', [], [], '', false);
     $temporaryStorage->expects($this->once())->method('storeApiDocuments')->willReturn($tempTable);
     $this->temporaryStorageFactory->expects($this->once())->method('create')->willReturn($temporaryStorage);
     $searchResult = $this->getMock('Magento\\Framework\\Api\\Search\\SearchResultInterface', [], [], '', false);
     $this->search->expects($this->once())->method('search')->willReturn($searchResult);
     // addFieldsToFilter will load filters,
     //   then loadWithFilter will trigger _renderFiltersBefore code in Advanced/Collection
     $this->assertSame($this->advancedCollection, $this->advancedCollection->addFieldsToFilter($filtersData)->loadWithFilter());
 }
コード例 #3
0
 public function testGetByIdentifierNamespace()
 {
     $userId = 1;
     $namespace = 'some_namespace';
     $identifier = 'current';
     $this->userContext->expects($this->once())->method('getUserId')->willReturn($userId);
     $fieldUserId = new Filter([Filter::KEY_FIELD => 'user_id', Filter::KEY_VALUE => $userId, Filter::KEY_CONDITION_TYPE => 'eq']);
     $fieldIdentifier = new Filter([Filter::KEY_FIELD => 'identifier', Filter::KEY_VALUE => $identifier, Filter::KEY_CONDITION_TYPE => 'eq']);
     $fieldNamespace = new Filter([Filter::KEY_FIELD => 'namespace', Filter::KEY_VALUE => $namespace, Filter::KEY_CONDITION_TYPE => 'eq']);
     $bookmarkId = 1;
     $bookmark = $this->getMockBuilder('Magento\\Ui\\Api\\Data\\BookmarkInterface')->getMockForAbstractClass();
     $bookmark->expects($this->once())->method('getId')->willReturn($bookmarkId);
     $searchCriteria = $this->getMockBuilder('Magento\\Framework\\Api\\SearchCriteriaInterface')->getMockForAbstractClass();
     $this->filterBuilder->expects($this->at(0))->method('create')->willReturn($fieldUserId);
     $this->filterBuilder->expects($this->at(1))->method('create')->willReturn($fieldIdentifier);
     $this->filterBuilder->expects($this->at(2))->method('create')->willReturn($fieldNamespace);
     $this->searchCriteriaBuilder->expects($this->once())->method('addFilters')->with([$fieldUserId, $fieldIdentifier, $fieldNamespace]);
     $this->searchCriteriaBuilder->expects($this->once())->method('create')->willReturn($searchCriteria);
     $searchResult = $this->getMockBuilder('Magento\\Ui\\Api\\Data\\BookmarkSearchResultsInterface')->getMockForAbstractClass();
     $searchResult->expects($this->once())->method('getTotalCount')->willReturn(1);
     $searchResult->expects($this->once())->method('getItems')->willReturn([$bookmark]);
     $this->bookmarkRepository->expects($this->once())->method('getList')->with($searchCriteria)->willReturn($searchResult);
     $this->bookmarkRepository->expects($this->once())->method('getById')->with($bookmarkId)->willReturn($bookmark);
     $this->assertEquals($bookmark, $this->bookmarkManagement->getByIdentifierNamespace($identifier, $namespace));
 }
コード例 #4
0
ファイル: CustomerTest.php プロジェクト: opexsw/magento2
 /**
  * Run test getAllOptions method
  *
  * @param bool $isEmpty
  * @param array $expected
  * @dataProvider dataProviderGetAllOptions
  */
 public function testGetAllOptions($isEmpty, array $expected)
 {
     $filterMock = $this->getMock('Magento\\Framework\\Api\\Filter', [], [], '', false);
     $searchCriteriaMock = $this->getMock('Magento\\Framework\\Api\\SearchCriteria', [], [], '', false);
     $searchResultsMock = $this->getMockForAbstractClass('Magento\\Tax\\Api\\Data\\TaxClassSearchResultsInterface', [], '', false, true, true, ['getItems']);
     $taxClassMock = $this->getMockForAbstractClass('Magento\\Tax\\Api\\Data\\TaxClassInterface', ['getClassId', 'getClassName'], '', false, true, true);
     $this->filterBuilderMock->expects($this->once())->method('setField')->with(\Magento\Tax\Model\ClassModel::KEY_TYPE)->willReturnSelf();
     $this->filterBuilderMock->expects($this->once())->method('setValue')->with(\Magento\Tax\Api\TaxClassManagementInterface::TYPE_CUSTOMER)->willReturnSelf();
     $this->filterBuilderMock->expects($this->once())->method('create')->willReturn($filterMock);
     $this->searchCriteriaBuilderMock->expects($this->once())->method('addFilter')->with([$filterMock])->willReturnSelf();
     $this->searchCriteriaBuilderMock->expects($this->once())->method('create')->willReturn($searchCriteriaMock);
     $this->taxClassRepositoryMock->expects($this->once())->method('getList')->with($searchCriteriaMock)->willReturn($searchResultsMock);
     if (!$isEmpty) {
         $taxClassMock->expects($this->once())->method('getClassId')->willReturn(10);
         $taxClassMock->expects($this->once())->method('getClassName')->willReturn('class-name');
         $items = [$taxClassMock];
         $searchResultsMock->expects($this->once())->method('getItems')->willReturn($items);
         // checking of a lack of re-initialization
         for ($i = 10; --$i;) {
             $result = $this->customer->getAllOptions();
             $this->assertEquals($expected, $result);
         }
     } else {
         $items = [];
         $searchResultsMock->expects($this->once())->method('getItems')->willReturn($items);
         // checking exception
         $this->assertEmpty($this->customer->getAllOptions());
     }
 }
コード例 #5
0
ファイル: SelectTest.php プロジェクト: Doability/magento2dev
 /**
  * Run test prepare method
  *
  * @param array $data
  * @param array $filterData
  * @param array|null $expectedCondition
  * @dataProvider getPrepareDataProvider
  * @return void
  */
 public function testPrepare($data, $filterData, $expectedCondition)
 {
     $name = $data['name'];
     /** @var UiComponentInterface $uiComponent */
     $uiComponent = $this->getMockForAbstractClass('Magento\\Framework\\View\\Element\\UiComponentInterface', [], '', false);
     $uiComponent->expects($this->any())->method('getContext')->willReturn($this->contextMock);
     $this->contextMock->expects($this->any())->method('getNamespace')->willReturn(Select::NAME);
     $this->contextMock->expects($this->any())->method('addComponentDefinition')->with(Select::NAME, ['extends' => Select::NAME]);
     $this->contextMock->expects($this->any())->method('getFiltersParams')->willReturn($filterData);
     /** @var DataProviderInterface $dataProvider */
     $dataProvider = $this->getMockForAbstractClass('Magento\\Framework\\View\\Element\\UiComponent\\DataProvider\\DataProviderInterface', ['addFilter'], '', false);
     $this->contextMock->expects($this->any())->method('getDataProvider')->willReturn($dataProvider);
     if ($expectedCondition !== null) {
         $filterMock = $this->getMock('Magento\\Framework\\Api\\Filter');
         $this->filterBuilderMock->expects($this->any())->method('setConditionType')->with($expectedCondition)->willReturnSelf();
         $this->filterBuilderMock->expects($this->any())->method('setField')->with($name)->willReturnSelf();
         $this->filterBuilderMock->expects($this->any())->method('setValue')->willReturnSelf();
         $this->filterBuilderMock->expects($this->any())->method('create')->willReturn($filterMock);
         $dataProvider->expects($this->any())->method('addFilter')->with($filterMock);
     }
     /** @var \Magento\Framework\Data\OptionSourceInterface $selectOptions */
     $selectOptions = $this->getMockForAbstractClass('Magento\\Framework\\Data\\OptionSourceInterface', [], '', false);
     $this->uiComponentFactory->expects($this->any())->method('create')->with($name, Select::COMPONENT, ['context' => $this->contextMock, 'options' => $selectOptions])->willReturn($uiComponent);
     $date = new Select($this->contextMock, $this->uiComponentFactory, $this->filterBuilderMock, $this->filterModifierMock, $selectOptions, [], $data);
     $date->prepare();
 }
コード例 #6
0
ファイル: Customer.php プロジェクト: shabbirvividads/magento2
 /**
  * {@inheritdoc}
  */
 public function isAssignedToObjects()
 {
     $searchCriteria = $this->searchCriteriaBuilder->addFilter([$this->filterBuilder->setField(CustomerGroup::TAX_CLASS_ID)->setValue($this->getId())->create()])->create();
     $result = $this->customerGroupRepository->getList($searchCriteria);
     $items = $result->getItems();
     return !empty($items);
 }
コード例 #7
0
 public function testGetCommentsList()
 {
     $this->filterBuilderMock->expects($this->once())->method('setField')->with('parent_id')->willReturnSelf();
     $this->filterBuilderMock->expects($this->once())->method('setValue')->with(123)->willReturnSelf();
     $this->filterBuilderMock->expects($this->once())->method('create')->willReturn($this->filterMock);
     $this->searchCriteriaBuilderMock->expects($this->once())->method('addFilter')->with(['eq' => $this->filterMock])->willReturn($this->filterBuilderMock);
     $this->searchCriteriaBuilderMock->expects($this->once())->method('create')->willReturn($this->searchCriteriaMock);
     $this->orderStatusHistoryRepositoryMock->expects($this->once())->method('getList')->with($this->searchCriteriaMock)->willReturn($this->orderSearchResultMock);
     $this->assertEquals($this->orderSearchResultMock, $this->orderService->getCommentsList(123));
 }
コード例 #8
0
 /**
  * @param $filterModifier
  * @param $filterName
  * @param $conditionType
  * @param $value
  * @return void
  * @dataProvider getApplyFilterModifierDataProvider
  */
 public function testApplyFilterModifierWith($filterModifier, $filterName, $conditionType, $value)
 {
     $filter = $this->getMock('Magento\\Framework\\Api\\Filter');
     $this->request->expects($this->once())->method('getParam')->with(\Magento\Ui\Component\Filters\FilterModifier::FILTER_MODIFIER)->willReturn($filterModifier);
     $this->filterBuilder->expects($this->once())->method('setConditionType')->with($conditionType)->willReturnSelf();
     $this->filterBuilder->expects($this->once())->method('setField')->with($filterName)->willReturnSelf();
     $this->filterBuilder->expects($this->once())->method('setValue')->with($value)->willReturnSelf();
     $this->filterBuilder->expects($this->once())->method('create')->with()->willReturn($filter);
     $this->dataProvider->expects($this->once())->method('addFilter')->with($filter);
     $this->unit->applyFilterModifier($this->dataProvider, $filterName);
 }
コード例 #9
0
 /**
  * @return void
  */
 public function execute()
 {
     $filter = $this->filterBuilder->setField('parent_id')->setValue($this->_getCheckout()->getCustomer()->getId())->setConditionType('eq')->create();
     $addresses = (array) $this->addressRepository->getList($this->searchCriteriaBuilder->addFilters([$filter])->create())->getItems();
     /**
      * if we create first address we need reset emd init checkout
      */
     if (count($addresses) === 1) {
         $this->_getCheckout()->reset();
     }
     $this->_redirect('*/checkout/addresses');
 }
コード例 #10
0
 /**
  * Apply modifiers for filters
  *
  * @param DataProviderInterface $dataProvider
  * @param string $filterName
  * @return void
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 public function applyFilterModifier(DataProviderInterface $dataProvider, $filterName)
 {
     $filterModifier = $this->request->getParam(self::FILTER_MODIFIER);
     if (isset($filterModifier[$filterName]['condition_type'])) {
         $conditionType = $filterModifier[$filterName]['condition_type'];
         if (!in_array($conditionType, $this->allowedConditionTypes)) {
             throw new \Magento\Framework\Exception\LocalizedException(__('Condition type "%1" is not allowed', $conditionType));
         }
         $value = isset($filterModifier[$filterName]['value']) ? $filterModifier[$filterName]['value'] : null;
         $filter = $this->filterBuilder->setConditionType($conditionType)->setField($filterName)->setValue($value)->create();
         $dataProvider->addFilter($filter);
     }
 }
コード例 #11
0
 /**
  * {@inheritdoc}
  */
 public function getByIdentifierNamespace($identifier, $namespace)
 {
     $this->searchCriteriaBuilder->addFilters([$this->filterBuilder->setField('user_id')->setConditionType('eq')->setValue($this->userContext->getUserId())->create(), $this->filterBuilder->setField('identifier')->setConditionType('eq')->setValue($identifier)->create(), $this->filterBuilder->setField('namespace')->setConditionType('eq')->setValue($namespace)->create()]);
     $searchCriteria = $this->searchCriteriaBuilder->create();
     $searchResults = $this->bookmarkRepository->getList($searchCriteria);
     if ($searchResults->getTotalCount() > 0) {
         foreach ($searchResults->getItems() as $searchResult) {
             $bookmark = $this->bookmarkRepository->getById($searchResult->getId());
             return $bookmark;
         }
     }
     return null;
 }
コード例 #12
0
 /**
  * Get a list of current customer addresses.
  *
  * @return \Magento\Customer\Api\Data\AddressInterface[]
  */
 public function getAddress()
 {
     $addresses = $this->getData('address_collection');
     if ($addresses === null) {
         try {
             $filter = $this->filterBuilder->setField('parent_id')->setValue($this->_multishipping->getCustomer()->getId())->setConditionType('eq')->create();
             $addresses = (array) $this->addressRepository->getList($this->searchCriteriaBuilder->addFilters([$filter])->create())->getItems();
         } catch (NoSuchEntityException $e) {
             return [];
         }
         $this->setData('address_collection', $addresses);
     }
     return $addresses;
 }
コード例 #13
0
ファイル: Customer.php プロジェクト: shabbirvividads/magento2
 /**
  * Retrieve all customer tax classes as an options array.
  *
  * @return array
  * @throws StateException
  */
 public function getAllOptions()
 {
     if (empty($this->_options)) {
         $options = [];
         $filter = $this->filterBuilder->setField(TaxClass::KEY_TYPE)->setValue(TaxClassManagementInterface::TYPE_CUSTOMER)->create();
         $searchCriteria = $this->searchCriteriaBuilder->addFilter([$filter])->create();
         $searchResults = $this->taxClassRepository->getList($searchCriteria);
         foreach ($searchResults->getItems() as $taxClass) {
             $options[] = ['value' => $taxClass->getClassId(), 'label' => $taxClass->getClassName()];
         }
         $this->_options = $options;
     }
     return $this->_options;
 }
コード例 #14
0
 /**
  * Run test getCommentsList method
  */
 public function testGetCommentsList()
 {
     $id = 25;
     $returnValue = 'return-value';
     $filterMock = $this->getMock('Magento\\Framework\\Api\\Filter', [], [], '', false);
     $searchCriteriaMock = $this->getMock('Magento\\Framework\\Api\\SearchCriteria', [], [], '', false);
     $this->filterBuilderMock->expects($this->once())->method('setField')->with('parent_id')->will($this->returnSelf());
     $this->filterBuilderMock->expects($this->once())->method('setValue')->with($id)->will($this->returnSelf());
     $this->filterBuilderMock->expects($this->once())->method('create')->will($this->returnValue($filterMock));
     $this->criteriaBuilderMock->expects($this->once())->method('addFilter')->with(['eq' => $filterMock]);
     $this->criteriaBuilderMock->expects($this->once())->method('create')->will($this->returnValue($searchCriteriaMock));
     $this->commentRepositoryMock->expects($this->once())->method('getList')->with($searchCriteriaMock)->will($this->returnValue($returnValue));
     $this->assertEquals($returnValue, $this->shipmentService->getCommentsList($id));
 }
コード例 #15
0
ファイル: Form.php プロジェクト: vv-team/foodo
 /**
  * {@inheritdoc}
  */
 public function getDataSourceData()
 {
     $dataSource = [];
     $id = $this->getContext()->getRequestParam($this->getContext()->getDataProvider()->getRequestFieldName());
     if ($id) {
         $filter = $this->filterBuilder->setField($this->getContext()->getDataProvider()->getPrimaryFieldName())->setValue($id)->create();
         $this->getContext()->getDataProvider()->addFilter($filter);
         $data = $this->getContext()->getDataProvider()->getData();
         if (isset($data[$id])) {
             $dataSource = ['data' => $data[$id]];
         }
     }
     return $dataSource;
 }
コード例 #16
0
 /**
  * {@inheritdoc}
  */
 public function getTaxClassId($taxClassKey, $taxClassType = self::TYPE_PRODUCT)
 {
     if (!empty($taxClassKey)) {
         switch ($taxClassKey->getType()) {
             case TaxClassKeyInterface::TYPE_ID:
                 return $taxClassKey->getValue();
             case TaxClassKeyInterface::TYPE_NAME:
                 $searchCriteria = $this->searchCriteriaBuilder->addFilters([$this->filterBuilder->setField(ClassModel::KEY_TYPE)->setValue($taxClassType)->create()])->addFilters([$this->filterBuilder->setField(ClassModel::KEY_NAME)->setValue($taxClassKey->getValue())->create()])->create();
                 $taxClasses = $this->classRepository->getList($searchCriteria)->getItems();
                 $taxClass = array_shift($taxClasses);
                 return null == $taxClass ? null : $taxClass->getClassId();
         }
     }
     return null;
 }
コード例 #17
0
 /**
  * load entity
  *
  * @param int $id
  * @return Transaction
  * @throws \Magento\Framework\Exception\NoSuchEntityException
  * @throws \Magento\Framework\Exception\InputException
  */
 public function get($id)
 {
     if (!$id) {
         throw new \Magento\Framework\Exception\InputException(__('ID required'));
     }
     if (!isset($this->registry[$id])) {
         $filter = $this->filterBuilder->setField('transaction_id')->setValue($id)->setConditionType('eq')->create();
         $this->searchCriteriaBuilder->addFilters([$filter]);
         $this->find($this->searchCriteriaBuilder->create());
         if (!isset($this->registry[$id])) {
             throw new \Magento\Framework\Exception\NoSuchEntityException(__('Requested entity doesn\'t exist'));
         }
     }
     return $this->registry[$id];
 }
コード例 #18
0
 /**
  * {@inheritdoc}
  */
 public function run()
 {
     $this->logger->log('Installing taxes:');
     $fixtureFile = 'Tax/tax_rate.csv';
     $fixtureFilePath = $this->fixtureHelper->getPath($fixtureFile);
     /** @var \Magento\SampleData\Helper\Csv\Reader $csvReader */
     $csvReader = $this->csvReaderFactory->create(['fileName' => $fixtureFilePath, 'mode' => 'r']);
     foreach ($csvReader as $data) {
         if ($this->rateFactory->create()->loadByCode($data['code'])->getId()) {
             continue;
         }
         $taxRate = $this->rateFactory->create();
         $taxRate->setCode($data['code'])->setTaxCountryId($data['tax_country_id'])->setTaxRegionId($data['tax_region_id'])->setTaxPostcode($data['tax_postcode'])->setRate($data['rate']);
         $this->taxRateRepository->save($taxRate);
         $this->logger->logInline('.');
     }
     $fixtureFile = 'Tax/tax_rule.csv';
     $fixtureFilePath = $this->fixtureHelper->getPath($fixtureFile);
     /** @var \Magento\SampleData\Helper\Csv\Reader $csvReader */
     $csvReader = $this->csvReaderFactory->create(['fileName' => $fixtureFilePath, 'mode' => 'r']);
     foreach ($csvReader as $data) {
         $filter = $this->filterBuilder->setField('code')->setConditionType('=')->setValue($data['code'])->create();
         $criteria = $this->criteriaBuilder->addFilters([$filter])->create();
         $existingRates = $this->taxRuleRepository->getList($criteria)->getItems();
         if (!empty($existingRates)) {
             continue;
         }
         $taxRate = $this->taxRateFactory->create()->loadByCode($data['tax_rate']);
         $taxRule = $this->ruleFactory->create();
         $taxRule->setCode($data['code'])->setTaxRateIds([$taxRate->getId()])->setCustomerTaxClassIds([$data['tax_customer_class']])->setProductTaxClassIds([$data['tax_product_class']])->setPriority($data['priority'])->setCalculateSubtotal($data['calculate_subtotal'])->setPosition($data['position']);
         $this->taxRuleRepository->save($taxRule);
         $this->logger->logInline('.');
     }
 }
コード例 #19
0
 /**
  * @param string $vaultPaymentCode
  * @return TokenUiComponentInterface[]
  */
 public function getTokensComponents($vaultPaymentCode)
 {
     $result = [];
     $customerId = $this->session->getCustomerId();
     if (!$customerId) {
         return $result;
     }
     $vaultPayment = $this->getVaultPayment($vaultPaymentCode);
     if ($vaultPayment === null) {
         return $result;
     }
     $vaultProviderCode = $vaultPayment->getProviderCode();
     $componentProvider = $this->getComponentProvider($vaultProviderCode);
     if ($componentProvider === null) {
         return $result;
     }
     $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::CUSTOMER_ID)->setValue($customerId)->create();
     $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::PAYMENT_METHOD_CODE)->setValue($vaultProviderCode)->create();
     $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::IS_ACTIVE)->setValue(1)->create();
     $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::EXPIRES_AT)->setConditionType('gt')->setValue($this->dateTimeFactory->create('now', new \DateTimeZone('UTC'))->format('Y-m-d 00:00:00'))->create();
     $searchCriteria = $this->searchCriteriaBuilder->addFilters($filters)->create();
     foreach ($this->paymentTokenRepository->getList($searchCriteria)->getItems() as $token) {
         $result[] = $componentProvider->getComponentForToken($token);
     }
     return $result;
 }
コード例 #20
0
 /**
  * {@inheritdoc}
  */
 public function getLoggedInGroups()
 {
     $notLoggedInFilter[] = $this->filterBuilder->setField(GroupInterface::ID)->setConditionType('neq')->setValue(self::NOT_LOGGED_IN_ID)->create();
     $groupAll[] = $this->filterBuilder->setField(GroupInterface::ID)->setConditionType('neq')->setValue(self::CUST_GROUP_ALL)->create();
     $searchCriteria = $this->searchCriteriaBuilder->addFilters($notLoggedInFilter)->addFilters($groupAll)->create();
     return $this->groupRepository->getList($searchCriteria)->getItems();
 }
コード例 #21
0
 /**
  * @inheritdoc
  */
 protected function _renderFiltersBefore()
 {
     $this->getSearchCriteriaBuilder();
     $this->getFilterBuilder();
     $this->getSearch();
     if ($this->queryText) {
         $this->filterBuilder->setField('search_term');
         $this->filterBuilder->setValue($this->queryText);
         $this->searchCriteriaBuilder->addFilter($this->filterBuilder->create());
     }
     $priceRangeCalculation = $this->_scopeConfig->getValue(\Magento\Catalog\Model\Layer\Filter\Dynamic\AlgorithmFactory::XML_PATH_RANGE_CALCULATION, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
     if ($priceRangeCalculation) {
         $this->filterBuilder->setField('price_dynamic_algorithm');
         $this->filterBuilder->setValue($priceRangeCalculation);
         $this->searchCriteriaBuilder->addFilter($this->filterBuilder->create());
     }
     $searchCriteria = $this->searchCriteriaBuilder->create();
     $searchCriteria->setRequestName($this->searchRequestName);
     $this->searchResult = $this->search->search($searchCriteria);
     $temporaryStorage = $this->temporaryStorageFactory->create();
     $table = $temporaryStorage->storeApiDocuments($this->searchResult->getItems());
     $this->getSelect()->joinInner(['search_result' => $table->getName()], 'e.entity_id = search_result.' . TemporaryStorage::FIELD_ENTITY_ID, []);
     $this->_totalRecords = $this->searchResult->getTotalCount();
     if ($this->order && 'relevance' === $this->order['field']) {
         $this->getSelect()->order('search_result.' . TemporaryStorage::FIELD_SCORE . ' ' . $this->order['dir']);
     }
     return parent::_renderFiltersBefore();
 }
コード例 #22
0
 /**
  * Find a customer
  *
  * @param string $attributeValue Attribute Value
  * @return bool|\Magento\Customer\Api\Data\CustomerInterface
  */
 private function findCustomerByLoginAttribute($attributeValue)
 {
     // Retrieve the customer login attribute and check if valid
     $loginAttribute = $this->advancedLoginConfigProvider->getLoginAttribute();
     if (false === $loginAttribute) {
         return false;
     }
     // Add website filter if customer accounts are shared per website
     $websiteIdFilter = false;
     if ($this->advancedLoginConfigProvider->getCustomerAccountShareScope() == Share::SHARE_WEBSITE) {
         $websiteIdFilter[] = $this->filterBuilder->setField('website_id')->setConditionType('eq')->setValue($this->storeManager->getStore()->getWebsiteId())->create();
     }
     // Add customer attribute filter
     $customerNumberFilter[] = $this->filterBuilder->setField('customer_number')->setConditionType('eq')->setValue($attributeValue)->create();
     // Build search criteria
     $searchCriteriaBuilder = $this->searchCriteriaBuilder->addFilters($customerNumberFilter);
     if ($websiteIdFilter) {
         $searchCriteriaBuilder->addFilters($websiteIdFilter);
     }
     $searchCriteria = $searchCriteriaBuilder->create();
     // Retrieve the customer collection and return customer if there was exactly one customer found
     $collection = $this->customerRepository->getList($searchCriteria);
     if ($collection->getTotalCount() == 1) {
         return $collection->getItems()[0];
     }
     return false;
 }
コード例 #23
0
ファイル: ProductRepository.php プロジェクト: opexsw/magento2
 /**
  * {@inheritdoc}
  */
 public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
 {
     /** @var \Magento\Catalog\Model\Resource\Product\Collection $collection */
     $collection = $this->collectionFactory->create();
     $defaultAttributeSetId = $this->eavConfig->getEntityType(\Magento\Catalog\Api\Data\ProductAttributeInterface::ENTITY_TYPE_CODE)->getDefaultAttributeSetId();
     $extendedSearchCriteria = $this->searchCriteriaBuilder->addFilter([$this->filterBuilder->setField('attribute_set_id')->setValue($defaultAttributeSetId)->create()]);
     foreach ($this->metadataService->getList($extendedSearchCriteria->create())->getItems() as $metadata) {
         $collection->addAttributeToSelect($metadata->getAttributeCode());
     }
     $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner');
     $collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'inner');
     //Add filters from root filter group to the collection
     foreach ($searchCriteria->getFilterGroups() as $group) {
         $this->addFilterGroupToCollection($group, $collection);
     }
     /** @var SortOrder $sortOrder */
     foreach ((array) $searchCriteria->getSortOrders() as $sortOrder) {
         $field = $sortOrder->getField();
         $collection->addOrder($field, $sortOrder->getDirection() == SearchCriteriaInterface::SORT_ASC ? 'ASC' : 'DESC');
     }
     $collection->setCurPage($searchCriteria->getCurrentPage());
     $collection->setPageSize($searchCriteria->getPageSize());
     $collection->load();
     $searchResult = $this->searchResultsFactory->create();
     $searchResult->setSearchCriteria($searchCriteria);
     $searchResult->setItems($collection->getItems());
     $searchResult->setTotalCount($collection->getSize());
     return $searchResult;
 }
コード例 #24
0
 /**
  * Test using multiple filters
  */
 public function testSearchTaxClassMultipleFilterGroups()
 {
     $productTaxClass = [ClassModel::KEY_NAME => 'Taxable Goods', ClassModel::KEY_TYPE => 'PRODUCT'];
     $customerTaxClass = [ClassModel::KEY_NAME => 'Retail Customer', ClassModel::KEY_TYPE => 'CUSTOMER'];
     $filter1 = $this->filterBuilder->setField(ClassModel::KEY_NAME)->setValue($productTaxClass[ClassModel::KEY_NAME])->create();
     $filter2 = $this->filterBuilder->setField(ClassModel::KEY_NAME)->setValue($customerTaxClass[ClassModel::KEY_NAME])->create();
     $filter3 = $this->filterBuilder->setField(ClassModel::KEY_TYPE)->setValue($productTaxClass[ClassModel::KEY_TYPE])->create();
     $filter4 = $this->filterBuilder->setField(ClassModel::KEY_TYPE)->setValue($customerTaxClass[ClassModel::KEY_TYPE])->create();
     /**
      * (class_name == 'Retail Customer' || class_name == 'Taxable Goods)
      * && ( class_type == 'CUSTOMER' || class_type == 'PRODUCT')
      */
     $this->searchCriteriaBuilder->addFilters([$filter1, $filter2]);
     $this->searchCriteriaBuilder->addFilters([$filter3, $filter4]);
     $searchCriteria = $this->searchCriteriaBuilder->setCurrentPage(1)->setPageSize(10)->create();
     $searchData = $searchCriteria->__toArray();
     $requestData = ['searchCriteria' => $searchData];
     $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . '/search' . '?' . http_build_query($requestData), 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET], 'soap' => ['service' => self::SERVICE_NAME, 'serviceVersion' => self::SERVICE_VERSION, 'operation' => self::SERVICE_NAME . 'GetList']];
     $searchResults = $this->_webApiCall($serviceInfo, $requestData);
     $this->assertEquals(2, $searchResults['total_count']);
     $this->assertEquals($productTaxClass[ClassModel::KEY_NAME], $searchResults['items'][0][ClassModel::KEY_NAME]);
     $this->assertEquals($customerTaxClass[ClassModel::KEY_NAME], $searchResults['items'][1][ClassModel::KEY_NAME]);
     /** class_name == 'Retail Customer' && ( class_type == 'CUSTOMER' || class_type == 'PRODUCT') */
     $this->searchCriteriaBuilder->addFilters([$filter2]);
     $this->searchCriteriaBuilder->addFilters([$filter3, $filter4]);
     $searchCriteria = $this->searchCriteriaBuilder->create();
     $searchData = $searchCriteria->__toArray();
     $requestData = ['searchCriteria' => $searchData];
     $serviceInfo['rest']['resourcePath'] = self::RESOURCE_PATH . '/search' . '?' . http_build_query($requestData);
     $searchResults = $this->_webApiCall($serviceInfo, $requestData);
     $this->assertEquals(1, $searchResults['total_count']);
     $this->assertEquals($customerTaxClass[ClassModel::KEY_NAME], $searchResults['items'][0][ClassModel::KEY_NAME]);
 }
コード例 #25
0
 /**
  * Retrieve assoc array of checkout configuration
  *
  * @return array
  */
 public function getConfig()
 {
     $vaultPayments = [];
     $customerId = $this->session->getCustomerId();
     if (!$customerId) {
         return $vaultPayments;
     }
     $storeId = $this->storeManager->getStore()->getId();
     if (!$this->vaultPayment->isActive($storeId)) {
         return $vaultPayments;
     }
     $vaultProviderCode = $this->vaultPayment->getProviderCode($storeId);
     $componentProvider = $this->getComponentProvider($vaultProviderCode);
     if (null === $componentProvider) {
         return $vaultPayments;
     }
     $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::CUSTOMER_ID)->setValue($customerId)->create();
     $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::IS_VISIBLE)->setValue(1)->create();
     $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::PAYMENT_METHOD_CODE)->setValue($vaultProviderCode)->create();
     $searchCriteria = $this->searchCriteriaBuilder->addFilters($filters)->create();
     foreach ($this->paymentTokenRepository->getList($searchCriteria)->getItems() as $index => $token) {
         $component = $componentProvider->getComponentForToken($token);
         $vaultPayments[VaultPaymentInterface::CODE . '_item_' . $index] = ['config' => $component->getConfig(), 'component' => $component->getName()];
     }
     return ['payment' => [VaultPaymentInterface::CODE => $vaultPayments]];
 }
コード例 #26
0
 /**
  * {@inheritdoc}
  */
 public function getRatesByCustomerAndProductTaxClassId($customerTaxClassId, $productTaxClassId)
 {
     $this->searchCriteriaBuilder->addFilter([$this->filterBuilder->setField('customer_tax_class_ids')->setValue([$customerTaxClassId])->create()]);
     $this->searchCriteriaBuilder->addFilter([$this->filterBuilder->setField('product_tax_class_ids')->setValue([$productTaxClassId])->create()]);
     $searchResults = $this->taxRuleRepository->getList($this->searchCriteriaBuilder->create());
     $taxRules = $searchResults->getItems();
     $rates = [];
     foreach ($taxRules as $taxRule) {
         $rateIds = $taxRule->getTaxRateIds();
         if (!empty($rateIds)) {
             foreach ($rateIds as $rateId) {
                 $rates[] = $this->taxRateRepository->get($rateId);
             }
         }
     }
     return $rates;
 }
 /**
  * @param string $field
  * @param mixed $value
  * @param int $atIndex
  *
  * @return \PHPUnit_Framework_MockObject_MockObject
  */
 private function createExpectedFilter($field, $value, $atIndex)
 {
     $filterObject = $this->getMockBuilder(Filter::class)->disableOriginalConstructor()->getMock();
     $this->filterBuilderMock->expects(new MethodInvokedAtIndex($atIndex))->method('setField')->with($field)->willReturnSelf();
     $this->filterBuilderMock->expects(new MethodInvokedAtIndex($atIndex))->method('setValue')->with($value)->willReturnSelf();
     $this->filterBuilderMock->expects(new MethodInvokedAtIndex($atIndex))->method('create')->willReturn($filterObject);
     return $filterObject;
 }
コード例 #28
0
 /**
  * Check if capture transaction already exists
  *
  * @param OrderPaymentInterface $payment
  * @return bool
  */
 private function isExistsCaptureTransaction(OrderPaymentInterface $payment)
 {
     $filters[] = $this->filterBuilder->setField('payment_id')->setValue($payment->getId())->create();
     $filters[] = $this->filterBuilder->setField('txn_type')->setValue(TransactionInterface::TYPE_CAPTURE)->create();
     $searchCriteria = $this->searchCriteriaBuilder->addFilters($filters)->create();
     $count = $this->transactionRepository->getList($searchCriteria)->getTotalCount();
     return (bool) $count;
 }
コード例 #29
0
 /**
  * @expectedException \Exception
  */
 public function testGetListThrowsExceptionIfProvidedSearchFieldIsInvalid()
 {
     $serviceInfo = ['soap' => ['service' => 'quoteCartRepositoryV1', 'serviceVersion' => 'V1', 'operation' => 'quoteCartRepositoryV1GetList'], 'rest' => ['resourcePath' => '/V1/carts/search', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT]];
     $invalidFilter = $this->filterBuilder->setField('invalid_field')->setConditionType('eq')->setValue(0)->create();
     $this->searchCriteriaBuilder->addFilters([$invalidFilter]);
     $searchCriteria = $this->searchCriteriaBuilder->create()->__toArray();
     $requestData = ['searchCriteria' => $searchCriteria];
     $this->_webApiCall($serviceInfo, $requestData);
 }
コード例 #30
-1
 /**
  * {@inheritdoc}
  */
 public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
 {
     $this->searchCriteriaBuilder->addFilter([$this->filterBuilder->setField('entity_type_code')->setValue(\Magento\Catalog\Api\Data\ProductAttributeInterface::ENTITY_TYPE_CODE)->setConditionType('eq')->create()]);
     $this->searchCriteriaBuilder->setCurrentPage($searchCriteria->getCurrentPage());
     $this->searchCriteriaBuilder->setPageSize($searchCriteria->getPageSize());
     return $this->attributeSetRepository->getList($this->searchCriteriaBuilder->create());
 }