-
Notifications
You must be signed in to change notification settings - Fork 9.4k
Shipping price showing different in printed pdf #38595
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Hi @DhruvBasan. Thank you for your contribution! Add the comment under your pull request to deploy test or vanilla Magento instance:
❗ Automated tests can be triggered manually with an appropriate comment:
Allowed build names are:
You can find more information about the builds here For more details, review the Code Contributions documentation. |
@magento run all tests |
@magento create issue |
@magento run all tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @DhruvBasan,
Thanks for the contribution!
Please check the below review comments, for Backward compatibility, please mark the newly added parameters to null in constructor and use ObjectManager to initialize those.
Also please check the failed tests, it seems they are failing due to code changes.
Thanks
/** | ||
* @var Magento\Tax\Helper\Data | ||
*/ | ||
protected $taxHelper; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make this variable as private
\Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, | ||
\Magento\Framework\Translate\Inline\StateInterface $inlineTranslation, | ||
\Magento\Sales\Model\Order\Address\Renderer $addressRenderer, | ||
TaxHelper $taxHelper, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make this null
by default to maintain backward compatibility.
$this->_pdfTotalFactory = $pdfTotalFactory; | ||
$this->_pdfItemsFactory = $pdfItemsFactory; | ||
$this->inlineTranslation = $inlineTranslation; | ||
$this->taxHelper = $taxHelper; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use the ObjectManager to initialize this variable.
\Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, | ||
\Magento\Framework\Translate\Inline\StateInterface $inlineTranslation, | ||
\Magento\Sales\Model\Order\Address\Renderer $addressRenderer, | ||
\Magento\Tax\Helper\Data $taxHelper, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make this null
by default
$localeDate, | ||
$inlineTranslation, | ||
$addressRenderer, | ||
$taxHelper, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
initialize $taxHelper with ObjectManager
Hi @DhruvBasan, Thank you for your contribution! Did you get time to work on the changes. Thank you! |
@engcom-Hotel @engcom-Charlie I have made the changes to the files as per your suggestions. Kindly review them. |
@magento run all tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @DhruvBasan, for quick workaround, but it seems the failed tests are due to code changes. I Request you to please fix them.
Thanks
Hi @DhruvBasan, Thank you for your contribution! Did you get time to work on the build failures. Thank you! |
Hello, Internal team has started to work on it Thanks. |
Hello, As I can see this issue got fixed in the scope of the internal Jira ticket AC-11798 by the internal team Based on the Jira ticket, the target version is 2.4.8-beta1. Thanks |
Description (*)
In Stores -> Configuration -> Sales -> Tax -> In the "Display Shipping Price" tab, we can specify whether to show shipping prices including or excluding tax. As seen in screenshot 1, I've set the "Display Shipping Price" option to "Including Tax." Consequently, in screenshot 2, the shipping price is displayed including tax on the sales-order_invoice-view page. However, when we print the order in PDF format from this page, the shipping price is shown as excluding tax, which is incorrect. It should be displayed as per tax configuration and similar to the sales-order_invoice-view page because we are printing the page. You can view the printed PDF in screenshot 3.
Screenshot-1:

Screenshot-2:

Screenshot-3:

Manual testing scenarios (*)
1: Navigate to Admin->Store->Sales->Tax and Select the option as shown in screenshot 4 &5

Screenshot-4:
Screenshot 5:

2: create a one tax rule you can see the screenshot 6 i have created one tax rule with 25% tax rate

Screenshot-6:
3:Now order one product from the frontend
4:Now navigate to admin side and create a invoice of that order
5:Now, navigate to Sales -> Invoice and view the invoice you created.
6:now print the order from invoice page as you can see the diffrence of the shipping price in the sales-order_invoice-view page and in the pdf as depricated in screenshot 2 & 3.
Expected result (*)
The shipping charges should be shown the same way they are displayed on the sales-order_invoice-view page since we are printing the page.
Actual result (*)
The shipping charges are displayed differently on the PDF compared to the sales order invoice view page
Aditional information
The file public_html/app/code/Magento/Sales/Model/Order/Pdf/AbstractPdf.php is responsible for the content seen in the printed PDF. The logic for displaying shipping charges is found in lines 607 to 610 of this file. However, there is no logic implemented to show shipping charges according to the configuration settings. On the other hand, in public_html/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/form.phtml, the logic is implemented to fetch the configuration and then display the shipping charges accordingly on the sales-order_invoice-view page. You can see the logic of form.phtml in Screenshot 7, where shipping charges are displayed according to the configuration. However, in AbstractPdf.php, there is no such logic implemented, and only the shipping price excluding tax is shown, as depicted in Screenshot 8.
Screenshot 7:

Screenshot-8:

Contribution checklist (*)
Resolved issues: