[MERGE] Forward-port of branch 13.0 to 14.0
This commit is contained in:
commit
95b3d35691
@ -2,16 +2,18 @@
|
||||
Payment Terms and Installment Plans
|
||||
===================================
|
||||
|
||||
**Payment Terms** regroup all the conditions under which a sale is completed and paid. They can be
|
||||
applied to sales orders, customer invoices, and supplier bills, mostly to ensure that they will be
|
||||
correctly paid, and on time. These conditions cover:
|
||||
**Payment Terms** specify all the conditions under which a sale is paid, mostly to ensure customers
|
||||
pay their invoices correctly and on time.
|
||||
|
||||
Payment Terms can be applied to sales orders, customer invoices, supplier bills, and contacts. These
|
||||
conditions cover:
|
||||
|
||||
- The due date
|
||||
- Some discounts
|
||||
- Any other condition on the payment
|
||||
|
||||
Defining Payment Terms automates the computation of payments due dates, both for invoices and bills.
|
||||
This is particularly helpful in managing installment plans.
|
||||
Defining Payment Terms automatically calculates the payments' due dates. This is particularly
|
||||
helpful for managing installment plans.
|
||||
|
||||
An **installment plan** allows the customers to pay an invoice in parts, with the amounts and
|
||||
payment dates defined beforehand by the seller.
|
||||
@ -29,19 +31,23 @@ payment dates defined beforehand by the seller.
|
||||
the full payment is due at the end of the month following the invoice date.
|
||||
|
||||
.. note::
|
||||
Payment terms are not to be confused with payment in several parts. If, for a specific order, you
|
||||
invoice the customer in two parts, that is nor a payment term nor an installment plan, but an
|
||||
invoicing policy.
|
||||
Payment terms are not to be confused with down payment invoices. If, for a specific order, you
|
||||
issue several invoices to your customer, that is neither a payment term nor an installment plan,
|
||||
but an invoicing policy.
|
||||
|
||||
.. note::
|
||||
This document is about the *Payment Terms* feature, not *Terms & Conditions*.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Payment Terms` and click on *Create*.
|
||||
|
||||
The **Description on the Invoice** is the displayed text on a sale order, invoice, or bill.
|
||||
The **Description on the Invoice** is the text displayed on the document (sale order, invoice,
|
||||
etc.).
|
||||
|
||||
In the **Terms** section, you can add a set of rules, that we call *terms*, to define what needs to
|
||||
be paid, and by which due date.
|
||||
In the **Terms** section, you can add a set of rules, called *terms*, to define what needs to be
|
||||
paid and by which due date.
|
||||
|
||||
To add a term, click on *Add a line*, and define its *Type*, *Value*, and *Due Date Computation*.
|
||||
|
||||
@ -49,12 +55,13 @@ To add a term, click on *Add a line*, and define its *Type*, *Value*, and *Due D
|
||||
- Terms are computed in the order they are set up.
|
||||
- The **balance** should always be used for the last line.
|
||||
|
||||
In the following example, 30% of the invoice is due on the day of issuance of the invoice, and the
|
||||
balance is due at the end of the following month.
|
||||
In the following example, 30% is due on the day of issuance, and the balance is due at the end of
|
||||
the following month.
|
||||
|
||||
.. image:: media/payment_terms_configuration.png
|
||||
.. image:: payment_terms/configuration.png
|
||||
:align: center
|
||||
:alt: Example of payment terms. The last line is the balance due the 31st of the following month.
|
||||
:alt: Example of Payment Terms. The last line is the balance due on the 31st of the following
|
||||
month.
|
||||
|
||||
Using Payment Terms
|
||||
===================
|
||||
@ -72,25 +79,26 @@ Payment Terms can be defined with the **Payment Terms** field on:
|
||||
| To set specific payment terms on a bill. This is mostly useful when you need to manage vendor
|
||||
terms with several installments. Otherwise, setting the *Due Date* is enough.
|
||||
|
||||
.. tip::
|
||||
You can also define a **Due Date** manually. If Payment Terms are already defined, empty the
|
||||
field so you can select a date.
|
||||
|
||||
Journal Entries
|
||||
===============
|
||||
|
||||
Invoices with specific Payment Terms generate different *Journal Entries*, with one *Journal Item*
|
||||
for each different *Due Date* computed.
|
||||
for every computed *Due Date*.
|
||||
|
||||
This makes for easier *Follow-ups* and *Reconciliation* since Odoo takes each due date into account,
|
||||
rather than just the balance due date.
|
||||
rather than just the balance due date. It also helps to get an accurate *Aged Receivable report*.
|
||||
|
||||
In the following example, an invoice of $1000 has been issued with the following payment terms:
|
||||
30% of the invoice is due on the day of issuance of the invoice, and the balance is due at the end
|
||||
of the following month.
|
||||
|
||||
.. image:: media/payment_terms_journal_entry.png
|
||||
.. image:: payment_terms/journal-entry.png
|
||||
:align: center
|
||||
:alt: Example of an invoice with specific Payment Terms. The amount debited on the Account
|
||||
Receivable is split in several Journal Items.
|
||||
:alt: The amount debited on the Account Receivable is split into two Journal Items with distinct
|
||||
Due Dates
|
||||
|
||||
The $1000 debited on the Account Receivable is split into two distinct *Journal Items*. Both of
|
||||
them have their own **Due Date**.
|
||||
In this example, an invoice of $1000 has been issued with the following payment terms: *30% is due
|
||||
on the day of issuance, and the balance is due at the end of the following month.*
|
||||
|
||||
+----------------------+-------------+---------+---------+
|
||||
| Account | Due date | Debit | Credit |
|
||||
@ -102,7 +110,8 @@ them have their own **Due Date**.
|
||||
| Product Sales | | | 1000 |
|
||||
+----------------------+-------------+---------+---------+
|
||||
|
||||
This allows for easier reconciliation and to accurately follow up late payments.
|
||||
The $1000 debited on the Account Receivable is split into two distinct *Journal Items*. Both of
|
||||
them have their own **Due Date**.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`cash_discounts`
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
@ -68,14 +68,48 @@ grammatical way of separating ideas.
|
||||
|
||||
.. _contributing/titles:
|
||||
|
||||
Titles
|
||||
------
|
||||
Titles and headings
|
||||
-------------------
|
||||
|
||||
To write a good title :
|
||||
To write good titles and headings:
|
||||
|
||||
- **Be concise.**
|
||||
- **Avoid sentences**, questions, and titles starting with "how to."
|
||||
- **Don't use pronouns** in your titles, especially 2nd person (*your*)
|
||||
- Use **sentence case**. This means you capitalize only:
|
||||
|
||||
- the first word of the title or heading
|
||||
- the first word after a colon
|
||||
- proper nouns (brands, product and service names, etc.)
|
||||
- app features, as written in the apps
|
||||
|
||||
.. important::
|
||||
Do not capitalize common nouns when they are not referred to as features. This is more likely
|
||||
to happen in headings rather than in titles.
|
||||
|
||||
+------------------+-----------------------------------+--------------------------------------------------------+
|
||||
| | Examples | Explanations |
|
||||
+==================+===================================+========================================================+
|
||||
| | **Titles** | *Quotation Templates* | "Quotation Templates" is a feature in Odoo. |
|
||||
| | (h1) +-----------------------------------+--------------------------------------------------------+
|
||||
| | *Lead Mining* | "Lead Mining" is a feature in Odoo. |
|
||||
| +-----------------------------------+--------------------------------------------------------+
|
||||
| | *Resupply from another Warehouse* | "Warehouse" is capitalized as we refer to the feature |
|
||||
| | | in the app rather than to a real warehouse. |
|
||||
| +-----------------------------------+--------------------------------------------------------+
|
||||
| | *Synchronize Google Calendar | "Google Calendar" is a product and "Odoo" is a brand. |
|
||||
| | with Odoo* | |
|
||||
+------------------+-----------------------------------+--------------------------------------------------------+
|
||||
| | **Headings** | *Confirm the quotation* | "The quotation" is a common noun not referring to a |
|
||||
| | (h2, h3, etc.) | | feature in Odoo. |
|
||||
| +-----------------------------------+--------------------------------------------------------+
|
||||
| | *Test environment* | "Environment" is a common noun. |
|
||||
| +-----------------------------------+--------------------------------------------------------+
|
||||
| | *Add a new Payment Acquirer* | "Payment Acquirers" is a feature in Odoo. |
|
||||
| +-----------------------------------+--------------------------------------------------------+
|
||||
| | *Generate SEPA Direct Debit XML | "SEPA Direct Debit" and "XML" are considered as proper |
|
||||
| | files to submit payments* | nouns. |
|
||||
+------------------+-----------------------------------+--------------------------------------------------------+
|
||||
|
||||
.. _contributing/document-structure:
|
||||
|
||||
@ -86,7 +120,7 @@ Use different **headings levels** to organize your text by sections and sub-sect
|
||||
are also displayed in a dynamic *navigation bar* on the side.
|
||||
|
||||
+---------------------------------------------------------------------------------------+
|
||||
| | **H1: Page Title** |
|
||||
| | **H1: Page title** |
|
||||
| | Your *page title* gives your reader a quick and clear understanding of what your |
|
||||
| content is about. It is also referenced in the section's *table of contents*. |
|
||||
| |
|
||||
@ -94,11 +128,11 @@ are also displayed in a dynamic *navigation bar* on the side.
|
||||
| of view**, and shouldn't put the emphasis on Odoo, as this is documentation and not |
|
||||
| marketing. |
|
||||
| |
|
||||
| Start first with a **Lead Paragraph**, which helps the reader make sure that they've |
|
||||
| Start first with a **lead paragraph**, which helps the reader make sure that they've |
|
||||
| found the right page, then explain the **business aspects of this topic** in the |
|
||||
| following paragraphs. |
|
||||
+-----+---------------------------------------------------------------------------------+
|
||||
| | | **H2: Section Title (configuration)** |
|
||||
| | | **H2: Section title (configuration)** |
|
||||
| | | This first H2 section is about the configuration of the feature, or the |
|
||||
| | prerequisites to achieve a specific goal. To add a path, make sure you |
|
||||
| | use the ``:menuselection:`` specialized directive (see link below). |
|
||||
@ -107,7 +141,7 @@ are also displayed in a dynamic *navigation bar* on the side.
|
||||
| | | To do so, go to ``:menuselection:`App name --> Menu --> Sub-menu```, and |
|
||||
| | enable the XYZ feature. |
|
||||
+-----+---------------------------------------------------------------------------------+
|
||||
| | | **H2: Section Title (main sections)** |
|
||||
| | | **H2: Section title (main sections)** |
|
||||
| | | Create as many main sections as you have actions or features to distinguish. |
|
||||
| | The title can start with a verb, but try to avoid using "Create ...". |
|
||||
+-----+-----+---------------------------------------------------------------------------+
|
||||
@ -160,6 +194,38 @@ A few tips to improve your screenshots:
|
||||
Resizing the window's width is the most important step to do as Odoo's responsive design
|
||||
automatically resizes all fields to match the window's width.
|
||||
|
||||
.. _contributing/media-files:
|
||||
|
||||
Media files
|
||||
-----------
|
||||
|
||||
A **media filename**:
|
||||
|
||||
- is written in **lower-case letters**
|
||||
- is **relevant** to the media's content. (E.g., :file:`screenshot-tips.gif`.)
|
||||
- separates its words with a **hyphen** ``-`` (E.g., :file:`awesome-filename.png`.)
|
||||
|
||||
Each document has its own folder in which the media files are located. The folder's name must be the
|
||||
same as the document's filename.
|
||||
|
||||
For example, the document :file:`doc_filename.rst` refers to two images that are placed in the
|
||||
folder ``doc_filename``.
|
||||
|
||||
::
|
||||
|
||||
├── section
|
||||
│ └── doc_filename
|
||||
│ │ └── screenshot-tips.gif
|
||||
│ │ └── awesome-filename.png
|
||||
│ └── doc_filename.rst
|
||||
|
||||
.. note::
|
||||
Previously, image filenames would mostly be named with numbers (e.g., :file:`feature01.png`) and
|
||||
placed in a single ``media`` folder. While it is advised not to name your *new* images in that
|
||||
fashion, it is also essential **not to rename unchanged files**, as doing this would double the
|
||||
weight of renamed image files on the repository. They will eventually all be replaced as the
|
||||
content referencing those images is updated.
|
||||
|
||||
.. _contributing/alt-tags:
|
||||
|
||||
ALT tags
|
||||
|
@ -1,29 +1,30 @@
|
||||
==============================================
|
||||
How to adapt the prices to my website visitors
|
||||
==============================================
|
||||
================================
|
||||
Adapt prices to website visitors
|
||||
================================
|
||||
|
||||
This section sheds some light on pricing features of eCommerce app:
|
||||
This section sheds light on pricing features found in the eCommerce app:
|
||||
|
||||
* force a price by geo-localization,
|
||||
|
||||
* let the customer choose the currency.
|
||||
|
||||
As a pre-requisite, check out how to managing produt pricing:
|
||||
As a pre-requisite, check out how to managing product pricing:
|
||||
:doc:`../../sales/products_prices/prices/pricing`).
|
||||
|
||||
Geo-IP to automatically apply the right price
|
||||
================================================
|
||||
Geo-IP automatically applies the right price
|
||||
============================================
|
||||
|
||||
Assign country groups to your pricelists. That way, your visitors not yet
|
||||
logged in will get their own currency when landing on your website.
|
||||
Assign country groups to your pricelists. That way, visitors who aren't
|
||||
logged in yet will get their own currency when landing on your website.
|
||||
|
||||
Once logged in, they get the pricelist matching their country.
|
||||
|
||||
Currency selector
|
||||
=================
|
||||
|
||||
In case you sell in several currencies, you can let your customers choose
|
||||
their own currency. Check *Selectable* to add the pricelist to the website drop-down menu.
|
||||
In the case that you sell in several currencies, you can let your customers choose
|
||||
their own. Check the *Selectable* box to add the pricelist to the website drop-down menu, which
|
||||
can be found in *Pricelists* under the *Products* menu, located in the Website application.
|
||||
|
||||
.. image:: ./media/website_pricelist_select.png
|
||||
:align: center
|
||||
|
@ -31,15 +31,3 @@ We advise that:
|
||||
`idempotent <https://stackoverflow.com/a/1077421/3332416>`_: they must not
|
||||
cause side-effects if they are started more often than expected.
|
||||
|
||||
|
||||
Can you install `pycups <https://pypi.org/project/pycups/>`_ or some similar library linked to `CUPS <https://www.cups.org/>`_ ?
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Several community apps for Odoo list ``pycups`` as required dependency.
|
||||
|
||||
- ``pycups`` is a set of Python bindings for the libcups library. They are meant to integrate your computer with a local printing server.
|
||||
- CUPS is a printing server meant to be used for printers on the same local network as the Odoo server.
|
||||
|
||||
We consider adding new system packages as long as they are indeed used.
|
||||
Regarding ``pycups``, you won't be able to configure a printer in the local network of your Odoo.sh server.
|
||||
|
||||
|
@ -1,43 +1,43 @@
|
||||
===================================================
|
||||
How to import products with categories and variants
|
||||
How to import Products with Categories and Variants
|
||||
===================================================
|
||||
|
||||
Import templates are provided in the import tool of the most common data to
|
||||
Import templates are provided in the **Import Tool** of the most common data to
|
||||
import (contacts, products, bank statements, etc.).
|
||||
You can open them with any spreadsheets software (Microsoft Office,
|
||||
You can open them with any spreadsheet software (Microsoft Office,
|
||||
OpenOffice, Google Drive, etc.).
|
||||
|
||||
How to customize the file
|
||||
=========================
|
||||
|
||||
* Remove columns you don't need. We advise to not remove the *ID* one (see
|
||||
why here below).
|
||||
* Remove columns you don't need. However, we advise you to not remove the *ID* column (see
|
||||
why below).
|
||||
* Set a unique ID to every single record by dragging down the ID sequencing.
|
||||
* Don't change labels of columns you want to import. Otherwise Odoo won't recognize
|
||||
them anymore and you will have to map them on your own in the import screen.
|
||||
* To add new columns,Feel free to add new columns but the fields need to exist in Odoo. If Odoo fails
|
||||
in matching the column name with a field, you can make it manually when importing
|
||||
* Don't change the labels of columns you want to import. Otherwise, Odoo won't recognize
|
||||
them anymore, and you will have to map them on your own in the import screen.
|
||||
* Feel free to add new columns, but the fields need to exist in Odoo. If Odoo fails
|
||||
in matching the column name with a field, you can match it manually when importing
|
||||
by browsing a list of available fields.
|
||||
|
||||
|
||||
Why an “ID” column
|
||||
==================
|
||||
Why an “ID” column?
|
||||
===================
|
||||
|
||||
The ID is an unique identifier for the line item. Feel free to use the one of your
|
||||
previous software to ease the transition to Odoo.
|
||||
The ID is a truly unique identifier for the line item. Feel free to use one of your
|
||||
previous software to ease the transition into Odoo.
|
||||
|
||||
Setting an ID is not mandatory when importing but it helps in many cases:
|
||||
Setting an ID is not mandatory when importing, but it helps in many cases:
|
||||
|
||||
* Update imports: you can import the same file several times without creating duplicates;
|
||||
* Update imports: you can import the same file several times without creating duplicates.
|
||||
* Import relation fields (see here below).
|
||||
|
||||
How to import relation fields
|
||||
=============================
|
||||
|
||||
An Odoo object is always related to many other objects (e.g. a product is linked
|
||||
to product categories, attributes, vendors, etc.). To import those relations you need to
|
||||
An Odoo object is always related to many other objects (e.g., a product is linked
|
||||
to product categories, attributes, vendors, etc.). To import those relations, you need to
|
||||
import the records of the related object first from their own list menu.
|
||||
|
||||
You can do it using either the name of the related record or its ID. The ID is expected when
|
||||
two records have the same name. In such a case add " / ID" at the end of the column title
|
||||
(e.g. for product attributes: Product Attributes / Attribute / ID).
|
||||
You can do this using the name of the related record or its ID. The ID is expected when
|
||||
two records have the same name. In such a case, add " / ID" at the end of the column title
|
||||
(e.g., for product attributes: Product Attributes / Attribute / ID).
|
||||
|
Loading…
Reference in New Issue
Block a user