File: design.rst

package info (click to toggle)
tryton-modules-product-kit 7.0.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 580 kB
  • sloc: python: 1,467; xml: 124; makefile: 11; sh: 3
file content (118 lines) | stat: -rw-r--r-- 3,587 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
******
Design
******

The *Product Kit Module* module introduces the following concepts:

.. _concept-product:

Product
=======

When the *Product Kit Module* is activated, products gain some extra properties.
These include a new type "Kit" which corresponds to a product composed of other
goods defined by a list of `Components <model-product.component>`.

.. seealso::

   The `Product <product:concept-product>` concept is introduced by the
   :doc:`Product Module <product:index>`.

.. _model-product.component:

Product Component
=================

The *Product Component* concept defines the quantity of a product that is part
of another product.

.. _model-sale.sale:

Sale
====

When the *Product Kit Module* is activated, components are added to sales when
the sale is quoted.

For `Sale Lines <model-sale.line>` with a kit `Product <concept-product>`, a
`Sale Line Component <model-sale.line.component>` is created for each `Product
Component <model-product.component>`.
These components are used as the origins for the `Stock Moves
<stock:model-stock.move>` and the sale lines of the *Invoice Lines*.
When the `Invoice <account_invoice:model-account.invoice>` method is on
shipment, the smallest ratio of shipped components is used to calculate the
quantity invoiced.

For *Sale Lines* with a non-kit product containing `Product Components
<model-product.component>`, a sale line is created for each one.

When the sale is reset to draft, all created components are deleted.

.. _model-sale.line:

Line
----

The sale lines gain a list of `Sale Line Components
<model-sale.line.component>` and a list of children which are created when the
`Sale <sale:model-sale.sale>` is quoted.

.. _model-sale.line.component:

Line Component
--------------

The *Sale Line Component* concept defines for a *Sale Line* the quantity of a
`Product Component <model-product.component>` to be shipped instead of the kit.

.. seealso::

   The `Sale <sale:model-sale.sale>` model is introduced by the :doc:`Sale
   Module <sale:index>`.


.. _model-purchase.purchase:

Purchase
========

When the *Product Kit Module* is activated, components are added to `Purchases
<purchase:model-purchase.purchase>` when the purchase is quoted.

For `Purchase Lines <model-purchase.line>` with a kit `Product
<concept-product>`, a `Purchase Line Component <model-sale.line.component>` is
created for each `Product Component <model-product.component>`.
These components are used as the origins for the `Stock Moves
<stock:model-stock.move>` and the purchase lines of the *Invoice Lines*.
When the `Invoice <account_invoice:model-account.invoice>` method is on
shipment, the smallest ratio of received components is used to calculate the
quantity invoiced.

For `Purchase Lines <model-purchase.line>` with a non-kit product containing
`Product Components <model-product.component>`, a purchase line is created for
each one.

When the purchase is reset to draft, all created components are deleted.

.. _model-purchase.line:

Line
----

The purchase lines gain a list of `Purchase Line Components
<model-purchase.line.component>` and a list of children which are created when
the `Purchase <purchase:model-purchase.purchase>` is quoted.

.. _model-purchase.line.component:

Line Component
--------------

The *Purchase Line Component* concept defines for a *Purchase Line* the
quantity of a `Product Component <model-product.component>` to be received
instead of the kit.

.. seealso::

   The `Purchase <purchase:model-purchase.purchase>` model is introduced by the
   :doc:`Purchase Module <purchase:index>`.