Commit Graph
259 Commits
Author SHA1 Message Date
Goffin Simon daa6cea439 [FIX] mrp: Upating the quantity of a MO
Steps to reproduce the bug:

- Create three stockable products P1, P2, P3
- Create a BOM for P1 with P2 and P3 as components
- Create a MO with 5 P1
- Check the availability and plan it
- Go on the WO and process only 3 P1
- Go to the MO and update the quantity to 3

Bug:

From this point, it was impossible to pass the MO to the state= 'done'

With this fix, you can now, click on "Post inventory" and the button
"Mark as Done" will appear.

opw:1874227
2018-09-13 10:03:57 +02:00
Nicolas Martinelli 2f87bb5169 [IMP] mrp, stock: make _set_quantity_done available in stock
The method is also useful in other modules, so make it available directly
in stock.
2018-08-30 15:23:04 +02:00
Nicolas MartinelliandArnold Moyaux f0028bc837 [FIX] mrp: raw materials and multi-location
- Create a BOM for Product P with the following component:
  Product C, 5.0 units
- Make some stock for C:
  2 units in location 1
  3 units in location 2
- Create a MO for P, reserve.

When trying to produce an error arise:

> Cannot set the done quantity from this stock move, work directly with
> the move lines.

If the user tries to unlock the MO in order to set the done quantity on
the move lines, the same error will arise when trying to produce.

In the specific scope of the production, we set the quantity done on the
move line instead of directly on the move, to avoid this limitation.

opw-1871241

Co-authored-by: Arnold Moyaux <arm@odoo.com>
2018-08-17 13:21:28 +02:00
Pierre Masereel 772ce29193 [FIX] mrp: product unit of measure precision in produce wizard
The precision digit on the produce lines is not set to the product unit
of measure one. That can lead to a lost of precision when a small values
are set in the manufacturing order and not in the produce wizard.

OPW-1838077
2018-05-03 16:48:20 +02:00
Pierre Masereel 4102f38f15 [FIX] mrp: round up quantity to consume in produce wizard
When moves of a MO are generated, they are rounded up to the decimal
precision of the rounding, what is not done in the wizard.

So to keep it consistent, we also round up the quantity to consume in
the wizard.
2018-05-03 16:25:21 +02:00
Goffin Simon 32d5a31364 [FIX] mrp: Wrong decimal format in user error
When the produced quantity was a float, it only displayed the integer part.

opw:1837334
2018-04-23 14:06:34 +02:00
Simon Lejeune 6ef460b6a7 [REF] stock, mrp: remove constraint, add onchanges
We added a constraint in [1] to improve the usability of introducing
tracked move lines in the system. However, this contraint proved to be
too costly (trigger multiple time during the validation process, never
called in batch as it is set on the model at the end of a o2m).

We replaces the constraint by checks on the validating process or by
(non-blocking) onchanges.

With these changes, validating the receipt of 3000 tracked move lines
goes from 17 minutes to around 4.

[1] 482407464a

opw-803887
2018-01-18 14:37:13 +01:00
Christophe Simonis f96a797fe6 [MERGE] forward port branch saas-16 up to b8540eefe3 2017-12-06 11:59:38 +01:00
Christophe Simonis a8d01cbf4e [MERGE] forward port branch saas-15 up to a447da75fd 2017-12-04 20:12:19 +01:00
Josse Colpaert 220bdb3587 [FIX] mrp: qty producing on update qty of mo
When updating the quantity of an MO, the qty we are producing on a work
order should possibly be updated.  When the finished product is tracked
by serial number it should be 1.0 when some quantity is still to be
treated.  (and not 0 as before)

opw-785190
2017-12-04 17:18:16 +01:00
Arnold Moyaux b2f6814160 [FIX] mrp: Update quantity traceback
Usacase to reproduce:
- Plan MO with 2 unit to produce.
- Produce 1 unit
- Update the quantity to 1
-> Traceback

