Commit Graph
74 Commits
Author SHA1 Message Date
Christophe Simonis 6e6e3d4c96 [MERGE] forward port branch saas-15 up to 51d1fd6948 2018-07-12 21:19:02 +02:00
Christophe Simonis 51d1fd6948 [MERGE] forward port branch saas-14 up to be9378709c 2018-07-12 21:18:13 +02:00
Christophe Simonis be9378709c [FIX] sale: correctly setup currency rates in tests 2018-07-12 20:03:47 +02:00
Christophe Simonis 52e28c903c [MERGE] forward port branch saas-15 up to 650bc6419c 2018-07-12 16:06:19 +02:00
Christophe Simonis 650bc6419c [MERGE] forward port branch saas-14 up to eb56e6dcb3 2018-07-12 14:07:36 +02:00
Christophe Simonis eb56e6dcb3 [MERGE] forward port branch 10.0 up to 755081cbf4 2018-07-12 14:07:08 +02:00
Goffin Simon dad19a769a [FIX] sale: Price on SO not working with different uom
Steps to reproduce the bug:

- configuration on sale:
   - Unit of measure: Some products may be sold/purchased in different units of measure (Advanced)
   - Sale Price: Advaced pricing based on formulas (discounts, margins, rounding)
   - Discount: Allow discounts on sale order lines
- kg as the Reference UOM for weight
- create an uom 10 kg
   - Category: Weight
   - Type: Bigger...
   - Bigger ratio: 10.0
- create a product P
   - Sale price: 100
   - Unit of measure: kg
   - Purchase UOM: kg
- create a pricelist "My pricelist"
   - Discount policy: Show public price & discount to the customer
   - Items : All products - 10% discount
- create a SO with "My pricelist"
- create a SO line with P, the unit price is automatically 90 with 10 % of discount
- change the uom of the line with 10kg

Bug:

The unit price of the line didn't change and the discount on the line disappeared.

In function product_uom_change, the uom of the SO line has been set in the context
of the product(like in function product_id_change). So in funciton _get_display_price,
the function _get_real_price_currency must be called with the uom of product in the context.
In this way, the lst_price will be fetch on product with the right uom without any bad conversion
(because uom.id == product_uom with uom from the parameters and product_uom from the context).

But with function get_product_price_rule, no need to call this function with the uom in context as
it is already set in the product(check "if uom_id: ... else ..." in this function).

The same logic has been applied in function _onchange_discount

opw:186385
2018-07-12 11:45:15 +02:00
jem-odoo 7a951d7085 [FIX] sale: to invoice/invoiced amounts for delivered policy
This commits make the computation of amount to invoice
and amout already invoiced on sale order line works
with invoice policy based on delivered quantities.

Before this, the upselling of delivered quantities
was not working: you were seeing the upsell amount
in the amount to invoice (qty delivered > qty ordered).
Notes:
- When a product is not delivered (qty delivered = 0), its
amount to invoice is zero too
- Draft invoice are not take into account really; they are
included at sale order price (discount on draft invoice does
not impact amounts to invoice/invoiced)

Also, when a SO in state 'draft' or 'cancel', its amount
to invoice should be zero, but its invoiced amount should
take all validated invoices into account.

Finally, more correct trigger are set on the compute
method, to trigger recomputation on right moment.

This commit also compute the 2 amount fields as sudo, since
the amount should not be dependent of access right of current
user.

To check those different points, this commit provide some
more tests with ordered and delivered product, SO cancelling,
upselling or delivery, ...
2017-11-17 10:01:00 +01:00
amoyaux 0cf3b12373 [FIX] sale: product is editable after invoice, picking, timesheet
Since procurement removal introduced by commit 0e4f3bb959
product is editable once picking, timesheet,... are created.
However if the user modify the product it will not be reflected to
the related downstream object.

Previously it checks if a procurement order was linked to the sale line
and thus make it readonly.

