Skip to content
Branch: 12.0
Commits on Apr 16, 2019
  1. [FIX] l10n_de_skr03: account 3557 should have code 3557 (forward-port)

    jco-odoo committed Apr 16, 2019
    Fixes #32714
    closes #32739
    Signed-off-by: Nicolas Martinelli (nim) <>
Commits on Feb 6, 2019
  1. [FIX] stock: lot in multiple locations

    jco-odoo authored and nim-odoo committed Feb 1, 2019
    - Activate:
      'Track lots or serial numbers'
      'Manage several Warehouses, each one composed by several stock locations'
      'Advanced routing of products using rules'
    - In the main warehouse, activate Pick + Ship
    - In Stock Locations, create 'WH/Stock/Shelf 3' and 'WH/Stock/Shelf 4'
      (1 and 2 already exist, use the same config)
    - Create a new product 'Foo', activate Tracking By Lots
    - On Foo, use 4 times the "Update Qty on Hand" (order is important):
      Add 1 on Shelf 2, create a lot
      Add 1 on Shelf 1, use the same lot
      Add 3 on Shelf 4, use the same lot
      Add 1 on Shelf 3, use the same lot
    - Create a SO, set a partner
    - Ensure that YourCompany is used as warehouse
    - Add several SO lines (order is important)
      a line with 1 product Foo
      a second line with 1 product Foo
      a third line with 4 products Foo
    - Confirm the SO, you now have 2 deliveries, 1 Pick, 1 Out
    - Open the Pick, all moves should be available, you should have:
      4 operations:
        Shelf 2, quantity 1
        Shelf 4, quantity 3
        Shelf 1, quantity 1
        Shelf 3, quantity 1
      3 moves:
        A, quantity 1
        B, quantity 1
        C, quantity 4
    - On each operation, select the lot created before and set the quantity
      to be fully done
    - Validate the Pick
    The moves end up like this:
    - Move A with qty 1: is done and linked with a quant of 1
    - Move B with qty 1: is done and linked with no quant
    - Move C with qty 4: is done and linked with a quant of 1, a quant of 3,
      a quant of 1 (sum is 5)
    In the Out picking, the move linked with the source move (B) with no
    quant stays in "Waiting another move" even if the source move is done.
    This outgoing move will never be available.
    In the method `recompute_remaining_qty`, we loop on operations, and
    match them wih the moves. However, the operation with the largest
    quantity (Shelf 4, quantity 3) is processed before the move with the
    highest quantity (C, quantity 4). Therefore, when we later loop on move
    C, `qty_assign_cmp` is larger than zero, which sets `need_rereserve` and
    ultimately triggers `rereserve_quants` in `do_transfer`.
    A first part of the fix is to check for the location of the quants when
    matching moves and operations. This fixes the original issue, but
    inconsistencies can still arise since a quant which is taken partially.
    therefore, we make sure to never take more than the quantity on the
    closes #30857
Commits on Jan 15, 2019
  1. [FIX] IoT : IoT Box image update fix

    jco-odoo authored and qle-odoo committed Nov 15, 2018
    The update does not work anymore on the IoT Box,
    probably because the structure of the branch is
    a bit different now.  It starts to download everything
    We did not use 'git archive' because this does not work
    on GitHub and downloading a zip would always have everything
    inside.  This way, we keep the original method, even with
    diverged branches.
Commits on Dec 27, 2018
  1. [IMP] l10n_no: Norway tax update, see #28422

    jco-odoo committed Dec 12, 2018
    closes #29852
Commits on Nov 8, 2018
  1. [FIX] sale_margin: Error in Margin calculation

    jco-odoo authored and simongoffin committed Oct 16, 2018
    If cost(purchase_price) was 0, margin calculation was incorrect.
    The function _product_margin didn't consider the use case
    where the cost of the product was set to 0 on the line.
    So before the fix it fallback on standard price instead of considering  a cost of 0.
    opw:1890452, 1885587
