2021-03-17 10:06:27 +00:00
|
|
|
******
|
|
|
|
|
Design
|
|
|
|
|
******
|
|
|
|
|
|
|
|
|
|
The *Purchase Module* introduces some new concepts and updates existing
|
|
|
|
|
concepts to make them work seamlessly with purchases.
|
|
|
|
|
|
|
|
|
|
.. _model-purchase.purchase:
|
|
|
|
|
|
|
|
|
|
Purchase
|
|
|
|
|
========
|
|
|
|
|
|
|
|
|
|
The *Purchase* is used to manage the purchasing process.
|
|
|
|
|
Each purchase, at any time, can be in one of several different states.
|
|
|
|
|
A purchase progresses through these states until eventually it is either done
|
|
|
|
|
or gets cancelled.
|
|
|
|
|
When some of these state changes happen the
|
|
|
|
|
`Employee <company:model-company.employee>` that triggered the state change is
|
|
|
|
|
also recorded.
|
|
|
|
|
|
|
|
|
|
Details are stored about the `Company <company:model-company.company>` making
|
|
|
|
|
the purchase and any other `Parties <party:model-party.party>`,
|
|
|
|
|
`Contact Mechanisms <party:model-party.contact_mechanism>` and
|
|
|
|
|
`Addresses <party:model-party.address>` that relate to it, such as the
|
|
|
|
|
supplier, the contact at the supplier or the party that is sending the
|
|
|
|
|
`Invoice <account_invoice:model-account.invoice>`.
|
|
|
|
|
|
|
|
|
|
A purchase is identified by a unique number that is generated automatically
|
2022-04-06 18:19:49 +02:00
|
|
|
from the configured *Sequence* and may also have other general information such
|
|
|
|
|
as the purchase date, a description, or a reference provided by the supplier.
|
2021-03-17 10:06:27 +00:00
|
|
|
|
|
|
|
|
Each purchase is made up from one or more lines.
|
|
|
|
|
These lines can be put into a particular order if desired.
|
|
|
|
|
Normally most lines on a purchase provide information about which
|
|
|
|
|
`Products <product:concept-product>` or items are required.
|
|
|
|
|
Informational lines can also be added for things like titles, comments or
|
|
|
|
|
subtotals.
|
|
|
|
|
|
|
|
|
|
The total, untaxed, and tax amounts for a purchase are derived from the
|
|
|
|
|
amounts, prices and `Taxes <account:model-account.tax>` of the purchase's
|
|
|
|
|
lines.
|
|
|
|
|
|
|
|
|
|
A destination `Warehouse <stock:concept-stock.location.warehouse>` is required
|
|
|
|
|
for purchases of physical items such as goods or assets.
|
|
|
|
|
The purchase will automatically create `Stock Moves <stock:model-stock.move>`
|
|
|
|
|
for these products.
|
|
|
|
|
These stock moves are linked to the purchase's lines and must be
|
|
|
|
|
recreated or ignored if they get cancelled.
|
|
|
|
|
|
|
|
|
|
`Invoices <account_invoice:model-account.invoice>` relating to the purchase
|
|
|
|
|
may be created, depending on which invoice method is selected.
|
|
|
|
|
These invoices are based on the details from the purchase, and must be
|
|
|
|
|
recreated or ignored if they get cancelled.
|
|
|
|
|
|
|
|
|
|
.. seealso::
|
|
|
|
|
|
|
|
|
|
Purchases can be found by opening the main menu item:
|
|
|
|
|
|
|
|
|
|
|Purchase --> Purchases|__ menu item.
|
|
|
|
|
|
|
|
|
|
.. |Purchase --> Purchases| replace:: :menuselection:`Purchase --> Purchases`
|
|
|
|
|
__ https://demo.tryton.org/model/purchase.purchase
|
|
|
|
|
|
|
|
|
|
Reports
|
|
|
|
|
-------
|
|
|
|
|
|
|
|
|
|
.. _report-purchase.purchase:
|
|
|
|
|
|
|
|
|
|
Purchase Report
|
|
|
|
|
^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
The *Purchase Report* provides a purchase order that can be sent to the
|
|
|
|
|
supplier when making a purchase.
|
|
|
|
|
It includes all the relevant information from the selected purchases.
|
|
|
|
|
|
|
|
|
|
Wizards
|
|
|
|
|
-------
|
|
|
|
|
|
|
|
|
|
.. _wizard-purchase.handle.shipment.exception:
|
|
|
|
|
|
|
|
|
|
Handle Shipment Exception
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
The *Handle Shipment Exception* wizard helps the user ensure the purchase
|
|
|
|
|
has the correct `Stock Moves <stock:model-stock.move>` associated with it.
|
|
|
|
|
For stock moves that have been cancelled, it lets the user decide which
|
|
|
|
|
should be re-created, and which should be ignored.
|
|
|
|
|
|
|
|
|
|
.. _wizard-purchase.handle.invoice.exception:
|
|
|
|
|
|
|
|
|
|
Handle Invoice Exception
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
The *Handle Invoice Exception* wizard helps the user make sure the purchase
|
|
|
|
|
only has the appropriate `Invoices <account_invoice:model-account.invoice>`
|
|
|
|
|
associated with it.
|
|
|
|
|
If any of the purchase's invoices get cancelled this wizard provides the user
|
|
|
|
|
with the option to re-create or ignore the cancelled invoice.
|
|
|
|
|
|
|
|
|
|
.. _wizard-purchase.modify_header:
|
|
|
|
|
|
|
|
|
|
Modify Header
|
|
|
|
|
^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
Some fields on a draft purchase become read-only when lines are added to it.
|
|
|
|
|
The *Modify Header* wizard allows the values in these fields to be safely
|
|
|
|
|
updated.
|
|
|
|
|
|
|
|
|
|
.. _wizard-purchase.return_purchase:
|
|
|
|
|
|
|
|
|
|
Return Purchase
|
|
|
|
|
^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
The *Return Purchase* wizard is used when a purchase needs to be sent back.
|
|
|
|
|
It creates new draft purchases that match any selected purchases, but with
|
|
|
|
|
all the quantities negated.
|
|
|
|
|
|
|
|
|
|
.. _model-purchase.product_supplier:
|
|
|
|
|
|
|
|
|
|
Product Supplier
|
|
|
|
|
================
|
|
|
|
|
|
|
|
|
|
The *Product Supplier* concept links together a
|
|
|
|
|
`Product <product:concept-product>` with a `Party <party:model-party.party>`
|
|
|
|
|
that acts as a supplier.
|
|
|
|
|
The product can be either a `Product Template <product:model-product.template>`
|
|
|
|
|
or one of its `Variants <product:model-product.product>`.
|
|
|
|
|
Each `Company <company:model-company.company>` has their own list of product
|
|
|
|
|
suppliers.
|
|
|
|
|
|
|
|
|
|
A supplier's product name and code, and a lead time can be defined for each
|
|
|
|
|
combination of products and suppliers.
|
|
|
|
|
Also different purchase prices can be set for different minimum order
|
|
|
|
|
quantities.
|
|
|
|
|
|
|
|
|
|
.. seealso::
|
|
|
|
|
|
|
|
|
|
A list of products and their suppliers can be found by opening the main
|
|
|
|
|
menu item:
|
|
|
|
|
|
2022-05-31 10:13:13 +02:00
|
|
|
|Products --> Products --> Suppliers|__
|
2021-03-17 10:06:27 +00:00
|
|
|
|
2022-05-31 10:13:13 +02:00
|
|
|
.. |Products --> Products --> Suppliers| replace:: :menuselection:`Products --> Products --> Suppliers`
|
2021-03-17 10:06:27 +00:00
|
|
|
__ https://demo.tryton.org/model/purchase.product_supplier
|
|
|
|
|
|
2022-10-07 15:00:40 +02:00
|
|
|
.. _concept-purchase.reporting:
|
|
|
|
|
|
|
|
|
|
Purchase Reporting
|
|
|
|
|
==================
|
|
|
|
|
|
|
|
|
|
Each of the different *Purchase Reporting* concepts are based on either an
|
|
|
|
|
``Abstract`` purchases report, or an ``AbstractTimeseries``.
|
|
|
|
|
There is also a base ``Context`` that is inherited and used to specify things
|
|
|
|
|
such as the date range that is used by the report.
|
|
|
|
|
|
|
|
|
|
The ``Abstract`` provides the basic properties that makes up a purchases report
|
|
|
|
|
including the number of purchases and expense.
|
|
|
|
|
The ``AbstractTimeseries`` is used to extend this with a date.
|
|
|
|
|
This is used in purchases reports that cover multiple periods of time.
|
|
|
|
|
These are combined together with additional specific properties to create the
|
|
|
|
|
different purchases reports.
|
|
|
|
|
|
|
|
|
|
.. seealso::
|
|
|
|
|
|
|
|
|
|
Purchases reports can be accessed from the main menu item:
|
|
|
|
|
|
|
|
|
|
:menuselection:`Purchases --> Reporting --> Purchases`
|
|
|
|
|
|
|
|
|
|
.. _model-purchase.reporting.supplier:
|
|
|
|
|
.. _model-purchase.reporting.supplier.time_series:
|
|
|
|
|
|
|
|
|
|
By Supplier
|
|
|
|
|
-----------
|
|
|
|
|
|
|
|
|
|
The purchases reporting that is done *By Supplier* splits the purchases up
|
|
|
|
|
based on what each `Supplier <party:model-party.party>` bought.
|
|
|
|
|
This is done in two separate parts.
|
|
|
|
|
One that shows the purchases, in total, for the selected period from the
|
|
|
|
|
``Context``.
|
|
|
|
|
Another that breaks them down by date into smaller chunks.
|
|
|
|
|
|
|
|
|
|
.. _model-purchase.reporting.product:
|
|
|
|
|
.. _model-purchase.reporting.product.time_series:
|
|
|
|
|
|
|
|
|
|
By Product
|
|
|
|
|
----------
|
|
|
|
|
|
|
|
|
|
Purchases reporting that is done *By Product* splits up the purchases based on
|
|
|
|
|
the `Product <product:concept-product>` that was purchased.
|
|
|
|
|
This is structured as two parts.
|
|
|
|
|
One that shows the total purchases for the selected period of time, and another
|
|
|
|
|
that shows how the purchases were distributed over time.
|
|
|
|
|
|
2021-03-17 10:06:27 +00:00
|
|
|
.. _model-purchase.configuration:
|
|
|
|
|
|
|
|
|
|
Configuration
|
|
|
|
|
=============
|
|
|
|
|
|
|
|
|
|
The *Purchase Configuration* concept is used to store the settings that affect
|
|
|
|
|
the general behaviour and default values for purchase related activities.
|
|
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
|
|
Some of the purchase configuration options have no effect unless the
|
|
|
|
|
:doc:`Task Queue <trytond:topics/task_queue>` has been setup and some
|
|
|
|
|
workers are running.
|
|
|
|
|
|
|
|
|
|
.. seealso::
|
|
|
|
|
|
|
|
|
|
Purchase configuration settings are found by opening the main menu item:
|
|
|
|
|
|
2022-05-31 09:39:25 +02:00
|
|
|
|Purchase --> Configuration --> Configuration|__
|
2021-03-17 10:06:27 +00:00
|
|
|
|
2022-05-31 09:39:25 +02:00
|
|
|
.. |Purchase --> Configuration --> Configuration| replace:: :menuselection:`Purchase --> Configuration --> Configuration`
|
2021-03-17 10:06:27 +00:00
|
|
|
__ https://demo.tryton.org/model/purchase.configuration/1
|