active_move_lot_ids should have been changed to
active_move_line_ids during the forward port to 11.0
from this commit d62b307597
2017-11-23 17:09:58 +01:00
Martin Trigaux e1e3b5a56e [IMP] i18n: better terms and labels
add missing string labels
rephrase the error message
add missing _description
removed forward-ported hr_equipment.pot

was unclear, courtesy of the translators
2017-10-30 10:40:01 +01:00
Christophe Simonis 693f8dc68a [MERGE] forward port branch saas-16 up to 7bfde6e05d 2017-10-25 14:57:24 +02:00
Christophe Simonis 2130478cda [MERGE] forward port branch saas-15 up to 71f6e9c6ab 2017-10-24 14:01:58 +02:00
Josse Colpaert d62b307597 [FIX] mrp: unlink temp stock move lots when updating quantity to done qty
You start with an MO with a quantity of 2 with routing and we
produce just 1.  At least one of the components is tracked by lots.
When we update the MO to a quantity of 1 again, the temporary
stock.move.lots continued to exist which led to processing a the consume
d move of e.g. 1 piece with 2 pieces of the quants processed when
posting inventory.

A test is added in order to avoid this case

opw-767526 and opw-772786
2017-10-23 10:15:47 +02:00
amoyaux 41d91e2c96 [FIX] mrp: update MO qty with by_product fail
Update MO qty compute the quantity already processed
but it includes the by_product moves.

This commit add a filter in order to only consider the
move with the final product.
2017-10-20 16:06:28 +02:00
Josse Colpaert d8ae935e74 [IMP] mrp: traceability of quantity of non-tracked product
When producing a finished product with a lot, also the raw materials
without lot tracking should split the move lines to at least know the
quantities consumed for every lot produced.  This way, the traceability
report will not confuse the user.
2017-10-03 13:57:31 +02:00
Khoi Nguyen 1eeac9f196 [FIX] mrp: Aesthetic change in block view
Apply text-uppercase to block button.
2017-09-30 14:25:43 +02:00
amoyaux 7c501e4bf0 [FIX] mrp: product produce line fail with consumed SN
Use case to reproduce:
- Create a product with a BOM needing one component tracked by SN
- Create a MO for this product with 2 to produce
- Produce 1
- Produce the other -> 2 lines and a wrong lot proposed

This happens when the quantity to consume is equal to 0
or if the qty_done on a move_line is equal to the reserved
quantity.

This commit change the condition after the float_compare in
order to take into account the equal comparison.
2017-09-29 16:55:43 +02:00
Pierre Masereel 915b74e181 [FIX] mrp: do not show completed move lines in produce wizard 2017-09-29 11:30:56 +02:00
Josse Colpaert 3d0d8b89d1 [FIX] mrp: give error when no lot on produce in produce wizard 2017-09-27 18:10:20 +02:00
Josse Colpaert fc680f5a6b [FIX] mrp: always add theoretical qty on produce
Before, in case of non-tracked components, when everything foreseen had
already been consumed, it would not add the theoretical quantity on
producing through the produce wizard.  This makes little sense as the
behaviour of the wizard is not the same anymore for all cases and this
can only confuse the user.
2017-09-27 18:10:20 +02:00
Josse Colpaert a11d4174a2 [IMP] mrp: add a line in the produce wizard
Make it possible to add an extra line in the produce wizard. This was
done for when we consume more than foreseen to be able to still add e.g.
the serial number.
2017-09-27 18:10:20 +02:00
Josse Colpaert 4cb2e626a9 [IMP] mrp: Allow optional bom lines with 0 qty
When processing moves with 0 initial demand,
it will set the initial demand = qty_done.  Also, when updating the quantity of
an MO, don't take into account those with 0 quantity.
2017-09-27 18:10:20 +02:00
Pratima Gupta 55c0221e38 [IMP] stock, mrp{,_repair}: warn when operating on out of stock products
This implements a warning when the user tries to do any of the
following operations on a product that is not in stock:

- Scrapping
- Unbuilding
- Repairing

