From efa2b0efa72cbfac9e023a54fff0870b04a55df5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 4 Feb 2024 12:15:22 +0100 Subject: [PATCH] Update documentation of production --- modules/production/CHANGELOG | 22 ++++++ modules/production/doc/design.rst | 107 ++++++++++++++++++++++++++++ modules/production/doc/index.rst | 77 +++----------------- modules/production/doc/releases.rst | 7 ++ modules/production/setup.py | 7 +- 5 files changed, 149 insertions(+), 71 deletions(-) create mode 100644 modules/production/doc/design.rst create mode 100644 modules/production/doc/releases.rst diff --git a/modules/production/CHANGELOG b/modules/production/CHANGELOG index b7c482ed09..dd2d3561ca 100644 --- a/modules/production/CHANGELOG +++ b/modules/production/CHANGELOG @@ -21,22 +21,26 @@ Version 6.6.0 - 2022-10-31 * Bug fixes (see mercurial logs for details) Version 6.4.0 - 2022-05-02 +-------------------------- * Bug fixes (see mercurial logs for details) * Show production on stock move form * Add support for Python 3.10 * Remove support for Python 3.6 Version 6.2.0 - 2021-11-01 +-------------------------- * Bug fixes (see mercurial logs for details) * Show warning when output product's list price is empty * Remove unique product constraint on BOM Version 6.0.0 - 2021-05-03 +-------------------------- * Bug fixes (see mercurial logs for details) * Allow productions to be automatically assigned * Default to ordering productions by date Version 5.8.0 - 2020-11-02 +-------------------------- * Bug fixes (see mercurial logs for details) * Remove support for Python 3.5 * Add production picking and output locations @@ -47,6 +51,7 @@ Version 5.8.0 - 2020-11-02 * Rename production state from cancel to cancelled Version 5.6.0 - 2020-05-04 +-------------------------- * Bug fixes (see mercurial logs for details) * Add origin to production * Delete cancelled moves when a production is reset to draft @@ -57,59 +62,76 @@ Version 5.6.0 - 2020-05-04 * Allocate cost based on list price of each product Version 5.4.0 - 2019-11-04 +-------------------------- * Bug fixes (see mercurial logs for details) Version 5.2.0 - 2019-05-06 +-------------------------- * Bug fixes (see mercurial logs for details) Version 5.0.0 - 2018-10-01 +-------------------------- * Bug fixes (see mercurial logs for details) * Remove support for Python 2.7 * Set output cost in done transition Version 4.8.0 - 2018-04-23 +-------------------------- * Bug fixes (see mercurial logs for details) Version 4.6.0 - 2017-10-30 +-------------------------- * Bug fixes (see mercurial logs for details) Version 4.4.0 - 2017-05-01 +-------------------------- * Bug fixes (see mercurial logs for details) * Ceil input and floor output quantities * Add producible to product template Version 4.2.0 - 2016-11-28 +-------------------------- * Bug fixes (see mercurial logs for details) * Add Lead Time of Production * Add Start Dates on Production Version 4.0.0 - 2016-05-02 +-------------------------- * Bug fixes (see mercurial logs for details) * Rename Production code into number * Add Python3 support Version 3.8.0 - 2015-11-02 +-------------------------- * Bug fixes (see mercurial logs for details) Version 3.6.0 - 2015-04-20 +-------------------------- * Bug fixes (see mercurial logs for details) * Add support for PyPy + Version 3.4.0 - 2014-10-20 +-------------------------- * Bug fixes (see mercurial logs for details) Version 3.2.0 - 2014-04-21 +-------------------------- * Bug fixes (see mercurial logs for details) * Allow to define effective date of productions Version 3.0.0 - 2013-10-21 +-------------------------- * Bug fixes (see mercurial logs for details) * Add calendar view Version 2.8.0 - 2013-04-22 +-------------------------- * Bug fixes (see mercurial logs for details) Version 2.6.0 - 2012-10-22 +-------------------------- * Bug fixes (see mercurial logs for details) Version 2.4.0 - 2012-08-15 +-------------------------- * Initial release diff --git a/modules/production/doc/design.rst b/modules/production/doc/design.rst new file mode 100644 index 0000000000..7366c9f0c5 --- /dev/null +++ b/modules/production/doc/design.rst @@ -0,0 +1,107 @@ +****** +Design +****** + +The *Production Module* introduces or extends the following concepts. + +.. _model-production.bom: + +Bill of Material +================ + +A :abbr:`*BOM (Bill of Material)*` is a list of `Products +` and the quantities needed to manufacture one or +more other products. + +.. seealso:: + + The BOM can be found using the main menu item: + + |Productions --> Configuration --> BOMs|__ + + .. |Productions --> Configuration --> BOMs| replace:: :menuselection:`Productions --> Configuration --> BOMs` + __ https://demo.tryton.org/model/production.bom + +.. _model-concept-product: + +Product +======= + +When the *Production Module* is activated, products gain some extra properties. +These include a :guilabel:`Producible` checkbox and a list of `BOMs +` that it can be produced from. + +.. seealso:: + + The `Product ` concept is introduced by the + :doc:`Product Module `. + +Wizards +------- + +.. _wizard-production.bom.tree.open: + +Open BOM Tree +^^^^^^^^^^^^^ + +The *Open BOM Tree* is a helper wizard used to display the full tree of other +`Products ` that are required to produce a configured +quantity of the specific product using a `BOM `. + + +.. _model-production: + +Production +========== + +A *Production* is an order to produce a specific quantity of a `Product +`. +A production progresses through different states until it is either done or +cancelled. + +Each production contains a list of input `Moves ` for +the products that are used. +It also has a list of outgoing moves for the products that are created and any +that are scrapped during the production process. + +The cost of a production is made up from the cost of all the input moves. +When the production is done, the cost is split proportionally across the output +moves as the unit price. + +.. note:: + + If the cost of the inputs change after the production is done, a scheduled task + update the costs of the outputs. + +.. _model-stock.location: + +Location +======== + +When the *Production Module* is activated, warehouses gain some extra properties. +These include locations for :guilabel:`Production`, :guilabel:`Production +Picking` and :guilabel:`Production Output` which are used as the default values +when producing products. + +.. seealso:: + + The `Location ` concept is introduced by the + :doc:`Stock Module `. + +.. _model-production.configuration: + +Configuration +============= + +The *Production Configuration* contains settings that are used to configure the +behaviour and default values for production related activities, including the +sequence used to generate `Production ` numbers. + +.. seealso:: + + The production configuration can be found using the main menu item: + + |Productions --> Configuration --> Configuration|__ + + .. |Productions --> Configuration --> Configuration| replace:: :menuselection:`Productions --> Configuration --> Configuration` + __ https://demo.tryton.org/model/production.configuration/1 diff --git a/modules/production/doc/index.rst b/modules/production/doc/index.rst index dbc362ec4a..ba8f245f0d 100644 --- a/modules/production/doc/index.rst +++ b/modules/production/doc/index.rst @@ -1,74 +1,13 @@ +################# Production Module ################# -The production module defines basics for production management: Bill of -material and production order. +The *Production Module* provides the fundamental concepts required for managing +production. +This includes definition for bill of material and production orders. +.. toctree:: + :maxdepth: 2 -Bill of Material -**************** - -Bills of Material are list of products and quantities needed to produce a -product. It is often shorten with BOM. - -Production -********** - -A Production is mainly defined by a product, a BOM, a location, a quantity and -two lists of moves: - -* Inputs - - The moves between the production picking location, or the storage location - if product picking location is empty, and the production location - (as defined on the warehouse) for products used for production. - -* Outputs - - The moves between the production location and the production output - location, or the storage location if production output is empty, for produced - products. - -The production can be in one of this states: - -* Request - - The production is requested by the system. - -* Draft - - Input and output moves are in draft. - -* Waiting - - The production is waiting for action and all moves are still in draft. - -* Assigned - - The input moves are assigned. - -* Running - - The input moves are in state done. - -* Done - - The output moves are in state done. - -* Cancelled - - All moves are cancelled. - -The cost of the production is computed with the sum of the cost price of all -incoming products. This cost is allocated to the output products based on the -list price of each (the product without a list price are considered as waste). - -A cron task runs every day and updates the cost of productions if the cost -price of the incoming products has changed. - - -Rescheduling Production ------------------------ - -It is possible to setup a cron task to reschedule the productions that are -planned to start in the past. By default they are rescheduled to today. + design + releases diff --git a/modules/production/doc/releases.rst b/modules/production/doc/releases.rst new file mode 100644 index 0000000000..21b13c4745 --- /dev/null +++ b/modules/production/doc/releases.rst @@ -0,0 +1,7 @@ +.. _releases-index: + +============= +Release notes +============= + +.. include:: ../CHANGELOG diff --git a/modules/production/setup.py b/modules/production/setup.py index 2890e2d50c..2ed8a55393 100755 --- a/modules/production/setup.py +++ b/modules/production/setup.py @@ -11,9 +11,12 @@ from setuptools import find_packages, setup def read(fname): - return io.open( + content = io.open( os.path.join(os.path.dirname(__file__), fname), 'r', encoding='utf-8').read() + content = re.sub( + r'(?m)^\.\. toctree::\r?\n((^$|^\s.*$)\r?\n)*', '', content) + return content def get_require_version(name): @@ -62,7 +65,7 @@ setup(name=name, download_url=download_url, project_urls={ "Bug Tracker": 'https://bugs.tryton.org/', - "Documentation": 'https://docs.tryton.org/', + "Documentation": 'https://docs.tryton.org/products/modules-production', "Forum": 'https://www.tryton.org/forum', "Source Code": 'https://code.tryton.org/tryton', },