Commits on Oct 25, 2018
  1. [FIX] mrp: workorders of sub-BOMs

    jco-odoo authored and nim-odoo committed Mar 14, 2018
    - Create the following BOM structure:
      Prod 1 (Manufacture)
      --- Prod 2
          Prod 3 (Kit)
          --- Prod 4
    	  Prod 5
    - The BOMs for Prod 1 & 3 must have a routing set, to generate
    - Create a MO for 1 unit of Prod 1, process to the end
    2 units of Prod 1 are created instead of 1.
    This is due to the WO for Prod 3 not having a `next_work_order_id`.
    Therefore, `record_production` adds an extra quantity at:
    production_move.quantity_done += self.qty_producing
    To prevent this, we set as `next_work_order_id` of the BOM of Prod 3 the
    WO of Prod 1.
    Closes #19527
Commits on Oct 1, 2018
  1. [IMP] iot: IoT Box image with self-signed certificate and 2 nginx con…

    jco-odoo committed Sep 28, 2018
    One nginx config for the access point and one for the https with the self-signed
    This is a temporary fix for the IoT Box to work with the SaaS that is https-only
    (except pos) This way you won't get an error when printing or asking a value from
    the IoT Box telling you are mixing http and https.  The disadvantage is that
    you still need to agree on accepting the certificate (and the banner will stay red).
    A definitive solution will follow later on.
    + retry if hash sums are wrong on generating the IoT Box message
Commits on Sep 26, 2018
  1. [REM] iot: remove server-side module

    jco-odoo committed Sep 26, 2018
Commits on Sep 25, 2018
  1. [IMP] pos_mercury, pos_restaurant: posbox -> IoT Box

    jco-odoo committed Sep 25, 2018
  2. [IMP] point_of_sale: posbox -> IoT Box and IoT Box image

    jco-odoo committed Sep 25, 2018
    - posbox -> IoT Box
    - added scripts for server configuration and step by step wizard
    - start Firefox browser on screen with specific url
    - captive portal configuration with nginx and dnsmasq
    - enlarged /tmp folder
    - Removed dhcpd server as hostapd handled that already
    Most of the changes done by qle
  3. [IMP] hw_scale: fix to avoid conflicts with other driver

    jco-odoo committed Sep 25, 2018
    There are two scales that are supported, but the Adam scale
    possibly won't return any answer so there is no way to detect then
    if it is an Adam scale or something else.  As we have not implemented
    a detection method for the caliper driver yet, we exclude it from
    the devices the scale can detect.  (by comparing /dev/serial/by-id
    and by-path)
  4. [IMP] hw_*: updated web interface for IoT Box

    jco-odoo committed Sep 25, 2018
    We changed the naming of posbox to IoT Box everywhere
    and renewed the web interface using jinja2 templates in
    separate html files.
    A separate configuration for the server and the IoT Box name
    was added and it shows drivers for both  pos and iot.
    The interface also needs a step to step wizard that is launched
    when the access point is active for simplified configuration.
    Thanks to qle and Deep Patel.
  5. [ADD] hw_drivers: drivers management module for the IoT Box

    jco-odoo committed Sep 25, 2018
    - Routes to get device/driver statuses from the browser
    - Framework for managing and downloading drivers for devices
    connected to the IoT Box
    - Automatic detection of printers and cameras in the network
    - Built-in detection for USB and Bluetooth LE devices and checking
    if a driver matches the device
    - Authentication of the box into Odoo
    - Inform Odoo of the connected devices and giving them a unique
    identifier so they can be called from the browser
    Thanks to qle, specially for fswebcam and cups
Commits on Aug 27, 2018
  1. [IMP] point_of_sale: posbox unbeta version 17

    jco-odoo committed Aug 27, 2018
  2. [FIX] iot: remove vim lines for mat

    jco-odoo committed Aug 24, 2018
Commits on Aug 22, 2018
  1. [ADD] iot: basic models + controllers server-side, print reports, mea…

    jco-odoo committed Aug 9, 2018
    …sure widget
    When an IoT box is configured as IoT box, it will
    send all the information about itself and its devices
    to its server.  This way the server knows which ip and which
    devices are on the iotbox.  Reports and in the enterprise
    version quality points will be linked to devices.
    In the module iot, the models and the controller are defined for this.
    There is also a javascript part with a widget for taking
    a measure and the possibility to link any report with a printer device.
