Commit Graph
2624 Commits
Author SHA1 Message Date
Christophe Simonis e19ec6a8be [MERGE] forward port of branch 8.0 up to 4e62515 2015-01-26 15:46:24 +01:00
Christophe Matthieu 2726e4ffda [FIX] product: add a method invers on price to change list_price; Allow to change the price in the website_sale 2015-01-26 10:14:02 +01:00
Olivier Dony 25b1df2eb3 [FIX] product: better expose default_code on product.template
For companies not working with variants,
it is important to be able to search in the
Products menu (product.template)  using
product codes.
It is useful as well to see the codes
in the default kanban view too, even if
it is only the code of the first variant.
2015-01-24 04:25:51 +01:00
Olivier Dony a3c369f53f [FIX] product: force empty domain for variants action
Takes care of resetting it from older versions
e.g. rev d97e7a6a4e
and c0076916f3, as
the old `variants` field that was used does not
exist anymore, crashing at opening.
2015-01-23 23:23:27 +01:00
Christophe Simonis 6f841038f3 [MERGE] forward port of branch 8.0 up to 3735394 2015-01-22 18:47:13 +01:00
Olivier Dony 495ec92251 [I18N] Update translations from Launchpad 8.0 branches 2015-01-21 15:36:54 +01:00
Olivier Dony 39f00b3637 [I18N] Update translation templates with latest terms
Total new terms: 270
Total deleted terms: 82
Total identical terms: 19653
Old total number of terms: 19735
New total number of terms: 19923
2015-01-21 15:31:22 +01:00
Christophe Simonis 18e22be138 [MERGE] forward port of branch 8.0 up to 0aab81c 2015-01-19 17:15:56 +01:00
Fabrice Henrion 4b0ce3e699 [IMP] Wording
closes #4768
2015-01-19 10:24:51 +01:00
Goffin Simon 0fd773a486 [IMP] Cleanup and refactoring of exception handling
Unify and refactor exception handling in framework and addons.

The generic `except_osv` is now deprecated, and replaced by more specialized exception subtypes:
 - `UserError` (renamed from Warning, as it conflicts with the built-in `Warning`) raised when a non-technical error occurs during a business operation. It could be a missing information in the data provided by the user, or a misconfiguration.
 - `AccessError`: raised when any operation is denied because the user conducting it does not have the required access rights.
 - `AccessDenied`: raised when an operation that requires authenticated access is attempted via an unauthenticated request.
 - `MissingError`: raised when an operation is attempted on a record that does not exist.
 - `ValidationError`: raised when an operation violates a SQL or Python constraint.
 - All other exceptions are internal errors due to a system problem or bug, and raised untouched to the client-side, which should display a traceback.

All exceptions take a single message argument.

The `test_exceptions` module has been updated to showcase both new and old (deprecated) exceptions.

A great many old `except_osv` had a useless title with "Error!" or "Warning", those have been removed, as this is handled by the client-side widget that displays the messages.

This commit introduces a more consistent policy for logging errors and warnings:
 - All messages that do not require administrator attention should be logged at INFO level or lower. This includes all errors that are notified to the user in a friendly manner, even for access right problems or validation errors during business operations.
 - All messages that indicate a likely misconfiguration or malicious use by the users should be logged at WARNING level, as they typically require administrator attention.
 - All other unhandled internal errors cannot typically be handled by the user and should be logged at ERROR or higher level, as they require immediate administrator attention.
