[MERGE] lp:~openerp-dev/openobject-addons/trunk-review_module_desc-psi
[odoo/odoo.git] / addons / stock_location / __openerp__.py
1 # -*- coding: utf-8 -*-
2 ##############################################################################
3 #
4 #    OpenERP, Open Source Management Solution
5 #    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
6 #
7 #    This program is free software: you can redistribute it and/or modify
8 #    it under the terms of the GNU Affero General Public License as
9 #    published by the Free Software Foundation, either version 3 of the
10 #    License, or (at your option) any later version.
11 #
12 #    This program is distributed in the hope that it will be useful,
13 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 #    GNU Affero General Public License for more details.
16 #
17 #    You should have received a copy of the GNU Affero General Public License
18 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 #
20 ##############################################################################
21
22
23 {
24     'name': 'Advanced Routes',
25     'version': '1.0',
26     'category': 'Manufacturing',
27     'description': """
28 This module supplements the Warehouse application by effectively implementing Push and Pull inventory flows.
29 ============================================================================================================
30
31 Typically this could be used to:
32     * Manage product manufacturing chains
33     * Manage default locations per product
34     * Define routes within your warehouse according to business needs, such as:
35        - Quality Control
36        - After Sales Services
37        - Supplier Returns
38
39     * Help rental management, by generating automated return moves for rented products
40
41 Once this module is installed, an additional tab appear on the product form,
42 where you can add Push and Pull flow specifications. The demo data of CPU1
43 product for that push/pull :
44
45 Push flows:
46 -----------
47 Push flows are useful when the arrival of certain products in a given location
48 should always be followed by a corresponding move to another location, optionally
49 after a certain delay. The original Warehouse application already supports such
50 Push flow specifications on the Locations themselves, but these cannot be
51 refined per-product.
52
53 A push flow specification indicates which location is chained with which location,
54 and with what parameters. As soon as a given quantity of products is moved in the
55 source location, a chained move is automatically foreseen according to the
56 parameters set on the flow specification (destination location, delay, type of
57 move, journal). The new move can be automatically processed, or require a manual
58 confirmation, depending on the parameters.
59
60 Pull flows:
61 -----------
62 Pull flows are a bit different from Push flows, in the sense that they are not
63 related to the processing of product moves, but rather to the processing of
64 procurement orders. What is being pulled is a need, not directly products. A
65 classical example of Pull flow is when you have an Outlet company, with a parent
66 Company that is responsible for the supplies of the Outlet.
67
68   [ Customer ] <- A - [ Outlet ]  <- B -  [ Holding ] <~ C ~ [ Supplier ]
69
70 When a new procurement order (A, coming from the confirmation of a Sale Order
71 for example) arrives in the Outlet, it is converted into another procurement
72 (B, via a Pull flow of type 'move') requested from the Holding. When procurement
73 order B is processed by the Holding company, and if the product is out of stock,
74 it can be converted into a Purchase Order (C) from the Supplier (Pull flow of
75 type Purchase). The result is that the procurement order, the need, is pushed
76 all the way between the Customer and Supplier.
77
78 Technically, Pull flows allow to process procurement orders differently, not
79 only depending on the product being considered, but also depending on which
80 location holds the "need" for that product (i.e. the destination location of
81 that procurement order).
82
83 Use-Case:
84 ---------
85
86 You can use the demo data as follow:
87   CPU1: Sell some CPU1 from Shop 1 and run the scheduler
88      - Warehouse: delivery order, Shop 1: reception
89   CPU3:
90      - When receiving the product, it goes to Quality Control location then
91        stored to shelf 2.
92      - When delivering the customer: Pick List -> Packing -> Delivery Order from Gate A
93     """,
94     'author': 'OpenERP SA',
95     'images': ['images/pulled_flow.jpeg','images/pushed_flow.jpeg'],
96     'depends': ['procurement','stock','sale'],
97     'init_xml': [],
98     'update_xml': ['stock_location_view.xml', "security/stock_location_security.xml", 'security/ir.model.access.csv', 'procurement_pull_workflow.xml'],
99     'demo_xml': [
100         'stock_location_demo_cpu1.xml',
101         'stock_location_demo_cpu3.yml',
102     ],
103     'installable': True,
104     'test':[
105             'test/stock_location_pull_flow.yml',
106             'test/stock_location_push_flow.yml',
107     ],
108     'auto_install': False,
109     'certificate': '0046505115101',
110 }
111
112 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: