Skip to content
Snippets Groups Projects
  1. Feb 24, 2021
  2. Feb 23, 2021
    • Adrien Widart's avatar
      [FIX] mrp: force kit to be consumable product · 3d34d583
      Adrien Widart authored
      
      Kits must be consumable products, they might never be in stock.
      Setting kits as storable products can create some issues if the user
      creates some reordering rules.
      
      Because kits might never be in stock, it's impossible to fullfil the
      quantity of a reordering rule: asking a mini/maxi quantity on a kit
      makes no sense.
      
      Odoo will continuously propose to order more to reach the quantity
      necessary for the kit, but will never reach the asked qty, as it's a
      kit, not a manufactured product.
      
      OPW-2448878
      
      closes odoo/odoo#65339
      
      Signed-off-by: default avatarSteve Van Essche <svs-odoo@users.noreply.github.com>
      3d34d583
  3. Feb 22, 2021
    • Andrea Grazioso (agr-odoo)'s avatar
      [FIX] stock: allow destination address change in transfer · b730d42e
      Andrea Grazioso (agr-odoo) authored
      
      - Create SO with deliverable product, confirm
      - Change delivery Address on SO and on Transfer
      - Inventory > Stock moves (debug mode)
      - Group by > Picking and Destination address
      
      The address shows is the original and not the updated one.
      
      opw-2429018
      
      closes odoo/odoo#66031
      
      Signed-off-by: default avataragr-odoo <agr-odoo@users.noreply.github.com>
      b730d42e
    • Tiffany Chang (tic)'s avatar
      [FIX] stock: make package level package consistent v2 · a73505dd
      Tiffany Chang (tic) authored
      
      Commit e5ab8cf9 missed a use case.
      
      Steps to reproduce:
      
      - Activiate "Packages" setting in Inventory
      - Configure an operation type to "Move Entire Packages"
      - Create a "Planned Transfer" picking with that operation type and add a
        package to be moved
      - Turn off "Move Entire Packages" and try set the destination
        package of the move line to nothing (False).
      
      Expected result:
      Move line has no destination package + package level is deleted as
      expected.
      
      Another bug will still exist due to the design of package_level where if
      in addition to the above use case, if a different package is used instead
      of deleting it and "Move Entire Packages" is reactived => final package
      shown in the Detailed Operations will show all move lines as being part
      of the same package even though they are not. Data appears to be correct
      in the database otherwise and a reasonable fix doesn't seem feasible for
      now so we leave this bug as is.
      
      Related to Task: 2418907
      
      closes odoo/odoo#66556
      
      Fixes: odoo/odoo#66542
      Fixes: odoo/odoo#66517
      Signed-off-by: default avatarArnold Moyaux <amoyaux@users.noreply.github.com>
      a73505dd
    • Xavier Morel's avatar
      [IMP] website: mockify test · 84cbe2da
      Xavier Morel authored
      
      instead of using ad-hoc weirds
      
      closes odoo/odoo#66581
      
      Signed-off-by: default avatarXavier Morel (xmo) <xmo@odoo.com>
      84cbe2da
  4. Feb 21, 2021
  5. Feb 18, 2021
  6. Dec 22, 2020
    • Tiffany Chang (tic)'s avatar
      [FIX] stock: make package level package consistent · e5ab8cf9
      Tiffany Chang (tic) authored
      
      Currently a package level is created and has the newly created package
      assigned to it when "Put In Pack" is used. Unfortunately if a move line
      has its result_package_id changed after having a package assigned via
      the Put In Pack, then the package level's package_id isn't correctly
      updated. This leads to incorrect data in the db. This incorrect data
      doesn't affect much since result_package_id from an entire package move
      cannot be changed in any views, but it does mean that the created
      package associated with the package level can never be deleted even if
      it's never used.
      
      Steps to reproduce:
      1. active (delivery) packages in settings
      2. create a picking and create some done values
      3. use "Put In Pack" to put done move lines into a package
      4. change the newly created Destination Package to another package
      5. Go to Packages and try to delete the package created by Put In Pack
      
      Expected result: able to delete the package
      Actual result: Server error that package is still required by Stock
      Package Level.
      
      This is a short term fix. In the long run it would be better to fix the
      package_level logic so it isn't unnecessarily assigned to moves/move
      lines and/or updates in a cleaner way.
      
      Task ID: 2418907
      
      closes odoo/odoo#63544
      
      Signed-off-by: default avatarArnold Moyaux <amoyaux@users.noreply.github.com>
      e5ab8cf9
  7. Feb 15, 2021
    • Ivan Yelizariev's avatar
      [FIX] membership: prevent excessive field recomputations · 17a38a0e
      Ivan Yelizariev authored
      
      Membership tree may include many partners and having excessive field
      recomputation (i.e. more than ~n computations) could seriously slows
      system down. The excessive recomputations comes from unneeded fields
      in api.depends, which looks like a copy paste from compute method for
      state field.
      
      STEPS:
      * add logs printing
      * create a tree of associated members
      * create membership invoice
      * validate the invoice
      
      Below is printing for the following tree
      
      ```
      45
       \---- 51
        \
         \--- 50
          \
           \-- 46 -- 49
                \ -- 48
                 \-- 47
      ```
      
      BEFORE
      
      Create invoice:
      
      _compute_membership_state: res.partner(45,)
      _compute_membership_cancel: res.partner(45,)
      _compute_membership_stop: res.partner(45,)
      _compute_membership_state: res.partner(46, 50, 51)
      _compute_membership_cancel: res.partner(45, 46, 50, 51)
      _compute_membership_stop: res.partner(45, 46, 50, 51)
      _compute_membership_state: res.partner(47, 48, 49)
      _compute_membership_cancel: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_stop: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_cancel: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_start: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_stop: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_state: res.partner(45,)
      _compute_membership_cancel: res.partner(45,)
      _compute_membership_stop: res.partner(45,)
      _compute_membership_state: res.partner(46, 50, 51)
      _compute_membership_cancel: res.partner(45, 46, 50, 51)
      _compute_membership_stop: res.partner(45, 46, 50, 51)
      _compute_membership_state: res.partner(47, 48, 49)
      _compute_membership_cancel: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_stop: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_cancel: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_start: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_stop: res.partner(45, 46, 50, 51, 47, 48, 49)
      
      Validate invoice:
      
      _compute_membership_state: res.partner(45,)
      _compute_membership_state: res.partner(46, 50, 51)
      _compute_membership_cancel: res.partner(46, 50, 51, 45)
      _compute_membership_stop: res.partner(46, 50, 51, 45)
      _compute_membership_state: res.partner(47, 48, 49)
      _compute_membership_cancel: res.partner(46, 50, 51, 45, 47, 48, 49)
      _compute_membership_stop: res.partner(46, 50, 51, 45, 47, 48, 49)
      _compute_membership_cancel: res.partner(46, 50, 51, 45, 47, 48, 49)
      _compute_membership_start: res.partner(46, 50, 51, 45, 47, 48, 49)
      _compute_membership_stop: res.partner(46, 50, 51, 45, 47, 48, 49)
      _compute_membership_state: res.partner(45,)
      _compute_membership_cancel: res.partner(45,)
      _compute_membership_stop: res.partner(45,)
      _compute_membership_state: res.partner(46, 50, 51)
      _compute_membership_cancel: res.partner(45, 46, 50, 51)
      _compute_membership_stop: res.partner(45, 46, 50, 51)
      _compute_membership_state: res.partner(47, 48, 49)
      _compute_membership_cancel: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_stop: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_cancel: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_start: res.partner(45, 46, 50, 51, 47, 48, 49)
      _compute_membership_stop: res.partner(45, 46, 50, 51, 47, 48, 49)
      
      AFTER
      
      Create invoice:
      
      _compute_membership_cancel: res.partner(45,)
      _compute_membership_stop: res.partner(45,)
      _compute_membership_start: res.partner(45,)
      _compute_membership_state: res.partner(45,)
      _compute_membership_state: res.partner(46, 50, 51)
      _compute_membership_state: res.partner(47, 48, 49)
      _compute_membership_state: res.partner(45,)
      _compute_membership_state: res.partner(46, 50, 51)
      _compute_membership_state: res.partner(47, 48, 49)
      
      Validate invoice:
      
      _compute_membership_state: res.partner(45,)
      _compute_membership_state: res.partner(46, 50, 51)
      _compute_membership_state: res.partner(47, 48, 49)
      _compute_membership_state: res.partner(45,)
      _compute_membership_state: res.partner(46, 50, 51)
      _compute_membership_state: res.partner(47, 48, 49)
      
      ---
      
      opw-2390394
      
      closes odoo/odoo#65980
      
      Signed-off-by: default avatarIvan Yelizariev // IEL <yelizariev@users.noreply.github.com>
      17a38a0e
  8. Feb 16, 2021
  9. Feb 15, 2021
    • bit-odoo's avatar
      [FIX] mail: missing discard button if next activity flow · 33ec55d8
      bit-odoo authored
      
      Before this commit:
      
      If a next activity is "triggered", the discard button is not visible.
      
      After this commit:
      
      Even if a next activity is "triggered", the discard button will visible.
      
      Task-2459645
      
      closes odoo/odoo#66168
      
      Signed-off-by: default avatarSébastien Theys (seb) <seb@odoo.com>
      33ec55d8
    • Nicolas Lempereur's avatar
      [FIX] base: mail signature CSS inlined for icons etc · 467b6764
      Nicolas Lempereur authored
      
      The mail signature of an user did not inline the CSS like the body of a
      message, so for example icons seemed to work but would not be seen
      (unless the mail reader had the same font-awesome system).
      
      With this change we inline the signature too.
      
      On edition there was also an issue since the original icon was saved as
      data-class which was stripped: so eg. when editing a mail.message with
      working icon, the icons would disappear.
      
      opw-2453912
      
      closes odoo/odoo#66185
      
      Signed-off-by: default avatarNicolas Lempereur (nle) <nle@odoo.com>
      467b6764
    • Nicolas Lempereur's avatar
      [FIX] website_sale: wrap unbreakable product name · 91937764
      Nicolas Lempereur authored
      
      In some location, a long unbreakable word would cause following columns
      to be hidden (depending on size of unbreakable word, font, font size,
      ...). For example, this happened in the cart summary on payment page.
      
      With this changeset, if not possible otherwise, line break happen inside
      the word.
      
      opw-2451496
      
      closes odoo/odoo#66176
      
      Signed-off-by: default avatarNicolas Lempereur (nle) <nle@odoo.com>
      91937764
    • Mohammed Shekha's avatar
      [FIX] web: fix issue of notebook page with invisiblity modifier · cce0992c
      Mohammed Shekha authored
      
      before this commit: when there is only one page in the notebook tag and
      there is a boolean field in form to show/hide that notebook page based on
      invisibility attrs, if we toggle boolean field notebook hides, that's OK
      but when we toggle boolean field again then notebook page is displayed but
      it is not active and due to that content of notebook page is not displayed.
      
      after this commit: when there is only one page in notebook and it has attrs
      for invisibilty, when we toggle boolean field to hide/show notebook page
      then notebook page as well as content is toggled.
      
      task-2449053
      
      closes odoo/odoo#65318
      
      Signed-off-by: default avatarAaron Bohy (aab) <aab@odoo.com>
      cce0992c
    • Cédric Snauwaert's avatar
      [FIX] test_main_flows: adapt main_flow tour for new sync module · 432d7efd
      Cédric Snauwaert authored
      
      This commit is a backport from bfa73d38
      This part of the tour can't work with the new online synchronization
      module (account_online_synchronization) due to the fact that we are
      using an iframe to display the list of institutions and therefore
      those steps won't work within the iframe.
      
      closes odoo/odoo#51988
      
      Related: odoo/enterprise#10803
      Signed-off-by: default avatarCedric Snauwaert (csn) <csn@openerp.com>
      432d7efd
  10. Dec 31, 2020
    • Mohammed Shekha's avatar
      [FIX] web: fix horizontal scroll position not preserved · 8eba2150
      Mohammed Shekha authored
      before this commit: when there is a horizontal scroll in view say for example
      kanban view where there are too many columns and user scrolls horizontally and
      go to form view by clicking on any record and then come back to kanban view
      horizontal scroll is not preserved and user is moved to scroll position 0
      this is due to commit: https://github.com/odoo/odoo/commit/19eacf7d23c9413de4430a3422b5ed74b37ef242
      
      
      
      after this commit: scrolling horizontally and then go to form view and come
      back to previous view will preserve scroll position, we also consider case for
      kanban view where there are too many columns and user click on 'Add Column'
      user will be scrolled to new column element.
      
      task-2418275
      
      closes odoo/odoo#63933
      
      Related: odoo/enterprise#15511
      Signed-off-by: default avatarAaron Bohy (aab) <aab@odoo.com>
      8eba2150
  11. Feb 14, 2021
  12. Jan 12, 2021
  13. Feb 11, 2021
  14. Dec 08, 2020
  15. Feb 10, 2021
  16. Feb 09, 2021
    • Goffin Simon's avatar
      [FIX] mrp: Print BOM / BOM structure & cost · 80d4fb9f
      Goffin Simon authored
      
      Steps to reproduce the bug:
      
      - Install manufacturing app
      - Create a product A
      - Create a Bill of Materials for product A
      - Archive Product A (Only the final product not any of the components)
      - Print BOM or Print BOM Structure & Cost
      
      Bug:
      
      A traceback was raised
      
      opw:2447514
      
      closes odoo/odoo#65815
      
      Signed-off-by: default avatarSimon Goffin (sig) <sig@openerp.com>
      80d4fb9f
  17. Jan 04, 2021
    • Jorge Pinna Puissant's avatar
      [FIX] account: error in caba entry with stock valuation account · 555aa8fb
      Jorge Pinna Puissant authored
      
      - Install Accounting, Purchases and Inventory;
      - Configure cash basis accounting;
      - Configure purchases taxes as 'Based on Payment' with 16% of amount;
      - Create a new product and configure it as a Storable Product.
      - Configure the product category with costing method of the to FIFO and
          the Inventory Valuation to Automated;
      - Create a Purchase Order for a stock product with quantity 1,262.84 and
          price unit of 10.37;
      - Confirm the Purchase Order;
      - Receive product for 1,262.835 (0.005 less than ordered);
      - Create the vendor bill from the purchase order for the original
          quantity (1,262.84) and price unit of 10.37;
      - Validate the vendor bill and pay it.
      
      Before this commit, the cash basis journal entry was created with an
      incorrect amount of 0.05 of Base Tax Received Account.
      
      Now, the cash basis journal entry is created with the amount paid of
      13095.65 of Base Tax Received Account
      
      fine-tuning of e25f857e
      
      opw-2411516
      
      closes odoo/odoo#63738
      
      Signed-off-by: default avatarJorge Pinna Puissant (jpp) <jpp@odoo.com>
      Co-authored-by: default avatarAndrea Grazioso <agr@odoo.com>
      555aa8fb
  18. Jan 26, 2021
    • Romain Derie's avatar
      [FIX] base, website: replicate inherit_id update on cow view · bf537f1c
      Romain Derie authored
      Before this commit, only whitelisted fields would be updated on cow views
      during a module update.
      A field would be whitelisted if he had the same value than the original view,
      see it as a heuristic to not write on modified fields.
      
      But `inherit_id` is not that simple, even if the cow view has a different value
      than its original view, it doesn't mean it was modified by the user, it is just
      because of the cow mechanism that assigned a copied view as inherit_id, which
      is just a copy ofthe original one.
      
      We can thus consider `inherit_id` as unchanged and whitelist it if the `key` is
      the same.
      
      In practice, it means that cow'd views did not receive the `inherit_id` updates
      as in commit https://github.com/odoo/odoo/commit/c8577568a1e39f6692889b3e21652fa3b8df06b2#diff-823e5db841dca1798ff1300e243059a4e1c93343598d2be5a1d1dcd1d2d0c273R537
      where `portal.my_account_link` had its `inherit_id` changed from
      `portal.frontend_layout` to `portal.user_dropdow`, see https://github.com/odoo/upgrade/pull/2059
      
      :
      
      Considering a module update changing `inherit_id` of D from A to B, the
      following use cases are expected. Without this fix, D' never move:
      
      CASE 1
        A    A'   B                      A    A'   B
        |    |                 =>                 / \
        D    D'                                  D   D'
      
      CASE 2
        A    A'   B    B'               A    A'   B   B'
        |    |                 =>                 |   |
        D    D'                                   D   D'
      
      CASE 3
          A    B                        A    B
         / \                   =>           / \
        D   D'                             D   D'
      
      CASE 4
          A    B    B'                  A    B   B'
         / \                   =>            |   |
        D   D'                               D   D'
      
      closes odoo/odoo#64446
      
      Signed-off-by: default avatarChristophe Simonis <chs@odoo.com>
      bf537f1c
  19. Feb 09, 2021
  20. Feb 08, 2021
  21. Feb 05, 2021
    • Anh Thao Pham (pta)'s avatar
      [FIX] stock_account: fix valuation with negative value after an adjustment · 8877e7a3
      Anh Thao Pham (pta) authored
      
      - Install account_accountant, stock_account, purchase & sale_management
      - Create a Product (i.e. Product X)
      - Edit Product Category:
        * Costing Method: Average Cost (AVCO)
        * Inventory Valuation: Automated
      - Create a PO with Product X for 5 quantities at $5
      - Receive the Products
      - In Inventory > Report > Inventory Valuation, for Product X, we have (qty: 5, value: $25)
      - Create a SO with Product X for 10 quantities
      - Deliver Products
      - Valuation for Product X = (qty: -5, value: $-25) => Correct
      - In Inventory > Operations > Inventory Adjustments, create an adjustment for Product X to 0
      - In Product X form, update cost to 0 (You may need to remove Vendors from Purchase tab to be able to do it)
      - There is no more valuation for Product X => Correct
      - Edit Product Category by setting "Costing Method" to "First In First Out (FIFO)"
      - /!\ Do not recompute Inventory Valuation via Inventory > Report > Inventory Valuation
      - Create a PO with Product X for 10 quantities at $7
      - Valuation for Product X = (qty: 10, value: $70) => Correct
      - Create a SO with Product X for 7 quantities
      - Deliver Products
      At this point, Inventory Valuation for Product X is incorrect. The Quantity is 3, which is correct,
      but the value is $31, instead of $21 (3 * $7).
      
      With FIFO Costing Method, the valuation of the last SO should be (7 units at $7) = $49.
      But here, we have (5 units at $5 + 2 units at $7) = $39.
      When the Inventory Adjustment has been made to set Product X to 0, a move of (qty:5, value: $25)
      has been made to balance the previous Valuation of (qty: -5, value: $-25).
      Values from this move are used during the last SO, but it shouldn't.
      
      It happens because the "remaining_qty" field of the move created for the adjustment
      has a value of 5 (the original move qty), instead of 0 (the real remaining qty).
      Therefore the quantities from this move are used when running "_run_fifo" method,
      although they should have been used to cancel the negative "remaining_qty" (-5) from
      the move generated by the first SO.
      
      To prevent this, moves with negative "remaining_qty" should be fixed when an in move is validated.
      
      PS: The issue is also reproducible with FIFO Costing Method from the start,
      as long as no Inventory Valuation recomputation is performed once the
      inventory adjustment has been made.
      
      opw-2425909
      
      closes odoo/odoo#65250
      
      Signed-off-by: default avatarAnh Thao PHAM <kitan191@users.noreply.github.com>
      8877e7a3
  22. Jan 21, 2021
    • Tiffany Chang (tic)'s avatar
      [FIX] mrp: use bom quantity in bom report · 30c05ad9
      Tiffany Chang (tic) authored
      
      This commit makes it so when the bom structure report (Structure & Cost
      smartbutton) is opened the product quantity defaults to the BoM's
      `product_qty` amount rather than 1.
      
      Steps to reproduce:
      - Create/open a BoM
      - Set `product_qty` to any value greater than 1
      - Click on "Structure & Cost" button.
      
      Expected result: product quantities scaled to the `product_qty`
      Actual result: product quantities scaled to Quantity = 1
      
      closes odoo/odoo#64839
      
      Task: 2429885
      Signed-off-by: default avatarArnold Moyaux <amoyaux@users.noreply.github.com>
      30c05ad9
  23. Jan 29, 2021
  24. Feb 08, 2021
    • Adrien Horgnies's avatar
      [FIX] product: generate variant combinations faster · 2e5634fa
      Adrien Horgnies authored
      
      The function `_get_possible_combinations` generates possibles combinations
       for the product template attribute values (ptav) of each product template
       attribute line (ptal) of a given product template. It used to iterate over
       them using a cartesian product. A combination can be invalid if it
       contains two incompatibles ptav. The problem is that it used to filter out
       invalid combinations after generating them. It's a problem because there
       can be a lot of invalid combinations to filter out before finding a valid
       combination. Even before the first valid combination if the first ptav of
       the two first ptal are incompatible.
      
      The solution brought by this commit is to reject the invalid combinations
       while building them rather than after. It does so by using a cartesian
       product implementation with early rejection. The algorithm tests each
       ptav when incorporating it in a partial combination and if it's
       incompatible, it goes to the next partial combination and thus skips all
       combinations starting with the invalid partial combination.
      
      The client that reported the issue has a product template with about 25
       ptal with an average of 9 ptav. The ptav of the first ptal was
       incompatible with the first ptav of second ptal. It had to build and
       filter out 5.76*10^15 ptav before finding the first valid ptav. If we
       generate 10^6 ptav by second (it's much less) user would get first ptav
       after 182 years. Now it's instantaneous.
      
      opw-2335936
      
      closes odoo/odoo#65089
      
      Signed-off-by: default avatarSébastien Theys (seb) <seb@odoo.com>
      2e5634fa
    • Nicolas Lempereur's avatar
      [FIX] account: can refresh tax audit action · d685a475
      Nicolas Lempereur authored
      
      Because of context:
      
      {'search_default_account_id': [active_id]}
      
      refreshing on the tax audit action could cause an error because in normal
      use case we have active_id that is never an account.account id (but for
      example an account.tax.report.line).
      
      There doesn't seem to be any use case where that context is useful since
      it was introduced in 2017 (81089042), this action is always used with an
      overriden context. So this commit is removing it.
      
      opw-2388448
      
      closes odoo/odoo#65698
      
      Signed-off-by: default avatarNicolas Lempereur (nle) <nle@odoo.com>
      d685a475
  25. Feb 07, 2021
  26. Feb 04, 2021
  27. Feb 05, 2021
  28. Jan 26, 2021
    • Arnold Moyaux's avatar
      [FIX] stock: couldn't unreserve mixed tracking stock · 3bbefb10
      Arnold Moyaux authored
      
      - Install stock
      - Go to Inventory > Configuration > Settings and enable "Lots" and "Storage Locations"
      - Create a Product tracked By Lots (i.e. Product X)
      - Go to Inventory > Operations > Inventory Adjustments
      - Create an Inventory Adjustment for Product X:
      
           Product   |   Location   |   Lot/SN   |   Real Quantity
       -------------------------------------------------------------
          Product X  |   WH/Stock   |   LOT 01   |       20
          Product X  |   WH/Stock   |            |       10
      
      - Validate Inventory
      - Go to Inventory > Operations > Transfers and create one:
        * Source Location: WH/Stock
        * Destination Location: WH/Stock/Shelf1
        * Operation Type: Internal Transfers
        * Operations:
          [Product: Product X, Initial Demand: 25]
      - Save Transfer, Mark As Todo and Check availability
      - Click on list icon of Operation line for Product X to display Detailed Operations
      - 20 units of LOT 01 and 5 units without lot have been reserved
      - Set LOT 01 for the 5 reserved units without lot and confirm
      - Open Detailed Operations again
      - There are now 20 units of LOT 01 and 5 units of LOT 01
      - Remove the row with 5 units and confirm
      - Check availability and open Detailed Operation
      - There is now only a row with 25 reserved units of LOT 01
      - Unreserve
      The following errror is raised:
      "It is not possible to unreserve more products of P than you have in stock."
      
      It happens because the system is not able to manage quants with lots and
      wihtout lots at the same time. When modifying the move line to 25
      reserved units. It's composed of 20 quants with lot and 5 quants without
      lot. And when unreserving it will check if there is a quants with 25
      units with the lot and if it's not found 25 units without lot. But never
      25 units of quants with lots and without lots.
      
      opw-2419444
      
      Close #64497
      
      closes odoo/odoo#65057
      
      Signed-off-by: default avatarArnold Moyaux <amoyaux@users.noreply.github.com>
      3bbefb10
  29. Feb 03, 2021
Loading