# Stock packaging calculator

Basic module providing an helper method to calculate the quantity of product by packaging.

Important

This is an alpha version, the data model and design can change at any time without warning. Only for development or testing purpose, do not use in production. More details on development status

Table of contents

- Usage
- Known issues / Roadmap
- Bug Tracker
- Credits
  - Authors
  - Contributors
  - Maintainers

# Usage

Imagine you have the following packagings:

- Pallet: 1000 Units
- Big box: 500 Units
- Box: 50 Units

and you have to pick from your warehouse 2860 Units.

Then you can do:

>     >>> product.product_qty_by_packaging(2860)

>     [
>         {"id": 1, "qty": 2, "name": "Pallet"},
>         {"id": 2, "qty": 1, "name": "Big box"},
>         {"id": 3, "qty": 7, "name": "Box"},
>         {"id": 100, "qty": 10, "name": "Units"},
>     ]

With this you can show a proper message to warehouse operators to quickly pick the quantity they need.

Optionally you can get contained packaging by passing with_contained flag:

>     >>> product.product_qty_by_packaging(2860, with_contained=True)

>     [
>         {"id": 1, "qty": 2, "name": "Pallet", "contained": [{"id": 2, "qty": 2, "name": "Big box"}]},
>         {"id": 2, "qty": 1, "name": "Big box", "contained": [{"id": 3, "qty": 10, "name": "Box"}]},
>         {"id": 3, "qty": 7, "name": "Box", "contained": [{"id": 100, "qty": 50, "name": "Units"}]},
>         {"id": 100, "qty": 10, "name": "Units", "contained": []},},
>     ]

# Known issues / Roadmap

TODO

1. Fractional quantities (eg: 0.5 Kg) are lost when counting units
2. Maybe rely on packaging_uom

# Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

# Credits

## Authors

- Camptocamp

## Contributors

- Simone Orsi <simahawk@gmail.com>
- Christopher Ormaza <chris.ormaza@forgeflow.com>

## Maintainers

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

This module is part of the OCA/stock-logistics-warehouse project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.