This commit reproduce the old behavior by using a computed field that
can be override in sale_x modules in order to block the product
change for defined object.
2017-10-19 09:44:07 +02:00
Jérome Maes 0d50bf5d5b [IMP] sale: rename 'project_id' into 'analytic_account_id'
Since this field is an analytic account and not a project, its
name should be more explicit. This commit makes the code more
understandable. Naming things correctly improve developper's
sleep.
2017-09-13 08:41:30 +02:00
Rawish Murari d2e33ba57c [IMP] sale: show invoiced and to invoice amount in sale report
Show amount to invoice and amount invoiced for each sale order lines to improve the sale report.

task: https://www.odoo.com/web?#id=21547&view_type=form&model=project.task&action=327&menu_id=4720
PR: #10280
2017-08-29 12:01:30 +02:00
Olivier Dony 695716efb0 [FIX] P3: remove pycompat.{keys,items,values} helpers
Now that we're closer to switching to P3 for good, these helpers have
outlived their usefulness, and mostly add noise.

All remaining dict.iter*() or dict.view*() must be converted to the
normal keys(), values() or items() calls.

Whenever the result is likely to be used for more than the scope of a
loop, or when the dict needs to be modified during iteration, the calls
must be wrapped in a ``list()``, to protect the new P3 semantics.
Those cases are very exceptional.

Also removed some dead code or improved the API to remove unnecessary
conversions.
2017-08-20 23:25:54 +02:00
Christophe Simonis 4f501348c4 [MERGE] forward port branch saas-16 up to 46e1104ce1 2017-07-26 19:55:44 +02:00
Christophe Simonis 46e1104ce1 [MERGE] forward port branch saas-15 up to 681f03e309 2017-07-26 19:41:57 +02:00
Christophe Simonis 681f03e309 [MERGE] forward port branch saas-14 up to c4e9b854ff 2017-07-26 18:47:54 +02:00
Christophe Simonis e8d4a11e6e [MERGE] forward port branch 10.0 up to 0a089f87fb 2017-07-26 16:56:57 +02:00
Christophe Simonis 5ed09bc17c [MERGE] forward port branch saas-11 up to c16ec6405b 2017-07-25 14:27:31 +02:00
Christophe Simonis 06b670e6ba [MERGE] forward port branch 9.0 up to e2a255717f 2017-07-24 19:41:30 +02:00
Martin Trigaux a03eb9a3e8 [IMP] sale: add test on pricelist dates
Commit 60d46345 fixed issue #18303 that was surprisingly unnoticed for two years
Adding tests to make sure it does not happen again.
2017-07-20 10:21:03 +02:00
Xavier Morel ba1b88db34 [FIX] P3: sales tests relying on dict iteration order
test_00_sale_stock_invoice would blow up in Python 3, because the
test(s) relies on the iteration order of the products dict to know
where which line is (holy mother of caca) an set the relevant line's
data by indexing directly into it.

This would fail (with very odd results) in Python 2 and 3 as it could
set information on the "wrong" order line aka the order line for a
different product (and invoicing mode/whatever) than intended.

Fix the issue by hard-coding the products iteration order (to the
iteration order I get in Python 2.7.10 on that dict literal) using an
OrderedDict.
2017-06-12 11:04:23 +02:00
Christophe Simonis ab02bf34b0 [MERGE] forward port branch saas-16 up to cc38b93ab2 2017-06-09 17:11:47 +02:00
Christophe Simonis cc38b93ab2 [MERGE] forward port branch saas-15 up to 49f819a7a7 2017-06-09 16:43:27 +02:00
Christophe Simonis 49f819a7a7 [MERGE] forward port branch saas-14 up to b6c7d71899 2017-06-09 16:21:15 +02:00
Christophe Simonis b6c7d71899 [MERGE] forward port branch 10.0 up to cd1a8f6252 2017-06-09 13:28:06 +02:00
qdp-odoo bd4da1b749 [FIX] sale, sale_expense, stock_landed_costs: fix nightly build.
stock_landed_costs: on nightly, the localization installed may not have stock properties accounts defined. If it's not, we create them on the fly with a random account

 sale, sale_expense: fix broken tests due to mismatch currency:
    On 10.0-nightly, the currency of the company is not the same that the product.list0
    that leads to assertion errors.
