Skip to content
Snippets Groups Projects
  1. Nov 18, 2022
    • Victor Piryns (pivi)'s avatar
      [FIX] web, stock: rollback database when crashing on report generation · 111af8e7
      Victor Piryns (pivi) authored
      
      Current behaviour:
      When we are printing a report and then the report fails to generate
      (for ex. wkhtmltopdf memory limit/timeout),
      the incorrect state is committed to the database.
      
      Expected behaviour:
      We should rollback when generating reports fails, since it is an error state.
      
      Steps to reproduce:
      To reproduce the behaviour, we need to force an error state.
      - In odoo/addons/base/models/ir_actions_report.py:`_run_wkhtmltopdf()`,
      raise an exception before spawning the subprocess (for ex. adding a 1/0).
      - In addons/web/controllers/main.py:`report_download()`#L2126,
      add this little code snippet:
      ```python
      ids = [int(x) for x in docids.split(",")]
      report = request.env['ir.actions.report']._get_report_from_name(reportname)
      obj = request.env[report.model].browse(ids)
      if getattr(obj, 'message_post'):
          obj.message_post(body='This report was committed!')
      ```
      - Install Inventory
      - Pick a delivery order and try to print it, there should be an error
      (whatever exception you decided to raise in `_run_wkhtmltopdf()`)
      - See that in the message board we got a message that the report has been committed,
      which isn't the case, it failed to generate.
      
      Reason for the problem:
      Controllers are catching the exception when generating reports,
      but never reset the state of the database.
      
      Fix:
      Raise an InternalServerError with an error code of 500 to trigger
      a database rollback.
      
      Affected versions:
      - 14.0
      - 15.0
      - saas-15.2
      - saas-15.3
      - 16.0
      - master
      
      opw-3001950
      
      closes odoo/odoo#106027
      
      X-original-commit: d7fdcdce
      Related: odoo/enterprise#34113
      Signed-off-by: default avatarJulien Castiaux <juc@odoo.com>
      Signed-off-by: default avatarPiryns Victor (pivi) <pivi@odoo.com>
      111af8e7
    • Touati Djamel (otd)'s avatar
      [FIX] mrp: display byproducts values correctly in bom structure report · a4fdab54
      Touati Djamel (otd) authored
      Stpes to reproduce the bug:
      - Install mrp_plm
      - Enable by-product option in the mrp settings
      - Create a storable product P1 with BoM:
          - Type: manufacture
          - Component: C1
          - By-product: P2
          - save
      - Click on the “Structure & cost” button
      - Unfold the By-Products section
      
      Problem:
      Columns of the byproducts values are placed wrong, because it lacks
      two empty <td/> which should be added normally here:
      https://github.com/odoo/odoo/blob/10c6f4e8379c4c9c4084dd55d4d7bf1c34524d50/addons/mrp/report/mrp_report_bom_structure.xml#L233-L235
      
      But 'extra_column_count' has a value of 0, so no empty <td/> is added
      
      Solution:
      The `_get_extra_column_count` function should be called in the
      `get_by_products` function so that the value is set to 2 instead of 0:
      https://github.com/odoo/enterprise/blob/26e3c4718ac2baae61ae2c5950adb4cb2251b507/mrp_plm/report/mrp_report_bom_structure.py#L41-L42
      
      
      
      opw-3025823
      
      closes odoo/odoo#106001
      
      Signed-off-by: default avatarWilliam Henrotin (whe) <whe@odoo.com>
      a4fdab54
    • gawa-odoo's avatar
      [FIX] pos_restaurant: set order from TicketScreen in a table · 1e436c23
      gawa-odoo authored
      
      Steps to reproduce:
       - Create two orders on a table with some products
       - Go back to the FloorScreen
       - Go back to the table and add a product
       - Go to the TicketScreen and take the other order
       - Go back to the first order and the added product won't appear
      
      This is due to the fact that when setting an order which is different than the
      current order through the TicketScreen will indirectly fetch the latest state
      of the table and bypass the syncing which happens in the FloorScreen.
      This is wrong as the fetching should only happens when going to a table and not
      navigating between the orders of the same table.
      
      closes odoo/odoo#105962
      
      Signed-off-by: default avatarMasereel Pierre <pim@odoo.com>
      1e436c23
    • Rodopho Cammarosano de Lima (rcdl)'s avatar
      [FIX] web_editor: fix MouseEvent in checkbox tests · 575c0c58
      Rodopho Cammarosano de Lima (rcdl) authored
      
      When the test suit is run in Chrome with zoom level different than
      100%, the tests than toggle list checkboxes fail.
      
      This is due to the lack of the "view" option in the simulated MouseClick
      event. When not present, it defaults to null and the mouse coordinates
      get messed up when the zoom level is not 100%.
      
      This affects only the tests, not the actual application.
      
      task# 3062132
      
      closes odoo/odoo#105979
      
      Signed-off-by: default avatarDavid Monjoie (dmo) <dmo@odoo.com>
      575c0c58
    • Thomas Lefebvre (thle)'s avatar
      [FIX] web: placing the domain in the kwargs of an rpc call · d1e94e2f
      Thomas Lefebvre (thle) authored
      
      Steps to reproduce:
          - go to Contacts app;
          - add a reporting view (Graph, Pivot or Dashboard) (with studio for example)
          - tape any character in the search bar;
          - on "search related company for" field either use the arrow keys to go down to this and then click the right arrow key or click on the triangle to the left of this field.
      
      Issue:
          An error occurs.
      
      Cause:
          There is a mismatch between the parameters that are sent by the rpc call and those processed by the logic part.
          Specifically, the domain must be part of the kwargs and not the args of the params key in the rpc call.
          The problem occurs with a filter that looks like: `<field name="parent_id" domain="[('is_company', '=', True)]" operator="child_of"/>`
      
      Solution:
          Move domain in kwargs under key named args in the params of the rpc call.
      
      opw-3031096
      
      closes odoo/odoo#103795
      
      Signed-off-by: default avatarMathieu Duckerts-Antoine <dam@odoo.com>
      d1e94e2f
    • Nshimiyimana Séna's avatar
      [FIX] web: set correct raw domain · 9535026e
      Nshimiyimana Séna authored
      
      Steps to reproduce:
      - Activate debug mode
      - Go to Sales and open a quotation (actually any form view from any
        module will do)
      - Start Studio
      - Select the "Confirm" button (or any of the top buttons)
      - Check the "Set approval rules" box
      - Edit the domain by clicking the 'filter' icon next to the 'trash' icon
      - Add a condition. You can just keep the default one.
      - Click save to save the domain.
      - Again, click on the 'filter' icon.
      
      You should see that the domain in the text editor is malformed.
      Furthermore, should you change the domain in the text editor (let's say,
      change 1 to 2) and hit save, an error message will pop saying the domain
      is not properly formatted.
      
      opw-3001622
      
      closes odoo/odoo#101758
      
      Signed-off-by: default avatarMathieu Duckerts-Antoine <dam@odoo.com>
      9535026e
    • CarmenMiranda's avatar
      [IMP] point_of_sale: Send Context Closing POS Session · 3f7d6833
      CarmenMiranda authored
      
      Sending a context when you are closing a `pos.session` will allow you to
      make some validations/actions only when the closing is being done from the UI.
      For example, sending values for new fields or a message that includes
      something from the pos, like the Cashier ID, name, etc.
      
      Also, it will help more when it is necessary to inherit the function in a
      simpler way, to avoid having to overwrite it.
      
      closes odoo/odoo#97864
      
      Signed-off-by: default avatarTrinh Jacky (trj) <trj@odoo.com>
      3f7d6833
  2. Nov 17, 2022
    • William Henrotin's avatar
      [FIX] stock_account: remove order in read_group · aa0fb325
      William Henrotin authored
      
      `quantity_svl` and `value_svl` field on product_product are computed from all the stock_valuation_layers
      As no `orderby` key is given, the `groupby` keys are used as orderby
      ones. In this particular case, the groups are done on `product_id` so
      the order is on the name of product_product. This order will add to the
      read_group query 3 joins from stock_valuation_layer table.
        - product_product
        - product_template for the name
        - ir_translation for the translation of the name
      
      This is completely useless in the scope of a computed field to get the
      sum of values and sum of quantities. As it not possible to ask
      read_group to not order the result. This commit call the method with the
      simplest order key possible: `id`
      
      closes odoo/odoo#105921
      
      Opw: 3047017
      Signed-off-by: default avatarArnold Moyaux (arm) <arm@odoo.com>
      aa0fb325
    • William Henrotin's avatar
      [FIX] mrp: change dependency of related field · 4bd6f422
      William Henrotin authored
      Fields `product_qty_available` and `product_virtual_available` on
      stock_move are related on quantities fields of move's product_id. On
      large database, those two fields will slow down every transactions that
      updates stock move state (confirmation, validation, ...).
      
      `state` on stock.move is a dependent field of computed field `qty_available` on
      product.product which is dependent field of related field
      `product_virtual_available` on stock move. This relation tree implies
      that updating the state on one particular stock move will mark its
      product (qty_available) as 'to be recomputed' and thus **every** stock
      moves (product_virtual_available) of this product as to be recomputed.
      On database will 100k+ stock move per product. Fetching all stock move
      of some products take 90% of a manufacturing order validation time. This
      is problematic knowing those two quantity fields are only used in the
      stock move tree form so computed anyway at the view rendering.
      
      This commit change the `depends` of those two related field to mark them
      as to be recomputed only if the product_id change.
      
      Opw: 3047017
      Part-of: odoo/odoo#105921
      4bd6f422
    • qsm-odoo's avatar
      [FIX] website: prevent validation of conditionally hidden fields · 53a3efdd
      qsm-odoo authored
      
      Steps to reproduce the issue (see opw):
      - Add a form to a page
      - Add a checkbox
      - Add a second checkbox that is required and visible only if the first
        checkbox is not checked
      - Save
      - Do not check anything and try to send => Good, you can't, the required
        checkbox is not set
      - Check the second checkbox and try to send => Good, you can, the
        required checkbox is set
      - Go back to the empty form, check the first checkbox and try to send
      => Bad, you can't but you should: the required checkbox is hidden, it
         is not supposed to be required anymore.
      
      (Not that arguably, that two checkboxes setup should be replaced by a
      required selection field but the issue of the OPW would remain as there
      is another required conditionally-hidden field (a file upload) when the
      second checkbox is checked.)
      
      Conditionally-hidden fields should not require validation while they are
      hidden. Indeed, their purpose is to be able to enter additional data
      when some condition is fulfilled. If such a field is required, it is
      only required when visible. The problem only occurred with checkboxes,
      the other fields were already working in that case. Although there could
      be issues with dates too, this commit added a series of FIXME and TODO
      comments as well as some things need to be investigated.
      
      opw-3003952
      
      closes odoo/odoo#105870
      
      Signed-off-by: default avatarRomain Derie (rde) <rde@odoo.com>
      53a3efdd
    • qsm-odoo's avatar
      [FIX] website: show invalid checkboxes, radio buttons and file upload · 4ec28089
      qsm-odoo authored
      Before this commit, when submitting a website form which has invalid
      radio buttons, checkboxes or file upload elements, they had no visual
      difference. Now they will have red labels as intended with bootstrap.
      
      For alone checkboxes, a warning label will appear after the checkboxes.
      This will only take effects for newly added checkboxes.
      
      Related to opw-3003952
      
      Part-of: odoo/odoo#105870
      4ec28089
    • qsm-odoo's avatar
      [FIX] website: properly align checkboxes in website forms · 4ea0d545
      qsm-odoo authored
      With [1], checkboxes in website forms were wrapped in a <div/> with the
      "form-check" bootstrap class (as they should). That forgot to mark the
      checkboxes themselves with the class "form-check-input". Without it they
      are misaligned.
      
      This fixes the error for newly added checkboxes in forms. Old ones will
      stay "broken".
      
      [1]: https://github.com/odoo/odoo/commit/9ea276ae2f00c3a5ba4e10af313085947e70e265
      
      Related to opw-3003952
      
      Part-of: odoo/odoo#105870
      4ea0d545
    • qsm-odoo's avatar
      [FIX] website: show a label for empty selection values · 416edae4
      qsm-odoo authored
      Before this commit, if the user tried to setup a required selection
      field whose first value is empty, it was possible but the empty value
      appeared as a 0px-height div in the DOM preview. That empty value also
      shows up when trying to use the conditionally-hidden fields feature: if
      another field's visibility depends on such selection field, the editor
      UI was visually broken as the first choice was an empty option element.
      
      Now, we show "<no value>" in both cases.
      
      Note: this is not done in earlier versions than 15.0 although the
      problem exists, but it was decided that the real problem was about the
      visibility select being visually broken and that feature only appeared
      in 15.0.
      
      Related to opw-3003952
      
      Part-of: odoo/odoo#105870
      416edae4
    • vishal padhiyar's avatar
      [FIX] web_editor: stuck after manual link creation · 4d14fa55
      vishal padhiyar authored
      
      Before this commit:
      
      When we try to create link manually and try to press enter cursor gets stuck.
      
      After this commit:
      
      Now when we create link manually and press enter cursor moves to next line.
      
      Task-2745129
      
      closes odoo/odoo#100207
      
      Signed-off-by: default avatarDavid Monjoie (dmo) <dmo@odoo.com>
      4d14fa55
    • vishal padhiyar's avatar
      [FIX] web_editor: copy paste link keeps the old url · ea1e410f
      vishal padhiyar authored
      
      Before this commit:
      
      When we try to copy paste link into another link then url of the old link does
      not change and only lable change.
      
      After this commit:
      
      Now when we try to copy paste link into another link then the url of the link
      changes with the label.
      
      Task-2768541
      
      closes odoo/odoo#99569
      
      Signed-off-by: default avatarDavid Monjoie (dmo) <dmo@odoo.com>
      ea1e410f
    • vishal padhiyar's avatar
      [FIX] web_editor: remove copy paste unwanted newline · 449cacfe
      vishal padhiyar authored
      
      Before this commit:
      
      - When you try to paste text beside a text which is in code formate it
        puts the new text in new line with smaller font.
      
      - When we try to paste text in code formate in new line then it will
        give a blank space below the pasted text
      
      After this commit:
      
      - when you try to paste text beside a text which is in code formate it
        puts the pasted text in new line with original fontsize.
      
      - When we paste the text in code formate in new line then it will not give
        a empty line below it,
      
      Task-2683455
      
      closes odoo/odoo#96763
      
      Signed-off-by: default avatarDavid Monjoie (dmo) <dmo@odoo.com>
      449cacfe
    • Walid HANNICHE (waha)'s avatar
      [FIX] board: prevent add to dashboard with no actionID · 5c74d193
      Walid HANNICHE (waha) authored
      Steps to reproduce:
      - Go to Purchase -> Reporting -> Dashboard
      - click on the "expand" arrows of the pivot view
      - favorites - add to dashboard
      
      Bug:
      adding a view with no actionID causes the dashboard to crash on load
      this [commit] prevents adding a view with no actionID
      
      Fix:
      added a default value of False to add_to_dashboard actionId
      only display the option to add_to_dashboard for views that have actionId
      
      opw-2965036
      
      [commit]:https://github.com/odoo-dev/odoo/commit/7180d948f084d4f68d1660cb884c95aaf41288fa
      
      
      
      closes odoo/odoo#100043
      
      Signed-off-by: default avatarAaron Bohy (aab) <aab@odoo.com>
      5c74d193
  3. Nov 16, 2022
    • Adrien Widart (awt)'s avatar
      [FIX] mrp: include unscrapped SN when checking uniqueness · 7632110a
      Adrien Widart (awt) authored
      
      It is not possible to consume a component tracked by serial that comes
      back from a scrap location
      
      To reproduce the issue:
      1. In Settings, enable "Multi Routes"
      2. Create two storable products P_compo, P_finished
          - P_compo is tracked by serial number
      3. Update the on-hand qty of P_compo:
          - 1 x P_compo with serial SN
      4. Process a manufacturing order MO:
          - Product: P_finished
          - Compo: 1 x P_compo with SN
      5. Unbuild P_finished
          - It brings SN back to stock
      5. Scrap one P_compo with SN
      6. Unscrap it (thanks to an internal transfer)
      7. Repeat step 4
      
      Error: a user error is raised: "The serial number SN used for component
      P_compo has already been consumed"
      
      When checking the SN uniqueness of a component, we don't consider the
      case where a product came back from a srap location
      
      OPW-3055252
      
      closes odoo/odoo#105861
      
      X-original-commit: ac11b7e0
      Signed-off-by: default avatarWilliam Henrotin (whe) <whe@odoo.com>
      Signed-off-by: default avatarAdrien Widart <awt@odoo.com>
      7632110a
    • Adrien Widart (awt)'s avatar
      [FIX] mrp: check SN uniqueness on WO · 8fe82ab0
      Adrien Widart (awt) authored
      When marking a WO as done, if the serial number defined is related to an
      unbuilt product, an error will be raised and the user will not be able
      to mark the WO as done
      
      To reproduce the issue:
      1. Create a BoM for product P with one operation
          - P is tracked by SN
      2. Produce one P with serial S
      3. Unbuild it
      4. Create and confirm a second MO with 1 x P
      5. Start the WO
      6. On tablet view, set the finished lot to S
      7. Mark the WO as done
      
      Error: a UserError is raised because "This serial number [...] has
      already been produced". However, this serial number has been unbuilt so
      the worker should be able to use it again
      
      When marking the WO as done, we check the uniqueness of the defined
      serial number. But:
      - The check is not accurate enough, hence the above error
      - The lot of the WO is a computed/inverse field based on lot of the MO
      - Once the WO closed, we can still change the lot of the MO
      - When marking the MO as done, a better method checks the SN uniqueness
      (does not fail in the above case)
      
      Therefore, the checking on WO side is useless. We should let the MO side
      handle this.
      
      Moreover, let's say that there is already one P in stock with serial S2.
      On tablet view, if the worker set the lot to S2, there should be a
      warning so he can be aware of the situation. This is already the case on
      MO side:
      https://github.com/odoo/odoo/blob/45e37b2ad7bdcfd9f9f7e1dabbd0a99c9a0b5cdc/addons/mrp/models/mrp_production.py#L694-L705
      
      
      
      (This commit is linked to a similar commit OE side, same opw)
      
      OPW-3002424
      
      closes odoo/odoo#105860
      
      X-original-commit: 402dfd0a
      Related: odoo/enterprise#33999
      Signed-off-by: default avatarTiffany Chang <tic@odoo.com>
      Signed-off-by: default avatarAdrien Widart <awt@odoo.com>
      8fe82ab0
    • Nicolas Bayet's avatar
      [FIX] web_editor: prevent disconnection from peer to peer · 8bce8cd5
      Nicolas Bayet authored
      
      Before this commit, once a user was disconnected from internet (eg.
      network failure, laptop screen closed), the code disconnected the user
      from the peer to peer network and upon reconnection to the internet
      network, the code did not try to reconnect to the peer to peer network.
      
      This created a network partion in the peer to peer network each time
      a user disconnected and reconnected to the internet network.
      
      When there is a partition in the peer to peer network, the last subnet
      to write to the record erased the changes of another subnet without
      notification.
      
      This commit prevent the code to disconnect from the peer to peer network
      when there is any disconnection signal triggered.
      
      closes odoo/odoo#105857
      
      Signed-off-by: default avatarDavid Monjoie (dmo) <dmo@odoo.com>
      8bce8cd5
    • Cao Đình Trung's avatar
      [FIX] maintenance: avoid empty close_date in done stage · e6d83c22
      Cao Đình Trung authored
      
      Steps to reproduce the error:
      - Install 'Maintenance'
      - Select 'Maintenance' -> 'Request Maintenance'
      - Create a maintenance request:
                + TH1: Save > Change stage to Repaired > 'Close date' =
      Date.Today()
                + TH2: Don't Save > Change stage to Repaired > Save > 'Close
      date' = blank
      
      closes odoo/odoo#105741
      
      Problem: App will show 'Close Date' blank
      Expected: App will display 'Close Date' as Date.Today()
      Solution: When Click on Save button -> Automatically get current date as end date
      X-original-commit: badc4ace
      Signed-off-by: default avatarArnold Moyaux (arm) <arm@odoo.com>
      e6d83c22
    • damr's avatar
      [FIX] 14.0 rating: submit rating feedback with 'get' method · 6be8ffec
      damr authored
      
      In rating/controllers/main.py, the method action_submit_rating accepts
      only post request. This creates a problem when you're trying to use the
      web editor on the template as well as when you just paste the url in
      your browser, for those are get request. The current behavior is a crash
      with 'method not allowed'. This commit's purpose is to change the method
      so it also accept get request. The use case of editing the feedback
      rating page is arguable but it schould not crash.
      
      The behavior after this commit is that the web editor is enable for the
      page, and relaoding the page does not crash anymore.
      
      task-3047893
      
      closes odoo/odoo#105868
      
      X-original-commit: d8f3c941
      Signed-off-by: default avatarLaurent Stukkens (ltu) <ltu@odoo.com>
      6be8ffec
    • Adrien Widart (awt)'s avatar
      [IMP] purchase_stock: add test · d4af926a
      Adrien Widart (awt) authored
      
      A commit [1] has recently be added to fix an issue. It actually fixes
      another issue too:
      1. Create a product P
          - Storable
          - With one packaging PK for 10 x P
      2. Create and confirm a PO
          - Order Lines:
              - 10 x P with PK
      3. On the PO, decrease the quantity of P to 8
      
      Without [1], a return is created for the difference. With [1], the
      existing picking is correctly updated.
      
      This commit adds a test to protect the use case.
      
      [1] 20fa7c6f
      
      OPW-3027110
      
      closes odoo/odoo#105430
      
      Signed-off-by: default avatarWilliam Henrotin (whe) <whe@odoo.com>
      d4af926a
    • Adrien Widart (awt)'s avatar
      [FIX] sale{,_stock}: decrease qty of SOL · 7a1e8592
      Adrien Widart (awt) authored
      When decreasing the qty of a SOL, if there is already a packaging
      defined, a return will be created for the difference
      
      To reproduce the issue:
      1. Create a product P
          - Storable
          - With one packaging PK for 10 x P
      2. Create and confirm a SO
          - Order Lines:
              - 10 x P with PK
      3. On the SO, decrease the quantity of P to 8
      
      Error: a return is created for the difference. Instead, the existing
      picking should be updated
      
      At some point, we try to merge the stock moves (`10 x P` and `-2 x P`)
      and, to do so, they must have the same `product_packaging_id`:
      https://github.com/odoo/odoo/blob/08f53ffa30479cfb452ebaed61b42655eb0e6a95/addons/stock/models/stock_move.py#L808-L813
      
      However, on the SO, when decreasing the quantity, an onchange tries to
      find the best packaging. Because the new quantity is not a multiple of
      PK, this one is not returned. As a result, the SO has no more packaging
      and so does the new stock move (`-2 x P`). Therefore, the stock moves
      can not be merged and a new picking (the return) is created.
      
      This commit updates the onchange method so it behaves the same way as
      purchase side:
      https://github.com/odoo/odoo/blob/20fa7c6f0f5c9cdfae2519ea8d0ff849d7fa3b9e/addons/purchase/models/purchase.py#L1224-L1231
      In this onchange, the same diff has recently be added for another reason
      (see [1])
      
      [1] 20fa7c6f
      
      OPW-3027110
      
      Part-of: odoo/odoo#105430
      7a1e8592
    • Nshimiyimana Séna's avatar
      [FIX] base_vat: keep leading zeros on San Marino tax id · 7dc79fd1
      Nshimiyimana Séna authored
      
      ### Steps to reproduce
      * install the *VAT Number Validation `(base_vat)`* and Contacts module.
      * Create a new contact from San Marino and set their Tax Id to SM05426
      * Save the contact
      
      You should see that the leading zeros have been removed on the Tax Id
      (here, SM05426 became SM5426)
      
      opw-3007722
      
      closes odoo/odoo#105822
      
      X-original-commit: 24207914
      Signed-off-by: default avatarJosse Colpaert <jco@odoo.com>
      7dc79fd1
    • Adrien Widart (awt)'s avatar
      [FIX] mrp_subcontracting_dropshipping,purchase_stock: return to supplier · b45d21c5
      Adrien Widart (awt) authored
      
      When returning a dropshipped and subcontracted product to the supplier
      location, the received quantity of the PO line will be incorrect
      
      To reproduce the issue:
      1. Create two storable products P_compo, P_Finished
      2. Create a BoM:
          - Product: P_finished
          - Type: Subcontracting
          - Subcontractors: a subcontractor S
          - Components: 1 x P_compo
      3. Create and confirm a PO:
          - Vendor: S
          - Deliver To: Dropship
          - Drop Ship Address: a partner P
          - Products: 1 x P_finished
      4. Validate the receipt
      5. Create a return with 1 x P_finished:
          - Update SO/PO quantities: True
          - Return Location: Partner Locations/Vendors
      6. Validate the return
      7. Go back to the PO
      
      Error: The qty received is 2, it should be 0
      
      There is currently no code to handle the return of a dropshipped product
      
      OPW-3030895
      
      closes odoo/odoo#105793
      
      X-original-commit: 8276a9b5
      Signed-off-by: default avatarWilliam Henrotin (whe) <whe@odoo.com>
      Signed-off-by: default avatarAdrien Widart <awt@odoo.com>
      b45d21c5
    • Adrien Widart (awt)'s avatar
      [FIX] mrp_subcontracting_dropshipping: return to stock location · 22cf944d
      Adrien Widart (awt) authored
      When returning a dropshipped and subcontracted product to an internal
      location, the received quantity of the PO line will be incorrect
      
      To reproduce the issue:
      1. In Settings, enable "Storage Locations"
      2. Create two storable products P_compo, P_Finished
      3. Create a BoM:
          - Product: P_finished
          - Type: Subcontracting
          - Subcontractors: a subcontractor S
          - Components: 1 x P_compo
      4. In Locations, edit WH/Stock:
          - Return location: True
      5. Create and confirm a PO:
          - Vendor: S
          - Deliver To: Dropship
          - Drop Ship Address: a partner P
          - Products: 1 x P_finished
      6. Validate the receipt
      7. Create a return with 1 x P_finished:
          - Update SO/PO quantities: True
          - Return Location: WH/Stock
      8. Validate the return
      9. Go back to the PO
      
      Error: The qty received is 2, it should be 1 (it should not be 0 since
      the product has been returned to an internal location)
      
      In `/purchase_stock._compute_qty_received`, there is already a code to
      anticipate such a situation (i.e., a user who returns a dropshipped
      product to his stock location):
      https://github.com/odoo/odoo/blob/bf3c398f0644f690c64815b2b6e298aed7bedd70/addons/purchase_stock/models/purchase.py#L300-L305
      However, the methods `_is_dropshipped` and `_is_dropshipped_returned` do
      not include the feature subcontracting + dropshipping. This is the
      reason why, in `_compute_qty_received`, the above condition is not
      respected and why we add the return stock move to the received qty.
      
      OPW-3030895
      
      X-original-commit: 0486e2e5
      Part-of: odoo/odoo#105793
      22cf944d
    • CarmenMiranda's avatar
      [REF] pos_restaurant: Split _get_order_lines method · 45762416
      CarmenMiranda authored
      
      Splitting the method `_get_order_lines` will allow making it
      inheritable, this way more order line fields can be added and expand
      them easily and avoid having to overwrite it.
      
      closes odoo/odoo#105599
      
      Signed-off-by: default avatarTrinh Jacky (trj) <trj@odoo.com>
      45762416
  4. Nov 15, 2022
  5. Nov 14, 2022
    • maximilien(malb)'s avatar
      [FIX] l10n_syscohada: Fix COA · d282b8c6
      maximilien(malb) authored
      
      The account 81 to 89 were misclassified, this PR fix the issue
      
      closes odoo/odoo#104074
      
      Signed-off-by: default avatarJosse Colpaert <jco@odoo.com>
      d282b8c6
    • Audric Onockx (auon)'s avatar
      [FIX] hr_timesheet: uninstall project's 'timesheet' config · 93ac9213
      Audric Onockx (auon) authored
      
      Steps :
      Go to project > settings.
      Check 'timesheet' config and save.
      Uncheck it back and save.
      
      Issue :
      See errors in the logs, due to on delete restrict.
      
      Cause :
      Record 'hr_timesheet.internal_project_default_stage' from data
      is deleted when hr_timesheet is uninstalled.
      Yet some project task records still use it, so we can't delete it.
      
      Fix :
      Delete the corresponding ir.model.data to keep the stage,
      but unlink it from the 'hr_timesheet.internal_project_default_stage' ref.
      
      task-2998416
      
      closes odoo/odoo#101633
      
      Related: odoo/enterprise#32022
      Signed-off-by: default avatarLaurent Stukkens (ltu) <ltu@odoo.com>
      93ac9213
Loading