Commits on Jul 13, 2018
  1. [FIX] hw_posbox_homepage: update posbox version

    jco-odoo committed Jul 13, 2018
    Image uploaded in nightly master repo
  2. [IMP] point_of_sale: posbox upgrade to stretch / python3

    jco-odoo committed Jul 6, 2018
    - transform -> odoo-bin / recent branches + pip3 packages
    - deactivate wpa_supplicant when starting dhcpcd automatically
    - postgresql create clusters manually
    - latest stretch raspbian image / add versatile-db.ptb for kernel-qemu
    - ifconfig output change
    - upgrade hw_-modules:
        hw_escpos: to python3
        hw_posbox_homepage: to v11: csrf does not work as it needs a database
        hw_posbox_upgrade: to python3 decode utf-8
        hw_scale: to python3
        hw_proxy: to python3
    With the commit, the posbox will also work on the new Raspberry Pi 3b+
  3. [FIX] hw_escpos: small fix to avoid error on throwing error

    jco-odoo committed Jul 9, 2018
Commits on Jun 25, 2018
  1. [FIX] stock: when creating a procurement from a stock move, pass the …

    jco-odoo committed Jun 21, 2018
    …date_expected as date
    Before, when we created a picking manually with MTO+buy products,
    put a scheduled date in the future and did "mark as todo", the
    date on the po was related to now instead of that schedule date.
    The scheduled date of the picking was passed to the date_expected
    of the move, but not to the date of the move, which was passed to
    the date_planned of the created procurement.  By passing the
    date_expected instead of the date of the stock_move to the
    date_planned of the procurement, the po will have dates in function
    of the scheduled date of the picking.
    Courtesy of chienandalu.  Closes #25223
  2. [FIX] purchase: no mrp fields in purchase please

    jco-odoo committed Jun 14, 2018
    Fields of mrp should not be put in purchase like this,
    as it can throw a traceback e.g. if you generate a purchase
    based on a picking in MTO.
Commits on Jun 13, 2018
  1. [FIX] stock: onchange like pr 25223

    jco-odoo committed Jun 13, 2018
Commits on May 29, 2018
  1. [FIX] stock_account: setting standard price with multiple real-price …

    jco-odoo authored and nim-odoo committed May 28, 2018
    …outs with negative quants fixes #24925
    Somehow the function treated multiple records with
     the new api translation from 9 to 10.
    Steps to reproduce:
    This applies to delivery orders and manufacturing orders. As an example:
    Create an MO with 2 products on the BOM
    Both products must have real time costing with FIFO
    The first product on the bom must not be available
    For the second product on the BOM, the standard_price must be different from the cost of the next quant to be consumed
    Complete the MO, letting the first product result in a negative quant
    Current behavior:
    The standard_price of the second product on the BOM does not get updated.
    Behavior after this fix:
    The standard_price of the second product on the BOM gets updated.
    Thanks to matt454357.
Commits on May 23, 2018
  1. [FIX] stock: non-tracked products should follow FIFO removal strategy…

    jco-odoo committed Feb 8, 2018
    … too
    In a warehouse, mostly most of the products have no lot.  It stays
    important however to avoid having old products in stock, certainly if
    we can distinguish them by pack or location.
    As now in stable, in_date is not put on the quant for non-tracked products,
    databases might mix quants with and without in_date of the same product.
    We should see those without in_date as the oldest.
    That is why we need to be able to apply a ASC NULLS FIRST (ASC is NULLS LAST by default) for FIFO
    In order to do that, we copied the code from the _search method of the ORM to
    be able to do this special order as the orm itself is restrictive as it
    supposes the order itself has no spaces.
    We adapted and added some tests to check it handles the combination of NULL/NOT NULL well.
  2. [FIX] mrp: workorders of sub-BOMs

    jco-odoo authored and nim-odoo committed Mar 14, 2018
    - Create the following BOM structure:
      Prod 1 (Manufacture)
      --- Prod 2
          Prod 3 (Kit)
          --- Prod 4
    	  Prod 5
    - The BOMs for Prod 1 & 3 must have a routing set, to generate
    - Create a MO for 1 unit of Prod 1, process to the end
    2 units of Prod 1 are created instead of 1.
    This is due to the WO for Prod 3 not having a `next_work_order_id`.
    Therefore, `record_production` adds an extra quantity at:
    production_move.quantity_done += self.qty_producing
    To prevent this, we set as `next_work_order_id` of the BOM of Prod 3 the
    WO of Prod 1.
    Closes #19527