2017-06-08 17:40:21 +02:00
Olivier Dony 5d2869cbc8 [MERGE] Forward-port saas-16 up to ba15df47cb 2017-06-01 01:46:13 +02:00
Olivier Dony ba15df47cb [MERGE] Forward-port saas-15 up to 17b847c0f6 2017-06-01 01:10:29 +02:00
Olivier Dony 5dd2cc8e63 [MERGE] Forward-port saas-14 up to b9e2207267 2017-06-01 00:37:30 +02:00
Olivier Dony b9e2207267 [MERGE] Forward-port 10.0 up to 7e44444878 2017-06-01 00:15:27 +02:00
Richard Mathot dd8f238ff7 [FIXMP] sale: make test result easier to understand 2017-05-31 14:12:58 +02:00
Yannick Tivisse 5dfd342d08 [ADD] sale_management: Separate sales menu items from sale app
Purpose
=======

Don't display sales app icon in Odoo homepage when installing ecommerce (only website should be visible)
it's confusing to have sales icon  -> where do I manage my sales? In sales or in website? -> in website

Specfication
============

We need one new modules to add Sales menus to the homepage. Currently they come with "sale". So when installing "website_sale", we get them (because sale and account are dependencies of website_sale). We don't want that anymore. Along with that you need to replace modules in Apps menu:
sales menu items must be in the new sale_management module, no longer in sale

- create new app "sale_management"
- Currently 3 app icons when installing ecommerce (Sales, Invoicing, Website) -> too many icons, where to start? -> GOAL: Only 2 icons > Website, Invoicing
- new module to display Sales Icon (like account_accountant): "sale_management"
- move menu items to sale_management
- sale, sale_management: move app description, rewrite the manifest file
- sale, sale_management: move tour from sale > sale_management
- Changes in some dependency module "sale" > "sale_management" modules: event_sale, mrp_repair, pos_sale, report_intrastat, sale_crm, sale_expense, sale_stock, sale_timesheet, website_quote

Menu items to move 'sale' --> 'sale_management'
===============================================

Sales
	Quotations
        Sales Orders
Invoicing
	Orders to invoice
        Orders to Upsell
Catalog
	Products
        Product Variants
        Pricelists
Reporting
	sales
Configuration
	Settings
        Products -Attributes, Attribute Values, Internal Categories
2017-05-18 14:41:48 +02:00
Yannick Tivisse 0f92eed8a0 Revert "[ADD] sale_management: Separate sales menu items from sale app"
This reverts commit 9ab421d99a.

We should use the active field on the ir.ui.menu with the root menuitem instead of moving all the menuitems into a new module
2017-05-18 14:41:48 +02:00
dbh 9ab421d99a [ADD] sale_management: Separate sales menu items from sale app
Purpose
=======

Don't display sales app icon in Odoo homepage when installing ecommerce (only website should be visible)
it's confusing to have sales icon  -> where do I manage my sales? In sales or in website? -> in website

Specfication
============

We need one new modules to add Sales menus to the homepage. Currently they come with "sale". So when installing "website_sale", we get them (because sale and account are dependencies of website_sale). We don't want that anymore. Along with that you need to replace modules in Apps menu:
sales menu items must be in the new sale_management module, no longer in sale

- create new app "sale_management"
- Currently 3 app icons when installing ecommerce (Sales, Invoicing, Website) -> too many icons, where to start? -> GOAL: Only 2 icons > Website, Invoicing
- new module to display Sales Icon (like account_accountant): "sale_management"
- move menu items to sale_management
- sale, sale_management: move app description, rewrite the manifest file
- sale, sale_management: move tour from sale > sale_management
- Changes in some dependency module "sale" > "sale_management" modules: event_sale, mrp_repair, pos_sale, report_intrastat, sale_crm, sale_expense, sale_stock, sale_timesheet, website_quote

Menu items to move 'sale' --> 'sale_management'
===============================================

