Skip to content

Commit c9bcf3d

Browse files
committed
Merge remote-tracking branch 'vovayatsyuk/fix-missing-vatid-at-multishipping-registration-page' into fix-missing-vatid-at-multishipping-registration-page
2 parents a24dce4 + 6bd52c9 commit c9bcf3d

File tree

153 files changed

+5774
-510
lines changed

Some content is hidden

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

153 files changed

+5774
-510
lines changed

.editorconfig

+4
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,7 @@ indent_size = 2
1616

1717
[{composer, auth}.json]
1818
indent_size = 4
19+
20+
[db_schema_whitelist.json]
21+
indent_size = 4
22+
trim_trailing_whitespace = false

app/code/Magento/Backend/view/adminhtml/templates/widget/grid/extended.phtml

+4-1
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
* getPagerVisibility()
1515
* getVarNamePage()
1616
*/
17-
$numColumns = count($block->getColumns());
1817

1918
/**
2019
* @var \Magento\Backend\Block\Widget\Grid\Extended $block
2120
* @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer
2221
*/
22+
$numColumns = count($block->getColumns());
23+
2324
?>
2425
<?php if ($block->getCollection()): ?>
2526
<?php if ($block->canDisplayContainer()): ?>
@@ -285,7 +286,9 @@ $numColumns = count($block->getColumns());
285286
</table>
286287

287288
</div>
289+
<?php if ($block->canDisplayContainer()): ?>
288290
</div>
291+
<?php endif; ?>
289292
<?php
290293
/** @var \Magento\Framework\Json\Helper\Data $jsonHelper */
291294
$jsonHelper = $block->getData('jsonHelper');

app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Invoice.php

+107-44
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
namespace Magento\Bundle\Model\Sales\Order\Pdf\Items;
99

1010
use Magento\Framework\Data\Collection\AbstractDb;
11+
use Magento\Framework\DataObject;
1112
use Magento\Framework\Filesystem;
1213
use Magento\Framework\Filter\FilterManager;
1314
use Magento\Framework\Model\Context;
@@ -69,50 +70,52 @@ public function __construct(
6970
}
7071