2015-01-16 17:15:18 +01:00
Xavier Morel 65cd4a2a33 [FIX] remove deprecated checks/fast_suite test attributes from standard modules 2015-01-15 14:31:40 +01:00
Hitesh Trivedi c38bd48532 [REF] company_id fields: replace selection widget by options = {'no_create': True} in all views
Originally, selection widget was used to prevent the creation of new
companies, but now, we have an option for that in m2o widgets.
2015-01-08 18:14:28 +01:00
Commandant Custo a2a3cffa29 [IMP] product: Improved tooltip for standard_price
Closes #4561
2015-01-08 15:09:55 +01:00
Yannick Tivisse 79ae96be00 [IMP] warehouse: cleaner menus and filters added 2015-01-08 09:35:52 +01:00
Martin Trigaux 25c3348a1f [FIX] product: avoid name_get with empty ()
Products with a seller name but no attributes (only one variant) got their name
in the format 'seller name ()'
Fixes #4523
2015-01-06 18:24:13 +01:00
Aaron Bohy ba37ae3cf3 [DEL] Cleaning: key 'images' removed from all __openerp__.py 2015-01-06 14:20:38 +01:00
Christophe Simonis fab4d6d442 [MERGE] forward port of branch 8.0 up to ea54d4a 2015-01-06 11:49:04 +01:00
Martin Trigaux 9a9bf02b1b [FIX] product: display variant in product label report
Following d80c0ff, Fixes #3138
Proper for loop should be done when converting to QWeb report
2015-01-05 12:49:51 +01:00
Martin Trigaux b303613f85 Forward port of branch saas-3 up to 6d41af4 2015-01-05 12:47:51 +01:00
Martin Trigaux 6d41af4432 Forward port of branch 7.0 up to d80c0ff 2015-01-05 12:41:05 +01:00
fka-odoo d80c0ff647 [FIX] product: Product Label report did not display product
The name of the product was stripped from the product label report
Fixes #3138 (only blank entries)
2015-01-05 12:36:36 +01:00
Leonardo Donelli 4a0b13ed92 [REF] remove vim modelines and resulting trailing blank lines
Let 2015 be a year without modelines!
cf #4174
2014-12-31 15:52:13 +01:00
Denis Ledoux 1ff4d0c9a1 [FIX] product: variants prices (extra price) digits precision
When adding an extra price for a variant (through the button variant prices in the product template form) with a digits precision greater than 2 (4 for instance), the computed public price did not keep the digits precision of the extra price
2014-12-19 11:53:51 +01:00
Nandan Jani 6520e30f45 [ADD] product: allow to reorder product attributes 2014-12-18 13:37:33 +01:00
Josse Colpaert bf922b1502 [IMP] When no stock moves, change whatever you want, otherwise no change at all for UoM. #3440 Enhancement request richard-willowit
The default UoM can only be changed when there are no stock moves (or only cancelled ones), but to any category.
The purchase UoM can be changed whenever you want, but has to be in the same category as the default UoM.

Closes #3440

[IMP] When no stock moves, change whatever you want, otherwise no change at all for UoM.  #3440 Enhancement request richard-willowit

[FIX] Remove line

[FIX] Constraint should be applied when UoM or PO UoM is changed
2014-12-17 15:11:41 +01:00
Olivier Dony dcc74a00f8 [FIX] product, sale: access rights for product.price.history
Granting read-only access to Sales/Accounting Users is useless
as all employees already have it - removed. On the other hand
Sales Managers need write access to it in order to create
products, and they need it even when `sale` is not installed,
e.g. with `account` only.
Moved this access right to `product` module. The Sales
Manager group is defined in `base`, so that works.
2014-12-16 16:16:38 +01:00
Commandant Custo 633df8dc92 [FIX] product: find products of subcategories
When searching products for a specific category, display the products of the whole category subtree.
2014-12-15 17:05:23 +01:00
Martin Trigaux 3695886531 [FIX] account: avoid losing product on invoice
Add restriction on product_id field to prevent the suppression of the product
if already present in an invoice.
This is to avoid the suppression of a used product variant when modifying
the list of attributes.#
Due to the constrain, the variant will be disabled instead of deleted.
Fixes #4129

Add warning message on the product form to warn users about the potential impact
of modifying variants.
2014-12-10 11:49:19 +01:00
Frédéric van der Essen c15f748be0 [MERGE] from master 2014-12-09 23:38:33 +01:00
Olivier Dony da12f2b809 [FIX] product: pricelist: multiple corrections in UoM-related conversions
Pricelist computations need to consider 2 different Units
of Measure:
 - The default product UoM (product.uom_id), used as reference
   for the various quantities and amounts specified in each
   pricelist rules.
 - The `context UoM` is the UoM in which the result is requested,
   that is the list price UoM.