Commits on May 22, 2018
  1. [IMP] mrp: add check for unproduced finished lots

    jco-odoo and nim-odoo committed Mar 29, 2018
    - Create a Finished Product tracked by SN
    - Add a BoM with routing (in several steps) to that product: component A
      should be consumed in 1st step and component B in 2nd step
    - Create a MO, plan it, go on the first WO and produce the finished
      product with SN 0001
    - Then go on the second WO and produce the finished product with SN 0002
    - Back on your MO, you'll see that
        Finished Product = SN 0002
        Component A has been consumed for SN 0001
        Component B has been consumed for SN 0002
    - Mark the MO as done
    No blocking error is raised so I'm consuming a product for a finished
    product I'm not really producing. Traceability report will be wrong too.
    We raise a blocking error to avoid this use case.
    Co-authored-by: Nicolas Martinelli <>
Commits on May 17, 2018
  1. [FIX] stock: customer/vendor location empty

    jco-odoo authored and simongoffin committed May 15, 2018
    When creating a new company, the fields customer/vendor location
    were empty.
    Now, these fields are set with the internal transit location for the company
    of the partner and set with Partners Locations/Customers and Partners Locations/Vendors
    for the other companies.
Commits on May 9, 2018
  1. [FIX] delivery: delivery with carrier but not linked to so

    jco-odoo authored and simongoffin committed May 8, 2018
    When a delivery with free_over=True was not linked to a SO, it raised
    an error.
Commits on May 7, 2018
  1. [FIX] sale: creating invoice name from SO ref

    jco-odoo authored and simongoffin committed May 3, 2018
    Steps to reproduce the bug:
    - Create a SO with 2 lines and confirm it
    - Set a Customer reference on the SO with "This is, a ref"
    - Deliver it
    - Create an invoice from it with all the invoicable lines
    Bug: The name of the invoice was: "This is, a ref, This is, a ref"
    Expected behavior: The name of the invoice is: "This is, a ref"
Commits on Apr 18, 2018
  1. [FIX] stock_account: valuation report needs company_owned in context

    jco-odoo committed Apr 17, 2018
    When calculating the stock_value of a product,
    the system will take into account all the locations
    that have this company as company.  (that way if owner_id
    is not set, the company_id on the location is the owner (virtual: not set))
    The Qty on Hand field takes into account however
    the quantities that are in the warehouses.
    This could lead to weird situations where the Quantity On Hand is 0
    and so the record is not shown, while the stock value is positive.
    (e.g. stock in Transit)
    In order to use the same logic for both fields, we pass company_owned=True
    in the context.
Commits on Mar 2, 2018
  1. [FIX] stock: avoid block of schedulers

    jco-odoo authored and nim-odoo committed Mar 1, 2018
    Avoid block of schedulers when there are confirmed moves of 0 quantity.
    Co-authored-by: Nicolas Martinelli <>
Commits on Feb 21, 2018
  1. [FIX] stock: remove action_traceability method on lot fixes #22299

    jco-odoo committed Feb 21, 2018
Commits on Feb 20, 2018
  1. [FIX] mrp: Changing the routing on a bom

    jco-odoo authored and simongoffin committed Feb 13, 2018
    When changing the routing on a bom, "Consumed in Operation" indicated
    in some lines of the BoM did not correspond to the routing used.
    So the system did not link it to a workorder and it was never consumed when
    a MO was processed.
    Now the "Consumed in operation" are reset  when the routing is changed.
Commits on Jan 5, 2018
  1. [FIX] mrp: in move validation, take into account the owner

    jco-odoo committed Jan 5, 2018
    Before this commit, the special mrp validate_move method did a call to
    quants_move with an incomplete signature. IN the use case, that we want
    to make "own" produced quantities by a third party (maquila), we can do so in
    downstream modules by restrict the partner on the move so that any moved (or
    created) quants will belong to this partner (owner).  This is certainly
    important for the case where finished products are not your own
    property.  Courtesy of blaggacao.
    Closes #21072
Commits on Dec 13, 2017
  1. [FIX] stock: don't propagate cancel when chained move is done

    jco-odoo committed Dec 11, 2017
    When you have e.g. an SO with a product MTO generating a manufacturing
    order, and you put the delivery order to done, before the MO is done,
    you can not cancel the MO anymore, because the cancel method checks if
    the move is not done (and raises an error).
    As the user stays blocked in this case, it is better to just not try to
    cancel the destination move by not propagating the cancel when the destination
    move is done.
You can’t perform that action at this time.