7172
/**
72-
* Draw item line
73+
* Draw bundle product item line
7374
*
7475
* @return void
75-
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
76-
* @SuppressWarnings(PHPMD.NPathComplexity)
77-
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
7876
*/
7977
public function draw()
8078
{
81-
$order = $this->getOrder();
82-
$item = $this->getItem();
83-
$pdf = $this->getPdf();
84-
$page = $this->getPage();
79+
$draw = $this->drawChildrenItems();
80+
$draw = $this->drawCustomOptions($draw);
8581

82+
$page = $this->getPdf()->drawLineBlocks($this->getPage(), $draw, ['table_header' => true]);
83+
84+
$this->setPage($page);
85+
}
86+
87+
/**
88+
* Draw bundle product children items
89+
*
90+
* @return array
91+
*/
92+
private function drawChildrenItems(): array
93+
{
8694
$this->_setFontRegular();
87-
$items = $this->getChildren($item);
8895

8996
$prevOptionId = '';
9097
$drawItems = [];
91-
92-
foreach ($items as $childItem) {
93-
$line = [];
94-
98+
$optionId = 0;
99+
$lines = [];
100+
foreach ($this->getChildren($this->getItem()) as $childItem) {
101+
$index = array_key_last($lines) !== null ? array_key_last($lines) + 1 : 0;
95102
$attributes = $this->getSelectionAttributes($childItem);
96103
if (is_array($attributes)) {
97104
$optionId = $attributes['option_id'];
98-
} else {
99-
$optionId = 0;
100105
}
101106

102107
if (!isset($drawItems[$optionId])) {
103108
$drawItems[$optionId] = ['lines' => [], 'height' => 15];
104109
}
105110

106111
if ($childItem->getOrderItem()->getParentItem() && $prevOptionId != $attributes['option_id']) {
107-
$line[0] = [
112+
$lines[$index][] = [
108113
'font' => 'italic',
109114
'text' => $this->string->split($attributes['option_label'], 45, true, true),
110115
'feed' => 35,
111116
];
112117

113-
$drawItems[$optionId] = ['lines' => [$line], 'height' => 15];
114-
115-
$line = [];
118+
$index++;
116119
$prevOptionId = $attributes['option_id'];
117120
}
118121

@@ -124,35 +127,97 @@ public function draw()
124127
$feed = 35;
125128
$name = $childItem->getName();
126129
}
127-
$line[] = ['text' => $this->string->split($name, 35, true, true), 'feed' => $feed];
130+
$lines[$index][] = ['text' => $this->string->split($name, 35, true, true), 'feed' => $feed];
128131

129-
// draw SKUs
130-
if (!$childItem->getOrderItem()->getParentItem()) {
131-
$text = [];
132-
foreach ($this->string->split($item->getSku(), 17) as $part) {
133-
$text[] = $part;
134-
}
135-
$line[] = ['text' => $text, 'feed' => 255];
136-
}
132+
$lines = $this->drawSkus($childItem, $lines);
137133

138-
// draw prices
139-
if ($this->canShowPriceInfo($childItem)) {
140-
$price = $order->formatPriceTxt($childItem->getPrice());
141-
$line[] = ['text' => $price, 'feed' => 395, 'font' => 'bold', 'align' => 'right'];
142-
$line[] = ['text' => $childItem->getQty() * 1, 'feed' => 435, 'font' => 'bold'];
134+
$lines = $this->drawPrices($childItem, $lines);
135+
}
136+
$drawItems[$optionId]['lines'] = $lines;
143137

144-
$tax = $order->formatPriceTxt($childItem->getTaxAmount());
145-
$line[] = ['text' => $tax, 'feed' => 495, 'font' => 'bold', 'align' => 'right'];
138+
return $drawItems;
139+
}
146140

147-
$row_total = $order->formatPriceTxt($childItem->getRowTotal());
148-
$line[] = ['text' => $row_total, 'feed' => 565, 'font' => 'bold', 'align' => 'right'];
141+
/**
142+
* Draw sku parts
143+
*
144+
* @param DataObject $childItem
145+
* @param array $lines
146+
* @return array
147+
*/
148+
private function drawSkus(DataObject $childItem, array $lines): array
149+
{
150+
$index = array_key_last($lines);
151+
if (!$childItem->getOrderItem()->getParentItem()) {
152+
$text = [];
153+
foreach ($this->string->split($this->getItem()->getSku(), 17) as $part) {
154+
$text[] = $part;
149155
}
156+
$lines[$index][] = ['text' => $text, 'feed' => 255];
157+
}
158+
159+
return $lines;
160+
}
150161

151-
$drawItems[$optionId]['lines'][] = $line;
162+
/**
163+
* Draw prices for bundle product children items
164+
*
165+
* @param DataObject $childItem
166+
* @param array $lines
167+
* @return array
168+
*/
169+
private function drawPrices(DataObject $childItem, array $lines): array
170+
{
171+
$index = array_key_last($lines);
172+
if ($this->canShowPriceInfo($childItem)) {
173+
$lines[$index][] = ['text' => $childItem->getQty() * 1, 'feed' => 435, 'align' => 'right'];
174+
175+
$tax = $this->getOrder()->formatPriceTxt($childItem->getTaxAmount());
176+
$lines[$index][] = ['text' => $tax, 'feed' => 495, 'font' => 'bold', 'align' => 'right'];
177+
178+
$item = $this->getItem();
179+
$this->_item = $childItem;
180+
$feedPrice = 380;
181+
$feedSubtotal = $feedPrice + 185;
182+
foreach ($this->getItemPricesForDisplay() as $priceData) {
183+
if (isset($priceData['label'])) {
184+
// draw Price label
185+
$lines[$index][] = ['text' => $priceData['label'], 'feed' => $feedPrice, 'align' => 'right'];
186+
// draw Subtotal label
187+
$lines[$index][] = ['text' => $priceData['label'], 'feed' => $feedSubtotal, 'align' => 'right'];
188+
$index++;
189+
}
190+
// draw Price
191+
$lines[$index][] = [
192+
'text' => $priceData['price'],
193+
'feed' => $feedPrice,
194+
'font' => 'bold',
195+
'align' => 'right',
196+
];
197+
// draw Subtotal
198+
$lines[$index][] = [
199+
'text' => $priceData['subtotal'],
200+
'feed' => $feedSubtotal,
201+
'font' => 'bold',
202+
'align' => 'right',
203+
];
204+
$index++;
205+
}
206+
$this->_item = $item;
152207
}
153208

154-
// custom options
155-
$options = $item->getOrderItem()->getProductOptions();
209+
return $lines;
210+
}
211+
212+
/**
213+
* Draw bundle product custom options
214+
*
215+
* @param array $draw
216+
* @return array
217+
*/
218+
private function drawCustomOptions(array $draw): array
219+
{
220+
$options = $this->getItem()->getOrderItem()->getProductOptions();
156221
if ($options && isset($options['options'])) {
157222
foreach ($options['options'] as $option) {
158223
$lines = [];
@@ -180,12 +245,10 @@ public function draw()
180245
$lines[][] = ['text' => $text, 'feed' => 40];
181246
}
182247

183-
$drawItems[] = ['lines' => $lines, 'height' => 15];
248+
$draw[] = ['lines' => $lines, 'height' => 15];
184249
}
185250
}
186251

187-
$page = $pdf->drawLineBlocks($page, $drawItems, ['table_header' => true]);
188-
189-
$this->setPage($page);
252+
return $draw;
190253
}
191254
}

app/code/Magento/Bundle/Pricing/Price/BundleSelectionFactory.php

+4-1
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,12 @@ public function create(
5252
$quantity,
5353
array $arguments = []
5454
) {
55+
$quantity = $quantity ? (float)$quantity : 1.;
56+
$selection->setQty($quantity);
57+
5558
$arguments['bundleProduct'] = $bundleProduct;
5659
$arguments['saleableItem'] = $selection;
57-
$arguments['quantity'] = $quantity ? (float)$quantity : 1.;
60+
$arguments['quantity'] = $quantity;
5861

5962
return $this->objectManager->create(self::SELECTION_CLASS_DEFAULT, $arguments);
6063
}

app/code/Magento/Bundle/Test/Mftf/Test/StorefrontGoToDetailsPageWhenAddingToCartTest.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
<click selector="{{StorefrontHeaderSection.NavigationCategoryByName($$createCategory.name$$)}}" stepKey="cartClickCategory"/>
7171

7272
<!--Click add to cart-->
73-
<moveMouseOver selector="{{StorefrontCategoryMainSection.ProductItemInfo}}" stepKey="hoverProduct"/>
73+
<actionGroup ref="StorefrontHoverProductOnCategoryPageActionGroup" stepKey="hoverProduct"/>
7474
<actionGroup ref="StorefrontClickAddToCartButtonActionGroup" stepKey="addProductToCart"/>
7575

7676
<!--Check for details page-->

0 commit comments

Comments
 (0)