[MERGE] Forward-port of branch 12.0 to 13.0
This commit is contained in:
commit
40afc9d9f0
2
conf.py
2
conf.py
@ -131,7 +131,7 @@ github_project = 'documentation'
|
|||||||
|
|
||||||
locale_dirs = ['../locale/']
|
locale_dirs = ['../locale/']
|
||||||
|
|
||||||
# custom docname_to_domain to devide the translations of applications in subdirectories
|
# custom docname_to_domain to divide the translations of applications in subdirectories
|
||||||
sphinx.transforms.i18n.docname_to_domain = (
|
sphinx.transforms.i18n.docname_to_domain = (
|
||||||
sphinx.util.i18n.docname_to_domain
|
sphinx.util.i18n.docname_to_domain
|
||||||
) = lambda docname, compact: docname.split('/')[1 if docname.startswith('applications/') else 0]
|
) = lambda docname, compact: docname.split('/')[1 if docname.startswith('applications/') else 0]
|
||||||
|
@ -14,7 +14,7 @@ button.
|
|||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
Make sure you are connected as the administrator of the database you
|
Make sure you are connected as the administrator of the database you
|
||||||
want to manage - many operations depends on indentifying you remotely to that
|
want to manage - many operations depends on identifying you remotely to that
|
||||||
database.
|
database.
|
||||||
|
|
||||||
Several actions are available:
|
Several actions are available:
|
||||||
@ -113,7 +113,7 @@ receive an e-mail with the URL of the test database.
|
|||||||
|
|
||||||
**Testing your database is the most important step of the upgrade process!**
|
**Testing your database is the most important step of the upgrade process!**
|
||||||
Even though we test all upgrades manually, we do not know your work processes.
|
Even though we test all upgrades manually, we do not know your work processes.
|
||||||
A change in standard worfklows of Odoo in new versions might require you to
|
A change in standard workflows of Odoo in new versions might require you to
|
||||||
change internal processes, or some of the customizations you made through Odoo
|
change internal processes, or some of the customizations you made through Odoo
|
||||||
Studio might not work properly. *It is up to you to make sure that everything
|
Studio might not work properly. *It is up to you to make sure that everything
|
||||||
works as it should!* You can report issues with your test database through our
|
works as it should!* You can report issues with your test database through our
|
||||||
|
@ -69,7 +69,7 @@ in ``/etc/odoo.conf`` set:
|
|||||||
of securing your deployment.
|
of securing your deployment.
|
||||||
Once it is correctly working and only matching a single database per hostname, it
|
Once it is correctly working and only matching a single database per hostname, it
|
||||||
is strongly recommended to block access to the database manager screens,
|
is strongly recommended to block access to the database manager screens,
|
||||||
and to use the ``--no-database-list`` startup paramater to prevent listing
|
and to use the ``--no-database-list`` startup parameter to prevent listing
|
||||||
your databases, and to block access to the database management screens.
|
your databases, and to block access to the database management screens.
|
||||||
See also security_.
|
See also security_.
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ SSL Between Odoo and PostgreSQL
|
|||||||
|
|
||||||
Since Odoo 11.0, you can enforce ssl connection between Odoo and PostgreSQL.
|
Since Odoo 11.0, you can enforce ssl connection between Odoo and PostgreSQL.
|
||||||
in Odoo the db_sslmode control the ssl security of the connection
|
in Odoo the db_sslmode control the ssl security of the connection
|
||||||
with value choosed out of 'disable', 'allow', 'prefer', 'require', 'verify-ca'
|
with value chosen out of 'disable', 'allow', 'prefer', 'require', 'verify-ca'
|
||||||
or 'verify-full'
|
or 'verify-full'
|
||||||
|
|
||||||
`PostgreSQL Doc <https://www.postgresql.org/docs/current/static/libpq-ssl.html>`_
|
`PostgreSQL Doc <https://www.postgresql.org/docs/current/static/libpq-ssl.html>`_
|
||||||
@ -386,7 +386,7 @@ notifications.
|
|||||||
|
|
||||||
The solutions to support livechat/motifications in a WSGI application are:
|
The solutions to support livechat/motifications in a WSGI application are:
|
||||||
|
|
||||||
* Deploy a threaded version of Odoo (instread of a process-based preforking
|
* Deploy a threaded version of Odoo (instead of a process-based preforking
|
||||||
one) and redirect only requests to URLs starting with ``/longpolling/`` to
|
one) and redirect only requests to URLs starting with ``/longpolling/`` to
|
||||||
that Odoo, this is the simplest and the longpolling URL can double up as
|
that Odoo, this is the simplest and the longpolling URL can double up as
|
||||||
the cron instance.
|
the cron instance.
|
||||||
|
@ -46,7 +46,7 @@ Then, you will have to provide your credentials to connect to PayPal.
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Your Paypal **must be in English** (if it is not the case you must change
|
Your Paypal **must be in English** (if it is not the case you must change
|
||||||
the langage of your Paypal account) and if you use a Paypal business account
|
the language of your Paypal account) and if you use a Paypal business account
|
||||||
you must switch back to the old interface in order for it to work with
|
you must switch back to the old interface in order for it to work with
|
||||||
Online feeds (you can switch from new to old interface in your Paypal account).
|
Online feeds (you can switch from new to old interface in your Paypal account).
|
||||||
|
|
||||||
|
@ -283,7 +283,7 @@ process in Odoo, this considerations to understand the behavior are important.
|
|||||||
**1.1. How can I generate an invoice with payment term `PUE`?**
|
**1.1. How can I generate an invoice with payment term `PUE`?**
|
||||||
|
|
||||||
`According to the SAT documentation`_ a payment is classified as ``PUE`` if
|
`According to the SAT documentation`_ a payment is classified as ``PUE`` if
|
||||||
it was agreed that the invoice would be fully payed before the 1st of the
|
it was agreed that the invoice would be fully paid before the 1st of the
|
||||||
next calendar month (the month after the one in the CFDI date); any other
|
next calendar month (the month after the one in the CFDI date); any other
|
||||||
condition will generate a ``PPD`` invoice.
|
condition will generate a ``PPD`` invoice.
|
||||||
|
|
||||||
@ -655,7 +655,7 @@ generic one with no explanation.
|
|||||||
'{http://www.sat.gob.mx/sitio_internet/cfd/catalogos}c_TipoRelacion' does
|
'{http://www.sat.gob.mx/sitio_internet/cfd/catalogos}c_TipoRelacion' does
|
||||||
not resolve to a(n) simple type definition., line 36``
|
not resolve to a(n) simple type definition., line 36``
|
||||||
|
|
||||||
This can be caused by a database backup restored in anothe server,
|
This can be caused by a database backup restored in another server,
|
||||||
or when the XSD files are not correctly downloaded. Follow the same steps
|
or when the XSD files are not correctly downloaded. Follow the same steps
|
||||||
as above but:
|
as above but:
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ This form is the same as :ref:`the one presented in the Accounting onboarding ba
|
|||||||
Invoice Layout
|
Invoice Layout
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
With this tool, you can design the appearance of your documents by selecting which layout tamplate,
|
With this tool, you can design the appearance of your documents by selecting which layout template,
|
||||||
paper format, colors, font, and logo you want to use.
|
paper format, colors, font, and logo you want to use.
|
||||||
|
|
||||||
You can also add your *Company Tagline* and the content of the documents’ *footer*. Note that Odoo
|
You can also add your *Company Tagline* and the content of the documents’ *footer*. Note that Odoo
|
||||||
|
663
content/applications/finance/accounting/localizations/mexico.rst
Normal file
663
content/applications/finance/accounting/localizations/mexico.rst
Normal file
@ -0,0 +1,663 @@
|
|||||||
|
======
|
||||||
|
Mexico
|
||||||
|
======
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
This documentation is written assuming that you follow and know the official
|
||||||
|
documentation regarding Invoicing, Sales and Accounting and that you have
|
||||||
|
experience working with odoo on such areas, we are not intended to put
|
||||||
|
here procedures that are already explained on those documents, just the
|
||||||
|
information necessary to allow you use odoo in a Company with the country
|
||||||
|
"Mexico" set.
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The mexican localization is a group of 3 modules:
|
||||||
|
|
||||||
|
1. **l10n_mx:** All basic data to manage the accounting, taxes and the
|
||||||
|
chart of account, this proposed chart of account installed is a intended
|
||||||
|
copy of the list of group codes offered by the `SAT`_.
|
||||||
|
2. **l10n_mx_edi**: All regarding to electronic transactions, CFDI 3.2 and 3.3,
|
||||||
|
payment complement, invoice addendum.
|
||||||
|
3. **l10n_mx_reports**: All mandatory electronic reports for electronic
|
||||||
|
accounting are here (Accounting app required).
|
||||||
|
|
||||||
|
With the Mexican localization in Odoo you will be able not just to comply
|
||||||
|
with the required features by law in México but to use it as your
|
||||||
|
accounting and invoicing system due to all the set of normal requirements for
|
||||||
|
this market, becoming your Odoo in the perfect solution to administer your
|
||||||
|
company in Mexico.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
After the configuration we will give you the process to test everything,
|
||||||
|
try to follow step by step in order to allow you to avoid expend time on
|
||||||
|
fix debugging problems. In any step you can recall the step and try again.
|
||||||
|
|
||||||
|
1. Install the Mexican Accounting Localization
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
|
For this, go in Apps and search for Mexico. Then click on *Install*.
|
||||||
|
|
||||||
|
.. image:: media/mexico01.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
When creating a database from www.odoo.com, if you choose Mexico
|
||||||
|
as country when creating your account, the mexican localization will be
|
||||||
|
automatically installed.
|
||||||
|
|
||||||
|
2. Electronic Invoices (CDFI 3.2 and 3.3 format)
|
||||||
|
------------------------------------------------
|
||||||
|
|
||||||
|
To enable this requirement in Mexico go to configuration in accounting Go in
|
||||||
|
:menuselection:`Accounting --> Settings` and enable the option on the image
|
||||||
|
with this you will be able to generate the signed invoice (CFDI 3.2 and 3.3)
|
||||||
|
and generate the payment complement signed as well (3.3 only) all fully
|
||||||
|
integrate with the normal invoicing flow in Odoo.
|
||||||
|
|
||||||
|
.. image:: media/mexico02.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
.. _mx-legal-info:
|
||||||
|
|
||||||
|
3. Set you legal information in the company
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
First, make sure that your company is configured with the correct data.
|
||||||
|
Go in :menuselection:`Settings --> Users --> Companies`
|
||||||
|
and enter a valid address and VAT for
|
||||||
|
your company. Don’t forget to define a mexican fiscal position on your
|
||||||
|
company’s contact.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
If you want use the Mexican localization on test mode, you can put any known
|
||||||
|
address inside Mexico with all fields for the company address and
|
||||||
|
set the vat to **EKU9003173C9**.
|
||||||
|
|
||||||
|
.. image:: media/mexico03.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
From a legal point of view, a Mexican company must use the local currency (MXN).
|
||||||
|
Therefore, Odoo does not provide features to manage an alternative configuration.
|
||||||
|
If you want to manage another currency, let MXN be the default currency and use
|
||||||
|
price list instead.
|
||||||
|
|
||||||
|
4. Set the proper "Fiscal Position" on the partner that represent the company
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Go In the same form where you are editing the company save the record in
|
||||||
|
order to set this form as a readonly and on readonly view click on the partner
|
||||||
|
link, then edit it and set in the *Invoicing* tab the proper Fiscal Information
|
||||||
|
(for the **Test Environment** this must be *601 - General de Ley Personas
|
||||||
|
Morales*, just search it as a normal Odoo field if you can't see the option).
|
||||||
|
|
||||||
|
5. Enabling CFDI Version 3.3
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
This steps are only necessary when you will enable the CFDI 3.3 (only available
|
||||||
|
for V11.0 and above) if you do not have Version 11.0 or above on your
|
||||||
|
SaaS instance please ask for an upgrade sending a ticket to support in
|
||||||
|
https://www.odoo.com/help.
|
||||||
|
|
||||||
|
Enable debug mode:
|
||||||
|
|
||||||
|
.. image:: media/mexico10.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Go and look the following technical parameter, on
|
||||||
|
:menuselection:`Settings --> Technical --> Parameters --> System Parameters`
|
||||||
|
and set the parameter called *l10n_mx_edi_cfdi_version* to 3.3 (Create it if
|
||||||
|
the entry with this name does not exist).
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
The CFDI 3.2 will be legally possible until November 30th 2017 enable the
|
||||||
|
3.3 version will be a mandatory step to comply with the new `SAT resolution`_
|
||||||
|
in any new database created since v11.0 released CFDI 3.3 is the default
|
||||||
|
behavior.
|
||||||
|
|
||||||
|
.. image:: media/mexico11.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Important considerations when yo enable the CFDI 3.3
|
||||||
|
====================================================
|
||||||
|
|
||||||
|
Your tax which represent the VAT 16% and 0% must have the "Factor Type" field
|
||||||
|
set to "Tasa".
|
||||||
|
|
||||||
|
.. image:: media/mexico12.png
|
||||||
|
:align: center
|
||||||
|
.. image:: media/mexico13.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
You must go to the Fiscal Position configuration and set the proper code (it is
|
||||||
|
the first 3 numbers in the name) for example for the test one you should set
|
||||||
|
601, it will look like the image.
|
||||||
|
|
||||||
|
.. image:: media/mexico14.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
All products must have for CFDI 3.3 the "SAT code" and the field "Reference"
|
||||||
|
properly set, you can export them and re import them to do it faster.
|
||||||
|
|
||||||
|
.. image:: media/mexico15.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
6. Configure the PAC in order to sign properly the invoices
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
To configure the EDI with the **PACs**, you can go in
|
||||||
|
:menuselection:`Accounting --> Settings --> Electronic Invoicing (MX)`.
|
||||||
|
You can choose a PAC within the **List of supported PACs** on the *PAC field*
|
||||||
|
and then enter your PAC username and PAC password.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
Remember you must sign up in the refereed PAC before hand, that process
|
||||||
|
can be done with the PAC itself on this case we will have two
|
||||||
|
(2) availables `Finkok`_ and `Solución Factible`_.
|
||||||
|
|
||||||
|
You must process your **Private Key (CSD)** with the SAT institution before
|
||||||
|
follow this steps, if you do not have such information please try all the
|
||||||
|
"Steps for Test" and come back to this process when you finish the process
|
||||||
|
proposed for the SAT in order to set this information for your production
|
||||||
|
environment with real transactions.
|
||||||
|
|
||||||
|
.. image:: media/mexico04.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
If you ticked the box *MX PAC test environment* there is no need
|
||||||
|
to enter a PAC username or password.
|
||||||
|
|
||||||
|
.. image:: media/mexico05.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
Here is a SAT certificate you can use if you want to use the *Test
|
||||||
|
Environment* for the Mexican Accounting Localization.
|
||||||
|
|
||||||
|
:download:` Certificate <files/certificate.cer>`
|
||||||
|
:download:` Certificate Key <files/certificate.key>`
|
||||||
|
- **Password:** 12345678a
|
||||||
|
|
||||||
|
7. Configure the tag in sales taxes
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
This tag is used to set the tax type code, transferred or withhold, applicable
|
||||||
|
to the concept in the CFDI.
|
||||||
|
So, if the tax is a sale tax the "Tag" field should be "IVA", "ISR" or "IEPS".
|
||||||
|
|
||||||
|
.. image:: media/mexico33.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Note that the default taxes already has a tag assigned, but when you create a
|
||||||
|
new tax you should choose a tag.
|
||||||
|
|
||||||
|
Usage and testing
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Invoicing
|
||||||
|
---------
|
||||||
|
|
||||||
|
To use the mexican invoicing you just need to do a normal invoice following
|
||||||
|
the normal Odoo's behaviour.
|
||||||
|
|
||||||
|
Once you validate your first invoice a correctly signed invoice should look
|
||||||
|
like this:
|
||||||
|
|
||||||
|
|
||||||
|
.. image:: media/mexico07.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
You can generate the PDF just clicking on the Print button on the invoice or
|
||||||
|
sending it by email following the normal process on odoo to send your invoice
|
||||||
|
by email.
|
||||||
|
|
||||||
|
.. image:: media/mexico08.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Once you send the electronic invoice by email this is the way it should looks
|
||||||
|
like.
|
||||||
|
|
||||||
|
.. image:: media/mexico09.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Cancelling invoices
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
The cancellation process is completely linked to the normal cancellation in Odoo.
|
||||||
|
|
||||||
|
If the invoice is not paid.
|
||||||
|
|
||||||
|
- Go to to the customer invoice journal where the invoice belong to
|
||||||
|
|
||||||
|
.. image:: media/mexico28.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
.. image:: media/mexico29.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
- Check the "Allow cancelling entries" field
|
||||||
|
|
||||||
|
.. image:: media/mexico29.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
- Go back to your invoice and click on the button "Cancel Invoice"
|
||||||
|
|
||||||
|
.. image:: media/mexico30.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
- For security reasons it is recommendable return the check on the to allow
|
||||||
|
cancelling to false again, then go to the journal and un check such field.
|
||||||
|
|
||||||
|
**Legal considerations**
|
||||||
|
|
||||||
|
- A cancelled invoice will automatically cancelled on the SAT.
|
||||||
|
- If you retry to use the same invoice after cancelled, you will have as much
|
||||||
|
cancelled CFDI as you tried, then all those xml are important to maintain a
|
||||||
|
good control of the cancellation reasons.
|
||||||
|
- You must unlink all related payment done to an invoice on odoo before
|
||||||
|
cancel such document, this payments must be cancelled to following the same
|
||||||
|
approach but setting the "Allow Cancel Entries" in the payment itself.
|
||||||
|
|
||||||
|
Payments (Just available for CFDI 3.3)
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
To generate the payment complement you only need to follow the normal payment
|
||||||
|
process in Odoo, this considerations to understand the behavior are important.
|
||||||
|
|
||||||
|
1. To generate payment complement the payment term in the invoice must be
|
||||||
|
PPD, because It is the expected behavior legally required for
|
||||||
|
"Cash payment".
|
||||||
|
|
||||||
|
**1.1. How can I generate an invoice with payment term `PUE`?**
|
||||||
|
|
||||||
|
`According to the SAT documentation`_ a payment is classified as ``PUE`` if
|
||||||
|
the invoice was agreed to be fully paid before the 17th of the next
|
||||||
|
calendar month (the next month of the CFDI date), any other condition
|
||||||
|
will generate a ``PPD`` invoice.
|
||||||
|
|
||||||
|
**1.2. How can I get this with Odoo?**
|
||||||
|
|
||||||
|
In order to set the appropriate CFDI payment term (PPD or PUE), you can
|
||||||
|
easily set it by using the ``Payment Terms`` defined in the invoice.
|
||||||
|
|
||||||
|
- If an invoice is generated without ``Payment Term`` the attribute
|
||||||
|
``MetodoPago`` will be ``PUE``.
|
||||||
|
|
||||||
|
- Today, if is the first day of the month and is generated an invoice with
|
||||||
|
``Payment Term`` ``30 Net Days`` the ``Due Date`` calculated is going to
|
||||||
|
be the first day of the following month, this means its before the 17th
|
||||||
|
of the next month, then the attribute ``MetodoPago`` will be ``PUE``.
|
||||||
|
|
||||||
|
- Today, if an invoice is generated with ``Payment Term`` ``30 Net Days``
|
||||||
|
and the ``Due Date`` is higher than the day 17 of the next month the
|
||||||
|
``MetodoPago`` will be ``PPD``.
|
||||||
|
|
||||||
|
- If having a ``Payment Term`` with 2 lines or more, for example
|
||||||
|
``30% Advance End of Following Month``, this is an installments term,
|
||||||
|
then the attribute ``MetodoPago`` will be ``PPD``.
|
||||||
|
|
||||||
|
2. To test a normal signed payment just create an invoice with payment term
|
||||||
|
``30% Advance End of Following Month`` and then register a payment to it.
|
||||||
|
3. You must print the payment in order to retrieve the PDF properly.
|
||||||
|
4. Regarding the "Payments in Advance" you must create a proper invoice with
|
||||||
|
the payment in advance itself as a product line setting the proper SAT code
|
||||||
|
following the procedure on the official documentation `given by the SAT`_
|
||||||
|
in the section **Apéndice 2 Procedimiento para la emisión de los CFDI en el
|
||||||
|
caso de anticipos recibidos**.
|
||||||
|
5. Related to topic 4 it is blocked the possibility to create a Customer
|
||||||
|
Payment without a proper invoice.
|
||||||
|
|
||||||
|
Accounting
|
||||||
|
----------
|
||||||
|
The accounting for Mexico in odoo is composed by 3 reports:
|
||||||
|
|
||||||
|
1. Chart of Account (Called and shown as COA).
|
||||||
|
2. Electronic Trial Balance.
|
||||||
|
3. DIOT report.
|
||||||
|
|
||||||
|
1 and 2 are considered as the electronic accounting, and the DIOT is a report
|
||||||
|
only available on the context of the accounting.
|
||||||
|
|
||||||
|
You can find all those reports in the original report menu on Accounting app.
|
||||||
|
|
||||||
|
.. image:: media/mexico16.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Electronic Accounting (Requires Accounting App)
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
Electronic Chart of account CoA
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
The electronic accounting never has been easier, just go to
|
||||||
|
:menuselection:`Accounting --> Reporting --> Mexico --> COA` and click on the
|
||||||
|
button **Export for SAT (XML)**
|
||||||
|
|
||||||
|
.. image:: media/mexico19.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
**How to add new accounts?**
|
||||||
|
|
||||||
|
If you add an account with the coding convention NNN.YY.ZZ where NNN.YY is a
|
||||||
|
SAT coding group then your account will be automatically configured.
|
||||||
|
|
||||||
|
Example to add an Account for a new Bank account go to
|
||||||
|
:menuselection:`Accounting --> Settings --> Chart of Account` and then create
|
||||||
|
a new account on the button "Create" and try to create an account with the
|
||||||
|
number 102.01.99 once you change to set the name you will see a tag
|
||||||
|
automatically set, the tags set are the one picked to be used in the COA on
|
||||||
|
xml.
|
||||||
|
|
||||||
|
.. image:: media/mexico20.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
**What is the meaning of the tag?**
|
||||||
|
|
||||||
|
To know all possible tags you can read the `Anexo 24`_ in the SAT
|
||||||
|
website on the section called **Código agrupador de cuentas del SAT**.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
When you install the module l10n_mx and yous Chart of Account rely on it
|
||||||
|
(this happen automatically when you install setting Mexico as country on
|
||||||
|
your database) then you will have the more common tags if the tag you need
|
||||||
|
is not created you can create one on the fly.
|
||||||
|
|
||||||
|
Electronic Trial Balance
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Exactly as the COA but with Initial balance debit and credit, once you have
|
||||||
|
your coa properly set you can go to :menuselection:`Accounting --> Reports --> Mexico --> Trial Balance`
|
||||||
|
this is automatically generated, and can be exported to XML using the button
|
||||||
|
in the top **Export for SAT (XML)** with the previous selection of the
|
||||||
|
period you want to export.
|
||||||
|
|
||||||
|
.. image:: media/mexico21.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
All the normal auditory and analysis features are available here also as any
|
||||||
|
regular Odoo Report.
|
||||||
|
|
||||||
|
DIOT Report (Requires Accounting App)
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
**What is the DIOT and the importance of presenting it SAT**
|
||||||
|
|
||||||
|
When it comes to procedures with the SAT Administration Service we know that
|
||||||
|
we should not neglect what we present. So that things should not happen in Odoo.
|
||||||
|
|
||||||
|
The DIOT is the Informational Statement of Operations with Third Parties (DIOT),
|
||||||
|
which is an an additional obligation with the VAT, where we must give the status
|
||||||
|
of our operations to third parties, or what is considered the same, with our
|
||||||
|
providers.
|
||||||
|
|
||||||
|
This applies both to individuals and to the moral as well, so if we have VAT
|
||||||
|
for submitting to the SAT and also dealing with suppliers it is necessary to.
|
||||||
|
submit the DIOT:
|
||||||
|
|
||||||
|
**When to file the DIOT and in what format?**
|
||||||
|
|
||||||
|
It is simple to present the DIOT, since like all format this you can obtain
|
||||||
|
it in the page of the SAT, it is the electronic format A-29 that you can find
|
||||||
|
in the SAT website.
|
||||||
|
|
||||||
|
Every month if you have operations with third parties it is necessary to
|
||||||
|
present the DIOT, just as we do with VAT, so that if in January we have deals
|
||||||
|
with suppliers, by February we must present the information pertinent to
|
||||||
|
said data.
|
||||||
|
|
||||||
|
**Where the DIOT is presented?**
|
||||||
|
|
||||||
|
You can present DIOT in different ways, it is up to you which one you will
|
||||||
|
choose and which will be more comfortable for you than you will present every
|
||||||
|
month or every time you have dealings with suppliers.
|
||||||
|
|
||||||
|
The A-29 format is electronic so you can present it on the SAT page, but this
|
||||||
|
after having made up to 500 records.
|
||||||
|
|
||||||
|
Once these 500 records are entered in the SAT, you must present them to the
|
||||||
|
Local Taxpayer Services Administration (ALSC) with correspondence to your tax
|
||||||
|
address, these records can be presented in a digital storage medium such as a
|
||||||
|
CD or USB, which once validated you will be returned, so do not doubt that you
|
||||||
|
will still have these records and of course, your CD or USB.
|
||||||
|
|
||||||
|
**One more fact to know: the Batch load?**
|
||||||
|
|
||||||
|
When reviewing the official SAT documents on DIOT, you will find the Batch
|
||||||
|
load, and of course the first thing we think is what is that ?, and according
|
||||||
|
to the SAT site is:
|
||||||
|
|
||||||
|
The "batch upload" is the conversion of records databases of transactions with
|
||||||
|
suppliers made by taxpayers in text files (.txt). These files have the
|
||||||
|
necessary structure for their application and importation into the system of
|
||||||
|
the Informative Declaration of Operations with third parties, avoiding the
|
||||||
|
direct capture and consequently, optimizing the time invested in its
|
||||||
|
integration for the presentation in time and form to the SAT.
|
||||||
|
|
||||||
|
You can use it to present the DIOT, since it is allowed, which will make this
|
||||||
|
operation easier for you, so that it does not exist to avoid being in line
|
||||||
|
with the SAT in regard to the Information Statement of Operations with
|
||||||
|
Third Parties.
|
||||||
|
|
||||||
|
You can find the `official information here`_.
|
||||||
|
|
||||||
|
**How Generate this report in odoo?**
|
||||||
|
|
||||||
|
- Go to :menuselection:`Accounting --> Reports --> Mexico --> Transactions with third partied (DIOT)`.
|
||||||
|
|
||||||
|
.. image:: media/mexico23.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
- A report view is shown, select last month to report the immediate before
|
||||||
|
month you are or left the current month if it suits to you.
|
||||||
|
|
||||||
|
.. image:: media/mexico25.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
- Click on "Export (TXT).
|
||||||
|
|
||||||
|
.. image:: media/mexico24.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
- Save in a secure place the downloaded file and go to SAT website and follow
|
||||||
|
the necessary steps to declare it.
|
||||||
|
|
||||||
|
Important considerations on your Supplier and Invice data for the DIOT
|
||||||
|
======================================================================
|
||||||
|
|
||||||
|
- All suppliers must have set the fields on the accounting tab called "DIOT
|
||||||
|
Information", the *L10N Mx Nationality* field is filled with just select the
|
||||||
|
proper country in the address, you do not need to do anything else there, but
|
||||||
|
the *L10N Mx Type Of Operation* must be filled by you in all your suppliers.
|
||||||
|
|
||||||
|
.. image:: media/mexico22.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
- There are 3 options of VAT for this report, 16%, 0% and exempt, an invoice
|
||||||
|
line in odoo is considered exempt if no tax on it, the other 2 taxes are
|
||||||
|
properly configured already.
|
||||||
|
- Remember to pay an invoice which represent a payment in advance you must
|
||||||
|
ask for the invoice first and then pay it and reconcile properly the payment
|
||||||
|
following standard odoo procedure.
|
||||||
|
- You do not need all you data on partners filled to try to generate the
|
||||||
|
supplier invoice, you can fix this information when you generate the report
|
||||||
|
itself.
|
||||||
|
- Remember this report only shows the Supplier Invoices that were actually paid.
|
||||||
|
|
||||||
|
If some of this considerations are not taken into account a message like this
|
||||||
|
will appear when generate the DIOT on TXT with all the partners you need to
|
||||||
|
check on this particular report, this is the reason we recommend use this
|
||||||
|
report not just to export your legal obligation but to generate it before
|
||||||
|
the end of the month and use it as your auditory process to see all your
|
||||||
|
partners are correctly set.
|
||||||
|
|
||||||
|
.. image:: media/mexico26.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Extra Recommended features
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Contact Module (Free)
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
If you want to administer properly your customers, suppliers and addresses
|
||||||
|
this module even if it is not a technical need, it is highly recommended to
|
||||||
|
install.
|
||||||
|
|
||||||
|
Multi currency (Requires Accounting App)
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
In Mexico almost all companies send and receive payments in different
|
||||||
|
currencies if you want to manage such capability you should enable the multi
|
||||||
|
currency feature and you should enable the synchronization with **Banxico**,
|
||||||
|
such feature allow you retrieve the proper exchange rate automatically
|
||||||
|
retrieved from SAT and not being worried of put such information daily in the
|
||||||
|
system manually.
|
||||||
|
|
||||||
|
Go to settings and enable the multi currency feature.
|
||||||
|
|
||||||
|
.. image:: media/mexico17.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Enabling Explicit errors on the CFDI using the XSD local validator (CFDI 3.3)
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Frequently you want receive explicit errors from the fields incorrectly set
|
||||||
|
on the xml, those errors are better informed to the user if the check is
|
||||||
|
enable, to enable the Check with xsd feature follow the next steps (with
|
||||||
|
debug mode enabled).
|
||||||
|
|
||||||
|
- Go to :menuselection:`Settings --> Technical --> Actions --> Server Actions`
|
||||||
|
- Look for the Action called "Download XSD files to CFDI"
|
||||||
|
- Click on button "Create Contextual Action"
|
||||||
|
- Go to the company form :menuselection:`Settings --> Users&Companies --> Companies`
|
||||||
|
- Open any company you have.
|
||||||
|
- Click on "Action" and then on "Download XSD file to CFDI".
|
||||||
|
|
||||||
|
.. image:: media/mexico18.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Now you can make an invoice with any error (for example a product without
|
||||||
|
code which is pretty common) and an explicit error will be shown instead a
|
||||||
|
generic one with no explanation.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
If you see an error like this:
|
||||||
|
|
||||||
|
The cfdi generated is not valid
|
||||||
|
|
||||||
|
attribute decl. 'TipoRelacion', attribute 'type': The QName value
|
||||||
|
'{http://www.sat.gob.mx/sitio_internet/cfd/catalogos}c_TipoRelacion' does
|
||||||
|
not resolve to a(n) simple type definition., line 36
|
||||||
|
|
||||||
|
This can be caused because of a database backup restored in another server,
|
||||||
|
or when the XSD files are not correctly downloaded. Follow the same steps
|
||||||
|
as above but:
|
||||||
|
|
||||||
|
- Go to the company in which the error occurs.
|
||||||
|
- Click on "Action" and then on "Download XSD file to CFDI".
|
||||||
|
|
||||||
|
|
||||||
|
FAQ
|
||||||
|
~~~
|
||||||
|
|
||||||
|
- **Error message** (Only applicable on CFDI 3.3):
|
||||||
|
|
||||||
|
:9:0:ERROR:SCHEMASV:SCHEMAV_CVC_MINLENGTH_VALID: Element '{http://www.sat.gob.mx/cfd/3}Concepto', attribute 'NoIdentificacion': [facet 'minLength'] The value '' has a length of '0'; this underruns the allowed minimum length of '1'.
|
||||||
|
|
||||||
|
:9:0:ERROR:SCHEMASV:SCHEMAV_CVC_PATTERN_VALID: Element '{http://www.sat.gob.mx/cfd/3}Concepto', attribute 'NoIdentificacion': [facet 'pattern'] The value '' is not accepted by the pattern '[^|]{1,100}'.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
**Solution:** You forget to set the proper "Reference" field in the product,
|
||||||
|
please go to the product form and set your internal reference properly.
|
||||||
|
|
||||||
|
- **Error message**:
|
||||||
|
|
||||||
|
:6:0:ERROR:SCHEMASV:SCHEMAV_CVC_COMPLEX_TYPE_4: Element '{http://www.sat.gob.mx/cfd/3}RegimenFiscal': The attribute 'Regimen' is required but missing.
|
||||||
|
|
||||||
|
:5:0:ERROR:SCHEMASV:SCHEMAV_CVC_COMPLEX_TYPE_4: Element '{http://www.sat.gob.mx/cfd/3}Emisor': The attribute 'RegimenFiscal' is required but missing.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
**Solution:** You forget to set the proper "Fiscal Position" on the
|
||||||
|
partner of the company, go to customers, remove the customer filter and
|
||||||
|
look for the partner called as your company and set the proper fiscal
|
||||||
|
position which is the kind of business you company does related to SAT
|
||||||
|
list of possible values, antoher option can be that you forgot follow the
|
||||||
|
considerations about fiscal positions.
|
||||||
|
|
||||||
|
Yo must go to the Fiscal Position configuration and set the proper code (it is
|
||||||
|
the first 3 numbers in the name) for example for the test one you should set
|
||||||
|
601, it will look like the image.
|
||||||
|
|
||||||
|
.. image:: media/mexico27.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
For testing purposes this value must be *601 - General de Ley Personas Morales*
|
||||||
|
which is the one required for the demo VAT.
|
||||||
|
|
||||||
|
- **Error message**:
|
||||||
|
|
||||||
|
:2:0:ERROR:SCHEMASV:SCHEMAV_CVC_ENUMERATION_VALID: Element '{http://www.sat.gob.mx/cfd/3}Comprobante', attribute 'FormaPago': [facet 'enumeration'] The value '' is not an element of the set {'01', '02', '03', '04', '05', '06', '08', '12', '13', '14', '15', '17', '23', '24', '25', '26', '27', '28', '29', '30', '99'}
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
**Solution:** The payment method is required on your invoice.
|
||||||
|
|
||||||
|
.. image:: media/mexico31.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
- **Error message**:
|
||||||
|
|
||||||
|
:2:0:ERROR:SCHEMASV:SCHEMAV_CVC_ENUMERATION_VALID: Element '{http://www.sat.gob.mx/cfd/3}Comprobante', attribute 'LugarExpedicion': [facet 'enumeration'] The value '' is not an element of the set {'00
|
||||||
|
:2:0:ERROR:SCHEMASV:SCHEMAV_CVC_DATATYPE_VALID_1_2_1: Element '{http://www.sat.gob.mx/cfd/3}Comprobante', attribute 'LugarExpedicion': '' is not a valid value of the atomic type '{http://www.sat.gob.mx/sitio_internet/cfd/catalogos}c_CodigoPostal'.
|
||||||
|
:5:0:ERROR:SCHEMASV:SCHEMAV_CVC_COMPLEX_TYPE_4: Element '{http://www.sat.gob.mx/cfd/3}Emisor': The attribute 'Rfc' is required but missing.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
**Solution:** You must set the address on your company properly, this is a
|
||||||
|
mandatory group of fields, you can go to your company configuration on
|
||||||
|
:menuselection:`Settings --> Users & Companies --> Companies` and fill
|
||||||
|
all the required fields for your address following the step
|
||||||
|
:ref:`mx-legal-info`.
|
||||||
|
|
||||||
|
- **Error message**:
|
||||||
|
|
||||||
|
:2:0:ERROR:SCHEMASV:SCHEMAV_CVC_DATATYPE_VALID_1_2_1: Element '{http://www.sat.gob.mx/cfd/3}Comprobante', attribute 'LugarExpedicion': '' is not a valid value of the atomic type '{http://www.sat.gob.mx/sitio_internet/cfd/catalogos}c_CodigoPostal'.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
**Solution:** The postal code on your company address is not a valid one
|
||||||
|
for Mexico, fix it.
|
||||||
|
|
||||||
|
.. image:: media/mexico32.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
- **Error message**:
|
||||||
|
|
||||||
|
:18:0:ERROR:SCHEMASV:SCHEMAV_CVC_COMPLEX_TYPE_4: Element '{http://www.sat.gob.mx/cfd/3}Traslado': The attribute 'TipoFactor' is required but missing.
|
||||||
|
:34:0:ERROR:SCHEMASV:SCHEMAV_CVC_COMPLEX_TYPE_4: Element '{http://www.sat.gob.mx/cfd/3}Traslado': The attribute 'TipoFactor' is required but missing.", '')
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
**Solution:** Set the mexican name for the tax 0% and 16% in your system
|
||||||
|
and used on the invoice.
|
||||||
|
|
||||||
|
Your tax which represent the VAT 16% and 0% must have the "Factor Type" field
|
||||||
|
set to "Tasa".
|
||||||
|
|
||||||
|
.. image:: media/mexico12.png
|
||||||
|
:align: center
|
||||||
|
.. image:: media/mexico13.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
.. _SAT: http://www.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/Anexo24_05012015.pdf
|
||||||
|
.. _Finkok: https://www.finkok.com/contacto.html
|
||||||
|
.. _`Solución Factible`: https://solucionfactible.com/sf/v3/timbrado.jsp
|
||||||
|
.. _`SAT resolution`: http://sat.gob.mx/informacion_fiscal/factura_electronica/Paginas/Anexo_20_version3.3.aspx
|
||||||
|
.. _`According to the SAT documentation`: https://www.sat.gob.mx/cs/Satellite?blobcol=urldata&blobkey=id&blobtable=MungoBlobs&blobwhere=1461173400586&ssbinary=true
|
||||||
|
.. _`given by the SAT`: http://sat.gob.mx/informacion_fiscal/factura_electronica/Documents/GuiaAnexo20DPA.pdf
|
||||||
|
.. _`Anexo 24`: http://www.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/Anexo24_05012015.pdf
|
||||||
|
.. _`official information here`: http://www.sat.gob.mx/fichas_tematicas/declaraciones_informativas/Paginas/declaracion_informativa_terceros.aspx
|
@ -0,0 +1,141 @@
|
|||||||
|
========================
|
||||||
|
Manage your fixed assets
|
||||||
|
========================
|
||||||
|
|
||||||
|
The "Assets" module allows you to keep track of your fixed assets like
|
||||||
|
machinery, land and building. The module allows you to generate monthly
|
||||||
|
depreciation entries automatically, get depreciation board, sell or
|
||||||
|
dispose assets and perform reports on your company assets.
|
||||||
|
|
||||||
|
As an example, you may buy a car for $36,000 (gross value) and you plan
|
||||||
|
to amortize it over 36 months (3 years). Every months (periodicity),
|
||||||
|
Odoo will create a depreciation entry automatically reducing your assets
|
||||||
|
value by $1,000 and passing $1,000 as an expense. After 3 years, this
|
||||||
|
assets accounts for $0 (salvage value) in your balance sheet.
|
||||||
|
|
||||||
|
The different types of assets are grouped into "Assets Types" that
|
||||||
|
describe how to deprecate an asset. Here are two examples of assets
|
||||||
|
types:
|
||||||
|
|
||||||
|
- Building: 10 years, yearly linear depreciation
|
||||||
|
- Car: 5 years, monthly linear depreciation
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
=============
|
||||||
|
|
||||||
|
Install the Asset module
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Start by *installing the Asset module.*
|
||||||
|
|
||||||
|
Once the module is installed, you should see two new menus in the
|
||||||
|
accounting application:
|
||||||
|
|
||||||
|
- :menuselection:`Adviser --> Assets`
|
||||||
|
- :menuselection:`Configuration --> Asset Types`
|
||||||
|
|
||||||
|
Before registering your first asset, you must :ref:`define your Asset
|
||||||
|
Types <accounting/adviser/assets_management/defining>`.
|
||||||
|
|
||||||
|
.. _accounting/adviser/assets_management/defining:
|
||||||
|
|
||||||
|
Defining Asset Types
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Asset type are used to configure all information about an assets: asset
|
||||||
|
and deprecation accounts, amortization method, etc. That way, advisers
|
||||||
|
can configure asset types and users can further record assets without
|
||||||
|
having to provide any complex accounting information. They just need to
|
||||||
|
provide an asset type on the supplier bill.
|
||||||
|
|
||||||
|
You should create asset types for every group of assets you frequently
|
||||||
|
buy like "Cars: 5 years", "Computer Hardware: 3 years". For all other
|
||||||
|
assets, you can create generic asset types. Name them according to the
|
||||||
|
duration of the asset like "36 Months", "10 Years", ...
|
||||||
|
|
||||||
|
To define asset types, go to :menuselection:`Configuration --> Asset
|
||||||
|
Types`
|
||||||
|
|
||||||
|
.. image:: media/image01.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Create assets manually
|
||||||
|
======================
|
||||||
|
|
||||||
|
To register an asset manually, go to the menu :menuselection:`Adviser
|
||||||
|
--> Assets`.
|
||||||
|
|
||||||
|
.. image:: media/image08.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Once your asset is created, don't forget to Confirm it. You can also
|
||||||
|
click on the Compute Depreciation button to check the depreciation board
|
||||||
|
before confirming the asset.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
|
||||||
|
if you create asset manually, you still need to create the supplier
|
||||||
|
bill for this asset. The asset document will only produce the
|
||||||
|
depreciation journal entries, not those related to the supplier
|
||||||
|
bill.
|
||||||
|
|
||||||
|
Create assets automatically from a supplier bill
|
||||||
|
================================================
|
||||||
|
|
||||||
|
Assets can be automatically created from supplier bills. All you need to
|
||||||
|
do is to set an asset category on your bill line. When the user will
|
||||||
|
validate the bill, an asset will be automatically created, using the
|
||||||
|
information of the supplier bill.
|
||||||
|
|
||||||
|
.. image:: media/image09.png
|
||||||
|
|
||||||
|
Depending on the information on the asset category, the asset will be
|
||||||
|
created in draft or directly validated\ *.* It's easier to confirm
|
||||||
|
assets directly so that you won't forget to confirm it afterwards.
|
||||||
|
(check the field *Skip Draft State* on *Asset Category)* Generate assets
|
||||||
|
in draft only when you want your adviser to control all the assets
|
||||||
|
before posting them to your accounts.
|
||||||
|
|
||||||
|
.. tip:: if you put the asset on the product, the asset category will
|
||||||
|
automatically be filled in the supplier bill.
|
||||||
|
|
||||||
|
How to depreciate an asset?
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Odoo will create depreciation journal entries automatically at the right
|
||||||
|
date for every confirmed asset. (not the draft ones). You can control in
|
||||||
|
the depreciation board: a green bullet point means that the journal
|
||||||
|
entry has been created for this line.
|
||||||
|
|
||||||
|
But you can also post journal entries before the expected date by
|
||||||
|
clicking on the green bullet and forcing the creation of related
|
||||||
|
depreciation entry.
|
||||||
|
|
||||||
|
.. image:: media/image11.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
.. note:: In the Depreciation board, click on the red bullet to post
|
||||||
|
the journal entry. Click on the :guilabel:`Items` button on
|
||||||
|
the top to see the journal entries which are already posted.
|
||||||
|
|
||||||
|
How to modify an existing asset?
|
||||||
|
================================
|
||||||
|
|
||||||
|
- Click on :guilabel:`Modify Depreciation`
|
||||||
|
- Change the number of depreciation
|
||||||
|
|
||||||
|
Odoo will automatically recompute a new depreciation board.
|
||||||
|
|
||||||
|
How to record the sale or disposal of an asset?
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
If you sell or dispose an asset, you need to deprecate completely this
|
||||||
|
asset. Click on the button :guilabel:`Sell or Dispose`. This action
|
||||||
|
will post the full costs of this assets but it will not record the
|
||||||
|
sales transaction that should be registered through a customer
|
||||||
|
invoice.
|
||||||
|
|
||||||
|
.. todo:: → This has to be changed in Odoo: selling an asset should:
|
||||||
|
|
||||||
|
#. remove all "Red" lines
|
||||||
|
#. create a new line that deprecate the whole residual value
|
@ -183,8 +183,8 @@ automatic recharging of the services to the customer at the end of the
|
|||||||
month. To invoice customers, just link the analytic account to a sale
|
month. To invoice customers, just link the analytic account to a sale
|
||||||
order and sell products that manage timesheet or expenses .
|
order and sell products that manage timesheet or expenses .
|
||||||
|
|
||||||
Case 3: IT Services Company: perfomance analysis
|
Case 3: IT Services Company: performance analysis
|
||||||
------------------------------------------------
|
-------------------------------------------------
|
||||||
|
|
||||||
Most IT service companies face the following problems:
|
Most IT service companies face the following problems:
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ The bank refuses my SEPA file
|
|||||||
|
|
||||||
Ask your bank if they support the **SEPA Credit Transfer specification**
|
Ask your bank if they support the **SEPA Credit Transfer specification**
|
||||||
(the SEPA pain version depends on the country set on your company). If
|
(the SEPA pain version depends on the country set on your company). If
|
||||||
they don't, or cannot provide relevant informations, please forward the
|
they don't, or cannot provide relevant information, please forward the
|
||||||
error message to your Odoo partner.
|
error message to your Odoo partner.
|
||||||
|
|
||||||
There is no Bank Identifier Code recorded for bank account ...
|
There is no Bank Identifier Code recorded for bank account ...
|
||||||
|
@ -15,7 +15,7 @@ Set up Snailmail
|
|||||||
|
|
||||||
.. image:: media/setup_snailmail.png
|
.. image:: media/setup_snailmail.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: Under settings enable the snailmail feauture in Odoo Accounting
|
:alt: Under settings enable the snailmail feature in Odoo Accounting
|
||||||
|
|
||||||
Send your invoices by post
|
Send your invoices by post
|
||||||
--------------------------
|
--------------------------
|
||||||
|
@ -40,7 +40,7 @@ Configuration
|
|||||||
|
|
||||||
- Create a journal **Checks**
|
- Create a journal **Checks**
|
||||||
|
|
||||||
- Set **Undeposited Checks** as a defaut credit/debit account
|
- Set **Undeposited Checks** as a default credit/debit account
|
||||||
|
|
||||||
- Set the bank account related to this journal as **Allow Reconciliation**
|
- Set the bank account related to this journal as **Allow Reconciliation**
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ Salestax is calculated in Odoo based on fiscal positions
|
|||||||
A Fiscal Position for the United States is created when installing *TaxCloud*.
|
A Fiscal Position for the United States is created when installing *TaxCloud*.
|
||||||
Everything works out-of-the-box.
|
Everything works out-of-the-box.
|
||||||
|
|
||||||
You can configure Odoo to automtically detect which Customers should use this fiscal
|
You can configure Odoo to automatically detect which Customers should use this fiscal
|
||||||
position. Go to :menuselection:`Accounting --> Configuration --> Fiscal Positions`
|
position. Go to :menuselection:`Accounting --> Configuration --> Fiscal Positions`
|
||||||
to open and edit the record.
|
to open and edit the record.
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ Can I import several times the same record?
|
|||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
|
||||||
If you import a file that contains one of the column "External ID" or "Database ID", records that
|
If you import a file that contains one of the column "External ID" or "Database ID", records that
|
||||||
have already been imported will be modified instead of being created. This is very usefull as it
|
have already been imported will be modified instead of being created. This is very useful as it
|
||||||
allows you to import several times the same CSV file while having made some changes in between two
|
allows you to import several times the same CSV file while having made some changes in between two
|
||||||
imports. Odoo will take care of creating or modifying each record depending if it's new or not.
|
imports. Odoo will take care of creating or modifying each record depending if it's new or not.
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ How to generate an Unsplash access key
|
|||||||
=======================================================
|
=======================================================
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
**As an SaaS user**, you are ready to use Unsplash. You won't need to follow this guide to set up Unsplash informations, since you will use our own Odoo Unsplash key in a transparent way.
|
**As an SaaS user**, you are ready to use Unsplash. You won't need to follow this guide to set up Unsplash information, since you will use our own Odoo Unsplash key in a transparent way.
|
||||||
|
|
||||||
Generate an Unsplash access key for **non-Saas** users
|
Generate an Unsplash access key for **non-Saas** users
|
||||||
======================================================
|
======================================================
|
||||||
|
@ -266,7 +266,7 @@ Profit&Loss section to your assets.
|
|||||||
===================================== ===== ======
|
===================================== ===== ======
|
||||||
|
|
||||||
If the stock value decreased, the **Inventory** account is credited
|
If the stock value decreased, the **Inventory** account is credited
|
||||||
and te **Inventory Variations** debited.
|
and the **Inventory Variations** debited.
|
||||||
|
|
||||||
.. raw:: html
|
.. raw:: html
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ Create an internal transfer
|
|||||||
===========================
|
===========================
|
||||||
|
|
||||||
The final step is to create your internal transfer. If you want to
|
The final step is to create your internal transfer. If you want to
|
||||||
tranfer 2 units of a product from your first warehouse to another one in
|
transfer 2 units of a product from your first warehouse to another one in
|
||||||
Brussels, proceed as follows:
|
Brussels, proceed as follows:
|
||||||
|
|
||||||
From your dashboard, select a internal movement of one of the two
|
From your dashboard, select a internal movement of one of the two
|
||||||
|
@ -69,7 +69,7 @@ are triggered until a transfer between the *Stock* and the *Picking
|
|||||||
Area* is created.
|
Area* is created.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
All theses transfers are pre-generated by Odoo, starting from the end and going backwards.
|
All these transfers are pre-generated by Odoo, starting from the end and going backwards.
|
||||||
While working, the operator process these transfers in the opposite order: first the picking,
|
While working, the operator process these transfers in the opposite order: first the picking,
|
||||||
then the packing, then the delivery order.
|
then the packing, then the delivery order.
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ In order to use the Odoo UPS API, you will need:
|
|||||||
|
|
||||||
- An Access Key
|
- An Access Key
|
||||||
|
|
||||||
An Access Key is a 16 character alpha-numeric code that allows access to
|
An Access Key is a 16 character alphanumeric code that allows access to
|
||||||
the UPS Developer Kit API Development and Production servers.
|
the UPS Developer Kit API Development and Production servers.
|
||||||
|
|
||||||
Create a UPS Account
|
Create a UPS Account
|
||||||
|
@ -49,7 +49,7 @@ Standard units of measures
|
|||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Let's take the classic units of measures existing in Odoo as first
|
Let's take the classic units of measures existing in Odoo as first
|
||||||
example. Please remember that differents units of measures between sales
|
example. Please remember that different units of measures between sales
|
||||||
and purchase necessarily need to share the same category. Categories
|
and purchase necessarily need to share the same category. Categories
|
||||||
include: **Unit**, **weight**, **working time**, **volume**, etc.
|
include: **Unit**, **weight**, **working time**, **volume**, etc.
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ If your company regularly buys products from several suppliers, it would
|
|||||||
be useful to get statistics on your purchases. There are several reasons
|
be useful to get statistics on your purchases. There are several reasons
|
||||||
to track and analyze your vendor's performance :
|
to track and analyze your vendor's performance :
|
||||||
|
|
||||||
- You can see how dependant from a supplier your company is;
|
- You can see how dependent from a supplier your company is;
|
||||||
|
|
||||||
- you can negotiate discounts on prices;
|
- you can negotiate discounts on prices;
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ To do so, use the **Advanced search view** located in the right hand side
|
|||||||
of your screen, by clicking on the magnifying glass icon at the end of
|
of your screen, by clicking on the magnifying glass icon at the end of
|
||||||
the search bar button. This function allows you to highlight only
|
the search bar button. This function allows you to highlight only
|
||||||
selected data on your report. The **filters** option is very useful in
|
selected data on your report. The **filters** option is very useful in
|
||||||
order to display some categories of datas, while the **Group by** option
|
order to display some categories of data, while the **Group by** option
|
||||||
improves the readability of your reports. Note that you can filter and
|
improves the readability of your reports. Note that you can filter and
|
||||||
group by any existing field, making your customization very flexible and
|
group by any existing field, making your customization very flexible and
|
||||||
powerful.
|
powerful.
|
||||||
|
@ -17,7 +17,7 @@ Start generating leads
|
|||||||
==========================
|
==========================
|
||||||
You will now have a new button **Generate Leads** available in your pipeline.
|
You will now have a new button **Generate Leads** available in your pipeline.
|
||||||
You are also able to create lead mining requests from the
|
You are also able to create lead mining requests from the
|
||||||
:menuselection:`Configuration --> Lead Mining Requests` and trough
|
:menuselection:`Configuration --> Lead Mining Requests` and through
|
||||||
:menuselection:`Leads --> Leads` where you have the **Generate Leads** button.
|
:menuselection:`Leads --> Leads` where you have the **Generate Leads** button.
|
||||||
|
|
||||||
.. image:: media/LM2.png
|
.. image:: media/LM2.png
|
||||||
|
@ -3,7 +3,7 @@ Assign leads based on scoring
|
|||||||
=============================
|
=============================
|
||||||
|
|
||||||
With *Leads Scoring* you can automatically rank your leads based on
|
With *Leads Scoring* you can automatically rank your leads based on
|
||||||
selected criterias.
|
selected criteria.
|
||||||
|
|
||||||
For example you could score customers from your country higher or the
|
For example you could score customers from your country higher or the
|
||||||
ones that visited specific pages on your website.
|
ones that visited specific pages on your website.
|
||||||
@ -24,7 +24,7 @@ You now have a new tab in your *CRM* app called *Leads Management*
|
|||||||
where you can manage your scoring rules.
|
where you can manage your scoring rules.
|
||||||
|
|
||||||
Here's an example for a Canadian lead, you can modify for whatever
|
Here's an example for a Canadian lead, you can modify for whatever
|
||||||
criteria you wish to score your leads on. You can add as many criterias
|
criteria you wish to score your leads on. You can add as many criteria
|
||||||
as you wish.
|
as you wish.
|
||||||
|
|
||||||
.. image:: media/lead_scoring02.png
|
.. image:: media/lead_scoring02.png
|
||||||
|
@ -24,7 +24,7 @@ Configure the Lane/5000 for Ingenico BENELUX
|
|||||||
Click on the F button of the terminal, then go in the
|
Click on the F button of the terminal, then go in the
|
||||||
:menuselection:`PoS Menu --> Settings` and enter the settings password.
|
:menuselection:`PoS Menu --> Settings` and enter the settings password.
|
||||||
|
|
||||||
Now, click on connexion change and TCP/IP. Type the IP of your *IoT
|
Now, click on connection change and TCP/IP. Type the IP of your *IoT
|
||||||
Box* (you can find it on the form view of your IoT Box). Then, enter
|
Box* (you can find it on the form view of your IoT Box). Then, enter
|
||||||
9000 as port. The terminal will restart. Once it is done, go on your
|
9000 as port. The terminal will restart. Once it is done, go on your
|
||||||
*IoT Box* form in Odoo and verify that the terminal has been found.
|
*IoT Box* form in Odoo and verify that the terminal has been found.
|
||||||
@ -66,12 +66,12 @@ still retry to send the payment request.
|
|||||||
|
|
||||||
If there is any issue with the payment terminal, you can still force the
|
If there is any issue with the payment terminal, you can still force the
|
||||||
payment using the *Force Done*. This will allow you to validate the
|
payment using the *Force Done*. This will allow you to validate the
|
||||||
order in Odoo even if the connexion between the terminal and Odoo has
|
order in Odoo even if the connection between the terminal and Odoo has
|
||||||
issues.
|
issues.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
This option will only be available if you received an error message
|
This option will only be available if you received an error message
|
||||||
telling you the connexion failed.
|
telling you the connection failed.
|
||||||
|
|
||||||
Once your payment is processed, on the payment record, you’ll find the
|
Once your payment is processed, on the payment record, you’ll find the
|
||||||
type of card that has been used and the transaction ID.
|
type of card that has been used and the transaction ID.
|
||||||
|
@ -50,5 +50,5 @@ Successful*. You can always reverse the last transaction by clicking on
|
|||||||
|
|
||||||
If there is any issue with the payment terminal, you can still force the
|
If there is any issue with the payment terminal, you can still force the
|
||||||
payment using the *Force Done*. This will allow you to validate the
|
payment using the *Force Done*. This will allow you to validate the
|
||||||
order in Odoo even if the connexion between the terminal and Odoo
|
order in Odoo even if the connection between the terminal and Odoo
|
||||||
encounters issues.
|
encounters issues.
|
||||||
|
@ -24,7 +24,7 @@ Listing with variations
|
|||||||
=======================
|
=======================
|
||||||
|
|
||||||
When the **use eBay** on a product with variations is checked and with **Fixed
|
When the **use eBay** on a product with variations is checked and with **Fixed
|
||||||
Price** as **Listing Type**, the eBay form is sligthly different. In the
|
Price** as **Listing Type**, the eBay form is slightly different. In the
|
||||||
variants array, you can choose which variant will be listed on eBay as well as
|
variants array, you can choose which variant will be listed on eBay as well as
|
||||||
set the price and the quantity for each variant.
|
set the price and the quantity for each variant.
|
||||||
|
|
||||||
@ -47,4 +47,4 @@ Products identifiers such as EAN, UPC, Brand or MPN are required in most of the
|
|||||||
The module manages the EAN and UPC identifiers with the **Barcode** field of the product variant.
|
The module manages the EAN and UPC identifiers with the **Barcode** field of the product variant.
|
||||||
If the **Barcode** field is empty or is value is not valid, the EAN and UPC values will be set as 'Does not apply' as recommended by eBay.
|
If the **Barcode** field is empty or is value is not valid, the EAN and UPC values will be set as 'Does not apply' as recommended by eBay.
|
||||||
The Brand and MPN values are working as item specifics and should be define in the **Variants** tab on the product form.
|
The Brand and MPN values are working as item specifics and should be define in the **Variants** tab on the product form.
|
||||||
If theses values are not set, 'Does not apply' will be used for the eBay listing.
|
If these values are not set, 'Does not apply' will be used for the eBay listing.
|
||||||
|
@ -42,7 +42,7 @@ Using the updated synchronisation method
|
|||||||
If you have a lot of products, the eBay API can sometimes refuse some synchronization
|
If you have a lot of products, the eBay API can sometimes refuse some synchronization
|
||||||
calls due to a time-based limit on the number of requests that eBay enforces.
|
calls due to a time-based limit on the number of requests that eBay enforces.
|
||||||
|
|
||||||
To fix this issue, a new implementation mechanism has been developped; however this
|
To fix this issue, a new implementation mechanism has been developed; however this
|
||||||
updated mechanism is disabled by default to avoid having the 2 systems running in
|
updated mechanism is disabled by default to avoid having the 2 systems running in
|
||||||
parallel in existing installations.
|
parallel in existing installations.
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ Discounts, margins, roundings
|
|||||||
*Advanced pricing based on formula* allows to set price change rules.
|
*Advanced pricing based on formula* allows to set price change rules.
|
||||||
Changes can be relative to the product list/catalog price, the product cost price,
|
Changes can be relative to the product list/catalog price, the product cost price,
|
||||||
or to another pricelist. Changes are calculated via discounts or surcharges and can be
|
or to another pricelist. Changes are calculated via discounts or surcharges and can be
|
||||||
forced to fit within floor (minumum margin) and ceilings (maximum margins).
|
forced to fit within floor (minimum margin) and ceilings (maximum margins).
|
||||||
Prices can be rounded to the nearest cent/dollar or multiple of either
|
Prices can be rounded to the nearest cent/dollar or multiple of either
|
||||||
(nearest 5 cents, nearest 10 dollars).
|
(nearest 5 cents, nearest 10 dollars).
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ Under :menuselection:`Project --> Reporting --> Customer Ratings` see ratings by
|
|||||||
|
|
||||||
.. image:: media/rating_report.png
|
.. image:: media/rating_report.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: View fo the customer rating report in Odoo Project
|
:alt: View of the customer rating report in Odoo Project
|
||||||
|
|
||||||
Clicking on the percentage of happy ratings over the last 30 days in the *Projects* overview,
|
Clicking on the percentage of happy ratings over the last 30 days in the *Projects* overview,
|
||||||
redirects you to your website with more rating details.
|
redirects you to your website with more rating details.
|
||||||
|
@ -27,7 +27,7 @@ At anytime, the salesman can check the transaction status from the order.
|
|||||||
|
|
||||||
* *Done*: the payment is authorized and captured. The order has been confirmed.
|
* *Done*: the payment is authorized and captured. The order has been confirmed.
|
||||||
|
|
||||||
* *Error*: an error has occured during the transaction.
|
* *Error*: an error has occurred during the transaction.
|
||||||
The customer needs to retry the payment.
|
The customer needs to retry the payment.
|
||||||
The order is still in draft.
|
The order is still in draft.
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ to get a specific tracked URL based on the campaign, medium, and source being us
|
|||||||
|
|
||||||
.. image:: media/link_tracker_fields.png
|
.. image:: media/link_tracker_fields.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: View of the link traker fields for Odoo Website
|
:alt: View of the link tracker fields for Odoo Website
|
||||||
|
|
||||||
- **URL**: url of the page you want to track (e.g. the home page or a product's page).
|
- **URL**: url of the page you want to track (e.g. the home page or a product's page).
|
||||||
- **Campaign**: context of your link (e.g. a special promotion).
|
- **Campaign**: context of your link (e.g. a special promotion).
|
||||||
|
@ -10,7 +10,7 @@ Profiling Odoo code
|
|||||||
Graph a method
|
Graph a method
|
||||||
==============
|
==============
|
||||||
|
|
||||||
Odoo embeds a profiler of code. This embeded profiler output can be used to
|
Odoo embeds a profiler of code. This embedded profiler output can be used to
|
||||||
generate a graph of calls triggered by the method, number of queries, percentage
|
generate a graph of calls triggered by the method, number of queries, percentage
|
||||||
of time taken in the method itself as well as the time that the method took and
|
of time taken in the method itself as well as the time that the method took and
|
||||||
its sub-called methods.
|
its sub-called methods.
|
||||||
@ -84,7 +84,7 @@ Dump stack
|
|||||||
|
|
||||||
Sending the SIGQUIT signal to an Odoo process (only available on POSIX) makes
|
Sending the SIGQUIT signal to an Odoo process (only available on POSIX) makes
|
||||||
this process output the current stack trace to log, with info level. When an
|
this process output the current stack trace to log, with info level. When an
|
||||||
odoo process seems stucked, sending this signal to the process permit to know
|
odoo process seems stuck, sending this signal to the process permit to know
|
||||||
what the process is doing, and letting the process continue his job.
|
what the process is doing, and letting the process continue his job.
|
||||||
|
|
||||||
Tracing code execution
|
Tracing code execution
|
||||||
|
@ -394,7 +394,7 @@ So here are the steps to create a robust and consistent style for your theme:
|
|||||||
|
|
||||||
\(1) Set the values for Odoo-provided SCSS variables
|
\(1) Set the values for Odoo-provided SCSS variables
|
||||||
|
|
||||||
Odoo declares many CSS rules, most being entirely customizable by overridding
|
Odoo declares many CSS rules, most being entirely customizable by overriding
|
||||||
the related SCSS variables. First, create a new file called primary_variables.scss
|
the related SCSS variables. First, create a new file called primary_variables.scss
|
||||||
and add it the same way as the style.scss file. The only difference it that
|
and add it the same way as the style.scss file. The only difference it that
|
||||||
you won't add it in the ``assets_frontend`` template but in the ``_assets_primary_variables``
|
you won't add it in the ``assets_frontend`` template but in the ``_assets_primary_variables``
|
||||||
|
@ -1782,7 +1782,7 @@ When a client action must be executed, the action manager looks up its tag
|
|||||||
in the registry, walks the specified path and displays the widget it finds at
|
in the registry, walks the specified path and displays the widget it finds at
|
||||||
the end.
|
the end.
|
||||||
|
|
||||||
.. note:: a client action handler can also be a regular function, in whch case
|
.. note:: a client action handler can also be a regular function, in which case
|
||||||
it'll be called and its result (if any) will be interpreted as the
|
it'll be called and its result (if any) will be interpreted as the
|
||||||
next action to execute.
|
next action to execute.
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ corresponding behaviors) are shared between states:
|
|||||||
|
|
||||||
* ``object_write``: Updates the current record(s) following ``fields_lines`` specifications
|
* ``object_write``: Updates the current record(s) following ``fields_lines`` specifications
|
||||||
|
|
||||||
* ``multi``: Executes serveral actions given through the ``child_ids`` argument.
|
* ``multi``: Executes several actions given through the ``child_ids`` argument.
|
||||||
|
|
||||||
State fields
|
State fields
|
||||||
------------
|
------------
|
||||||
|
@ -165,7 +165,7 @@ Database
|
|||||||
.. option:: --db_sslmode
|
.. option:: --db_sslmode
|
||||||
|
|
||||||
Control the SSL security of the connection between Odoo and PostgreSQL.
|
Control the SSL security of the connection between Odoo and PostgreSQL.
|
||||||
Value should bve one of 'disable', 'allow', 'prefer', 'require',
|
Value should be one of 'disable', 'allow', 'prefer', 'require',
|
||||||
'verify-ca' or 'verify-full'
|
'verify-ca' or 'verify-full'
|
||||||
Default value is 'prefer'
|
Default value is 'prefer'
|
||||||
|
|
||||||
|
@ -330,7 +330,7 @@ should have a real naming as it is used as display name.
|
|||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="model_name_action_child_list" model="ir.actions.act_window">
|
<record id="model_name_action_child_list" model="ir.actions.act_window">
|
||||||
<field name="name">Model Access Childs</field>
|
<field name="name">Model Access Children</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!-- menus and sub-menus -->
|
<!-- menus and sub-menus -->
|
||||||
|
@ -1186,7 +1186,7 @@ may need to directly call a controller (available on some route).
|
|||||||
Notifications
|
Notifications
|
||||||
==============
|
==============
|
||||||
|
|
||||||
The Odoo framework has a standard way to communicate various informations to the
|
The Odoo framework has a standard way to communicate various information to the
|
||||||
user: notifications, which are displayed on the top right of the user interface.
|
user: notifications, which are displayed on the top right of the user interface.
|
||||||
|
|
||||||
There are two types of notifications:
|
There are two types of notifications:
|
||||||
@ -1556,7 +1556,7 @@ integer (FieldInteger)
|
|||||||
- type: setting the input type (*text* by default, can be set on *number*)
|
- type: setting the input type (*text* by default, can be set on *number*)
|
||||||
|
|
||||||
On edit mode, the field is rendered as an input with the HTML attribute type
|
On edit mode, the field is rendered as an input with the HTML attribute type
|
||||||
setted on *number* (so user can benefit the native support, especially on
|
set on *number* (so user can benefit the native support, especially on
|
||||||
mobile). In this case, the default formatting is disabled to avoid incompability.
|
mobile). In this case, the default formatting is disabled to avoid incompability.
|
||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
@ -1588,7 +1588,7 @@ float (FieldFloat)
|
|||||||
- type: setting the input type (*text* by default, can be set on *number*)
|
- type: setting the input type (*text* by default, can be set on *number*)
|
||||||
|
|
||||||
On edit mode, the field is rendered as an input with the HTML attribute type
|
On edit mode, the field is rendered as an input with the HTML attribute type
|
||||||
setted on *number* (so user can benefit the native support, especially on
|
set on *number* (so user can benefit the native support, especially on
|
||||||
mobile). In this case, the default formatting is disabled to avoid incompability.
|
mobile). In this case, the default formatting is disabled to avoid incompability.
|
||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
@ -109,7 +109,7 @@ to manage followers on your record:
|
|||||||
Helper method to send a mail with a template
|
Helper method to send a mail with a template
|
||||||
|
|
||||||
:param template_id: the id of the template to render to create the body of the message
|
:param template_id: the id of the template to render to create the body of the message
|
||||||
:param `\**kwargs`: parameter to create a mail.compose.message wizzard (which inherit from mail.message)
|
:param `\**kwargs`: parameter to create a mail.compose.message wizard (which inherit from mail.message)
|
||||||
|
|
||||||
.. rubric:: Receiving messages
|
.. rubric:: Receiving messages
|
||||||
|
|
||||||
@ -251,11 +251,11 @@ Subtypes are created as data in your module; the model has the following fields:
|
|||||||
``res_model`` - :class:`~odoo.fields.Char`
|
``res_model`` - :class:`~odoo.fields.Char`
|
||||||
model the subtype applies to; if False, this subtype applies to all models
|
model the subtype applies to; if False, this subtype applies to all models
|
||||||
``default`` - :class:`~odoo.fields.Boolean`
|
``default`` - :class:`~odoo.fields.Boolean`
|
||||||
wether the subtype is activated by default when subscribing
|
whether the subtype is activated by default when subscribing
|
||||||
``sequence`` - :class:`~odoo.fields.Integer`
|
``sequence`` - :class:`~odoo.fields.Integer`
|
||||||
used to order subtypes in the notification customization popup
|
used to order subtypes in the notification customization popup
|
||||||
``hidden`` - :class:`~odoo.fields.Boolean`
|
``hidden`` - :class:`~odoo.fields.Boolean`
|
||||||
wether the subtype is hidden in the notification customization popup
|
whether the subtype is hidden in the notification customization popup
|
||||||
|
|
||||||
|
|
||||||
Interfacing subtypes with field tracking allows to subscribe to different kind
|
Interfacing subtypes with field tracking allows to subscribe to different kind
|
||||||
@ -378,7 +378,7 @@ yourself by overriding the function ``_notification_recipients``.
|
|||||||
following the thread). True by default for new groups, False for
|
following the thread). True by default for new groups, False for
|
||||||
portal / customer.
|
portal / customer.
|
||||||
- button_follow
|
- button_follow
|
||||||
dict with url adn title of the button
|
dict with url and title of the button
|
||||||
- has_button_unfollow
|
- has_button_unfollow
|
||||||
whether to display Unfollow in email (if recipient is currently following the thread).
|
whether to display Unfollow in email (if recipient is currently following the thread).
|
||||||
True by default for new groups, False for portal / customer.
|
True by default for new groups, False for portal / customer.
|
||||||
@ -575,7 +575,7 @@ some default values these records may have depending on the parent object:
|
|||||||
tasks getting created in the right project) by setting a dictionary of
|
tasks getting created in the right project) by setting a dictionary of
|
||||||
default values in the alias' ``alias_defaults`` field.
|
default values in the alias' ``alias_defaults`` field.
|
||||||
|
|
||||||
:return: dictionnary of values that will be written to the new alias
|
:return: dictionary of values that will be written to the new alias
|
||||||
:rtype: dict
|
:rtype: dict
|
||||||
|
|
||||||
The ``get_alias_values()`` override is particularly interesting as it allows you
|
The ``get_alias_values()`` override is particularly interesting as it allows you
|
||||||
@ -638,7 +638,7 @@ you to make your alias easily configurable from the record's form view.
|
|||||||
def get_alias_values(self):
|
def get_alias_values(self):
|
||||||
""" Specify some default values that will be set in the alias at its creation """
|
""" Specify some default values that will be set in the alias at its creation """
|
||||||
values = super(BusinessTrip, self).get_alias_values()
|
values = super(BusinessTrip, self).get_alias_values()
|
||||||
# alias_defaults holds a dictionnary that will be written
|
# alias_defaults holds a dictionary that will be written
|
||||||
# to all records created by this alias
|
# to all records created by this alias
|
||||||
#
|
#
|
||||||
# in this case, we want all expense records sent to a trip alias
|
# in this case, we want all expense records sent to a trip alias
|
||||||
@ -703,7 +703,7 @@ you to make your alias easily configurable from the record's form view.
|
|||||||
of the expense, try to find a partner with this email address and
|
of the expense, try to find a partner with this email address and
|
||||||
do a regex match to find the amount of the expense."""
|
do a regex match to find the amount of the expense."""
|
||||||
name = msg_dict.get('subject', 'New Expense')
|
name = msg_dict.get('subject', 'New Expense')
|
||||||
# Match the last occurence of a float in the string
|
# Match the last occurrence of a float in the string
|
||||||
# Example: '50.3 bar 34.5' becomes '34.5'. This is potentially the price
|
# Example: '50.3 bar 34.5' becomes '34.5'. This is potentially the price
|
||||||
# to encode on the expense. If not, take 1.0 instead
|
# to encode on the expense. If not, take 1.0 instead
|
||||||
amount_pattern = '(\d+(\.\d*)?|\.\d+)'
|
amount_pattern = '(\d+(\.\d*)?|\.\d+)'
|
||||||
@ -755,7 +755,7 @@ widgets, respectively).
|
|||||||
name = fields.Char()
|
name = fields.Char()
|
||||||
# [...]
|
# [...]
|
||||||
|
|
||||||
We modify the form view of our trips to display their next activites:
|
We modify the form view of our trips to display their next activities:
|
||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
@ -778,7 +778,7 @@ You can find concrete examples of integration in the following models:
|
|||||||
|
|
||||||
* ``crm.lead`` in the CRM (*crm*) Application
|
* ``crm.lead`` in the CRM (*crm*) Application
|
||||||
* ``sale.order`` in the Sales (*sale*) Application
|
* ``sale.order`` in the Sales (*sale*) Application
|
||||||
* ``project.task`` in the Project (*poject*) Application
|
* ``project.task`` in the Project (*project*) Application
|
||||||
|
|
||||||
|
|
||||||
.. _reference/mixins/website:
|
.. _reference/mixins/website:
|
||||||
@ -868,7 +868,7 @@ case for this mixin is any object that has a frontend-page; being able to contro
|
|||||||
the visibility of the page allows you to take your time while editing the page
|
the visibility of the page allows you to take your time while editing the page
|
||||||
and only publish it when you're satisfied.
|
and only publish it when you're satisfied.
|
||||||
|
|
||||||
To include the functionnality, you only need to inherit ``website.published.mixin``:
|
To include the functionality, you only need to inherit ``website.published.mixin``:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ Check if the method is available and then execute it.
|
|||||||
Methods
|
Methods
|
||||||
-------
|
-------
|
||||||
|
|
||||||
.. note:: Each of the methods returns a JQuery Deffered object which returns
|
.. note:: Each of the methods returns a JQuery Deferred object which returns
|
||||||
a data JSON dictionary
|
a data JSON dictionary
|
||||||
|
|
||||||
Show Toast in device
|
Show Toast in device
|
||||||
|
@ -182,7 +182,7 @@ Date / Datetime comparison best practices:
|
|||||||
date string, therefore this practice is **heavily**
|
date string, therefore this practice is **heavily**
|
||||||
discouraged.
|
discouraged.
|
||||||
|
|
||||||
Common operations with dates and datetimes such as addition, substraction or
|
Common operations with dates and datetimes such as addition, subtraction or
|
||||||
fetching the start/end of a period are exposed through both
|
fetching the start/end of a period are exposed through both
|
||||||
:class:`~odoo.fields.Date` and :class:`~odoo.fields.Datetime`.
|
:class:`~odoo.fields.Date` and :class:`~odoo.fields.Datetime`.
|
||||||
These helpers are also available by importing `odoo.tools.date_utils`.
|
These helpers are also available by importing `odoo.tools.date_utils`.
|
||||||
|
@ -56,7 +56,7 @@ can take the following attributes:
|
|||||||
for example)
|
for example)
|
||||||
``attachment``
|
``attachment``
|
||||||
python expression that defines the name of the report; the record is
|
python expression that defines the name of the report; the record is
|
||||||
acessible as the variable ``object``
|
accessible as the variable ``object``
|
||||||
``paperformat``
|
``paperformat``
|
||||||
external id of the paperformat you wish to use (defaults to the company's
|
external id of the paperformat you wish to use (defaults to the company's
|
||||||
paperformat if not specified)
|
paperformat if not specified)
|
||||||
|
@ -10,7 +10,7 @@ data-driven mechanisms to manage or restrict access to data.
|
|||||||
|
|
||||||
Both mechanisms are linked to specific users through *groups*: a user belongs
|
Both mechanisms are linked to specific users through *groups*: a user belongs
|
||||||
to any number of groups, and security mechanisms are associated to groups,
|
to any number of groups, and security mechanisms are associated to groups,
|
||||||
thus applying security mechamisms to users.
|
thus applying security mechanisms to users.
|
||||||
|
|
||||||
.. _reference/security/acl:
|
.. _reference/security/acl:
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ default you can remove the ``standard`` tag:
|
|||||||
...
|
...
|
||||||
|
|
||||||
This test will not be selected by default, to run it the relevant tag will
|
This test will not be selected by default, to run it the relevant tag will
|
||||||
have to be selected explicitely:
|
have to be selected explicitly:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ ones:
|
|||||||
|
|
||||||
When you write a test that does not inherit from the
|
When you write a test that does not inherit from the
|
||||||
:class:`~odoo.tests.common.BaseCase`, this test will not have the default tags,
|
:class:`~odoo.tests.common.BaseCase`, this test will not have the default tags,
|
||||||
you have to add them explicitely to have the test included in the default test
|
you have to add them explicitly to have the test included in the default test
|
||||||
suite. This is a common issue when using a simple ``unittest.TestCase`` as
|
suite. This is a common issue when using a simple ``unittest.TestCase`` as
|
||||||
they're not going to get run:
|
they're not going to get run:
|
||||||
|
|
||||||
@ -193,7 +193,7 @@ Special tags
|
|||||||
^^^^^^^^^^^^
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
- ``standard``: All Odoo tests that inherit from
|
- ``standard``: All Odoo tests that inherit from
|
||||||
:class:`~odoo.tests.common.BaseCase` are implicitely tagged standard.
|
:class:`~odoo.tests.common.BaseCase` are implicitly tagged standard.
|
||||||
:option:`--test-tags <odoo-bin --test-tags>` also defaults to ``standard``.
|
:option:`--test-tags <odoo-bin --test-tags>` also defaults to ``standard``.
|
||||||
|
|
||||||
That means untagged test will be executed by default when tests are enabled.
|
That means untagged test will be executed by default when tests are enabled.
|
||||||
@ -207,7 +207,7 @@ Special tags
|
|||||||
will generally not want both ``post_install`` is usually paired with
|
will generally not want both ``post_install`` is usually paired with
|
||||||
``-at_install`` when tagging a test class.
|
``-at_install`` when tagging a test class.
|
||||||
- *module_name*: Odoo tests classes extending
|
- *module_name*: Odoo tests classes extending
|
||||||
:class:`~odoo.tests.common.BaseCase` are implicitely tagged with the
|
:class:`~odoo.tests.common.BaseCase` are implicitly tagged with the
|
||||||
technical name of their module. This allows easily selecting or excluding
|
technical name of their module. This allows easily selecting or excluding
|
||||||
specific modules when testing e.g. if you want to only run tests from
|
specific modules when testing e.g. if you want to only run tests from
|
||||||
``stock_account``:
|
``stock_account``:
|
||||||
@ -335,7 +335,7 @@ testing system, since this means that a test in the addon web will fail whenever
|
|||||||
the voip addon is installed (note that the runbot runs the tests with all addons
|
the voip addon is installed (note that the runbot runs the tests with all addons
|
||||||
installed).
|
installed).
|
||||||
|
|
||||||
At the same time, our testing sytem is good, because it can detect whenever
|
At the same time, our testing system is good, because it can detect whenever
|
||||||
another module breaks some core functionality. There is no complete solution to
|
another module breaks some core functionality. There is no complete solution to
|
||||||
this issue. For now, we solve this on a case by case basis.
|
this issue. For now, we solve this on a case by case basis.
|
||||||
|
|
||||||
|
@ -963,7 +963,7 @@ take the following attributes:
|
|||||||
``consolidation``
|
``consolidation``
|
||||||
field name to display consolidation value in record cell
|
field name to display consolidation value in record cell
|
||||||
``consolidation_max``
|
``consolidation_max``
|
||||||
dictionnary with the "group by" field as key and the maximum consolidation
|
dictionary with the "group by" field as key and the maximum consolidation
|
||||||
value that can be reached before displaying the cell in red
|
value that can be reached before displaying the cell in red
|
||||||
(e.g. ``{"user_id": 100}``)
|
(e.g. ``{"user_id": 100}``)
|
||||||
``consolidation_exclude``
|
``consolidation_exclude``
|
||||||
@ -1829,7 +1829,7 @@ Possible children elements of the search view are:
|
|||||||
2018
|
2018
|
||||||
2017
|
2017
|
||||||
|
|
||||||
Muti selection of options is allowed.
|
Multi selection of options is allowed.
|
||||||
|
|
||||||
``default_period`` (optional)
|
``default_period`` (optional)
|
||||||
only makes sense for a filter with non empty ``date`` attribute.
|
only makes sense for a filter with non empty ``date`` attribute.
|
||||||
|
@ -134,7 +134,7 @@ on Odoo (https://iap.odoo.com/my/home) and select *In-App Services*.
|
|||||||
on sandbox to ease the tests.
|
on sandbox to ease the tests.
|
||||||
|
|
||||||
Log in then go to :menuselection:`My Account --> Your In-App Services`, click
|
Log in then go to :menuselection:`My Account --> Your In-App Services`, click
|
||||||
Create and provide the informations of your service.
|
Create and provide the information of your service.
|
||||||
|
|
||||||
|
|
||||||
The service has *seven* important fields:
|
The service has *seven* important fields:
|
||||||
@ -688,7 +688,7 @@ care how they are implemented.
|
|||||||
Test the API
|
Test the API
|
||||||
------------
|
------------
|
||||||
|
|
||||||
In order to test the developped app, we propose a sandbox platform that allows you to:
|
In order to test the developed app, we propose a sandbox platform that allows you to:
|
||||||
|
|
||||||
1. Test the whole flow from the client's point of view - Actual services and transactions
|
1. Test the whole flow from the client's point of view - Actual services and transactions
|
||||||
that can be consulted. (again this requires to change the endpoint, see the danger note
|
that can be consulted. (again this requires to change the endpoint, see the danger note
|
||||||
@ -702,7 +702,7 @@ The latter consists in specific tokens that will work on **IAP-Sandbox only**.
|
|||||||
* Token ``000111``: Represents an account without sufficient credits to perform any service.
|
* Token ``000111``: Represents an account without sufficient credits to perform any service.
|
||||||
Returns an :class:`~odoo.addons.iap.models.iap.InsufficientCreditError` on authorize attempt.
|
Returns an :class:`~odoo.addons.iap.models.iap.InsufficientCreditError` on authorize attempt.
|
||||||
* Token ``111111``: Represents an account with enough credits to perform any service.
|
* Token ``111111``: Represents an account with enough credits to perform any service.
|
||||||
An authorize attempt will return a dummy transacion token that is processed by the capture
|
An authorize attempt will return a dummy transaction token that is processed by the capture
|
||||||
and cancel routes.
|
and cancel routes.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
@ -9,7 +9,7 @@ all of its data are also available from the outside for external analysis or
|
|||||||
integration with various tools. Part of the :ref:`reference/orm/model` API is
|
integration with various tools. Part of the :ref:`reference/orm/model` API is
|
||||||
easily available over XML-RPC_ and accessible from a variety of languages.
|
easily available over XML-RPC_ and accessible from a variety of languages.
|
||||||
|
|
||||||
.. Odoo XML-RPC idiosyncracies:
|
.. Odoo XML-RPC idiosyncrasies:
|
||||||
* uses multiple endpoint and a nested call syntax instead of a
|
* uses multiple endpoint and a nested call syntax instead of a
|
||||||
"hierarchical" server structure (e.g. ``odoo.res.partner.read()``)
|
"hierarchical" server structure (e.g. ``odoo.res.partner.read()``)
|
||||||
* uses its own own manual auth system instead of basic auth or sessions
|
* uses its own own manual auth system instead of basic auth or sessions
|
||||||
@ -841,7 +841,7 @@ Records can be updated using :meth:`~odoo.models.Model.write`, it takes
|
|||||||
a list of records to update and a mapping of updated fields to values similar
|
a list of records to update and a mapping of updated fields to values similar
|
||||||
to :meth:`~odoo.models.Model.create`.
|
to :meth:`~odoo.models.Model.create`.
|
||||||
|
|
||||||
Multiple records can be updated simultanously, but they will all get the same
|
Multiple records can be updated simultaneously, but they will all get the same
|
||||||
values for the fields being set. It is not currently possible to perform
|
values for the fields being set. It is not currently possible to perform
|
||||||
"computed" updates (where the value being set depends on an existing value of
|
"computed" updates (where the value being set depends on an existing value of
|
||||||
a record).
|
a record).
|
||||||
|
@ -132,7 +132,7 @@ Here are 2 examples of database upgrade request creation using:
|
|||||||
|
|
||||||
* one in the python programming language using the requests library
|
* one in the python programming language using the requests library
|
||||||
* one in the bash programming language using `curl <https://curl.haxx.se>`_ (tool
|
* one in the bash programming language using `curl <https://curl.haxx.se>`_ (tool
|
||||||
for transfering data using http) and `jq <https://stedolan.github.io/jq>`_ (JSON processor):
|
for transferring data using http) and `jq <https://stedolan.github.io/jq>`_ (JSON processor):
|
||||||
|
|
||||||
.. rst-class:: setup doc-aside
|
.. rst-class:: setup doc-aside
|
||||||
|
|
||||||
@ -244,7 +244,7 @@ should be empty if everything went fine.
|
|||||||
The ``request_sftp_access`` method
|
The ``request_sftp_access`` method
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
This method is recommanded for big database dumps.
|
This method is recommended for big database dumps.
|
||||||
It uses the SFTP protocol and supports resuming.
|
It uses the SFTP protocol and supports resuming.
|
||||||
|
|
||||||
It will create a temporary SFTP server where you can connect to and allow you
|
It will create a temporary SFTP server where you can connect to and allow you
|
||||||
@ -320,7 +320,7 @@ explanation about the JSON dictionary returned in case of failure.
|
|||||||
'''''''''''
|
'''''''''''
|
||||||
|
|
||||||
If the call is successful, the value associated to the *request* key
|
If the call is successful, the value associated to the *request* key
|
||||||
will be a dictionary containing your SFTP connexion parameters:
|
will be a dictionary containing your SFTP connection parameters:
|
||||||
|
|
||||||
* ``hostname``: the host address to connect to
|
* ``hostname``: the host address to connect to
|
||||||
* ``sftp_port``: the port to connect to
|
* ``sftp_port``: the port to connect to
|
||||||
@ -638,7 +638,7 @@ Beside downloading your migrated database using the URL provided by the
|
|||||||
protocol as described in the :ref:`request_sftp_access method
|
protocol as described in the :ref:`request_sftp_access method
|
||||||
<upgrade-api-request-sftp-access-method>`
|
<upgrade-api-request-sftp-access-method>`
|
||||||
|
|
||||||
The diffence is that you'll only be able to download the migrated database. No
|
The difference is that you'll only be able to download the migrated database. No
|
||||||
uploading will be possible.
|
uploading will be possible.
|
||||||
|
|
||||||
Your database upgrade request should be in the ``done`` state.
|
Your database upgrade request should be in the ``done`` state.
|
||||||
|
@ -110,7 +110,7 @@ def add_doc_link(app, pagename, templatename, context, doctree):
|
|||||||
return
|
return
|
||||||
|
|
||||||
# FIXME: find other way to recover current document's source suffix
|
# FIXME: find other way to recover current document's source suffix
|
||||||
# in Sphinx 1.3 it's possible to have mutliple source suffixes and that
|
# in Sphinx 1.3 it's possible to have multiple source suffixes and that
|
||||||
# may be useful in the future
|
# may be useful in the future
|
||||||
source_suffix = app.config.source_suffix
|
source_suffix = app.config.source_suffix
|
||||||
source_suffix = next(iter(source_suffix))
|
source_suffix = next(iter(source_suffix))
|
||||||
|
@ -71,7 +71,7 @@
|
|||||||
//
|
//
|
||||||
// When borders are added on all sides of the cells, the corners can render odd when
|
// When borders are added on all sides of the cells, the corners can render odd when
|
||||||
// these borders do not have the same color or if they are semi-transparent.
|
// these borders do not have the same color or if they are semi-transparent.
|
||||||
// Therefor we add top and border bottoms to the `tr`s and left and right borders
|
// Therefore we add top and border bottoms to the `tr`s and left and right borders
|
||||||
// to the `td`s or `th`s
|
// to the `td`s or `th`s
|
||||||
|
|
||||||
.table-bordered {
|
.table-bordered {
|
||||||
|
@ -160,7 +160,7 @@
|
|||||||
],
|
],
|
||||||
configuration: [
|
configuration: [
|
||||||
"Revenue: defined on the product, or the product category if not on the product, field Income Account",
|
"Revenue: defined on the product, or the product category if not on the product, field Income Account",
|
||||||
"Defered Tax Liabilities: defined on the tax used on the invoice line",
|
"Deferred Tax Liabilities: defined on the tax used on the invoice line",
|
||||||
"Accounts Receivable: defined on the customer (property)",
|
"Accounts Receivable: defined on the customer (property)",
|
||||||
"Inventory: defined on the category of the related product (property)",
|
"Inventory: defined on the category of the related product (property)",
|
||||||
"Expenses: defined on the product, or the category of product (property)",
|
"Expenses: defined on the product, or the category of product (property)",
|
||||||
|
Loading…
Reference in New Issue
Block a user