For example the 'price_min_margin' amount is meant for the unit
price of 1 x default UoM. When the context UoM is not the default
product UoM, it can be any UoM of the same UoM Category, and the
various quantities and amounts specified on the rule need to
be adapted accordingly:
  - min_quantity (expressed in terms of the default UoM)
  - price_surcharge (specified for 1 x default UoM)
  - price_min_margin (specified for 1 x default UoM)
  - price_max_margin (specified for 1 x default UoM)

The UoM corrections were not done consistently and resulted in
wrong prices when computing the price using a non-default UoM.
The cases were a conversion was needed or not were not properly
identified within the _price_rule_get_multi().

After this commit, the various code branches in _price_rule_get_multi
always ensures that:
 - price requested for: `qty` of `qty_uom_id`
 - `qty_in_product_uom` is the requested `qty` converted to default UoM
 - current (intermediary) price: `price` for  `price_uom_id`

Therefore `price` and `price_uom_id` are always in sync, and `price_uom_id`
can always be compared with `qty_uom_id' in order to know whether
a conversion is still needed.

This patch also corrects and extends the regression tests
introduced at revision 79ebe10.
2014-12-09 17:30:47 +01:00
Christophe Simonis 5ca7fa18fc [MERGE] forward port of branch 8.0 up to 31a01ea 2014-12-03 19:24:57 +01:00
Christophe Simonis 2ed212dcbf [MERGE] forward port of branch 7.0 up to d6daf5f 2014-12-03 17:51:06 +01:00
Cedric Snauwaert d6daf5fa2f [FIX] product: add store=dict to field name_template
Recompute the name_template field if the template changes.

backport of 41628fc + f25c5d8 to 7.0 plus some optimisations in triggers
Fixes #3277
2014-12-03 16:39:14 +01:00
Christophe Simonis e17222a38d [MERGE] forward port of branch 8.0 up to 2e092ac 2014-12-03 15:18:36 +01:00
Christophe Simonis bc24d1b010 [FIX] product: force empty view_id for action product_variant_action 2014-12-02 17:45:31 +01:00
Christophe Simonis 1d3f8eba87 [MERGE] forward port of branch 8.0 up to 591e329 2014-12-02 16:18:08 +01:00
Josse Colpaert c255fe3384 [IMP] Add a method half-up for uom conversion in case we want to convert from default UoM to something else + remaining_qty round + default factor on UoM 2014-12-02 15:51:58 +01:00
Josse Colpaert 910376a157 [IMP] Rounding of the UoM should have an unlimited precision 2014-12-02 15:51:58 +01:00
Christophe Simonis d37dd37059 [MERGE] forward port of branch saas-3 up to e1e7dc0 2014-12-01 15:42:51 +01:00
sve-openerp b747b3d30b [IMP] product: usability improvement in pricelist
Explicitly specifiy that quantities are in product uom
2014-11-28 15:50:57 +01:00
Christophe Simonis ec30b21336 [MERGE] forward port of branch 7.0 up to de07c64 2014-11-28 15:16:38 +01:00
Richard Mathot 68e0b2ae98 [REV] stock: revert of f229d40fb7
Reintroduction of field mes_type on product.template. This field was not
used in the code anymore, but we keep it for future use.

This field allows the user to express that there is no fixed conversion
rate between uom and uos.

(also very partial revert of 52c3b52bf0)
2014-11-28 14:25:08 +01:00
Olivier Dony fc85a7ee5c [FIX] product: remove unnecessary UoM rounding step, add missing test
Remove the intermediate rounding inside _compute_qty(), as it
is not necessary after rev. fa2f7b86 and has undesired side-effects.

An extra float_round() operation inside _compute_qty()
had been added at rev. 311c77bb to avoid a float representation
error in UoM factors that could bias the ceiling() operation
done as the last conversion step.

Example 1:
Dozen has a factor of 1/12, which was previously stored in the
database with a decimal accuracy of 12 significant decimal digits.
This meant the factor was exactly stored as 0.08333333333333.
When reading this back into a Python float, the precision was not
sufficient, and the UoM conversion of 1 Dozen to Units gave a
result of 12.00000000000047961...
After the final ceiling() operation to Unit's rounding, the
converted value ended up as 13.

This problem was initially solved using an extra rounding.

However at revision fa2f7b86 the decimal precision used to store
UoM factors was increased to preserve all significant digits.
This added the extra precision necessary to read the Dozen factor
back into an accurate float value of 1/12, and the conversion of
1 Dozen now gives 12.0 Units, even without the intermediate
rounding operation. (Works for other factor values too)

At the same time that extra rounding operation has undesired
side-effects, as it requires a fixed precision derived from
the rounding precisions of the UoMs. But there is no given precision
that would work in all cases for this intermediate value. It is
always possible to find a valid combination of UoM roundings
that breaks that intermediate step, e.g. by forcing integer
roundings.

Example 2:
Let Grams have a rounding precision set to 1 because no smaller
quantities are allowed, and Kilograms a rounding of 0.001 to allow
representing 1 Gram. (gram factor = 1000 and kilogram rounding = .001
by default)
If we try to convert 1234 Grams into Kilograms, the extra rounding
introduced in 311c77bb will cause a rounding of 1234.0/1000.0 at
the precision of Grams (1), which gives 1.0 as a result.
The net result of this conversion gives 1234.0 Gram = 1.0 Kilogram,
while the correct result (1.234 Kilogram) is perfectly compatible
with the UoM settings.

Similar errors could be triggered with various rounding settings, as
long as the intermediate rounding needs a finite precision.

Two extra tests have been added to cover Example 1 and Example 2.

--
Related to #2072, #1125, #1126, #2672
Closes #2495, #2498
2014-11-27 16:44:34 +01:00
Olivier Dony 9bc712b075 [REV] product: rev. 42f5114 needs further review
Incorrect use of stock.move in product module + needs review.

This reverts commit 42f511405a:
"[IMP] When no stock moves, change whatever you want, otherwise no change at all for UoM.  #3440 Enhancement request richard-willowit"
2014-11-26 18:20:28 +01:00
Josse Colpaert 42f511405a [IMP] When no stock moves, change whatever you want, otherwise no change at all for UoM. #3440 Enhancement request richard-willowit
The default UoM can only be changed when there are no stock moves (or only cancelled ones), but to any category.
The purchase UoM can be changed whenever you want, but has to be in the same category as the default UoM.

Closes #3440

[IMP] When no stock moves, change whatever you want, otherwise no change at all for UoM.  #3440 Enhancement request richard-willowit

[FIX] Remove line

[FIX] Constraint should be applied when UoM or PO UoM is changed
2014-11-26 18:01:00 +01:00
Richard Mathot f229d40fb7 [REM] product: leftovers of unused field "mes_type"
Also removed in data in point_of_sale, project_timesheet and sale_mrp.
2014-11-26 15:00:37 +01:00
Christophe Matthieu d3c562d4e8 [FIX] product: keep attribute on a variant with only one attribute
When adding informational attribute, with only one possible value, it used to be skipped.
Instead keep it and add it on every variant.

To avoid dropping and recreating product (and lose eventual customisations), the attributes with only one possible value are set on every product.
This makes sure that in following test, these are not considered in variants_inactive variable.

Fixes #3204
2014-11-26 14:35:08 +01:00
Denis Ledoux 02f4f9a572 [MERGE] forward port of branch 7.0 up to e2dd18f 2014-11-26 12:35:36 +01:00
Frédéric van der Essen 24875c11d0 [IMP] point_of_sale: enable product re-ordering in the point of sale. 2014-11-26 12:18:52 +01:00
Aaron Bohy 84c743dd40 [FIX] barcodes,point_of_sale,stock,base: minor changes from code review 2014-11-26 12:06:21 +01:00