The warning displays the current stock of the product in question per
location which can be helpful in case the user selected the wrong
location.
2017-09-26 21:36:10 -07:00
Simon Lejeune 6728fe6aac [FIX] stock, mrp: unique serial numbers warning
Different products can have a same serial number but the code didn't
consider it.
2017-09-25 18:17:52 +02:00
Pierre Masereel 332eb431c5 [FIX] mrp: don't show lines of serial with qty_done set
When you open the produce wizard, see all the move lines for a product
to consume with a serial number, we should only see the ones that have
not been already process.
2017-09-21 10:46:13 +02:00
Pierre Masereel d97b35f37a [FIX] mrp: check that a SN as not already been used
When you are processing a MO or WO, you can set two times the same serial
number for the same product.

To avoid this behavior, we created a onchange on the stock move line to
warn the user when he enter two times the same SN. We also create a
constraint on stock move line to avoid having two times same SN in a
picking.
2017-09-21 10:46:13 +02:00
Simon Lejeune 6aebc80053 [REF] stock, etc: only expose public method, remove indirection
also, remove now useless api.multi and dummy methods here and there
2017-09-15 17:49:37 +02:00
Pierre Masereel f3b34fecad [FIX] mrp: production wizard
The production wizard raised a traceback when you were trying to consume
product tracked by lot without reservation.

To fix this issue and some potential others, we have removed the
move lines from the wizard and create produce lines that are used on
validation to create the move lines.

This also let us show the 'To Consume' quantity of a lot instead of the
reserved quantity which has no sense when there is no reservation.
2017-09-11 14:48:08 +02:00
Pratima Gupta 83f2557d72 [IMP] mrp: restructure the consume_line_ids tree view
Also adds strings that are more appropriate in an MRP context.
2017-08-31 21:22:48 -07:00
amoyaux 4ec6069acc [FIX] mrp: update qty to produce does not remove the qty produced
When updating the quantity to produce on a MO, the quantity done
on finished/consumed moves that were not done was erased.

It happens due to write on stock move that always wanted to
unreserve the move and thus drop the move lines with qty_done.
This issue has been resolve in previous commit

This commit correct some mistakes in wizard methods in order
to correctly update open moves.
2017-08-30 11:34:20 +02:00
Christophe Simonis db0810dc6e [MERGE] forward port branch saas-15 up to 0cfbc7581f 2017-08-23 18:15:56 +02:00
Nicolas Martinelli b3590bc58e [FIX] mrp: change lots in produce
- Create Products A and B, tracked by unique serial number.
- Receive some quantity of B.
- Create a BOM for A which uses 1 unit of B.
- Create a MO for 2 units of A, save and check availability.
- Click on the 'Produce' button.
- Change the suggested lot (choose a new one or create), then click on
  the '+' button.

When the wizard is reloaded, the lot chosen is lost.

We reach an exception in the framework: when clicking on the '+' button,
no `create` is performed on the transient model `mrp.product.produce`,
therefore the values are not saved.

Since this use case is an exception and is likely to lead to errors, we
remove the button.

opw-761044
2017-08-23 10:17:49 +02:00
Pierre Masereel 472384e658 [FIX] mrp: Only show lots of consumed product
When you use the produce wizard of mrp, you can select the lot_id of any
existing prosuct to set on the consumed product.

To avoid the seletion of a lot of another product, we set a domain
showing only the lots of the current product.
2017-08-22 16:44:29 +02:00
amoyaux 5a78462f90 [IMP] mrp : usability for produce wizard
On the production wizard when you are using a product tracked
by SN/lot and another not tracked as consumed element. You edit
the form view by settings the correct quantity -> Use the produce
wizard. It will display the tracked product (you can see the details
you entered before) -> validate. It will double the quantity done
for the not tracked product.

