[MERGE] Forward-port of branch 12.0 to 13.0

This commit is contained in:
Victor Feyens 2021-05-31 14:54:23 +02:00
commit 40afc9d9f0
53 changed files with 919 additions and 115 deletions

View File

@ -131,7 +131,7 @@ github_project = 'documentation'
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.util.i18n.docname_to_domain
) = lambda docname, compact: docname.split('/')[1 if docname.startswith('applications/') else 0]

View File

@ -14,7 +14,7 @@ button.
:align: center
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.
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!**
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
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

View File

@ -69,7 +69,7 @@ in ``/etc/odoo.conf`` set:
of securing your deployment.
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,
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.
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.
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'
`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:
* 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
that Odoo, this is the simplest and the longpolling URL can double up as
the cron instance.

View File

@ -14,7 +14,7 @@ Install the account_yodlee module
----------------------------------
Start by installing the **account_yodlee** module, if it is not already
installed. To do that, got the the menu
installed. To do that, got the the menu
:menuselection:`Accounting --> Configuration --> Settings` of the
accounting application. In the section **Bank & Cash**, set the option **Bank
Interface - Sync your bank feeds automatically**.
@ -46,7 +46,7 @@ Then, you will have to provide your credentials to connect to PayPal.
.. note::
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
Online feeds (you can switch from new to old interface in your Paypal account).

View File

@ -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`?**
`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
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
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
as above but:

View File

@ -147,7 +147,7 @@ This form is the same as :ref:`the one presented in the Accounting onboarding ba
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.
You can also add your *Company Tagline* and the content of the documents *footer*. Note that Odoo

View 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. Dont forget to define a mexican fiscal position on your
companys 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

View File

@ -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

View File

@ -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
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:

View File

@ -117,9 +117,9 @@ Troubleshooting
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
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.
There is no Bank Identifier Code recorded for bank account ...

View File

@ -113,6 +113,6 @@ on the day of issuance, and the balance is due at the end of the following month
The $1000 debited on the Account Receivable is split into two distinct *Journal Items*. Both of
them have their own **Due Date**.
.. seealso::
.. seealso::
- :doc:`cash_discounts`
- `Odoo Learn: Terms and Conditions (T&C) and Payment Terms <https://www.odoo.com/r/fpv>`_
- `Odoo Learn: Terms and Conditions (T&C) and Payment Terms <https://www.odoo.com/r/fpv>`_

View File

@ -15,7 +15,7 @@ Set up Snailmail
.. image:: media/setup_snailmail.png
: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
--------------------------

View File

@ -40,7 +40,7 @@ Configuration
- 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**

View File