Sales
	Quotations
        Sales Orders
Invoicing
	Orders to invoice
        Orders to Upsell
Catalog
	Products
        Product Variants
        Pricelists
Reporting
	sales
Configuration
	Settings
        Products -Attributes, Attribute Values, Internal Categories
2017-05-10 13:33:36 +02:00
xmo-odoo fffaf735f5 [FIX] P3: list -> iterable builtins (#16811)
In Python 3:

* various builtins and dict methods were changed to return
  view/iterable objects rather than lists
* and the separate Python 2 view/iterable builtins and methods were
  removed altogether

This is problematic when using these items as list (which the happens
repeatedly in Odoo), but more viciously when iterating *multiple times*
over them (which also happens, which I've messed up multiple times while
writing this, and which is a pain to debug even when you've just created
the issue).

Convert all code using these to semantics-matching cross-version
helper functions to get the LCD behaviour between P2 and P3, and
forbid the builtins via lint.

issue #8530
2017-05-10 09:39:55 +02:00
xmo-odoo b4429c2a91 [FIX] Various P3-related import changes
* LDAP import: python-ldap is not python3-compatible, pyldap is

  Warning: only supported from debian Stretch (current testing)?
  https://packages.debian.org/search?searchon=names&keywords=pyldap

* implicitly relative imports
* imports of moved or removed stdlib modules

issue #8530
2017-04-28 09:06:53 +02:00
Aline Preillon 2950ffaa86 [IMP] mail: improve notification management, either email either inbox
Currently partners have a boolean field to choose whether to receive
notifications only in their Odoo inbox or to receive them in their inbox
and by email. This leads to several issues :

 * if a customer is configured to not receive emails he will not receive
   any notification on sales orders, leads, ... This is not clearly
   indicated to the salesman and it is not easy to know how to change
   that behavior
 * if an user chooses to receive emails and does not use its inbox a lot
   of notifications stay in Odoo. The user has to manually set them as
   done to make them disappear which is redundant.

This commit changes that behavior. From now on customers will always
receive all notifications by email. Indeed Odoo is not a customer oriented
mailbox. Moreover sales orders or discussions on leads send to customers
should always be sent by email as it is the standard communication
mechanism. Users will be able to choose to receive notifications in Odoo
or by email. The choice is no longer inbox or inbox + email, but inbox
or email. Choosing one option or the other one depends on the way the
user wants to work.

Technically the field is moved on the users model and selection keys
are renamed. Notification process is modified

 * notified_partner_ids contains as before specified recipients as well
   as followers matching the subtype
 * customers and users working with emails are notified. During that
   process customers notifications are marked as done to be able to
   track the email state without having needaction. Users notifications
   are currently deleted as we do not track their email state.

The removal of partner field implies changes in various addons that
define partner data with this field set in the values.
2017-02-21 16:42:11 +01:00
Goffin Simon 65f986c018 [FIX] sale: Wrong fix in test_onchange_product_id
Due to wrong fix introduced by 982816ed7b
and introduced by 9367fe3cd3
2017-02-15 16:52:40 +01:00
qdp-odoo 982816ed7b [REV] sale_expense, sale: revert wrong fixes on tests, and wrong fix of broken test's fixes that broke tests instead of fixing them... bummer
This reverts commit da32c9ce9d.
This reverts commit 9367fe3cd3.
2017-02-15 16:29:10 +01:00
Goffin Simon da32c9ce9d [FIX] sale: currency change
To avoid currency problem introduced by 9367fe3cd3
2017-02-15 15:15:22 +01:00
Laurent Smet 9367fe3cd3 [FIX] sale_expense,sale: fix tests that depend of the USD currency
The assertEqual compare arbitrary amounts related to the USD.
This leads to error when changing the currency of the base.main_company.
2017-02-15 10:33:23 +01:00
Kinjal Mehta b0185e15cc [FIX] all: fix some common typos
Sale Order --> Sales Order
Sale Report --> Sales Report
Sale Team -> Sales Team
Payment Term --> Payment Terms
2016-12-22 13:29:38 +01:00
Raphael Collet 0783318f97 [FIX] adapt logger names 2016-09-02 17:28:13 +02:00
Denis Vermylen (dve) bc8d5dbf2c [REF] account: replace workflow by python code 2016-09-02 10:16:49 +02:00
Thibault Delavallée 029d1baf35 [REF] mail: remove required alias on users
This commit remove required alias on res.users model. It also removes the
inheritance of mail.alias.mixin. The field alias_id is kept and allow people
to use aliases on users if they want. However there is no default void alias
created for each user anymore.

Default from of mail.message does not use user alias anymore. Indeed this
creates issues with aliases not being correctly configured and can be
confusing compared to private channels. Using user aliases is therefore
now done manually instead of being a default behavior.
2016-09-01 13:19:24 +02:00
qsm-odoo 0bcf978920 [IMP] sale,sale_crm: activate the sale_tour test 2016-08-28 22:43:39 +02:00
fwi-odoo ca32071b4a [MIG] sale: Migrate to new API 2016-08-10 11:00:21 +02:00
Yannick Tivisse 9e57185449 [IMP] base,sales_team: Move res_groups and menuitems to sales_team
Purpose:
Having the res_group defined in base and sales_team auto installed
with mail doens't make sense.

- Move the empty res_config class and the related view from
  base_setup to sales_team (base_setup only contains the 'General Settings'
  model and views
- Move the 'sale' related content from product to sale module (Access rights,
  menuitems,...)
- Set sales_team at autoinstall False. The module is installed when needed by
  crm or sale for example
- Set sales_team as a dependency of voip. (Access rights defined for configuration
  purpose)
- Set sales_team ad a dependency of subscription (Access rights issue too)

[FIX] account: move some ir.model.access to sale module
[FIX] payment: Move some ir.rule to website_sale
[FIX] stock: move some ir.model.access rule to sale_stock
[FIX] project: Move some ir.model.access rules to crm_project_issue
[FIX] mrp: Move some ir.model.access rules to sale_mrp
[FIX] calendar: move some ir.model.access rules to crm

Rename xmlids accordingly. Example: 'base.group_sale_manager' becomes
sales_team.group_sale_manager.

[ADD] sales_team: See own documents => See only his sales team
Moved the "User: Own Leads Only", "User: All Leads" and "Manager" groups from sale and crm
into sales_team module. Add the record rules so that user can see only his Own Sales Team
if "See Own Leads" is sales right and can see all sales teams if he is having sales rights
of "See All Leads" or manager.
2016-06-09 16:05:25 +02:00
Yannick Tivisse ccdb5cbfc0 Revert "[IMP] base,sales_team: Move res_groups and menuitems to sales_team"
This branch need more testing instead of doing 10 fixes. A lot of issues are occuring
when installing modules in different orders.

This reverts commit fa6e415cdb.
2016-06-06 17:26:30 +02:00
Yannick Tivisse fa6e415cdb [IMP] base,sales_team: Move res_groups and menuitems to sales_team
Purpose:
Having the res_group defined in base and sales_team auto installed
with mail doens't make sense.

- Move the empty res_config class and the related view from
  base_setup to sales_team (base_setup only contains the 'General Settings'
  model and views
- Move the 'sale' related content from product to sale module (Access rights,
  menuitems,...)
- Set sales_team at autoinstall False. The module is installed when needed by
  crm or sale for example
- Set sales_team as a dependency of voip. (Access rights defined for configuration
  purpose)
- Set sales_team ad a dependency of subscription (Access rights issue too)

Rename xmlids accordingly. Example: 'base.group_sale_manager' becomes
sales_team.group_sale_manager.
2016-06-06 15:46:52 +02:00
Fabien Pinckaers 48ea59d46e [IMP] sale,hr_expense: simplify invoice policy, 2 options instead of 3
The invoice_policy 'time & material' has been replaced by an
    expense_policy!='no', with invoice_policy='delivery'.
2016-05-22 15:57:33 +02:00