Skip to content

Commit 5ee1628

Browse files
committed
Merge branch '2.1-develop' of https://github.com/magento/magento2ce into MAGETWO-83094-PR
2 parents 0184787 + 70d7ca4 commit 5ee1628

File tree

50 files changed

+1015
-321
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1015
-321
lines changed

app/code/Magento/Bundle/Model/ResourceModel/Indexer/Price.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ protected function _prepareTierPriceIndex($entityIds = null)
491491
null
492492
)->join(
493493
['e' => $this->getTable('catalog_product_entity')],
494-
"i.entity_id=e.$linkField",
494+
"i.entity_id=e.entity_id",
495495
[]
496496
)->where(
497497
'e.type_id=?',
@@ -502,7 +502,7 @@ protected function _prepareTierPriceIndex($entityIds = null)
502502

503503
$select = $connection->select()->from(
504504
['tp' => $this->getTable('catalog_product_entity_tier_price')],
505-
[$linkField]
505+
['e.entity_id']
506506
)->join(
507507
['e' => $this->getTable('catalog_product_entity')],
508508
"tp.{$linkField} = e.{$linkField}",
@@ -523,11 +523,11 @@ protected function _prepareTierPriceIndex($entityIds = null)
523523
)->columns(
524524
new \Zend_Db_Expr('MIN(tp.value)')
525525
)->group(
526-
["tp.{$linkField}", 'cg.customer_group_id', 'cw.website_id']
526+
['e.entity_id', 'cg.customer_group_id', 'cw.website_id']
527527
);
528528

529529
if (!empty($entityIds)) {
530-
$select->where("tp.{$linkField} IN(?)", $entityIds);
530+
$select->where('e.entity_id IN(?)', $entityIds);
531531
}
532532

533533
$query = $select->insertFromSelect($this->_getTierPriceIndexTable());

app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,6 @@ public function execute()
129129
$isNewCategory = !isset($categoryPostData['entity_id']);
130130
$categoryPostData = $this->stringToBoolConverting($categoryPostData);
131131
$categoryPostData = $this->imagePreprocessing($categoryPostData);
132-
$categoryPostData = $this->dateTimePreprocessing($category, $categoryPostData);
133132
$storeId = isset($categoryPostData['store_id']) ? $categoryPostData['store_id'] : null;
134133
$store = $this->storeManager->getStore($storeId);
135134
$this->storeManager->setCurrentStore($store->getCode());

app/code/Magento/Catalog/Model/Product/Option/Type/Date.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public function prepareForCart()
142142

143143
if ($this->_dateExists()) {
144144
if ($this->useCalendar()) {
145-
$timestamp += $this->_localeDate->date($value['date'], null, true, false)->getTimestamp();
145+
$timestamp += $this->_localeDate->date($value['date'], null, true)->getTimestamp();
146146
} else {
147147
$timestamp += mktime(0, 0, 0, $value['month'], $value['day'], $value['year']);
148148
}

app/code/Magento/Catalog/Model/ProductRepository.php

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -292,27 +292,34 @@ protected function initializeProductData(array $productData, $createNew)
292292
foreach ($productData as $key => $value) {
293293
$product->setData($key, $value);
294294
}
295-
$this->assignProductToWebsites($product);
295+
$this->assignProductToWebsites($product, $createNew);
296296

297297
return $product;
298298
}
299299

300300
/**
301301
* @param \Magento\Catalog\Model\Product $product
302+
* @param bool $createNew
302303
* @return void
303304
*/
304-
private function assignProductToWebsites(\Magento\Catalog\Model\Product $product)
305+
private function assignProductToWebsites(\Magento\Catalog\Model\Product $product, $createNew)
305306
{
306-
if (!$this->storeManager->hasSingleStore()) {
307-
308-
if ($this->storeManager->getStore()->getCode() == \Magento\Store\Model\Store::ADMIN_CODE) {
309-
$websiteIds = array_keys($this->storeManager->getWebsites());
310-
} else {
311-
$websiteIds = [$this->storeManager->getStore()->getWebsiteId()];
312-
}
307+
$websiteIds = $product->getWebsiteIds();
308+
309+
if ($createNew && !$this->storeManager->hasSingleStore()) {
310+
$websiteIds = array_unique(
311+
array_merge(
312+
$websiteIds,
313+
[$this->storeManager->getStore()->getWebsiteId()]
314+
)
315+
);
316+
}
313317

314-
$product->setWebsiteIds(array_unique(array_merge($product->getWebsiteIds(), $websiteIds)));
318+
if ($createNew && $this->storeManager->getStore(true)->getCode() == \Magento\Store\Model\Store::ADMIN_CODE) {
319+
$websiteIds = array_keys($this->storeManager->getWebsites());
315320
}
321+
322+
$product->setWebsiteIds($websiteIds);
316323
}
317324

318325
/**

app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,6 @@ public function testExecute($categoryId, $storeId, $parentId)
279279
'setParentId',
280280
'setData',
281281
'addData',
282-
'getAttributes',
283282
'setAttributeSetId',
284283
'getDefaultAttributeSetId',
285284
'getProductsReadonly',
@@ -470,9 +469,6 @@ public function testExecute($categoryId, $storeId, $parentId)
470469
$categoryMock->expects($this->any())
471470
->method('getId')
472471
->will($this->returnValue($categoryId));
473-
$categoryMock->expects($this->once())
474-
->method('getAttributes')
475-
->willReturn([]);
476472
if (!$parentId) {
477473
if ($storeId) {
478474
$storeManagerMock->expects($this->once())

app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ public function testGetCustomAttributes()
550550
$this->assertEquals("description", $this->category->getCustomAttribute($descriptionAttributeCode)->getValue());
551551

552552
//Change the attribute value, should reflect in getCustomAttribute
553-
$this->category->setData($descriptionAttributeCode, "new description");
553+
$this->category->setCustomAttribute($descriptionAttributeCode, "new description");
554554
$this->assertEquals(1, count($this->category->getCustomAttributes()));
555555
$this->assertNotNull($this->category->getCustomAttribute($descriptionAttributeCode));
556556
$this->assertEquals(

app/code/Magento/Catalog/Test/Unit/Model/ProductRepositoryTest.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface;
1717
use Magento\Framework\Api\SortOrder;
1818
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
19+
use Magento\Store\Api\Data\StoreInterface;
1920

2021
/**
2122
* Tests \Magento\Catalog\Model\ProductRepositoryTest
@@ -1290,6 +1291,45 @@ public function testSaveExistingWithNewMediaGalleryEntries()
12901291
$this->model->save($this->productMock);
12911292
}
12921293

1294+
public function testSaveWithDifferentWebsites()
1295+
{
1296+
$getWebsitesResultData = [
1297+
1 => ['first'],
1298+
2 => ['second'],
1299+
3 => ['third']
1300+
];
1301+
$getWebsiteIdsResultData = [1,2,3];
1302+
$setWebsiteIdsResultData = [2,3];
1303+
$getIdBySkuResultData = 100;
1304+
$storeMock = $this->getMock(StoreInterface::class);
1305+
$this->resourceModelMock->expects($this->at(0))->method('getIdBySku')->will($this->returnValue(null));
1306+
$this->resourceModelMock
1307+
->expects($this->at(3))
1308+
->method('getIdBySku')
1309+
->will($this->returnValue($getIdBySkuResultData));
1310+
$this->productFactoryMock->expects($this->any())
1311+
->method('create')
1312+
->will($this->returnValue($this->productMock));
1313+
$this->initializationHelperMock->expects($this->never())->method('initialize');
1314+
$this->resourceModelMock->expects($this->once())->method('validate')->with($this->productMock)
1315+
->willReturn(true);
1316+
$this->resourceModelMock->expects($this->once())->method('save')->with($this->productMock)->willReturn(true);
1317+
$this->extensibleDataObjectConverterMock
1318+
->expects($this->once())
1319+
->method('toNestedArray')
1320+
->will($this->returnValue($this->productData));
1321+
$this->storeManagerMock->expects($this->any())
1322+
->method('getStore')
1323+
->willReturn($storeMock);
1324+
$this->storeManagerMock->expects($this->once())
1325+
->method('getWebsites')
1326+
->willReturn($getWebsitesResultData);
1327+
$this->productMock->expects($this->once())->method('getWebsiteIds')->willReturn($getWebsiteIdsResultData);
1328+
$this->productMock->expects($this->once())->method('setWebsiteIds')->willReturn($setWebsiteIdsResultData);
1329+
1330+
$this->assertEquals($this->productMock, $this->model->save($this->productMock));
1331+
}
1332+
12931333
public function testSaveExistingWithMediaGalleryEntries()
12941334
{
12951335
//update one entry, delete one entry

app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1247,7 +1247,7 @@ public function testGetCustomAttributes()
12471247
$this->assertEquals("red", $this->model->getCustomAttribute($colorAttributeCode)->getValue());
12481248

12491249
//Change the attribute value, should reflect in getCustomAttribute
1250-
$this->model->setData($colorAttributeCode, "blue");
1250+
$this->model->setCustomAttribute($colorAttributeCode, "blue");
12511251
$this->assertEquals(1, count($this->model->getCustomAttributes()));
12521252
$this->assertNotNull($this->model->getCustomAttribute($colorAttributeCode));
12531253
$this->assertEquals("blue", $this->model->getCustomAttribute($colorAttributeCode)->getValue());

app/code/Magento/CatalogWidget/Block/Product/ProductsList.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
// @codingStandardsIgnoreFile
8-
97
namespace Magento\CatalogWidget\Block\Product;
108

119
use Magento\Framework\DataObject\IdentityInterface;
1210
use Magento\Widget\Block\BlockInterface;
11+
use Magento\Framework\Pricing\PriceCurrencyInterface;
1312

1413
/**
1514
* Catalog Products List widget block
@@ -81,6 +80,11 @@ class ProductsList extends \Magento\Catalog\Block\Product\AbstractProduct implem
8180
*/
8281
protected $conditionsHelper;
8382

83+
/**
84+
* @var PriceCurrencyInterface
85+
*/
86+
private $priceCurrency;
87+
8488
/**
8589
* @param \Magento\Catalog\Block\Product\Context $context
8690
* @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory
@@ -90,6 +94,7 @@ class ProductsList extends \Magento\Catalog\Block\Product\AbstractProduct implem
9094
* @param \Magento\CatalogWidget\Model\Rule $rule
9195
* @param \Magento\Widget\Helper\Conditions $conditionsHelper
9296
* @param array $data
97+
* @param PriceCurrencyInterface|null $priceCurrency
9398
*/
9499
public function __construct(
95100
\Magento\Catalog\Block\Product\Context $context,
@@ -99,14 +104,17 @@ public function __construct(
99104
\Magento\Rule\Model\Condition\Sql\Builder $sqlBuilder,
100105
\Magento\CatalogWidget\Model\Rule $rule,
101106
\Magento\Widget\Helper\Conditions $conditionsHelper,
102-
array $data = []
107+
array $data = [],
108+
PriceCurrencyInterface $priceCurrency = null
103109
) {
104110
$this->productCollectionFactory = $productCollectionFactory;
105111
$this->catalogProductVisibility = $catalogProductVisibility;
106112
$this->httpContext = $httpContext;
107113
$this->sqlBuilder = $sqlBuilder;
108114
$this->rule = $rule;
109115
$this->conditionsHelper = $conditionsHelper;
116+
$this->priceCurrency = $priceCurrency
117+
?: \Magento\Framework\App\ObjectManager::getInstance()->get(PriceCurrencyInterface::class);
110118
parent::__construct(
111119
$context,
112120
$data
@@ -144,6 +152,7 @@ public function getCacheKeyInfo()
144152

145153
return [
146154
'CATALOG_PRODUCTS_LIST_WIDGET',
155+
$this->priceCurrency->getCurrencySymbol(),
147156
$this->_storeManager->getStore()->getId(),
148157
$this->_design->getDesignTheme()->getId(),
149158
$this->httpContext->getValue(\Magento\Customer\Model\Context::CONTEXT_GROUP),

0 commit comments

Comments
 (0)