@ -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*.
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`
to open and edit the record.

View File

@ -4,7 +4,7 @@ How to import data into Odoo
How to start
------------
You can import data on any Odoo's business object using either Excel
You can import data on any Odoo's business object using either Excel
(.xlsx) or CSV (.csv) formats:
contacts, products, bank statements, journal entries and even orders!
@ -14,7 +14,7 @@ Open the view of the object you want to populate and click *Import*.
:align: center
There you are provided with templates you can easily populate
with your own data. Such templates can be imported in one click;
with your own data. Such templates can be imported in one click;
The data mapping is already done.
How to adapt the template
@ -27,7 +27,7 @@ How to adapt the template
.. image:: media/dragdown.gif
:align: center
* When you add a new column, Odoo might not be able to map it automatically if its
* When you add a new column, Odoo might not be able to map it automatically if its
label doesn't fit any field in Odoo. Don't worry! You can map
new columns manually when you test the import. Search the list for the
corresponding field.
@ -42,33 +42,33 @@ How to adapt the template
How to import from another application
--------------------------------------
In order to re-create relationships between different records,
you should use the unique identifier from the original application
and map it to the **ID** (External ID) column in Odoo.
When you import another record that links to the first one,
In order to re-create relationships between different records,
you should use the unique identifier from the original application
and map it to the **ID** (External ID) column in Odoo.
When you import another record that links to the first one,
use **XXX/ID** (XXX/External ID) to the original unique identifier.
You can also find this record using its name but you will be stuck
You can also find this record using its name but you will be stuck
if at least 2 records have the same name.
The **ID** will also be used to update the original import
if you need to re-import modified data later,
The **ID** will also be used to update the original import
if you need to re-import modified data later,
it's thus good practice to specify it whenever possible.
I cannot find the field I want to map my column to
--------------------------------------------------
Odoo tries to find with some heuristic, based on the first ten lines of
the files, the type of field for each column inside your file.
For example if you have a column only containing numbers,
only the fields that are of type *Integer* will be displayed for you
to choose from.
While this behavior might be good and easy for most cases,
it is also possible that it goes wrong or that you want to
Odoo tries to find with some heuristic, based on the first ten lines of
the files, the type of field for each column inside your file.
For example if you have a column only containing numbers,
only the fields that are of type *Integer* will be displayed for you
to choose from.
While this behavior might be good and easy for most cases,
it is also possible that it goes wrong or that you want to
map your column to a field that is not proposed by default.
If that happens, you just have to check the
** Show fields of relation fields (advanced)** option,
If that happens, you just have to check the
** Show fields of relation fields (advanced)** option,
you will then be able to choose from the complete list of fields for each column.
.. image:: media/field_list.png
@ -145,14 +145,14 @@ link to a record of the 'Country' object. When you want to import such fields, O
recreate links between the different records. To help you import such fields, Odoo provides three
mechanisms. You must use one and only one mechanism per field you want to import.
For example, to reference the country of a contact, Odoo proposes you 3 different fields to import:
For example, to reference the country of a contact, Odoo proposes you 3 different fields to import:
- Country: the name or code of the country
- Country/Database ID: the unique Odoo ID for a record, defined by the ID postgresql column
- Country/External ID: the ID of this record referenced in another application (or the .XML file
that imported it)
For the country Belgium, you can use one of these 3 ways to import:
For the country Belgium, you can use one of these 3 ways to import:
- Country: Belgium
- Country/Database ID: 21
@ -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
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
imports. Odoo will take care of creating or modifying each record depending if it's new or not.

View File

@ -3,7 +3,7 @@ How to generate an Unsplash access key
=======================================================
.. 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
======================================================

View File

@ -266,7 +266,7 @@ Profit&Loss section to your assets.
===================================== ===== ======
If the stock value decreased, the **Inventory** account is credited
and te **Inventory Variations** debited.
and the **Inventory Variations** debited.
.. raw:: html

View File

@ -78,7 +78,7 @@ Create an internal transfer
===========================
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:
From your dashboard, select a internal movement of one of the two

View File

@ -69,7 +69,7 @@ are triggered until a transfer between the *Stock* and the *Picking
Area* is created.
.. 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,
then the packing, then the delivery order.

View File

@ -10,7 +10,7 @@ In order to use the Odoo UPS API, you will need:
- 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.
Create a UPS Account

View File

@ -49,7 +49,7 @@ Standard units of measures
~~~~~~~~~~~~~~~~~~~~~~~~~~
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
include: **Unit**, **weight**, **working time**, **volume**, etc.

View File

@ -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
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;
@ -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
the search bar button. This function allows you to highlight only
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
group by any existing field, making your customization very flexible and
powerful.

View File

@ -17,7 +17,7 @@ Start generating leads
==========================
You will now have a new button **Generate Leads** available in your pipeline.
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.
.. image:: media/LM2.png

View File

@ -3,7 +3,7 @@ Assign leads based on scoring
=============================
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
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.
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.
.. image:: media/lead_scoring02.png

View File

@ -24,7 +24,7 @@ Configure the Lane/5000 for Ingenico BENELUX
Click on the F button of the terminal, then go in the
: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
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.
@ -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
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.
.. note::
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, youll find the
type of card that has been used and the transaction ID.

View File

@ -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
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.

View File

@ -24,7 +24,7 @@ Listing with variations
=======================
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
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.
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.
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.

View File

@ -42,7 +42,7 @@ Using the updated synchronisation method
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.
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
parallel in existing installations.

View File

@ -66,12 +66,12 @@ Prices per minimum quantity
Discounts, margins, roundings
=============================
*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,
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).
Prices can be rounded to the nearest cent/dollar or multiple of either
(nearest 5 cents, nearest 10 dollars).
*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,
or to another pricelist. Changes are calculated via discounts or surcharges and can be
forced to fit within floor (minimum margin) and ceilings (maximum margins).
Prices can be rounded to the nearest cent/dollar or multiple of either
(nearest 5 cents, nearest 10 dollars).
Once installed go to
:menuselection:`Sales --> Configuration --> Pricelists`

View File

@ -50,7 +50,7 @@ Under :menuselection:`Project --> Reporting --> Customer Ratings` see ratings by
.. image:: media/rating_report.png
: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,
redirects you to your website with more rating details.

View File

@ -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.
* *Error*: an error has occured during the transaction.
* *Error*: an error has occurred during the transaction.
The customer needs to retry the payment.
The order is still in draft.

View File

@ -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
: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).
- **Campaign**: context of your link (e.g. a special promotion).

View File

@ -176,7 +176,7 @@ Publish a page in all websites
------------------------------
A new static page is created and only made available in the current
website. You can duplicate it to other websites from
website. You can duplicate it to other websites from
:menuselection:`Website --> Configuration --> Pages`. To do so, leave the *Website* field empty.
If you want to duplicate it in just one other website, duplicate the
@ -189,7 +189,7 @@ When you edit the page again, the change only affects the current
website. A new page is duplicated and tied up to the website.
The original page still being linked to all websites.
.. tip::
.. tip::
By grouping pages by URL in the page manager, you quickly find
the original page behind each edited page.

View File

@ -10,7 +10,7 @@ Profiling Odoo code
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
of time taken in the method itself as well as the time that the method took and
its sub-called methods.
@ -84,7 +84,7 @@ Dump stack
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
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.
Tracing code execution

View File

@ -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
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
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``

View File

@ -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
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
next action to execute.

View File

@ -236,7 +236,7 @@ corresponding behaviors) are shared between states:
* ``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
------------

View File

@ -165,7 +165,7 @@ Database
.. option:: --db_sslmode
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'
Default value is 'prefer'

View File

@ -330,7 +330,7 @@ should have a real naming as it is used as display name.
</record>
<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>
<!-- menus and sub-menus -->

View File

@ -177,7 +177,7 @@ to add a file from that addon. In that case, it should be done in three steps:
Note that the files in a bundle are all loaded immediately when the user loads the
odoo web client. This means that the files are transferred through the network
everytime (except when the browser cache is active). In some cases, it may be
every time (except when the browser cache is active). In some cases, it may be
better to lazyload some assets. For example, if a widget requires a large
library, and that widget is not a core part of the experience, then it may be
a good idea to only load the library when the widget is actually created. The
@ -1186,7 +1186,7 @@ may need to directly call a controller (available on some route).
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.
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*)
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.
.. code-block:: xml
@ -1588,7 +1588,7 @@ float (FieldFloat)
- 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
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.
.. code-block:: xml

View File

@ -109,7 +109,7 @@ to manage followers on your record:
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 `\**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
@ -251,11 +251,11 @@ Subtypes are created as data in your module; the model has the following fields:
``res_model`` - :class:`~odoo.fields.Char`
model the subtype applies to; if False, this subtype applies to all models
``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`
used to order subtypes in the notification customization popup
``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
@ -378,7 +378,7 @@ yourself by overriding the function ``_notification_recipients``.
following the thread). True by default for new groups, False for
portal / customer.
- button_follow
dict with url adn title of the button
dict with url and title of the button
- has_button_unfollow
whether to display Unfollow in email (if recipient is currently following the thread).
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
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
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):
""" Specify some default values that will be set in the alias at its creation """
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
#
# 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
do a regex match to find the amount of the 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
# to encode on the expense. If not, take 1.0 instead
amount_pattern = '(\d+(\.\d*)?|\.\d+)'
@ -755,7 +755,7 @@ widgets, respectively).
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
@ -778,7 +778,7 @@ You can find concrete examples of integration in the following models:
* ``crm.lead`` in the CRM (*crm*) 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:
@ -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
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

View File

@ -60,7 +60,7 @@ Check if the method is available and then execute it.
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
Show Toast in device

View File

@ -182,7 +182,7 @@ Date / Datetime comparison best practices:
date string, therefore this practice is **heavily**
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
:class:`~odoo.fields.Date` and :class:`~odoo.fields.Datetime`.
These helpers are also available by importing `odoo.tools.date_utils`.

View File

@ -56,7 +56,7 @@ can take the following attributes:
for example)
``attachment``
python expression that defines the name of the report; the record is
acessible as the variable ``object``
accessible as the variable ``object``
``paperformat``
external id of the paperformat you wish to use (defaults to the company's
paperformat if not specified)

View File

@ -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
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:

View File

@ -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
have to be selected explicitely:
have to be selected explicitly:
.. code-block:: console
@ -176,7 +176,7 @@ ones:
When you write a test that does not inherit from the
: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
they're not going to get run:
@ -193,7 +193,7 @@ Special tags
^^^^^^^^^^^^
- ``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``.
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
``-at_install`` when tagging a test class.
- *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
specific modules when testing e.g. if you want to only run tests from
``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
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
this issue. For now, we solve this on a case by case basis.

View File

@ -963,7 +963,7 @@ take the following attributes:
``consolidation``
field name to display consolidation value in record cell
``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
(e.g. ``{"user_id": 100}``)
``consolidation_exclude``
@ -1829,7 +1829,7 @@ Possible children elements of the search view are:
2018
2017
Muti selection of options is allowed.
Multi selection of options is allowed.
``default_period`` (optional)
only makes sense for a filter with non empty ``date`` attribute.

View File

@ -134,7 +134,7 @@ on Odoo (https://iap.odoo.com/my/home) and select *In-App Services*.
on sandbox to ease the tests.
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:
@ -688,7 +688,7 @@ care how they are implemented.
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
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.
Returns an :class:`~odoo.addons.iap.models.iap.InsufficientCreditError` on authorize attempt.
* 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.
.. note::

View File

@ -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
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
"hierarchical" server structure (e.g. ``odoo.res.partner.read()``)
* 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
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
"computed" updates (where the value being set depends on an existing value of
a record).

View File

@ -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 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
@ -244,7 +244,7 @@ should be empty if everything went fine.
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 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
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
* ``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
<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.
Your database upgrade request should be in the ``done`` state.

View File

@ -110,7 +110,7 @@ def add_doc_link(app, pagename, templatename, context, doctree):
return
# 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
source_suffix = app.config.source_suffix
source_suffix = next(iter(source_suffix))

View File

@ -71,7 +71,7 @@
//
// 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.
// 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
.table-bordered {

View File

@ -160,7 +160,7 @@
],
configuration: [
"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)",
"Inventory: defined on the category of the related product (property)",
"Expenses: defined on the product, or the category of product (property)",