Skip to content

Commit de8e62b

Browse files
authored
ENGCOM-9208: Remove casting to int on increment ID which can be prefixed by a string #33369
2 parents 6a55d11 + e7d048f commit de8e62b

File tree

2 files changed

+34
-3
lines changed
  • app/code/Magento/Sales/view/frontend/templates/order/print
  • dev/tests/integration/testsuite/Magento/Sales/Block/Order/PrintOrder

2 files changed

+34
-3
lines changed

app/code/Magento/Sales/view/frontend/templates/order/print/invoice.phtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<?php foreach ($_invoices as $_invoice) : ?>
1515
<div class="order-details-items invoice">
1616
<div class="order-title">
17-
<strong><?= $block->escapeHtml(__('Invoice #')) ?><?= (int) $_invoice->getIncrementId() ?></strong>
17+
<strong><?= $block->escapeHtml(__('Invoice #')) ?><?= $block->escapeHtml($_invoice->getIncrementId()) ?></strong>
1818
</div>
1919
<div class="table-wrapper table-order-items invoice">
2020
<table class="data table table-order-items invoice" id="my-invoice-table-<?= (int) $_invoice->getId() ?>">

dev/tests/integration/testsuite/Magento/Sales/Block/Order/PrintOrder/InvoiceTest.php

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ public function testPrintInvoice(): void
117117
$order = $this->orderFactory->create()->loadByIncrementId('100000555');
118118
$invoice = $order->getInvoiceCollection()->getFirstItem();
119119
$this->assertNotNull($invoice->getId());
120+
$this->assertTrue(is_numeric($invoice->getIncrementId()));
120121
$this->registerOrder($order);
121122
$this->registerInvoice($invoice);
122123
$blockHtml = $this->renderPrintInvoiceBlock();
@@ -125,11 +126,41 @@ public function testPrintInvoice(): void
125126
Xpath::getElementsCountForXpath(
126127
sprintf(
127128
"//div[contains(@class, 'order-title')]/strong[contains(text(), '%s')]",
128-
__('Invoice #%1', (int)$invoice->getIncrementId())
129+
__('Invoice #%1', $invoice->getIncrementId())
129130
),
130131
$blockHtml
131132
),
132-
sprintf('Title for %s was not found.', __('Invoice #%1', (int)$invoice->getIncrementId()))
133+
sprintf('Title for %s was not found.', __('Invoice #%1', $invoice->getIncrementId()))
134+
);
135+
$this->assertOrderInformation($order, $blockHtml);
136+
}
137+
138+
/**
139+
* @magentoDataFixture Magento/Sales/_files/invoices_for_items.php
140+
*
141+
* @return void
142+
*/
143+
public function testPrintInvoiceWithStringPrefix(): void
144+
{
145+
$order = $this->orderFactory->create()->loadByIncrementId('100000555');
146+
$invoice = $order->getInvoiceCollection()->getFirstItem();
147+
$this->assertNotNull($invoice->getId());
148+
// set text prefix to increment id
149+
$invoice->setIncrementId('prefix-' . $invoice->getIncrementId());
150+
$this->assertFalse(is_numeric($invoice->getIncrementId()));
151+
$this->registerOrder($order);
152+
$this->registerInvoice($invoice);
153+
$blockHtml = $this->renderPrintInvoiceBlock();
154+
$this->assertEquals(
155+
1,
156+
Xpath::getElementsCountForXpath(
157+
sprintf(
158+
"//div[contains(@class, 'order-title')]/strong[contains(text(), '%s')]",
159+
__('Invoice #%1', $invoice->getIncrementId())
160+
),
161+
$blockHtml
162+
),
163+
sprintf('Title for %s was not found.', __('Invoice #%1', $invoice->getIncrementId()))
133164
);
134165
$this->assertOrderInformation($order, $blockHtml);
135166
}

0 commit comments

Comments
 (0)