Completed
Push — master ( 7e7dfb...1f41d8 )
by Aimeos
01:49
created
controller/frontend/src/Controller/Frontend/Basket/Base.php 1 patch
Spacing   +152 added lines, -152 removed lines patch added patch discarded remove patch
@@ -31,52 +31,52 @@  discard block
 block discarded – undo
31 31
 	 * @param integer $quantity New product quantity
32 32
 	 * @return \Aimeos\MShop\Price\Item\Iface Price item with calculated price
33 33
 	 */
34
-	protected function calcPrice( \Aimeos\MShop\Order\Item\Base\Product\Iface $product, array $prices, $quantity )
34
+	protected function calcPrice(\Aimeos\MShop\Order\Item\Base\Product\Iface $product, array $prices, $quantity)
35 35
 	{
36 36
 		$context = $this->getContext();
37 37
 
38
-		if( empty( $prices ) )
38
+		if (empty($prices))
39 39
 		{
40
-			$manager = \Aimeos\MShop\Factory::createManager( $context, 'product' );
41
-			$prices = $manager->getItem( $product->getProductId(), array( 'price' ) )->getRefItems( 'price', 'default' );
40
+			$manager = \Aimeos\MShop\Factory::createManager($context, 'product');
41
+			$prices = $manager->getItem($product->getProductId(), array('price'))->getRefItems('price', 'default');
42 42
 		}
43 43
 
44 44
 
45
-		$priceManager = \Aimeos\MShop\Factory::createManager( $context, 'price' );
46
-		$price = $priceManager->getLowestPrice( $prices, $quantity );
45
+		$priceManager = \Aimeos\MShop\Factory::createManager($context, 'price');
46
+		$price = $priceManager->getLowestPrice($prices, $quantity);
47 47
 
48 48
 		// customers can pay what they would like to pay
49
-		if( ( $attr = $product->getAttributeItem( 'price', 'custom' ) ) !== null )
49
+		if (($attr = $product->getAttributeItem('price', 'custom')) !== null)
50 50
 		{
51 51
 			$amount = $attr->getValue();
52 52
 
53
-			if( preg_match( '/^[0-9]*(\.[0-9]+)?$/', $amount ) !== 1 || ((double) $amount) < 0.01 )
53
+			if (preg_match('/^[0-9]*(\.[0-9]+)?$/', $amount) !== 1 || ((double) $amount) < 0.01)
54 54
 			{
55
-				$msg = $context->getI18n()->dt( 'controller/frontend', 'Invalid price value "%1$s"' );
56
-				throw new \Aimeos\Controller\Frontend\Basket\Exception( sprintf( $msg, $amount ) );
55
+				$msg = $context->getI18n()->dt('controller/frontend', 'Invalid price value "%1$s"');
56
+				throw new \Aimeos\Controller\Frontend\Basket\Exception(sprintf($msg, $amount));
57 57
 			}
58 58
 
59
-			$price->setValue( $amount );
59
+			$price->setValue($amount);
60 60
 		}
61 61
 
62 62
 		$orderAttributes = $product->getAttributes();
63
-		$attrItems = $this->getAttributeItems( $orderAttributes );
63
+		$attrItems = $this->getAttributeItems($orderAttributes);
64 64
 
65 65
 		// add prices of (optional) attributes
66
-		foreach( $orderAttributes as $orderAttrItem )
66
+		foreach ($orderAttributes as $orderAttrItem)
67 67
 		{
68 68
 			$attrId = $orderAttrItem->getAttributeId();
69 69
 
70
-			if( isset( $attrItems[$attrId] )
71
-				&& ( $prices = $attrItems[$attrId]->getRefItems( 'price', 'default' ) ) !== []
70
+			if (isset($attrItems[$attrId])
71
+				&& ($prices = $attrItems[$attrId]->getRefItems('price', 'default')) !== []
72 72
 			) {
73
-				$attrPrice = $priceManager->getLowestPrice( $prices, $orderAttrItem->getQuantity() );
74
-				$price->addItem( $attrPrice, $orderAttrItem->getQuantity() );
73
+				$attrPrice = $priceManager->getLowestPrice($prices, $orderAttrItem->getQuantity());
74
+				$price->addItem($attrPrice, $orderAttrItem->getQuantity());
75 75
 			}
76 76
 		}
77 77
 
78 78
 		// remove product rebate of original price in favor to rebates granted for the order
79
-		$price->setRebate( '0.00' );
79
+		$price->setRebate('0.00');
80 80
 
81 81
 		return $price;
82 82
 	}
@@ -90,43 +90,43 @@  discard block
 block discarded – undo
90 90
 	 * @param array $refMap Associative list of list type codes as keys and lists of reference IDs as values
91 91
 	 * @throws \Aimeos\Controller\Frontend\Basket\Exception If one or more of the IDs are not associated
92 92
 	 */
93
-	protected function checkListRef( $prodId, $domain, array $refMap )
93
+	protected function checkListRef($prodId, $domain, array $refMap)
94 94
 	{
95
-		if( empty( $refMap ) ) {
95
+		if (empty($refMap)) {
96 96
 			return;
97 97
 		}
98 98
 
99 99
 		$context = $this->getContext();
100
-		$productManager = \Aimeos\MShop\Factory::createManager( $context, 'product' );
101
-		$search = $productManager->createSearch( true );
100
+		$productManager = \Aimeos\MShop\Factory::createManager($context, 'product');
101
+		$search = $productManager->createSearch(true);
102 102
 
103 103
 		$expr = array(
104
-			$search->compare( '==', 'product.id', $prodId ),
104
+			$search->compare('==', 'product.id', $prodId),
105 105
 			$search->getConditions(),
106 106
 		);
107 107
 
108
-		foreach( $refMap as $listType => $refIds )
108
+		foreach ($refMap as $listType => $refIds)
109 109
 		{
110
-			if( empty( $refIds ) ) {
110
+			if (empty($refIds)) {
111 111
 				continue;
112 112
 			}
113 113
 
114
-			foreach( $refIds as $key => $refId ) {
114
+			foreach ($refIds as $key => $refId) {
115 115
 				$refIds[$key] = (string) $refId;
116 116
 			}
117 117
 
118
-			$param = array( $domain, $this->getProductListTypeItem( $domain, $listType )->getId(), $refIds );
119
-			$cmpfunc = $search->createFunction( 'product.contains', $param );
118
+			$param = array($domain, $this->getProductListTypeItem($domain, $listType)->getId(), $refIds);
119
+			$cmpfunc = $search->createFunction('product.contains', $param);
120 120
 
121
-			$expr[] = $search->compare( '==', $cmpfunc, count( $refIds ) );
121
+			$expr[] = $search->compare('==', $cmpfunc, count($refIds));
122 122
 		}
123 123
 
124
-		$search->setConditions( $search->combine( '&&', $expr ) );
124
+		$search->setConditions($search->combine('&&', $expr));
125 125
 
126
-		if( count( $productManager->searchItems( $search, [] ) ) === 0 )
126
+		if (count($productManager->searchItems($search, [])) === 0)
127 127
 		{
128
-			$msg = $context->getI18n()->dt( 'controller/frontend', 'Invalid "%1$s" references for product with ID %2$s' );
129
-			throw new \Aimeos\Controller\Frontend\Basket\Exception( sprintf( $msg, $domain, json_encode( $prodId ) ) );
128
+			$msg = $context->getI18n()->dt('controller/frontend', 'Invalid "%1$s" references for product with ID %2$s');
129
+			throw new \Aimeos\Controller\Frontend\Basket\Exception(sprintf($msg, $domain, json_encode($prodId)));
130 130
 		}
131 131
 	}
132 132
 
@@ -137,40 +137,40 @@  discard block
 block discarded – undo
137 137
 	 * @param \Aimeos\MShop\Locale\Item\Iface $locale Locale object from current basket
138 138
 	 * @param string $type Basket type
139 139
 	 */
140
-	protected function checkLocale( \Aimeos\MShop\Locale\Item\Iface $locale, $type )
140
+	protected function checkLocale(\Aimeos\MShop\Locale\Item\Iface $locale, $type)
141 141
 	{
142 142
 		$errors = [];
143 143
 		$context = $this->getContext();
144 144
 		$session = $context->getSession();
145 145
 
146
-		$localeStr = $session->get( 'aimeos/basket/locale' );
146
+		$localeStr = $session->get('aimeos/basket/locale');
147 147
 		$localeKey = $locale->getSite()->getCode() . '|' . $locale->getLanguageId() . '|' . $locale->getCurrencyId();
148 148
 
149
-		if( $localeStr !== null && $localeStr !== $localeKey )
149
+		if ($localeStr !== null && $localeStr !== $localeKey)
150 150
 		{
151
-			$locParts = explode( '|', $localeStr );
152
-			$locSite = ( isset( $locParts[0] ) ? $locParts[0] : '' );
153
-			$locLanguage = ( isset( $locParts[1] ) ? $locParts[1] : '' );
154
-			$locCurrency = ( isset( $locParts[2] ) ? $locParts[2] : '' );
151
+			$locParts = explode('|', $localeStr);
152
+			$locSite = (isset($locParts[0]) ? $locParts[0] : '');
153
+			$locLanguage = (isset($locParts[1]) ? $locParts[1] : '');
154
+			$locCurrency = (isset($locParts[2]) ? $locParts[2] : '');
155 155
 
156
-			$localeManager = \Aimeos\MShop\Factory::createManager( $context, 'locale' );
157
-			$locale = $localeManager->bootstrap( $locSite, $locLanguage, $locCurrency, false );
156
+			$localeManager = \Aimeos\MShop\Factory::createManager($context, 'locale');
157
+			$locale = $localeManager->bootstrap($locSite, $locLanguage, $locCurrency, false);
158 158
 
159 159
 			$context = clone $context;
160
-			$context->setLocale( $locale );
160
+			$context->setLocale($locale);
161 161
 
162
-			$manager = \Aimeos\MShop\Factory::createManager( $context, 'order/base' );
163
-			$basket = $manager->getSession( $type );
162
+			$manager = \Aimeos\MShop\Factory::createManager($context, 'order/base');
163
+			$basket = $manager->getSession($type);
164 164
 
165
-			$this->copyAddresses( $basket, $errors, $localeKey );
166
-			$this->copyServices( $basket, $errors );
167
-			$this->copyProducts( $basket, $errors, $localeKey );
168
-			$this->copyCoupons( $basket, $errors, $localeKey );
165
+			$this->copyAddresses($basket, $errors, $localeKey);
166
+			$this->copyServices($basket, $errors);
167
+			$this->copyProducts($basket, $errors, $localeKey);
168
+			$this->copyCoupons($basket, $errors, $localeKey);
169 169
 
170
-			$manager->setSession( $basket, $type );
170
+			$manager->setSession($basket, $type);
171 171
 		}
172 172
 
173
-		$session->set( 'aimeos/basket/locale', $localeKey );
173
+		$session->set('aimeos/basket/locale', $localeKey);
174 174
 	}
175 175
 
176 176
 
@@ -182,22 +182,22 @@  discard block
 block discarded – undo
182 182
 	 * @param string $localeKey Unique identifier of the site, language and currency
183 183
 	 * @return array Associative list of errors occured
184 184
 	 */
185
-	protected function copyAddresses( \Aimeos\MShop\Order\Item\Base\Iface $basket, array $errors, $localeKey )
185
+	protected function copyAddresses(\Aimeos\MShop\Order\Item\Base\Iface $basket, array $errors, $localeKey)
186 186
 	{
187
-		foreach( $basket->getAddresses() as $type => $item )
187
+		foreach ($basket->getAddresses() as $type => $item)
188 188
 		{
189 189
 			try
190 190
 			{
191
-				$this->setAddress( $type, $item->toArray() );
192
-				$basket->deleteAddress( $type );
191
+				$this->setAddress($type, $item->toArray());
192
+				$basket->deleteAddress($type);
193 193
 			}
194
-			catch( \Exception $e )
194
+			catch (\Exception $e)
195 195
 			{
196 196
 				$logger = $this->getContext()->getLogger();
197 197
 				$errors['address'][$type] = $e->getMessage();
198 198
 
199 199
 				$str = 'Error migrating address with type "%1$s" in basket to locale "%2$s": %3$s';
200
-				$logger->log( sprintf( $str, $type, $localeKey, $e->getMessage() ), \Aimeos\MW\Logger\Base::INFO );
200
+				$logger->log(sprintf($str, $type, $localeKey, $e->getMessage()), \Aimeos\MW\Logger\Base::INFO);
201 201
 			}
202 202
 		}
203 203
 
@@ -213,22 +213,22 @@  discard block
 block discarded – undo
213 213
 	 * @param string $localeKey Unique identifier of the site, language and currency
214 214
 	 * @return array Associative list of errors occured
215 215
 	 */
216
-	protected function copyCoupons( \Aimeos\MShop\Order\Item\Base\Iface $basket, array $errors, $localeKey )
216
+	protected function copyCoupons(\Aimeos\MShop\Order\Item\Base\Iface $basket, array $errors, $localeKey)
217 217
 	{
218
-		foreach( $basket->getCoupons() as $code => $list )
218
+		foreach ($basket->getCoupons() as $code => $list)
219 219
 		{
220 220
 			try
221 221
 			{
222
-				$this->addCoupon( $code );
223
-				$basket->deleteCoupon( $code, true );
222
+				$this->addCoupon($code);
223
+				$basket->deleteCoupon($code, true);
224 224
 			}
225
-			catch( \Exception $e )
225
+			catch (\Exception $e)
226 226
 			{
227 227
 				$logger = $this->getContext()->getLogger();
228 228
 				$errors['coupon'][$code] = $e->getMessage();
229 229
 
230 230
 				$str = 'Error migrating coupon with code "%1$s" in basket to locale "%2$s": %3$s';
231
-				$logger->log( sprintf( $str, $code, $localeKey, $e->getMessage() ), \Aimeos\MW\Logger\Base::INFO );
231
+				$logger->log(sprintf($str, $code, $localeKey, $e->getMessage()), \Aimeos\MW\Logger\Base::INFO);
232 232
 			}
233 233
 		}
234 234
 
@@ -244,11 +244,11 @@  discard block
 block discarded – undo
244 244
 	 * @param string $localeKey Unique identifier of the site, language and currency
245 245
 	 * @return array Associative list of errors occured
246 246
 	 */
247
-	protected function copyProducts( \Aimeos\MShop\Order\Item\Base\Iface $basket, array $errors, $localeKey )
247
+	protected function copyProducts(\Aimeos\MShop\Order\Item\Base\Iface $basket, array $errors, $localeKey)
248 248
 	{
249
-		foreach( $basket->getProducts() as $pos => $product )
249
+		foreach ($basket->getProducts() as $pos => $product)
250 250
 		{
251
-			if( $product->getFlags() & \Aimeos\MShop\Order\Item\Base\Product\Base::FLAG_IMMUTABLE ) {
251
+			if ($product->getFlags() & \Aimeos\MShop\Order\Item\Base\Product\Base::FLAG_IMMUTABLE) {
252 252
 				continue;
253 253
 			}
254 254
 
@@ -256,9 +256,9 @@  discard block
 block discarded – undo
256 256
 			{
257 257
 				$variantIds = $configIds = $customIds = [];
258 258
 
259
-				foreach( $product->getAttributeItems() as $attrItem )
259
+				foreach ($product->getAttributeItems() as $attrItem)
260 260
 				{
261
-					switch( $attrItem->getType() )
261
+					switch ($attrItem->getType())
262 262
 					{
263 263
 						case 'variant': $variantIds[] = $attrItem->getAttributeId(); break;
264 264
 						case 'config': $configIds[$attrItem->getAttributeId()] = $attrItem->getQuantity(); break;
@@ -271,16 +271,16 @@  discard block
 block discarded – undo
271 271
 					$variantIds, $configIds, [], $customIds
272 272
 				);
273 273
 
274
-				$basket->deleteProduct( $pos );
274
+				$basket->deleteProduct($pos);
275 275
 			}
276
-			catch( \Exception $e )
276
+			catch (\Exception $e)
277 277
 			{
278 278
 				$code = $product->getProductCode();
279 279
 				$logger = $this->getContext()->getLogger();
280 280
 				$errors['product'][$pos] = $e->getMessage();
281 281
 
282 282
 				$str = 'Error migrating product with code "%1$s" in basket to locale "%2$s": %3$s';
283
-				$logger->log( sprintf( $str, $code, $localeKey, $e->getMessage() ), \Aimeos\MW\Logger\Base::INFO );
283
+				$logger->log(sprintf($str, $code, $localeKey, $e->getMessage()), \Aimeos\MW\Logger\Base::INFO);
284 284
 			}
285 285
 		}
286 286
 
@@ -295,24 +295,24 @@  discard block
 block discarded – undo
295 295
 	 * @param array $errors Associative list of previous errors
296 296
 	 * @return array Associative list of errors occured
297 297
 	 */
298
-	protected function copyServices( \Aimeos\MShop\Order\Item\Base\Iface $basket, array $errors )
298
+	protected function copyServices(\Aimeos\MShop\Order\Item\Base\Iface $basket, array $errors)
299 299
 	{
300
-		foreach( $basket->getServices() as $type => $list )
300
+		foreach ($basket->getServices() as $type => $list)
301 301
 		{
302
-			foreach( $list as $item )
302
+			foreach ($list as $item)
303 303
 			{
304 304
 				try
305 305
 				{
306 306
 					$attributes = [];
307 307
 
308
-					foreach( $item->getAttributes() as $attrItem ) {
308
+					foreach ($item->getAttributes() as $attrItem) {
309 309
 						$attributes[$attrItem->getCode()] = $attrItem->getValue();
310 310
 					}
311 311
 
312
-					$this->addService( $type, $item->getServiceId(), $attributes );
313
-					$basket->deleteService( $type );
312
+					$this->addService($type, $item->getServiceId(), $attributes);
313
+					$basket->deleteService($type);
314 314
 				}
315
-				catch( \Exception $e ) { ; } // Don't notify the user as appropriate services can be added automatically
315
+				catch (\Exception $e) {; } // Don't notify the user as appropriate services can be added automatically
316 316
 			}
317 317
 		}
318 318
 
@@ -325,28 +325,28 @@  discard block
 block discarded – undo
325 325
 	 *
326 326
 	 * @param \Aimeos\MShop\Order\Item\Base\Iface $basket Basket object
327 327
 	 */
328
-	protected function createSubscriptions( \Aimeos\MShop\Order\Item\Base\Iface $basket )
328
+	protected function createSubscriptions(\Aimeos\MShop\Order\Item\Base\Iface $basket)
329 329
 	{
330
-		$manager = \Aimeos\MShop\Factory::createManager( $this->getContext(), 'subscription' );
330
+		$manager = \Aimeos\MShop\Factory::createManager($this->getContext(), 'subscription');
331 331
 
332
-		foreach( $basket->getProducts() as $orderProduct )
332
+		foreach ($basket->getProducts() as $orderProduct)
333 333
 		{
334
-			if( ( $interval = $orderProduct->getAttribute( 'interval', 'config' ) ) !== null )
334
+			if (($interval = $orderProduct->getAttribute('interval', 'config')) !== null)
335 335
 			{
336 336
 				$item = $manager->createItem();
337
-				$item->setOrderBaseId( $basket->getId() );
338
-				$item->setOrderProductId( $orderProduct->getId() );
339
-				$item->setInterval( $interval );
340
-				$item->setStatus( 1 );
341
-
342
-				if( ( $end = $orderProduct->getAttribute( 'intervalend', 'custom' ) ) !== null
343
-					|| ( $end = $orderProduct->getAttribute( 'intervalend', 'config' ) ) !== null
344
-					|| ( $end = $orderProduct->getAttribute( 'intervalend', 'hidden' ) ) !== null
337
+				$item->setOrderBaseId($basket->getId());
338
+				$item->setOrderProductId($orderProduct->getId());
339
+				$item->setInterval($interval);
340
+				$item->setStatus(1);
341
+
342
+				if (($end = $orderProduct->getAttribute('intervalend', 'custom')) !== null
343
+					|| ($end = $orderProduct->getAttribute('intervalend', 'config')) !== null
344
+					|| ($end = $orderProduct->getAttribute('intervalend', 'hidden')) !== null
345 345
 				) {
346
-					$item->setDateEnd( $end );
346
+					$item->setDateEnd($end);
347 347
 				}
348 348
 
349
-				$manager->saveItem( $item, false );
349
+				$manager->saveItem($item, false);
350 350
 			}
351 351
 		}
352 352
 	}
@@ -360,32 +360,32 @@  discard block
 block discarded – undo
360 360
 	 * @return array List of items implementing \Aimeos\MShop\Attribute\Item\Iface
361 361
 	 * @throws \Aimeos\Controller\Frontend\Basket\Exception If the actual attribute number doesn't match the expected one
362 362
 	 */
363
-	protected function getAttributes( array $attributeIds, array $domains = array( 'price', 'text' ) )
363
+	protected function getAttributes(array $attributeIds, array $domains = array('price', 'text'))
364 364
 	{
365
-		if( empty( $attributeIds ) ) {
365
+		if (empty($attributeIds)) {
366 366
 			return [];
367 367
 		}
368 368
 
369
-		$attributeManager = \Aimeos\MShop\Factory::createManager( $this->getContext(), 'attribute' );
369
+		$attributeManager = \Aimeos\MShop\Factory::createManager($this->getContext(), 'attribute');
370 370
 
371
-		$search = $attributeManager->createSearch( true );
371
+		$search = $attributeManager->createSearch(true);
372 372
 		$expr = array(
373
-			$search->compare( '==', 'attribute.id', $attributeIds ),
373
+			$search->compare('==', 'attribute.id', $attributeIds),
374 374
 			$search->getConditions(),
375 375
 		);
376
-		$search->setConditions( $search->combine( '&&', $expr ) );
377
-		$search->setSlice( 0, 0x7fffffff );
376
+		$search->setConditions($search->combine('&&', $expr));
377
+		$search->setSlice(0, 0x7fffffff);
378 378
 
379
-		$attrItems = $attributeManager->searchItems( $search, $domains );
379
+		$attrItems = $attributeManager->searchItems($search, $domains);
380 380
 
381
-		if( count( $attrItems ) !== count( $attributeIds ) )
381
+		if (count($attrItems) !== count($attributeIds))
382 382
 		{
383 383
 			$i18n = $this->getContext()->getI18n();
384
-			$expected = implode( ',', $attributeIds );
385
-			$actual = implode( ',', array_keys( $attrItems ) );
386
-			$msg = $i18n->dt( 'controller/frontend', 'Available attribute IDs "%1$s" do not match the given attribute IDs "%2$s"' );
384
+			$expected = implode(',', $attributeIds);
385
+			$actual = implode(',', array_keys($attrItems));
386
+			$msg = $i18n->dt('controller/frontend', 'Available attribute IDs "%1$s" do not match the given attribute IDs "%2$s"');
387 387
 
388
-			throw new \Aimeos\Controller\Frontend\Basket\Exception( sprintf( $msg, $actual, $expected ) );
388
+			throw new \Aimeos\Controller\Frontend\Basket\Exception(sprintf($msg, $actual, $expected));
389 389
 		}
390 390
 
391 391
 		return $attrItems;
@@ -398,31 +398,31 @@  discard block
 block discarded – undo
398 398
 	 * @param \Aimeos\MShop\Order\Item\Base\Product\Attribute\Item[] $orderAttributes List of order product attribute items
399 399
 	 * @return \Aimeos\MShop\Attribute\Item\Iface[] Associative list of attribute IDs as key and attribute items as values
400 400
 	 */
401
-	protected function getAttributeItems( array $orderAttributes )
401
+	protected function getAttributeItems(array $orderAttributes)
402 402
 	{
403
-		if( empty( $orderAttributes ) ) {
403
+		if (empty($orderAttributes)) {
404 404
 			return [];
405 405
 		}
406 406
 
407
-		$attributeManager = \Aimeos\MShop\Factory::createManager( $this->getContext(), 'attribute' );
408
-		$search = $attributeManager->createSearch( true );
407
+		$attributeManager = \Aimeos\MShop\Factory::createManager($this->getContext(), 'attribute');
408
+		$search = $attributeManager->createSearch(true);
409 409
 		$expr = [];
410 410
 
411
-		foreach( $orderAttributes as $item )
411
+		foreach ($orderAttributes as $item)
412 412
 		{
413 413
 			$tmp = array(
414
-				$search->compare( '==', 'attribute.domain', 'product' ),
415
-				$search->compare( '==', 'attribute.code', $item->getValue() ),
416
-				$search->compare( '==', 'attribute.type.domain', 'product' ),
417
-				$search->compare( '==', 'attribute.type.code', $item->getCode() ),
418
-				$search->compare( '>', 'attribute.type.status', 0 ),
414
+				$search->compare('==', 'attribute.domain', 'product'),
415
+				$search->compare('==', 'attribute.code', $item->getValue()),
416
+				$search->compare('==', 'attribute.type.domain', 'product'),
417
+				$search->compare('==', 'attribute.type.code', $item->getCode()),
418
+				$search->compare('>', 'attribute.type.status', 0),
419 419
 				$search->getConditions(),
420 420
 			);
421
-			$expr[] = $search->combine( '&&', $tmp );
421
+			$expr[] = $search->combine('&&', $tmp);
422 422
 		}
423 423
 
424
-		$search->setConditions( $search->combine( '||', $expr ) );
425
-		return $attributeManager->searchItems( $search, array( 'price' ) );
424
+		$search->setConditions($search->combine('||', $expr));
425
+		return $attributeManager->searchItems($search, array('price'));
426 426
 	}
427 427
 
428 428
 
@@ -435,24 +435,24 @@  discard block
 block discarded – undo
435 435
 	 * @param array $quantities Associative list of attribute IDs as keys and their quantities as values
436 436
 	 * @return array List of items implementing \Aimeos\MShop\Order\Item\Product\Attribute\Iface
437 437
 	 */
438
-	protected function getOrderProductAttributes( $type, array $ids, array $values = [], array $quantities = [] )
438
+	protected function getOrderProductAttributes($type, array $ids, array $values = [], array $quantities = [])
439 439
 	{
440
-		if( empty( $ids ) ) {
440
+		if (empty($ids)) {
441 441
 			return [];
442 442
 		}
443 443
 
444 444
 		$list = [];
445
-		$manager = \Aimeos\MShop\Factory::createManager( $this->getContext(), 'order/base/product/attribute' );
445
+		$manager = \Aimeos\MShop\Factory::createManager($this->getContext(), 'order/base/product/attribute');
446 446
 
447
-		foreach( $this->getAttributes( $ids ) as $id => $attrItem )
447
+		foreach ($this->getAttributes($ids) as $id => $attrItem)
448 448
 		{
449 449
 			$item = $manager->createItem();
450
-			$item->copyFrom( $attrItem );
451
-			$item->setType( $type );
452
-			$item->setQuantity( isset( $quantities[$id] ) ? $quantities[$id] : 1 );
450
+			$item->copyFrom($attrItem);
451
+			$item->setType($type);
452
+			$item->setQuantity(isset($quantities[$id]) ? $quantities[$id] : 1);
453 453
 
454
-			if( isset( $values[$id] ) ) {
455
-				$item->setValue( $values[$id] );
454
+			if (isset($values[$id])) {
455
+				$item->setValue($values[$id]);
456 456
 			}
457 457
 
458 458
 			$list[] = $item;
@@ -469,23 +469,23 @@  discard block
 block discarded – undo
469 469
 	 * @param string $code Code of the list type
470 470
 	 * @return \Aimeos\MShop\Common\Item\Type\Iface List type item
471 471
 	 */
472
-	protected function getProductListTypeItem( $domain, $code )
472
+	protected function getProductListTypeItem($domain, $code)
473 473
 	{
474 474
 		$context = $this->getContext();
475 475
 
476
-		if( empty( $this->listTypeItems ) )
476
+		if (empty($this->listTypeItems))
477 477
 		{
478
-			$manager = \Aimeos\MShop\Factory::createManager( $context, 'product/lists/type' );
478
+			$manager = \Aimeos\MShop\Factory::createManager($context, 'product/lists/type');
479 479
 
480
-			foreach( $manager->searchItems( $manager->createSearch( true ) ) as $item ) {
481
-				$this->listTypeItems[ $item->getDomain() ][ $item->getCode() ] = $item;
480
+			foreach ($manager->searchItems($manager->createSearch(true)) as $item) {
481
+				$this->listTypeItems[$item->getDomain()][$item->getCode()] = $item;
482 482
 			}
483 483
 		}
484 484
 
485
-		if( !isset( $this->listTypeItems[$domain][$code] ) )
485
+		if (!isset($this->listTypeItems[$domain][$code]))
486 486
 		{
487
-			$msg = $context->getI18n()->dt( 'controller/frontend', 'List type for domain "%1$s" and code "%2$s" not found' );
488
-			throw new \Aimeos\Controller\Frontend\Basket\Exception( sprintf( $msg, $domain, $code ) );
487
+			$msg = $context->getI18n()->dt('controller/frontend', 'List type for domain "%1$s" and code "%2$s" not found');
488
+			throw new \Aimeos\Controller\Frontend\Basket\Exception(sprintf($msg, $domain, $code));
489 489
 		}
490 490
 
491 491
 		return $this->listTypeItems[$domain][$code];
@@ -500,43 +500,43 @@  discard block
 block discarded – undo
500 500
 	 * @param array $domains Names of the domain items that should be fetched too
501 501
 	 * @return array List of products matching the given attributes
502 502
 	 */
503
-	protected function getProductVariants( \Aimeos\MShop\Product\Item\Iface $productItem, array $variantAttributeIds,
504
-			array $domains = array( 'attribute', 'media', 'price', 'text' ) )
503
+	protected function getProductVariants(\Aimeos\MShop\Product\Item\Iface $productItem, array $variantAttributeIds,
504
+			array $domains = array('attribute', 'media', 'price', 'text'))
505 505
 	{
506 506
 		$subProductIds = [];
507
-		foreach( $productItem->getRefItems( 'product', 'default', 'default' ) as $item ) {
507
+		foreach ($productItem->getRefItems('product', 'default', 'default') as $item) {
508 508
 			$subProductIds[] = $item->getId();
509 509
 		}
510 510
 
511
-		if( count( $subProductIds ) === 0 ) {
511
+		if (count($subProductIds) === 0) {
512 512
 			return [];
513 513
 		}
514 514
 
515
-		$productManager = \Aimeos\MShop\Factory::createManager( $this->getContext(), 'product' );
516
-		$search = $productManager->createSearch( true );
515
+		$productManager = \Aimeos\MShop\Factory::createManager($this->getContext(), 'product');
516
+		$search = $productManager->createSearch(true);
517 517
 
518 518
 		$expr = array(
519
-			$search->compare( '==', 'product.id', $subProductIds ),
519
+			$search->compare('==', 'product.id', $subProductIds),
520 520
 			$search->getConditions(),
521 521
 		);
522 522
 
523
-		if( count( $variantAttributeIds ) > 0 )
523
+		if (count($variantAttributeIds) > 0)
524 524
 		{
525
-			foreach( $variantAttributeIds as $key => $id ) {
525
+			foreach ($variantAttributeIds as $key => $id) {
526 526
 				$variantAttributeIds[$key] = (string) $id;
527 527
 			}
528 528
 
529
-			$listTypeItem = $this->getProductListTypeItem( 'attribute', 'variant' );
529
+			$listTypeItem = $this->getProductListTypeItem('attribute', 'variant');
530 530
 
531
-			$param = array( 'attribute', $listTypeItem->getId(), $variantAttributeIds );
532
-			$cmpfunc = $search->createFunction( 'product.contains', $param );
531
+			$param = array('attribute', $listTypeItem->getId(), $variantAttributeIds);
532
+			$cmpfunc = $search->createFunction('product.contains', $param);
533 533
 
534
-			$expr[] = $search->compare( '==', $cmpfunc, count( $variantAttributeIds ) );
534
+			$expr[] = $search->compare('==', $cmpfunc, count($variantAttributeIds));
535 535
 		}
536 536
 
537
-		$search->setConditions( $search->combine( '&&', $expr ) );
537
+		$search->setConditions($search->combine('&&', $expr));
538 538
 
539
-		return $productManager->searchItems( $search, $domains );
539
+		return $productManager->searchItems($search, $domains);
540 540
 	}
541 541
 
542 542
 
@@ -548,9 +548,9 @@  discard block
 block discarded – undo
548 548
 	 * @param mixed $default Default value if no value is available for the given name
549 549
 	 * @return mixed Value from the array or default value
550 550
 	 */
551
-	protected function getValue( array $values, $name, $default = null )
551
+	protected function getValue(array $values, $name, $default = null)
552 552
 	{
553
-		if( isset( $values[$name] ) ) {
553
+		if (isset($values[$name])) {
554 554
 			return $values[$name];
555 555
 		}
556 556
 
Please login to merge, or discard this patch.