Skip to content
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

[14.0][MIG] delivery_auto_refresh: Migration to 14.0 #472

Closed

Conversation

ilyasProgrammer
Copy link
Member

based on #466

Updated tests

pedrobaeza and others added 30 commits February 24, 2022 11:58
Auto-refresh delivery price in sales orders
===========================================

This module automates the delivery price handling for the following cases:

* If you change any line in your draft sales order (SO), when saving, the
  delivery price will be adjusted without having to click on "→ Set price".
* If specified in the system parameter, the delivery line can be also
  auto-added when creating/saving.
* If you deliver a different quantity than the ordered one, the delivery price
  is adjusted on the linked SO when the picking is transferred.

Configuration
=============

* Activate developer mode.
* Go to *Settings > Technical > Parameters > System Parameters*.
* Locate the setting with key "delivery_auto_refresh.auto_add_delivery_line"
  or create a new one if not exists.
* Put a non Falsy value (1, True...) if you want to add automatically the
  delivery line on save.

Known issues / Roadmap
======================

* After confirming the sales order, the price of the delivery line (if exists)
  will be only updated after the picking is transferred, but not when you
  might modify the order lines.
* There can be some duplicate delivery unset/set for assuring that the refresh
  is done on all cases.
* On multiple deliveries, second and successive pickings update the delivery
  price, but you can't invoice the new delivery price.
* This is only working from user interface, as there's no way of making
  compatible the auto-refresh intercepting create/write methods from sale order
  lines.
Currently translated at 100.0% (2 of 2 strings)

Translation: delivery-carrier-12.0/delivery-carrier-12.0-delivery_auto_refresh
Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-12-0/delivery-carrier-12-0-delivery_auto_refresh/zh_CN/
Currently translated at 100.0% (2 of 2 strings)

Translation: delivery-carrier-12.0/delivery-carrier-12.0-delivery_auto_refresh
Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-12-0/delivery-carrier-12-0-delivery_auto_refresh/zh_CN/
Currently translated at 100.0% (2 of 2 strings)

Translation: delivery-carrier-12.0/delivery-carrier-12.0-delivery_auto_refresh
Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-12-0/delivery-carrier-12-0-delivery_auto_refresh/pt_BR/
…+ add on create

As the used method now has a check for not being used when the order is confirmed, so
it collapses when you want to add the delivery line in that moment.

Previous code didn't take into account the direct creation of the sales order.
For not having bad interaction with the rest of the tests.
new() doesn't invoke defaults, so you can get an SO without company for example,
and interacts bad with other modules.
Currently translated at 100.0% (2 of 2 strings)

Translation: delivery-carrier-12.0/delivery-carrier-12.0-delivery_auto_refresh
Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-12-0/delivery-carrier-12-0-delivery_auto_refresh/sl/
In the core the onchange is now aligned with `partner_shipping_id`
instead of `partner_id`.
odoo/odoo@b6f91e3
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: delivery-carrier-13.0/delivery-carrier-13.0-delivery_auto_refresh
Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-13-0/delivery-carrier-13-0-delivery_auto_refresh/
When the company has different currency than the pricelist asociated to the partner. The final price is converted to the currency of the pricelist.

With this changes we achieve to avoid this recomputation and solve this problems on tests.

TT26914
…n website

The steps to reproduce the problem are these:
    - Set delivery_auto_refresh.auto_add_delivery_line.
    - Set a default delivery method on the user's partner.
    - Place a new ecommerce order with that user adding to the cart.

Doing this steps we get the error:
    Record does not exist or has been deleted.
    (Record: sale.order.line(63,), User: 1)
We should get as the same default carrier as Odoo does.

TT34020
Added new config paramerter that automates de voiding of the delivery
line for the case of returning a picking that just didn't go away from
the warehouse (due to several causes like the customer cancelling the
sale order in the last minute).

This will only be performed if the order wasn't already invoiced and the
return was set to refund.

TT30359
OCA-git-bot and others added 15 commits April 4, 2022 04:17
…n website

The steps to reproduce the problem are these:
    - Set delivery_auto_refresh.auto_add_delivery_line.
    - Set a default delivery method on the user's partner.
    - Place a new ecommerce order with that user adding to the cart.

Doing this steps we get the error:
    Record does not exist or has been deleted.
    (Record: sale.order.line(63,), User: 1)
We should get as the same default carrier as Odoo does.

TT34020
Added new config paramerter that automates de voiding of the delivery
line for the case of returning a picking that just didn't go away from
the warehouse (due to several causes like the customer cancelling the
sale order in the last minute).

This will only be performed if the order wasn't already invoiced and the
return was set to refund.

TT30359
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: delivery-carrier-13.0/delivery-carrier-13.0-delivery_auto_refresh
Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-13-0/delivery-carrier-13-0-delivery_auto_refresh/
… 14-delivery_auto_refresh_2

# Conflicts:
#	delivery_carrier_pricelist/tests/test_delivery_pricelist.py
Copy link

@elvise elvise left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Member

@chienandalu chienandalu left a comment

Choose a reason for hiding this comment

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

I'm missing 50ced50 and 27ffc44

@simahawk
Copy link
Contributor

simahawk commented Apr 5, 2022

@ilyasProgrammer please, do not add "Merge" commits.
Also, I'm not sure this kind of fix is really nice da545e5
Any other opinion?

@chienandalu
Copy link
Member

Also, I'm not sure this kind of fix is really nice da545e5
Any other opinion?

Yes, not the best way to do it. If this module's default values is interfering with other modules tests it would be better to set saner defaults or remove demo data that would provoke that.

@elvise
Copy link

elvise commented Apr 5, 2022

Also, I'm not sure this kind of fix is really nice da545e5

Any other opinion?

Yes, not the best way to do it. If this module's default values is interfering with other modules tests it would be better to set saner defaults or remove demo data that would provoke that.

@ilyasProgrammer what do you think can you fix it ?

@simahawk
Copy link
Contributor

simahawk commented Apr 5, 2022

Also, I'm not sure this kind of fix is really nice da545e5
Any other opinion?

Yes, not the best way to do it. If this module's default values is interfering with other modules tests it would be better to set saner defaults or remove demo data that would provoke that.

Yeah, if it's about default values I'd rather tweak them or activate its behavior explicitly w/ a flag on the company or any other kind of configuration that might suit.

If there were more than one delivery line, we'd get a singleton error
when trying to refresh due to the need of taking the discount of the
former lines.

TT35025
When choosing the sale carrier from the header of the order form we
should filter those carriers not available for the given shipping
address the in the same way the wizard does it.

TT35200
@ilyasProgrammer
Copy link
Member Author

I'll try to find configuration-based variant to solve this.

@ilyasProgrammer
Copy link
Member Author

moved here #473

@simahawk simahawk closed this Apr 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.