Skip to content

Conversation

DhruvBasan
Copy link
Contributor

@DhruvBasan DhruvBasan commented Apr 9, 2024

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:
image

Screenshot-2:
image

Screenshot-3:
image

Manual testing scenarios (*)

1: Navigate to Admin->Store->Sales->Tax and Select the option as shown in screenshot 4 &5
Screenshot-4:
image

Screenshot 5:
image

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

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:
image

Screenshot-8:
image

Contribution checklist (*)

  • Pull request has a meaningful description of its purpose
  • All commits are accompanied by meaningful commit messages
  • All new or changed code is covered with unit/integration tests (if applicable)
  • README.md files for modified modules are updated and included in the pull request if any README.md predefined sections require an update
  • All automated tests passed successfully (all builds are green)

Resolved issues:

  1. resolves [Issue] Shipping price showing diffrent in printed pdf #38608: Shipping price showing diffrent in printed pdf

Copy link

m2-assistant bot commented Apr 9, 2024

Hi @DhruvBasan. Thank you for your contribution!
Here are some useful tips on how you can test your changes using Magento test environment.

Add the comment under your pull request to deploy test or vanilla Magento instance:
  • @magento give me test instance - deploy test instance based on PR changes
  • @magento give me 2.4-develop instance - deploy vanilla Magento instance

❗ Automated tests can be triggered manually with an appropriate comment:

  • @magento run all tests - run or re-run all required tests against the PR changes
  • @magento run <test-build(s)> - run or re-run specific test build(s)
    For example: @magento run Unit Tests

<test-build(s)> is a comma-separated list of build names.

Allowed build names are:
  1. Database Compare
  2. Functional Tests CE
  3. Functional Tests EE
  4. Functional Tests B2B
  5. Integration Tests
  6. Magento Health Index
  7. Sample Data Tests CE
  8. Sample Data Tests EE
  9. Sample Data Tests B2B
  10. Static Tests
  11. Unit Tests
  12. WebAPI Tests
  13. Semantic Version Checker

You can find more information about the builds here
ℹ️ Run only required test builds during development. Run all test builds before sending your pull request for review.


For more details, review the Code Contributions documentation.
Join Magento Community Engineering Slack and ask your questions in #github channel.

@DhruvBasan
Copy link
Contributor Author

@magento run all tests

@engcom-Hotel
Copy link
Contributor

@magento create issue

@engcom-Hotel engcom-Hotel added Priority: P1 Once P0 defects have been fixed, a defect having this priority is the next candidate for fixing. and removed Progress: pending review labels Apr 10, 2024
@DhruvBasan DhruvBasan changed the title Shipping price showing diffrent in printed pdf Shipping price showing different in printed pdf Apr 18, 2024
@sinhaparul sinhaparul added the Project: Community Picked PRs upvoted by the community label May 21, 2024
@engcom-Hotel engcom-Hotel self-requested a review May 30, 2024 05:39
@engcom-Hotel
Copy link
Contributor

@magento run all tests

Copy link
Contributor

@engcom-Hotel engcom-Hotel left a 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;
Copy link
Contributor

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,
Copy link
Contributor

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;
Copy link
Contributor

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,
Copy link
Contributor

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,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

initialize $taxHelper with ObjectManager

@engcom-Charlie
Copy link
Contributor

Hi @DhruvBasan,

Thank you for your contribution!

Did you get time to work on the changes.

Thank you!

@DhruvBasan
Copy link
Contributor Author

@engcom-Hotel @engcom-Charlie I have made the changes to the files as per your suggestions. Kindly review them.

@engcom-Hotel
Copy link
Contributor

@magento run all tests

Copy link
Contributor

@engcom-Hotel engcom-Hotel left a 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

@engcom-Charlie
Copy link
Contributor

Hi @DhruvBasan,

Thank you for your contribution!

Did you get time to work on the build failures.

Thank you!

@engcom-Bravo
Copy link
Contributor

Hello,

Internal team has started to work on it

Thanks.

@engcom-Bravo
Copy link
Contributor

Hello,

As I can see this issue got fixed in the scope of the internal Jira ticket AC-11798 by the internal team
Related commits:https://github.com/search?q=repo%3Amagento%2Fmagento2+AC-11798&type=commits

Based on the Jira ticket, the target version is 2.4.8-beta1.

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: P1 Once P0 defects have been fixed, a defect having this priority is the next candidate for fixing. Project: Community Picked PRs upvoted by the community
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Issue] Shipping price showing diffrent in printed pdf
5 participants