This commit will change the wizard behavior by only set the quantity
done on untracked product if it is not already set.
2017-08-07 16:11:59 +02:00
Simon Lejeune ddf2b21bdf [REF] stock: adapt to rename of stock.pack.operation into stock.mode.line 2017-07-14 17:08:22 +02:00
Josse Colpaert 0a76e158e1 [REF] mrp: adapt to new stock implementation 2017-07-14 17:08:21 +02:00
Christophe Simonis bf51fe55a1 [MERGE] forward port branch saas-16 up to 0f2b2c4e2b 2017-07-07 14:30:30 +02:00
Christophe Simonis 7dc731db83 [MERGE] forward port branch saas-15 up to 1f16d34aaa 2017-07-06 13:54:22 +02:00
Sylvain GARANCHER b587ae48e4 [FIX] mrp: set default quantity
The wizard to change the produced quantity of a manufacturing order was not
using the current produced quantity as the default value.
This was because the field mo_id was not present in the view (and not in
`fields` in default_get).

Adding the field as invisible to compute the default value for mo_id.

Correct typo in dictory lookup (using `[` instead of `(`)

Closes #17937
opw-749725
2017-07-06 10:41:26 +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
Christophe Simonis 9898b125ad [MERGE] forward port branch saas-15 up to c0e4ab8080 2017-05-05 17:23:23 +02:00
Goffin Simon b2ab0a8d50 [FIX] mrp: MO with a serial numbers
Steps to reproduce:

1. Create two products A and B that require a serial number
2. Create a product C with no trcking
3. Create a BOM for a A with two components B an C
4. Create a MO for A with  qty > 1
5. Check availabiltity and produce the first A
6. Record the SN for the first assembly

Bug: When producing the second assembly, it was not possible to
record the SN for the components.

opw:741316
2017-05-03 15:58:32 +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
Nicolas Martinelli 27f656a23e [FIX] mrp: duplicated raw materials
- Create Product A with a BOM which depends on a product with tracking
  "By Unique Serial Number" (Product B).
- Create a MO for Product A
- In the "Register lots" wizard, add two lines for "Product B", with the
  same serial number.

Nothing prevents the user to do it, even when the inventory is posted.

opw-709888
2017-03-15 14:01:04 +01:00
Denis Ledoux 04bb06fcb3 [FIX] mrp: Do not ask for to provide a lot if there is no finished product.
If `product_move` is an empty browse record
`produce_move.product_id.tracking` is `False`, not `none`,
and therefore
`produce_move.product_id.tracking != 'none'` returns True,
and it therefore asked to provide a lot for no reason.

opw-710748
2017-03-07 12:50:34 +01:00
Pratima Gupta c1c519a056 [FIX] mrp: attrs lot_id required in produce wizard
Commit b2cf955e made the lot_id always required in the
produce wizard of the manufacturing order (without work orders).

It should only be required when the finished product is tracked by lot.
2017-02-14 17:12:16 +01:00
Goffin Simon b2cf9559d6 [FIX] mrp: The field "lot_id" is required in MRP Product Produce
When producing in the view "MRP Product Produce", if the field "lot_id"
is empty, it raised a UserError. So the field is required.

opw:705143
2017-02-07 16:19:10 +01:00
Josse Colpaert 347f140fe6 [FIX] mrp: rounding issues and efficiency replacement
Before, when you would put a quantity in a BoM line that was not rounded
to its UoM (e.g. use 0.3 piece with rounding 1.0) it would not round this
quantity in the MO also (when exploding the BoM), and the user could also
enter a not rounded quantity himself for the quantity produced or
consumed.

The moves were split with the exact quantities, but the moves were validated
taking into account rounded quantities. This resulted in either moving 2
pieces instead of 1 (entering 0.7 or 1 piece) or raising an error telling
you can not process moves with 0 quantity (0.3 piece).

As product_efficiency and product_rounding was removed from the BoM/BoM
line in v10, if the rounding is correctly handled, the feature could work
like in v9, by e.g. putting 1.03 in the bom line (97% efficiency) and
rounding up when exploding the BoM (e.g. producing 10 pieces would put
it to 11).

When "producing", we round the produced qty to the product uom (it does
not make sense to produce 1.32 if your uom rounding is 1.0). The user
might now change the produced quantity, that's why we round-up when
validating the move: indeed, if the user slightly increase the produced
value (below the uom unit), it actually means he produced more.

This way, instead of not rounding anything and doing rounding behind the
scenes, leading to errors, we round everything and the user sees the
result directly.
2017-01-27 19:22:02 +01:00