public function test_get_query_builder_for_entity_should_return_update_query() { $expectedSQL = 'UPDATE example_table SET id = :dcValue1, `name_in_db_one` = :dcValue2, `name_in_db_two` = :dcValue3 WHERE id = :dcValue1'; $expectedSQLParams = ['dcValue1' => self::UPDATE_RECORD_BY_ID, 'dcValue2' => self::IMPORT_VALUE, 'dcValue3' => self::ANOTHER_IMPORT_VALUE]; $givenData = [self::MODEL_FIELD_NAME => self::IMPORT_VALUE, self::ANOTHER_MODEL_FIELD_NAME => self::ANOTHER_IMPORT_VALUE]; $builder = $this->SUT->getQueryBuilderForEntity($givenData, 'Shopware\\Models\\Article\\Article', self::UPDATE_RECORD_BY_ID); $this->assertEquals($expectedSQL, $builder->getSQL(), "SQL UPDATE statement wasn't generated correctly"); $this->assertEquals($expectedSQLParams, $builder->getParameters(), "Parameters for query builder wasn't set correctly."); }
/** * initialises the class properties */ public function __construct() { $this->db = Shopware()->Db(); $this->dbalHelper = DbalHelper::create(); $this->validator = new PriceValidator(); $this->dataManager = new PriceDataManager(); $this->customerGroups = $this->getCustomerGroup(); }
/** * @param array $article * @param array $defaultValues * @param int $detailId * @param boolean $createDetail * @return array */ private function createOrUpdateArticleDetail($article, $defaultValues, $detailId, $createDetail) { $article = $this->dataManager->setArticleVariantData($article, ArticleDataType::$articleVariantFieldsMapping); if ($createDetail) { $article = $this->dataManager->setDefaultFieldsForCreate($article, $defaultValues); } $builder = $this->dbalHelper->getQueryBuilderForEntity($article, 'Shopware\\Models\\Article\\Detail', $detailId); $builder->execute(); if (!$detailId) { $detailId = $this->connection->lastInsertId(); } return array($article, $detailId); }
/** * @param array $record * @return string */ private function getSupplierId($record) { $this->suppliers = $this->getSuppliers(); $name = $record['supplierName']; $supplierId = $this->suppliers[$name]; //creates supplier if does not exists if (!$supplierId) { $data = array('name' => $name); $builder = $this->dbalHelper->getQueryBuilderForEntity($data, 'Shopware\\Models\\Article\\Supplier', false); $builder->execute(); $supplierId = $this->db->lastInsertId(); $this->suppliers[$name] = $supplierId; } return $supplierId; }
/** * @return \Shopware\Components\SwagImportExport\DataManagers\Articles\ArticleDataManager */ protected function getArticleDataManager() { $proxyAdapter = Shopware()->Hooks()->getProxy('Shopware\\Components\\SwagImportExport\\DataManagers\\Articles\\ArticleDataManager'); $db = Shopware()->Db(); $dbalHelper = DbalHelper::create(); return new $proxyAdapter($db, $dbalHelper); }
/** * @param array $data * @return string */ protected function createOption($data) { $builder = $this->dbalHelper->getQueryBuilderForEntity($data, 'Shopware\\Models\\Article\\Configurator\\Option', false); $builder->execute(); return $this->connection->lastInsertId(); }
/** * @param string $entityName * @param array $data * @return string */ private function createElement($entityName, $data) { $builder = $this->dbalHelper->getQueryBuilderForEntity($data, $entityName, false); $builder->execute(); return $this->connection->lastInsertId(); }