diff --git a/.tx/config b/.tx/config index 63dbead32..aa7177100 100644 --- a/.tx/config +++ b/.tx/config @@ -32,9 +32,14 @@ file_filter = locale//LC_MESSAGES/ecommerce.po source_file = locale/sources/ecommerce.pot source_lang = en -[odoo-13-doc.expenses] -file_filter = locale//LC_MESSAGES/expenses.po -source_file = locale/sources/expenses.pot +[odoo-13-doc.expense] +file_filter = locale//LC_MESSAGES/expense.po +source_file = locale/sources/expense.pot +source_lang = en + +[odoo-13-doc.fsm] +file_filter = locale//LC_MESSAGES/fsm.po +source_file = locale/sources/fsm.pot source_lang = en [odoo-13-doc.general] @@ -82,6 +87,11 @@ file_filter = locale//LC_MESSAGES/manufacturing.po source_file = locale/sources/manufacturing.pot source_lang = en +[odoo-13-doc.planning] +file_filter = locale//LC_MESSAGES/planning.po +source_file = locale/sources/planning.pot +source_lang = en + [odoo-13-doc.point_of_sale] file_filter = locale//LC_MESSAGES/point_of_sale.po source_file = locale/sources/point_of_sale.pot @@ -112,11 +122,6 @@ file_filter = locale//LC_MESSAGES/quality.po source_file = locale/sources/quality.pot source_lang = en -[odoo-13-doc.recruitment] -file_filter = locale//LC_MESSAGES/recruitment.po -source_file = locale/sources/recruitment.pot -source_lang = en - [odoo-13-doc.sales] file_filter = locale//LC_MESSAGES/sales.po source_file = locale/sources/sales.pot @@ -132,6 +137,11 @@ file_filter = locale//LC_MESSAGES/social_marketing.po source_file = locale/sources/social_marketing.pot source_lang = en +[odoo-13-doc.support] +file_filter = locale//LC_MESSAGES/support.po +source_file = locale/sources/support.pot +source_lang = en + [odoo-13-doc.website] file_filter = locale//LC_MESSAGES/website.po source_file = locale/sources/website.pot diff --git a/README.rst b/README.rst index f8a96dcc7..f1a5aec4f 100644 --- a/README.rst +++ b/README.rst @@ -125,3 +125,10 @@ will convert ``path/to/document.docx`` to ``new_doc.rst`` and export all images to ``./media`` (and link them from the document). While there are issues with the exported document, it's much more convenient than manually re-typing the original. + + +Learn More +========== + +To learn more about Odoo, in addition to the documentation, have a look at the official +`eLearning `_ and `Scale-up, The Business Game `_ diff --git a/_extensions/odoo/layout.html b/_extensions/odoo/layout.html index ffdb266c0..6eba82ada 100644 --- a/_extensions/odoo/layout.html +++ b/_extensions/odoo/layout.html @@ -80,8 +80,8 @@
  • eCommerce
  • Blogs
  • Forums
  • -
  • Slides
  • -
  • SEA
  • +
  • eLearning
  • +
  • Live Chat
  • diff --git a/_extensions/odoo/static/style.css b/_extensions/odoo/static/style.css index e6fcdf9c9..1a99320ae 100644 --- a/_extensions/odoo/static/style.css +++ b/_extensions/odoo/static/style.css @@ -10124,7 +10124,7 @@ article.doc-toc .toctree-wrapper > ul > li > span { } @media (min-width: 768px) { .o_main_header > .o_main_header_main > .o_primary_nav .o_secondary_nav > .container > .row > div { - height: 340px; + height: 355px; padding-top: 10px; } .o_main_header > .o_main_header_main > .o_primary_nav .o_secondary_nav > .container > .row > div + div { diff --git a/_extensions/odoo/translator.py b/_extensions/odoo/translator.py index de7901c2f..769496f8a 100644 --- a/_extensions/odoo/translator.py +++ b/_extensions/odoo/translator.py @@ -377,7 +377,11 @@ class BootstrapTranslator(nodes.NodeVisitor, object): "Unsupported alignment value \"%s\"" % node['align'], location=doc ) - # todo: explicit width/height/scale? + attrs['style'] = '; '.join( + '%s:%s' % (name, node[name] + ('px' if re.match(r'^[0-9]+$', node[name]) else '')) + for name in ['width', 'height'] + if name in node + ) self.body.append(self.starttag(node, 'img', **attrs)) def depart_image(self, node): pass def visit_figure(self, node): diff --git a/_static/banners/fsm.jpg b/_static/banners/fsm.jpg new file mode 100644 index 000000000..e0bfce57a Binary files /dev/null and b/_static/banners/fsm.jpg differ diff --git a/_static/banners/planning.jpg b/_static/banners/planning.jpg new file mode 100644 index 000000000..818425f97 Binary files /dev/null and b/_static/banners/planning.jpg differ diff --git a/_static/coa-valuation-anglo-saxon.js b/_static/coa-valuation-anglo-saxon.js index bf781f3c9..20914f687 100644 --- a/_static/coa-valuation-anglo-saxon.js +++ b/_static/coa-valuation-anglo-saxon.js @@ -126,7 +126,7 @@ data.addWatch('chart', function (k, m, prev, next) { React.render( React.createElement(Controls, {p: next}), - document.getElementById('chart-controls')); + document.getElementById('chart-controls-anglo-saxon')); React.render( React.createElement(Chart, {p: next}), document.querySelector('.valuation-chart-anglo-saxon')); @@ -137,7 +137,7 @@ if (!chart) { return; } var controls = document.createElement('div'); - controls.setAttribute('id', 'chart-controls'); + controls.setAttribute('id', 'chart-controls-anglo-saxon'); chart.parentNode.insertBefore(controls, chart); data.reset(Immutable.Map({ diff --git a/_static/coa-valuation-continental.js b/_static/coa-valuation-continental.js index 9db7f8b80..6b62ac02b 100644 --- a/_static/coa-valuation-continental.js +++ b/_static/coa-valuation-continental.js @@ -126,7 +126,7 @@ data.addWatch('chart', function (k, m, prev, next) { React.render( React.createElement(Controls, {p: next}), - document.getElementById('chart-controls')); + document.getElementById('chart-controls-continental')); React.render( React.createElement(Chart, {p: next}), document.querySelector('.valuation-chart-continental')); @@ -137,7 +137,7 @@ if (!chart) { return; } var controls = document.createElement('div'); - controls.setAttribute('id', 'chart-controls'); + controls.setAttribute('id', 'chart-controls-continental'); chart.parentNode.insertBefore(controls, chart); data.reset(Immutable.Map({ diff --git a/_static/example_files/Ontvangen_CODA.2013-01-11-18.59.15.txt b/_static/example_files/Ontvangen_CODA.2013-01-11-18.59.15.txt new file mode 100644 index 000000000..158fa587b --- /dev/null +++ b/_static/example_files/Ontvangen_CODA.2013-01-11-18.59.15.txt @@ -0,0 +1,24 @@ +0000011011172505 00178299 DE MEYER LUC KREDBEBB 00820512013 00000 2 +12135BE33737018595246 EUR0000000011812700270710NOVIAT NV KBC-Business Comfortrekening 003 +2100010000OL44483FW SCTOFBIONLO1000000000435000110111001010000MEDEDELING 11011113501 0 +2200010000 GKCCBEBB 1 0 +2300010000BE41063012345610 PARTNER 1 0 1 +3100010001OL44483FW SCTOFBIONLO001010001001PARTNER 1 0 0 +2100020000OL4414AC8BOVSOVSOVERS0000000003044450110111001500001101240283842818 11011113501 0 +2200020000 BBRUBEBB 1 0 +2300020000BE61310126985517 PARTNER 2 0 1 +3100020001OL4414AC8BOVSOVSOVERS001500001001PARTNER 2 1 0 +3200020001MOLENSTRAAT 60 9340 LEDE 0 0 +2100030000AFECA0BIS IKLINNINBIS1000000000479040110111313410000 KBC-INVESTERINGSKREDIET 737-6543210-21 11011113510 0 +2100030001AFECA0BIS IKLINNINBIS1000000000419920110111813410660 11011113500 0 +2100030002AFECA0BIS IKLINNINBIS1000000000059120110111813410020 11011113510 0 +2100040000AFECA0CVA IKLINNINNIG1000000000479040110111313410000 KBC-INVESTERINGSKREDIET 737-6543210-21 11011113510 0 +2100040001AFECA0CVA IKLINNINNIG1000000000419920110111813410660 11011113500 0 +2100040002AFECA0CVA IKLINNINNIG1000000000059120110111813410020 11011113510 0 +2100050000AOGM00160BSCTOBOGOVER0000000000063740110111001500000TERUGGAVE 37232481 8400083296 . 11011113501 0 +2200050000 362/363 KREDBEBB 1 0 +2300050000BE43730004200601 KBC VERZEKERINGEN NV 0 1 +3100050001AOGM00160BSCTOBOGOVER001500001001KBC VERZEKERINGEN NV 1 0 +3200050001VAN OVERSTRAETENPLEIN 2 3000 LEUVEN 0 0 +8135BE44734024486445 EUR0000000013646050110111 0 +9 000022000000001393080000000003108190 2 diff --git a/_static/example_files/test_ofx.ofx b/_static/example_files/test_ofx.ofx new file mode 100644 index 000000000..37df4d0c9 --- /dev/null +++ b/_static/example_files/test_ofx.ofx @@ -0,0 +1,100 @@ + + + + + + + 0 + INFO + + 20130831165153.000[-8:PST] + ENG + + + + + 0 + + 0 + INFO + + + USD + + 000000123 + 123456 + CHECKING + + + 20130801 + 20130831165153.000[-8:PST] + + POS + 20130824080000 + -80 + 219378 + Agrolait + + + + 20130801 + 20130831165153.000[-8:PST] + + POS + 20130824080000 + -90 + 219379 + China Export + + + + 20130801 + 20130831165153.000[-8:PST] + + POS + 20130824080000 + -100 + 219380 + Axelor Scuba + + + + 20130801 + 20130831165153.000[-8:PST] + + POS + 20130824080000 + -90 + 219381 + China Scuba + + + + 2156.56 + 20130831165153 + + + + + + + 0 + + 0 + INFO + + + USD + + 123412341234 + + + + + -562.00 + 20130831165153 + + + + + diff --git a/_static/example_files/test_qif.qif b/_static/example_files/test_qif.qif new file mode 100644 index 000000000..5388e6dae --- /dev/null +++ b/_static/example_files/test_qif.qif @@ -0,0 +1,21 @@ +!Type:Bank +D8/12/13 +T-1,000.00 +PDelta PC +^ +D8/15/13 +T-75.46 +PWalts Drugs +^ +D3/3/13 +T-379.00 +PEpic Technologies +^ +D3/4/13 +T-20.28 +PYOUR LOCAL SUPERMARKET +^ +D3/3/13 +T-421.35 +PSPRINGFIELD WATER UTILITY +^ diff --git a/_static/example_files/vendor_pricelists_template.csv b/_static/example_files/vendor_pricelists_template.csv new file mode 100644 index 000000000..dc8097faa --- /dev/null +++ b/_static/example_files/vendor_pricelists_template.csv @@ -0,0 +1,8 @@ +Vendor,Product Template,Vendor Product Name,Vendor Product Code,Price,Minimal Quantity,Start Date,End Date,Delivery Lead Time +ASUSTeK,iMac,"Apple iMac 27""",ART439872,1299,5,,,2 +Camptocamp,iMac,"Apple iMac 27""",IT98764,1399,1,,,4 +ASUSTeK,"Switch, 24 ports",Bluetek Switch,ART439456,66,,,,4 +ASUSTeK,Datacard,LS DC02,ART672098,35,,,,5 +ASUSTeK,Laptop Customized,Asus ROG CS,ART439870,3300,,01/01/2018,12/31/2018,10 +ASUSTeK,"Mouse, Wireless",Logitech G950,ART859562,12.5,,,,3 +ASUSTeK,iPad Mini,Apple iPad Mini 32GB,ART547892,750,,01/01/2018,05/05/2018,3 \ No newline at end of file diff --git a/accounting/bank/feeds/coda.rst b/accounting/bank/feeds/coda.rst index 1963f9d67..ed6912b5a 100644 --- a/accounting/bank/feeds/coda.rst +++ b/accounting/bank/feeds/coda.rst @@ -10,8 +10,9 @@ With Odoo, you can download an CODA file from your bank or accounting software and import it directly in Odoo. This will create all bank statements. -.. tip:: - Test now the feature `with this sample CODA file `__ +.. tip:: + Test now the feature :download:`with this sample CODA file + <../../../_static/example_files/Ontvangen_CODA.2013-01-11-18.59.15.txt>` Configuration ============= @@ -21,8 +22,8 @@ Install the CODA feature If you have installed the Belgian Chart of Account provided with Odoo, the CODA import feature is already installed by default. In such a case, -you can move directly to the next section `Import your first coda -file `_ +you can move directly to the next section :ref:`Import your first coda +file ` If CODA is not activated yet, you need to do it first. In the Accounting application, go to the menu :menuselection:`Configuration --> Settings`. From the @@ -49,7 +50,7 @@ create all your bank statements. If the file is successfully loaded, you will get redirected to the bank reconciliation screen with all the transactions to reconcile. -.. _InstallCoda: +.. _accounting/InstallCoda: Importing CODA files ==================== diff --git a/accounting/bank/feeds/manual.rst b/accounting/bank/feeds/manual.rst index 2d77426f8..0e01b728d 100644 --- a/accounting/bank/feeds/manual.rst +++ b/accounting/bank/feeds/manual.rst @@ -64,8 +64,7 @@ is missing, Odoo will ask you to **select a partner**. :align: center .. tip:: - - Hit CTRL-Enter to reconcile all the balanced items on the sheets. + Hit CTRL-Enter to reconcile all the balanced items on the sheets. Close Bank Statements from the reconciliation --------------------------------------------- @@ -96,5 +95,5 @@ To close the bank statement, just click on **Validate**. .. seealso:: - * :doc:`../reconciliation/use_cases` - * :doc:`../feeds/synchronize` + * :doc:`../reconciliation/use_cases` + * :doc:`../feeds/synchronize` diff --git a/accounting/bank/feeds/ofx.rst b/accounting/bank/feeds/ofx.rst index 1fdf1012d..9820c508d 100644 --- a/accounting/bank/feeds/ofx.rst +++ b/accounting/bank/feeds/ofx.rst @@ -11,8 +11,8 @@ software and import it directly in your Odoo instance. This will create all bank statements. .. tip:: - - Test now the feature `with this sample OFX file `__ + Test now the feature :download:`with this sample OFX file + <../../../_static/example_files/test_ofx.ofx>` Configuration ============= @@ -60,8 +60,7 @@ complete the next payments you get or do to these contacts. This will speed up a lot the reconciliation process. .. seealso:: - - * :doc:`qif` - * :doc:`coda` - * :doc:`synchronize` - * :doc:`manual` + * :doc:`qif` + * :doc:`coda` + * :doc:`synchronize` + * :doc:`manual` diff --git a/accounting/bank/feeds/paypal.rst b/accounting/bank/feeds/paypal.rst index 2dd5f61fa..81bd2b428 100644 --- a/accounting/bank/feeds/paypal.rst +++ b/accounting/bank/feeds/paypal.rst @@ -45,14 +45,13 @@ the online institution and click on the configure button. 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 + 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). - 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 - 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). - - If you don't do this you will get a message either saying to put Paypal in - English or that the site is not supported. + If you don't do this you will get a message either saying to put Paypal in + English or that the site is not supported. If you configured your Paypal account correctly you should get to the next step of the Online feeds configuration. There you will have a screen with a date to diff --git a/accounting/bank/feeds/qif.rst b/accounting/bank/feeds/qif.rst index e2d86ecce..daf9b9b8a 100644 --- a/accounting/bank/feeds/qif.rst +++ b/accounting/bank/feeds/qif.rst @@ -12,8 +12,8 @@ software and import it directly in your Odoo instance. This will create all bank statements. .. tip:: - - Test now the feature `with this sample QIF file `__ + Test now the feature :download:`with this sample QIF file + <../../../_static/example_files/test_qif.qif>` Configuration ============= @@ -61,8 +61,7 @@ complete the next payments you get or do to these contacts. This will speed up a lot the reconciliation process. .. seealso:: - - * :doc:`ofx` - * :doc:`coda` - * :doc:`synchronize` - * :doc:`manual` + * :doc:`ofx` + * :doc:`coda` + * :doc:`synchronize` + * :doc:`manual` diff --git a/accounting/bank/misc/interbank.rst b/accounting/bank/misc/interbank.rst index ba03b7297..ca971e39d 100644 --- a/accounting/bank/misc/interbank.rst +++ b/accounting/bank/misc/interbank.rst @@ -73,7 +73,8 @@ internal transfer. Select the **Bank** you want to transfer to, specify the **Amount** and add a **Memo** if you wish. .. note:: - The memo is important if you wish to automatically reconcile (`see `_). + The memo is important if you wish to automatically reconcile (see `Import bank statements and + reconcile`_). .. image:: media/interbank02.png :align: center @@ -84,8 +85,6 @@ In terms of accounting the money is now booked in the transfer account. We'll need to import bank statements to book the money in the final accounts. -.. _Reconcile: - Import bank statements and reconcile ------------------------------------ diff --git a/accounting/bank/reconciliation/configure.rst b/accounting/bank/reconciliation/configure.rst index 19c8f8aed..2517b0e63 100644 --- a/accounting/bank/reconciliation/configure.rst +++ b/accounting/bank/reconciliation/configure.rst @@ -36,14 +36,12 @@ tell Odoo to take the entire fee into account. Save your changes when you are done. .. note:: - - If the amount of your bank fee is fixed, you can as well select **Fixed** - under amount type and specify the amount in the amount tap. + If the amount of your bank fee is fixed, you can as well select **Fixed** + under amount type and specify the amount in the amount tap. .. seealso:: - - You can also use this functionality to handle discounts. Please refer to - :doc:`../../receivables/customer_invoices/cash_discounts` + You can also use this functionality to handle discounts. Please refer to + :doc:`../../receivables/customer_invoices/cash_discounts` Register your payments based on a reconciliation model ====================================================== @@ -61,7 +59,6 @@ the relevant data instantly. Finally, click on **Reconcile** to finish the process. .. seealso:: - - * :doc:`../feeds/manual` - * :doc:`../feeds/ofx` - * :doc:`use_cases` + * :doc:`../feeds/manual` + * :doc:`../feeds/ofx` + * :doc:`use_cases` diff --git a/accounting/bank/reconciliation/use_cases.rst b/accounting/bank/reconciliation/use_cases.rst index b8428d491..699e82635 100644 --- a/accounting/bank/reconciliation/use_cases.rst +++ b/accounting/bank/reconciliation/use_cases.rst @@ -102,11 +102,9 @@ right and validate all related payments : :align: center .. tip:: - - Hit CTRL-Enter to reconcile all the balanced items in the sheet. + Hit CTRL-Enter to reconcile all the balanced items in the sheet. .. seealso:: - - * :doc:`../feeds/ofx` - * :doc:`../feeds/synchronize` - * :doc:`../feeds/manual` + * :doc:`../feeds/ofx` + * :doc:`../feeds/synchronize` + * :doc:`../feeds/manual` diff --git a/accounting/bank/setup/create_bank_account.rst b/accounting/bank/setup/create_bank_account.rst index 2ef80200f..d7ab5bc40 100644 --- a/accounting/bank/setup/create_bank_account.rst +++ b/accounting/bank/setup/create_bank_account.rst @@ -65,5 +65,5 @@ Delete a bank account or credit card account From the list of bank accounts, select items to delete and delete them from the action menu or go to the form and delete a single item from the action menu .. |image5| image:: media/image05.png - :class: btn-group + :class: btn-group diff --git a/accounting/localizations.rst b/accounting/localizations.rst index 4e732f50d..3140813be 100644 --- a/accounting/localizations.rst +++ b/accounting/localizations.rst @@ -5,12 +5,13 @@ Localizations .. toctree:: :titlesonly: - localizations/france - localizations/germany - localizations/mexico - localizations/nederlands - localizations/spain - localizations/switzerland + localizations/argentina localizations/colombia localizations/colombia_ES + localizations/france + localizations/germany localizations/italy_IT + localizations/mexico + localizations/netherlands + localizations/spain + localizations/switzerland diff --git a/accounting/localizations/argentina.rst b/accounting/localizations/argentina.rst new file mode 100644 index 000000000..720b7ff81 --- /dev/null +++ b/accounting/localizations/argentina.rst @@ -0,0 +1,323 @@ +========= +Argentina +========= + +Introduction +============ + +The Argentinean localization has been improved and extended in Odoo v13, in this version the next +modules are available: + +- **l10n_ar**: This module add accounting features for the Argentinian localization, which represent + the minimal configuration needed for a company to operate in Argentina and under the AFIP + (Administración Federal de Ingresos Públicos) regulations and guidelines. + +- **l10n_ar_reports**: Add VAT Book report which is a legal requirement in Argentine and that holds + the VAT detail info of sales or purchases recorded on the journal entries. This module includes as + well the VAT summary report that is used to analyze the invoice + +Configuration +============= + +Install the Argentinean localization modules +-------------------------------------------- + +For this, go to *Apps* and search for Argentina. Then click *Install* for the first two modules. + +.. image:: media/argentina01.png + :align: center + +Configure your company +~~~~~~~~~~~~~~~~~~~~~~ + +Once that the modules are installed, the first step is to set up your company data. Additional to +the basic information, a key field to fill in the AFIP Responsibility Type, that represent the +fiscal obligation and structure of the company: + +.. image:: media/argentina02.png + :align: center + +Chart of Account +~~~~~~~~~~~~~~~~ + +In Accounting settings there are three available packages of Chart of accounts, which are related to +the AFIP responsibility type of the Company, considering that if the base companies don't require as +many accounts as the companies that gave more complex fiscal requirements: + +- Monotributista (149 accounts). +- IVA Exempto (159 accounts). +- Responsables Inscriptos (166 Accounts). + +.. image:: media/argentina03.png + :align: center + +Configure Master data +--------------------- + +Partner +~~~~~~~ + +Identification Type and VAT +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +As part of the Argentinean localization, the document types defined by the AFIP are now available on +the Partner form, this information is essential for most transactions. There are six identification +types available by default: + +.. image:: media/argentina04.png + :align: center + +.. note:: + The complete list of Identification types defined by the AFIP is included in Odoo but only the + common ones are active. + +AFIP Responsibility Type +^^^^^^^^^^^^^^^^^^^^^^^^^ + +In Argentina the document type associated with customers and vendors transactions is defined based +on the AFIP Responsibility type, this field should be defined in the partner form: + +.. image:: media/argentina05.png + :align: center + +Taxes +~~~~~ + +As part of the localization module, the taxes are created automatically with their related +financial account and configuration. + +.. image:: media/argentina06.png + :align: center + +Taxes Types +^^^^^^^^^^^ + +Argentina has several tax types, the most common ones are: + +- VAT. Is the regular VAT and it can have several percentages. +- Perception. Advance payment of a tax that is applied on Invoices. +- Retention. Advance payment of a tax that is applied on payments +- Otros. + +Special Taxes +^^^^^^^^^^^^^ + +Some argentine taxes are not commonly used for all companies, these type of taxes are included as +inactive by default, it's important that before creating a new tax you confirm if they are not +already included in the Inactive taxes: + +.. image:: media/argentina07.png + :align: center + +Document Types +~~~~~~~~~~~~~~ + +In some Latin America countries, including Argentina, some accounting transactions like invoices and +vendor bills are classified by document types defined by the government fiscal authorities (In +Argentina case: AFIP). + +The document type is an essential information that needs to be displayed in the printed reports and +that needs to be easily identified, within the set of invoices as well of account moves. + +Each document type can have a unique sequence per journal where it is assigned. As part of the +localization, the Document Type include the country on which the document is applicable and the data +is created automatically when the localization module is installed. + +The information required for the document types is included by default so the user doesn't need to +fill anything on this view: + +.. image:: media/argentina08.png + :align: center + +.. note:: + There are several document types that are inactive by default but can be activated if needed. + +Letters +^^^^^^^ + +For Argentina, the document types include a letter that helps that indicates the +transaction/operation, example: + +- When an invoice is related to a B2B transaction, a document type "A" must be used. +- When an invoice is related to a B2C transaction, a document type "B" must be used. +- When an invoice is related to exportation transaction, a document type "E" must be used. + +The documents included in the localization have the proper letter associated, the user doesn't need +to configure anything additional. + +.. image:: media/argentina09.png + :align: center + +Use on Invoices +^^^^^^^^^^^^^^^ + +The document type on each transaction will be determined by: + +- The Journal related to the Invoice, identifying if the journal use documents. +- Condition applied based on the type of Issues and Receiver (ex. Type of fiscal regimen of + the buyer and type of fiscal regimen of the vendor) + +Journals +-------- + +In the Argentinean localization the Journal can have a different approach depending on its usage and +internal type, to configure you journals go to :menuselection:`Accounting --> Configuration --> +Journals`: + +For Sales and Purchase Journals it’s possible to enable the option *Use Documents*, this indicates +the Journal enables a list of document types that can be related to the Invoices and vendor Bills, +for more detail of the invoices, please refer to the section 2.3 Document Types. + +If the Sales/Purchase journal are used without the option *Use Documents* it because they won’t be +used to generate fiscal invoices, but mostly for account moves related to internal control process. + +AFIP Information (better known as AFIP Point of Sale) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: media/argentina10.png + :align: center + +**AFIP POS System**: This field is only visible for the Sales journals and defined the type of AFIP +POS that will be used to manage the transactions for which the journal is created. The AFIP POS +defines as well: + +#. The sequences of document types related to the WS. +#. The structure and data of the electronic invoice file. + +**AFIP POS Number**: This is the number configured in the AFIP to identify the operations related to +this AFIP POS. + +**AFIP POS Address**: This field is related to commercial address registered for the POS, which is +usually the same address than the Company. For example: has multiple stores (fiscal locations) then +AFIP will require that you have one AFIP POS per location: this location will be printed in the +invoice report. + +**Unified Book**: When AFIP POS System is Preimpresa the document types (applicable to the journal) +with the same letter will share the same sequence. For example: + +- Invoice: FA-A 0001-00000002. +- Credit Note: NC-A 0001-00000003. +- Debit Note: ND-A 0001-00000004. + +Usage and testing +================= + +Invoice +---------- + +After the partners and journals are created and configured, when the invoices are created the will +have the next behaviour: + +Document type assignation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Once the partner is selected the document type will filled automatically, based on the AFIP document +type: + +**Invoice for a customer IVA Responsable Inscripto, prefix A**. + +.. image:: media/argentina11.png + :align: center + +**Invoice for an end customer, prefix B**. + +.. image:: media/argentina12.png + :align: center + +**Exportation Invoice, prefix E**. + +.. image:: media/argentina13.png + :align: center + +As it is shown in the invoices, all of them use the same journal but the prefix and sequence is +given by the document type. + +The most common document type will be defined automatically for the different combinations of AFIP +responsibility type but it can be updated manually by the user. + +Invoice Taxes +~~~~~~~~~~~~~~~~~ + +Based on the AFIP Responsibility type, the VAT tax can have a different behavior on the pdf +report: + +**A. Tax excluded:** In this case the taxed amount needs to be clearly identified in the report. +This condition applies when the customer has the following AFIP Responsibility type: + +- Responsable Inscripto + +.. image:: media/argentina14.png + :align: center + +**B. Tax amount included:** This means that the taxed amount is included as part of the product +price, subtotal and totals. This condition applies when the customer has the following AFIP +Responsibility types: + +- IVA Sujeto Exento. +- Consumidor Final. +- Responsable Monotributo. +- IVA liberado. + +.. image:: media/argentina15.png + :align: center + +Vendor Bills +------------ + +Based on the sales journal selected for the invoice, the document type is now a required field. This +value is auto populated based on the AFIP Responsibility type of Issuer and Customer, but the value +can be switched if necessary. + +.. image:: media/argentina16.png + :align: center + +The document number needs to be registered manually and the format is validated automatically, in +case that the format is invalid a user error will be displayed indicating the correct format that is +expected. + +.. image:: media/argentina17.png + :align: center + +Reports +======= + +As part of the localization the next Financial reports were added: + +.. image:: media/argentina18.png + :align: center + +VAT Reports +----------- + +Libro de IVA Ventas +~~~~~~~~~~~~~~~~~~~ + +.. image:: media/argentina19.png + :align: center + +Libro de IVA Compras +~~~~~~~~~~~~~~~~~~~~ + +.. image:: media/argentina20.png + :align: center + +Resumen de IVA +~~~~~~~~~~~~~~ + +.. image:: media/argentina21.png + :align: center + +IIBB - Reports +-------------- + +IIBB - Ventas por Jurisdicción +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: media/argentina22.png + :align: center + +IIBB - Compras por Jurisdicción +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: media/argentina23.png + :align: center diff --git a/accounting/localizations/colombia.rst b/accounting/localizations/colombia.rst index fe512f340..156ea13c8 100644 --- a/accounting/localizations/colombia.rst +++ b/accounting/localizations/colombia.rst @@ -3,29 +3,31 @@ Colombia ======== Introduction -~~~~~~~~~~~~ +============ Electronic invoicing for Colombia is available from Odoo 12 and requires the next modules: -#. **l11n_co**: All the basic data to manage the accounting module, +#. **l10n_co**: All the basic data to manage the accounting module, contains the default setup for: chart of accounts, taxes, retentions, identification document types #. **l10n_co_edi**: This module includes all the extra fields that are required for the Integration with Carvajal T&S and generate the electronic invoice, based on the DIAN legal requirements. + Workflow -~~~~~~~~ +======== .. image:: media/colombia01.png :align: center -Configuration -~~~~~~~~~~~~~ -1. Install the Colombian localization modules ---------------------------------------------- +Configuration +============= + +Install the Colombian localization modules +------------------------------------------ For this, go in Apps and search for Colombia. Then click Install for the first two modules. @@ -33,8 +35,9 @@ the first two modules. .. image:: media/colombia02.png :align: center -2. Configure credentials for Carvajal T&S web service ------------------------------------------------------ + +Configure credentials for Carvajal T&S web service +-------------------------------------------------- Once that the modules are installed, in order to be able to connect with Carvajal T&S Web Service, it's necessary to configure the user @@ -54,8 +57,9 @@ here: https://cenfinancierolab.cen.biz Once that Odoo and Carvajal T&S is fully configured and ready for production the testing environment can be disabled. -3. Configure your report data ------------------------------ + +Configure your report data +-------------------------- As part of the configurable information that is sent in the XML, you can define the data for the fiscal section and the bank information in @@ -67,14 +71,15 @@ look for the *Colombian Electronic Invoice* section. .. image:: media/colombia04.png :align: center -4. Configure data required in the XML -------------------------------------- -4.1 Partner -+++++++++++ +Configure data required in the XML +---------------------------------- -4.1.1 Identification -^^^^^^^^^^^^^^^^^^^^ +Partner +~~~~~~~ + +Identification +^^^^^^^^^^^^^^ As part of the Colombian Localization, the document types defined by the DIAN are now available on the Partner form. Colombian partners @@ -88,8 +93,9 @@ have to have their identification number and document type set: will split this number when the data to the third party vendor is sent. -4.1.2 Fiscal structure (RUT) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Fiscal structure (RUT) +^^^^^^^^^^^^^^^^^^^^^^ The partner's responsibility codes (section 53 in the RUT document) are included as part of the electronic invoice module given that is @@ -104,8 +110,9 @@ Purchase Tab --> Fiscal Information` Additionally two booleans fields were added in order to specify the fiscal regimen of the partner. -4.2 Taxes -+++++++++ + +Taxes +~~~~~ If your sales transactions include products with taxes, it's important to consider that an extra field *Value Type* needs to be configured @@ -121,8 +128,9 @@ to correctly display taxes in the invoice PDF. .. image:: media/colombia08.png :align: center -4.3 Journals -++++++++++++ + +Journals +~~~~~~~~ Once the DIAN has assigned the official sequence and prefix for the electronic invoice resolution, the Sales journals related to your @@ -139,8 +147,9 @@ should be configured and synchronized with the CEN Financiero. .. image:: media/colombia10.png :align: center -4.4 Users -+++++++++ + +Users +~~~~~ The default template that is used by Odoo on the invoice PDF includes the job position of the salesperson, so these fields should be @@ -149,17 +158,19 @@ configured: .. image:: media/colombia11.png :align: center -Usage and testing -~~~~~~~~~~~~~~~~~ -1. Invoice ----------- +Usage and testing +================= + +Invoice +------- When all your master data and credentials has been configured, it's possible to start testing the electronic invoice workflow. -1.1 Invoice creation -++++++++++++++++++++ + +Invoice creation +~~~~~~~~~~~~~~~~ The functional workflow that takes place before an invoice validation doesn't change. The main changes that are introduced with the @@ -180,8 +191,9 @@ There are three types of documents: this invoice is added to the ERP, this invoice type should be selected. -1.2 Invoice validation -++++++++++++++++++++++ + +Invoice validation +~~~~~~~~~~~~~~~~~~ After the invoice is validated an XML file is created and sent automatically to Carvajal, this file is displayed in the chatter. @@ -197,8 +209,9 @@ displayed with the Electronic Invoice status, with the initial value .. image:: media/colombia14.png :align: center -1.3 Reception of legal XML and PDF -++++++++++++++++++++++++++++++++++ + +Reception of legal XML and PDF +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The electronic invoice vendor receives the XML file and proceeds to validate the structure and the information in it, if everything is @@ -213,16 +226,15 @@ After this: - A ZIP containing the legal XML and the PDF is downloaded and displayed in the invoice chatter: -.. image:: media/colombia15.png - :align: center + .. image:: media/colombia15.png -.. image:: media/colombia16.png - :align: center + .. image:: media/colombia16.png - The Electronic Invoice status changes to "Accepted" -1.4 Common errors -+++++++++++++++++ + +Common errors +~~~~~~~~~~~~~ During the XML validation the most common errors are usually related to missing master data. In such cases, error messages are shown in the @@ -241,8 +253,9 @@ button: .. image:: media/colombia19.png :align: center -2. Additional use cases ------------------------ + +Additional use cases +-------------------- The process for credit and debit notes is exactly the same as the invoice, the functional workflow remains the same as well. diff --git a/accounting/localizations/colombia_ES.rst b/accounting/localizations/colombia_ES.rst index 84172d7bd..89ec8113d 100644 --- a/accounting/localizations/colombia_ES.rst +++ b/accounting/localizations/colombia_ES.rst @@ -2,85 +2,90 @@ Colombia (ES) ============= -**Facturación Electrónica para Colombia** - Introducción ============ -La Facturación Electrónica para Colombia está disponible en Odoo V12 y +La Facturación Electrónica para Colombia está disponible en Odoo 12 y requiere los siguientes Módulos: -1. **l11n_co**:** Contiene los datos básicos para manejar el - módulo de contabilidad, incluyendo la configuración por defecto - de los siguientes puntos: +#. **l10n_co**: Contiene los datos básicos para manejar el módulo de + contabilidad, incluyendo la configuración por defecto de los siguientes + puntos: - | a. Plan Contable - | b. Impuestos - | c. Retenciones - | d. Tipos de Documentos de Identificación + - Plan Contable + - Impuestos + - Retenciones + - Tipos de Documentos de Identificación + +#. **l10n_co_edi**: Este módulo incluye todos los campos adicionales que son + requeridos para la Integración entre Carvajal T&S y la generación de la + Factura Electrónica, basado en los requisitos legales de la DIAN. -1. **l10n_co_edi**: Este módulo incluye todos los campos - adicionales que son requeridos para la Integración entre Carvajal - T&S y la generación de la Factura Electrónica, basado en los - requisitos legales de la DIAN. Flujo General -------------- +============= + +.. image:: media/colombia01.png + :align: center + Configuración ============= -1. Instalación de los módulos de Localización Colombiana --------------------------------------------------------- +Instalación de los módulos de Localización Colombiana +----------------------------------------------------- Para esto ve a las aplicaciones y busca “Colombia”, luego da click en Instalar a los primeros dos módulos: -cz +.. image:: media/colombia02.png + :align: center -2. Configuración de las credenciales del Servicio Web de Carvajal T&S -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Configuración de las credenciales del Servicio Web de Carvajal T&S +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Una vez que los módulos están instalados, para poderte conectar con el Servicio Web de Carvajal T&S, es necesario configurar el Usuario y las Credenciales. Esta información será provista por Carvajal T&S. -| Ve a Facturación –> Configuración –> Configuración y busca la sección +| Ve a :menuselection:`Facturación --> Configuración --> Configuración` y busca la sección **Facturación Electrónica Colombiana** .. image:: media/colombia_ES02.png :align: center -| La funcionalidad de pruebas le permite conectarse e interactuar con el - ambiente piloto de Carvajal T&S, esto permite a los usuarios probar el - flujo completo y la integración con el Portal Financiero CEN, al cual - se accede a través de la siguiente liga: `Cenfinanciero `__, +La funcionalidad de pruebas le permite conectarse e interactuar con el +ambiente piloto de Carvajal T&S, esto permite a los usuarios probar el +flujo completo y la integración con el Portal Financiero CEN, al cual +se accede a través de la siguiente liga: `Cenfinanciero `_. Una vez que el ambiente de producción está listo en Odoo y en Carvajal T&S el ambiente de pruebas debe ser deshabilitado para poder enviar la información al ambiente de producción de Carvajal, para el cual es -utilizada la siguiente URL: `Cenfinanciero `__, +utilizada la siguiente URL: `Cenfinanciero `_. -3. Configuración de Información para PDF ----------------------------------------- + +Configuración de Información para PDF +------------------------------------- | Como parte de la información configurable que es enviada en el XML, puedes definir los datos de la sección fiscal del PDF, así como de la información Bancaria. -| Ve a Contabilidad – Configuración – Ajustes y busca la sección +| Ve a :menuselection:`Contabilidad --> Configuración --> Ajustes` y busca la sección **Facturación Electrónica Colombiana**. .. image:: media/colombia_ES03.png :align: center -4. Configuración de los Datos Principales Requeridos en el XML --------------------------------------------------------------- -4.1 Contacto (Tercero) -~~~~~~~~~~~~~~~~~~~~~~ +Configuración de los Datos Principales Requeridos en el XML +----------------------------------------------------------- -4.1.1 Identificación -~~~~~~~~~~~~~~~~~~~~ +Contacto (Tercero) +~~~~~~~~~~~~~~~~~~ +Identificación +^^^^^^^^^^^^^^ Como parte de la Localización Colombiana, los tipos de documentos definidos por la DIAN ahora están disponibles en el formulario de @@ -95,15 +100,16 @@ ingresada en Odoo incluyendo el Dígito de Verificación. Odoo separará este número cuando la información sea enviada a los proveedores terceros. -4.1.2 Estructura Fiscal (RUT) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Estructura Fiscal (RUT) +^^^^^^^^^^^^^^^^^^^^^^^ Los Códigos de tipo de Obligación aplicables a los terceros (sección 53 en el documento de RUT), son incluidos como parte del módulo de Facturación Electrónica, dado que es información requerida por la DIAN. -Estos campos se encuentran en Contactos –> Pestaña de Ventas y Compras -–> Información Fiscal +Estos campos se encuentran en :menuselection:`Contactos --> Pestaña de Ventas y Compras +--> Información Fiscal` .. image:: media/colombia_ES05.png :align: center @@ -114,14 +120,13 @@ electrónica de Carvajal, únicamente se hace distinción de entre Grandes Contribuyentes y Régimen simplificado, por lo se muestran solo estas dos opciones. -4.2 Impuestos -------------- +Impuestos +~~~~~~~~~ -| Si tus transacciones de ventas incluyen productos con impuestos, es - importante considerar que un campo adicional llamado *Tipo de Valor* - necesita ser configurado en la siguiente ruta: -| Contabilidad – > Configuración –> Impuestos: –> Opciones Avanzadas - –>Tipo de Valor +Si tus transacciones de ventas incluyen productos con impuestos, es +importante considerar que un campo adicional llamado *Tipo de Valor* +necesita ser configurado en la siguiente ruta: :menuselection:`Contabilidad +--> Configuración --> Impuestos: --> Opciones Avanzadas --> Tipo de Valor` .. image:: media/colombia_ES06.png :align: center @@ -134,8 +139,9 @@ en la representación gráfica de la Factura. (PDF) .. image:: media/colombia_ES07.png :align: center -4.3 Diarios ------------ + +Diarios +~~~~~~~ Una vez que la DIAN ha asignado la secuencia y prefijo oficiales para la resolución de la Facturación Electrónica, los Diarios de Ventas @@ -143,9 +149,8 @@ relacionados con tus documentos de facturación necesitan ser actualizados en Odoo. La secuencia es configurada usando el modo de desarrollador en la -siguiente ruta: - -Contabilidad –> Configuración –> Diarios –> Liga de Secuencia +siguiente ruta: :menuselection:`Contabilidad --> Configuración --> Diarios +--> Liga de Secuencia` .. image:: media/colombia_ES08.png :align: center @@ -156,8 +161,9 @@ Número deben ser configurados y sincronizados con el CEN Financiero. .. image:: media/colombia_ES09.png :align: center -4.4 Usuarios ------------- + +Usuarios +~~~~~~~~ La plantilla por defecto que es usada por Odoo en la representación gráfica incluye el nombre del Vendedor, así que estos campos deben ser @@ -166,6 +172,7 @@ considerados: .. image:: media/colombia_ES10.png :align: center + Uso y Pruebas ============= @@ -176,8 +183,9 @@ Una vez que toda la información principal y las credenciales han sido configuradas, es posible empezar a probar el flujo de la Facturación Electrónica siguiendo las instrucciones que se detallan a continuación: -1. Invoice Creation -~~~~~~~~~~~~~~~~~~~ + +Invoice Creation +~~~~~~~~~~~~~~~~ El flujo de trabajo funcional que lleva lugar antes de la validación de una factura continua siendo igual con Facturación Electrónica, @@ -189,23 +197,23 @@ Electrónica son los siguientes: Hay tres tipos de documentos -- **Factura electrónica**. Este es el documento normal y aplica - para Facturas, Notas de Crédito y Notas de Débito. +- **Factura electrónica**. Este es el documento normal y aplica + para Facturas, Notas de Crédito y Notas de Débito. -- **Factura de Importación**. Debe ser seleccionada para - transacciones de importación. +- **Factura de Importación**. Debe ser seleccionada para + transacciones de importación. -- **Factura de Contingencia**. Esta es un caso excepcional y es - utilizada como un respaldo manual en caso que la compañía no - pueda usar el ERP y hay necesidad de crear la factura - manualmente. Al ingresar esta factura en el ERP, se debe - seleccionar este tipo. +- **Factura de Contingencia**. Esta es un caso excepcional y es + utilizada como un respaldo manual en caso que la compañía no + pueda usar el ERP y hay necesidad de crear la factura + manualmente. Al ingresar esta factura en el ERP, se debe + seleccionar este tipo. -.. image:: media/colombia_ES11.png - :align: center + .. image:: media/colombia_ES11.png -1. Invoice Validation -~~~~~~~~~~~~~~~~~~~~~ + +Invoice Validation +~~~~~~~~~~~~~~~~~~ Después que la factura fue validada, un archivo XML es creado y enviado automáticamente al proveedor de la factura electrónica. Este archivo es @@ -222,8 +230,9 @@ Electrónica, con el valor inicial **En Proceso**. .. image:: media/colombia_ES13.png :align: center -1. Recepción del XML y PDF Legal -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Recepción del XML y PDF Legal +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | El proveedor de la Factura Electrónica recibe el archivo XML y procede a validar la información y la estructura contenida. Si todo es @@ -234,28 +243,28 @@ Electrónica, con el valor inicial **En Proceso**. | Odoo envía una petición de actualización automáticamente para verificar que el XML fue creado. Si este es el caso, las siguientes - acciones son hechas automáticamente. + acciones son hechas automáticamente: -- El XML Legal y el PDF son incluidos en un archivo ZIP y desplegados - en el historial de la Factura. +- El XML Legal y el PDF son incluidos en un archivo ZIP y desplegados + en el historial de la Factura. -.. image:: media/colombia_ES14.png - :align: center + .. image:: media/colombia_ES14.png -- El estatus de la Factura Electrónica es cambiado a “Aceptado”. +- El estatus de la Factura Electrónica es cambiado a “Aceptado”. -.. image:: media/colombia_ES15.png - :align: center + .. image:: media/colombia_ES15.png -Nota: En caso que el PDF y el XML sean requeridos inmediatamente, es -posible mandar manualmente la petición del estatus usando el siguiente -botón: +.. tip:: + En caso que el PDF y el XML sean requeridos inmediatamente, es + posible mandar manualmente la petición del estatus usando el siguiente + botón: -.. image:: media/colombia_ES16.png - :align: center + .. image:: media/colombia_ES16.png + :align: center -1. Errores Frecuentes -~~~~~~~~~~~~~~~~~~~~~ + +Errores Frecuentes +~~~~~~~~~~~~~~~~~~ Durante la validación del XML los errores más comunes usualmente están relacionados con información principal faltante. En estos casos, los @@ -275,6 +284,7 @@ siguiente botón: .. image:: media/colombia_ES19.png :align: center + Casos de Uso adicionales ------------------------ diff --git a/accounting/localizations/france.rst b/accounting/localizations/france.rst index 2a25d6272..8caabe15b 100644 --- a/accounting/localizations/france.rst +++ b/accounting/localizations/france.rst @@ -50,10 +50,10 @@ Getting compliant with Odoo is very easy. Your company is requested by the tax administration to deliver a certificate of conformity testifying that your software complies with the anti-fraud legislation. This certificate is granted by Odoo SA to Odoo Enterprise users -`here `__. +`here `_. If you use Odoo Community, you should -`upgrade to Odoo Enterprise `__ -or contact your Odoo service provider. +`upgrade to Odoo Enterprise `_ +or contact your Odoo service provider. In case of non-conformity, your company risks a fine of €7,500. @@ -63,27 +63,28 @@ To get the certification just follow the following steps: *Apps* menu: * if you use Odoo Point of Sale: *l10n_fr_pos_cert*: France - VAT Anti-Fraud Certification for Point of Sale (CGI 286 I-3 bis) - * in any other case: *l10n_fr_certification*: France - VAT Anti-Fraud Certification (CGI 286 I-3 bis) + * Make sure a country is set on your company, otherwise your entries won’t be encrypted for the inalterability check. To edit your company’s data, go to :menuselection:`Settings --> Users & Companies --> Companies`. Select a country from the list; Do not create a new country. * Download the mandatory certificate of conformity delivered by Odoo SA `here `__. -.. note:: * To install the module in any system created before - December 18th 2017, you should update the modules list. - To do so, activate the developer mode from the *Settings* menu. - Then go to the *Apps* menu and press *Update Modules List* in the top-menu. - * In case you run Odoo on-premise, you need to update your installation - and restart your server beforehand. - * If you have installed the initial version of the anti-fraud module - (prior to December 18th 2017), you need to update it. - The module's name was *France - Accounting - Certified CGI 286 I-3 bis*. - After an update of the modules list, search for - the updated module in *Apps*, select it and click *Upgrade*. - Finally, make sure the following module *l10n_fr_sale_closing* - is installed. +.. note:: + * To install the module in any system created before + December 18th 2017, you should update the modules list. + To do so, activate the developer mode from the *Settings* menu. + Then go to the *Apps* menu and press *Update Modules List* in the top-menu. + * In case you run Odoo on-premise, you need to update your installation + and restart your server beforehand. + * If you have installed the initial version of the anti-fraud module + (prior to December 18th 2017), you need to update it. + The module's name was *France - Accounting - Certified CGI 286 I-3 bis*. + After an update of the modules list, search for + the updated module in *Apps*, select it and click *Upgrade*. + Finally, make sure the following module *l10n_fr_sale_closing* + is installed. Anti-fraud features ------------------- @@ -179,17 +180,6 @@ More Information You will find more information about this legislation in the official documents: -* `Frequently Asked Questions `__ -* `Official Statement `__ -* `Item 88 of Finance Law 2016 `__ - - - - - - - - - - - +* `Frequently Asked Questions `_ +* `Official Statement `_ +* `Item 88 of Finance Law 2016 `_ diff --git a/accounting/localizations/italy_IT.rst b/accounting/localizations/italy_IT.rst index 938a826e5..057de9d1d 100644 --- a/accounting/localizations/italy_IT.rst +++ b/accounting/localizations/italy_IT.rst @@ -8,6 +8,7 @@ contabilità. Per testare la fattura elettronica i dati devono essere reali e non inventati, altrimenti il sistema dell’agenzia delle entrate non riconoscerà l’interscambio di informazioni. + Configurare le informazioni sulla tua Azienda ============================================= @@ -24,8 +25,7 @@ elettronica sono i seguenti: di posta elettronica certificata sono fornite dal tuo fornitore o dal Ministero. Lo stesso server deve essere configurato come server che gestisce tutta la corrispondenza mail in Odoo, per saperne di più si - puo’ consultare la relativa - `guida `__. + puo’ consultare la relativa :doc:`guida <../../discuss/email_servers>`. - Indirizzo PEC dell’ Azienda, tale indirizzo deve essere lo stesso registrato presso l’Agenzia delle Entrate per l’utilizzo dei servizi @@ -50,8 +50,8 @@ elettronica sono i seguenti: :align: center -1. Configurare le impostazioni per la Fatturazione Elettronica --------------------------------------------------------------- +Configurare le impostazioni per la Fatturazione Elettronica +----------------------------------------------------------- - Numero di iscrizione nel registro Imprese tenuto presso la Camera di Commercio. @@ -66,8 +66,8 @@ elettronica sono i seguenti: :align: center -1. Configurare il profilo dei clienti -------------------------------------- +Configurare il profilo dei clienti +---------------------------------- Per un corretto utilizzo dell’applicazione, il profilo di clienti e fornitori, nell’applicazione contatti, deve essere configurato con le @@ -101,22 +101,22 @@ schermata della fattura. I messaggi che possono apparire sono i seguenti: -1. Fattura invitata. In attesa di accettazione +#. Fattura invitata. In attesa di accettazione -2. Invio fallito. Puoi modificare la fattura ed inviarla di nuovo +#. Invio fallito. Puoi modificare la fattura ed inviarla di nuovo -3. La fattura è stata correttamente inviata ed accettata dal +#. La fattura è stata correttamente inviata ed accettata dal destinatario. I vari stadi di spedizione e recezione della fattura sono visibili anche dall’elenco delle Fatture nella forma di icone, accanto alla colonna “Stato” dall’applicazione contabilità. -*Icona Rossa:* Invio fallito +*Icona Rossa*: Invio fallito -*Icona Gialla:* Fattura invitata. In attesa di accettazione +*Icona Gialla*: Fattura invitata. In attesa di accettazione -*Icona Verde:* Fattura inviata e accettata dal destinatario +*Icona Verde*: Fattura inviata e accettata dal destinatario Per inviare la fattura tramite PEC e generare il file XML, basterà cliccare su invia. Il documento verrà poi mostrato tra gli allegati. diff --git a/accounting/localizations/media/argentina01.png b/accounting/localizations/media/argentina01.png new file mode 100644 index 000000000..76dc482b6 Binary files /dev/null and b/accounting/localizations/media/argentina01.png differ diff --git a/accounting/localizations/media/argentina02.png b/accounting/localizations/media/argentina02.png new file mode 100644 index 000000000..6a49f80f9 Binary files /dev/null and b/accounting/localizations/media/argentina02.png differ diff --git a/accounting/localizations/media/argentina03.png b/accounting/localizations/media/argentina03.png new file mode 100644 index 000000000..672338e48 Binary files /dev/null and b/accounting/localizations/media/argentina03.png differ diff --git a/accounting/localizations/media/argentina04.png b/accounting/localizations/media/argentina04.png new file mode 100644 index 000000000..24e872485 Binary files /dev/null and b/accounting/localizations/media/argentina04.png differ diff --git a/accounting/localizations/media/argentina05.png b/accounting/localizations/media/argentina05.png new file mode 100644 index 000000000..cbfd449ea Binary files /dev/null and b/accounting/localizations/media/argentina05.png differ diff --git a/accounting/localizations/media/argentina06.png b/accounting/localizations/media/argentina06.png new file mode 100644 index 000000000..dddced6ce Binary files /dev/null and b/accounting/localizations/media/argentina06.png differ diff --git a/accounting/localizations/media/argentina07.png b/accounting/localizations/media/argentina07.png new file mode 100644 index 000000000..6790eea71 Binary files /dev/null and b/accounting/localizations/media/argentina07.png differ diff --git a/accounting/localizations/media/argentina08.png b/accounting/localizations/media/argentina08.png new file mode 100644 index 000000000..0f84f7770 Binary files /dev/null and b/accounting/localizations/media/argentina08.png differ diff --git a/accounting/localizations/media/argentina09.png b/accounting/localizations/media/argentina09.png new file mode 100644 index 000000000..45deebefd Binary files /dev/null and b/accounting/localizations/media/argentina09.png differ diff --git a/accounting/localizations/media/argentina10.png b/accounting/localizations/media/argentina10.png new file mode 100644 index 000000000..d5967365a Binary files /dev/null and b/accounting/localizations/media/argentina10.png differ diff --git a/accounting/localizations/media/argentina11.png b/accounting/localizations/media/argentina11.png new file mode 100644 index 000000000..b3196a031 Binary files /dev/null and b/accounting/localizations/media/argentina11.png differ diff --git a/accounting/localizations/media/argentina12.png b/accounting/localizations/media/argentina12.png new file mode 100644 index 000000000..03c58cfba Binary files /dev/null and b/accounting/localizations/media/argentina12.png differ diff --git a/accounting/localizations/media/argentina13.png b/accounting/localizations/media/argentina13.png new file mode 100644 index 000000000..113964c58 Binary files /dev/null and b/accounting/localizations/media/argentina13.png differ diff --git a/accounting/localizations/media/argentina14.png b/accounting/localizations/media/argentina14.png new file mode 100644 index 000000000..ffb533f16 Binary files /dev/null and b/accounting/localizations/media/argentina14.png differ diff --git a/accounting/localizations/media/argentina15.png b/accounting/localizations/media/argentina15.png new file mode 100644 index 000000000..743cf5745 Binary files /dev/null and b/accounting/localizations/media/argentina15.png differ diff --git a/accounting/localizations/media/argentina16.png b/accounting/localizations/media/argentina16.png new file mode 100644 index 000000000..758e8f77b Binary files /dev/null and b/accounting/localizations/media/argentina16.png differ diff --git a/accounting/localizations/media/argentina17.png b/accounting/localizations/media/argentina17.png new file mode 100644 index 000000000..38068d794 Binary files /dev/null and b/accounting/localizations/media/argentina17.png differ diff --git a/accounting/localizations/media/argentina18.png b/accounting/localizations/media/argentina18.png new file mode 100644 index 000000000..7c7c8c76b Binary files /dev/null and b/accounting/localizations/media/argentina18.png differ diff --git a/accounting/localizations/media/argentina19.png b/accounting/localizations/media/argentina19.png new file mode 100644 index 000000000..9e27f63c0 Binary files /dev/null and b/accounting/localizations/media/argentina19.png differ diff --git a/accounting/localizations/media/argentina20.png b/accounting/localizations/media/argentina20.png new file mode 100644 index 000000000..7bc13fea2 Binary files /dev/null and b/accounting/localizations/media/argentina20.png differ diff --git a/accounting/localizations/media/argentina21.png b/accounting/localizations/media/argentina21.png new file mode 100644 index 000000000..d31ba07a6 Binary files /dev/null and b/accounting/localizations/media/argentina21.png differ diff --git a/accounting/localizations/media/argentina22.png b/accounting/localizations/media/argentina22.png new file mode 100644 index 000000000..a09670de3 Binary files /dev/null and b/accounting/localizations/media/argentina22.png differ diff --git a/accounting/localizations/media/argentina23.png b/accounting/localizations/media/argentina23.png new file mode 100644 index 000000000..b2660280e Binary files /dev/null and b/accounting/localizations/media/argentina23.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_1.png b/accounting/localizations/media/colombia_ubl2.1_1.png new file mode 100644 index 000000000..a0301b9cc Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_1.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_10.png b/accounting/localizations/media/colombia_ubl2.1_10.png new file mode 100644 index 000000000..7165ef8eb Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_10.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_11.png b/accounting/localizations/media/colombia_ubl2.1_11.png new file mode 100644 index 000000000..6bc09cc54 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_11.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_12.png b/accounting/localizations/media/colombia_ubl2.1_12.png new file mode 100644 index 000000000..f6a9964f6 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_12.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_13.png b/accounting/localizations/media/colombia_ubl2.1_13.png new file mode 100644 index 000000000..f8f5a7219 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_13.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_14.png b/accounting/localizations/media/colombia_ubl2.1_14.png new file mode 100644 index 000000000..cb1065172 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_14.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_15.png b/accounting/localizations/media/colombia_ubl2.1_15.png new file mode 100644 index 000000000..9302abe76 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_15.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_16.png b/accounting/localizations/media/colombia_ubl2.1_16.png new file mode 100644 index 000000000..335d07e78 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_16.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_17.png b/accounting/localizations/media/colombia_ubl2.1_17.png new file mode 100644 index 000000000..5edbe7f8f Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_17.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_18.png b/accounting/localizations/media/colombia_ubl2.1_18.png new file mode 100644 index 000000000..019ac1a72 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_18.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_2.png b/accounting/localizations/media/colombia_ubl2.1_2.png new file mode 100644 index 000000000..41b8b020a Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_2.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_3.png b/accounting/localizations/media/colombia_ubl2.1_3.png new file mode 100644 index 000000000..4d49b99e2 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_3.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_4.png b/accounting/localizations/media/colombia_ubl2.1_4.png new file mode 100644 index 000000000..3f1a89a9c Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_4.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_5.png b/accounting/localizations/media/colombia_ubl2.1_5.png new file mode 100644 index 000000000..873ff30b0 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_5.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_6.png b/accounting/localizations/media/colombia_ubl2.1_6.png new file mode 100644 index 000000000..a64d81b01 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_6.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_7.png b/accounting/localizations/media/colombia_ubl2.1_7.png new file mode 100644 index 000000000..a94efedfb Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_7.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_8.png b/accounting/localizations/media/colombia_ubl2.1_8.png new file mode 100644 index 000000000..cd7a3dbb4 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_8.png differ diff --git a/accounting/localizations/media/colombia_ubl2.1_9.png b/accounting/localizations/media/colombia_ubl2.1_9.png new file mode 100644 index 000000000..7bd249051 Binary files /dev/null and b/accounting/localizations/media/colombia_ubl2.1_9.png differ diff --git a/accounting/localizations/mexico.rst b/accounting/localizations/mexico.rst index cc600de0c..6007ceaf4 100644 --- a/accounting/localizations/mexico.rst +++ b/accounting/localizations/mexico.rst @@ -10,8 +10,9 @@ Mexico 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: @@ -29,16 +30,18 @@ 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 ----------------------------------------------- + +Install the Mexican Accounting Localization +------------------------------------------- For this, go in Apps and search for Mexico. Then click on *Install*. @@ -50,8 +53,9 @@ For this, go in Apps and search for Mexico. Then click on *Install*. as country when creating your account, the mexican localization will be automatically installed. -2. Electronic Invoices (CDFI 3.2 and 3.3 format) ------------------------------------------------- + +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 @@ -64,8 +68,9 @@ integrate with the normal invoicing flow in Odoo. .. _mx-legal-info: -3. Set you legal information in the company -------------------------------------------- + +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` @@ -81,8 +86,9 @@ company’s contact. .. image:: media/mexico03.png :align: center -4. Set the proper "Fiscal Position" on the partner that represent the company ------------------------------------------------------------------------------ + +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 @@ -90,13 +96,14 @@ 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 ----------------------------- + +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 + SaaS instance please ask for an upgrade by submitting a ticket to support in https://www.odoo.com/help. Enable debug mode: @@ -118,8 +125,9 @@ the entry with this name does not exist). .. 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". @@ -142,8 +150,9 @@ 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 ------------------------------------------------------------ + +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)`. @@ -179,7 +188,8 @@ and then enter your PAC username and PAC password. - `Certificate Key`_ - **Password:** 12345678a -7. Configure the tag in sales taxes + +Configure the tag in sales taxes ----------------------------------- This tag is used to set the tax type code, transferred or withhold, applicable @@ -192,8 +202,9 @@ So, if the tax is a sale tax the "Tag" field should be "IVA", "ISR" or "IEPS". 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 --------- @@ -221,6 +232,7 @@ like. .. image:: media/mexico09.png :align: center + Cancelling invoices ------------------- @@ -228,23 +240,19 @@ 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 +- Go to to the customer invoice journal where the invoice belong to. -.. image:: media/mexico28.png - :align: center + .. image:: media/mexico28.png -.. image:: media/mexico29.png - :align: center + .. image:: media/mexico29.png -- Check the "Allow cancelling entries" field +- Check the "Allow cancelling entries" field. -.. image:: media/mexico29.png - :align: center + .. image:: media/mexico29.png -- Go back to your invoice and click on the button "Cancel Invoice" +- Go back to your invoice and click on the button "Cancel Invoice". -.. image:: media/mexico30.png - :align: center + .. image:: media/mexico30.png - 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. @@ -259,13 +267,14 @@ If the invoice is not paid. 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 +#. To generate payment complement the payment term in the invoice must be PPD, because It is the expected behavior legally required for "Cash payment". @@ -297,26 +306,27 @@ process in Odoo, this considerations to understand the behavior are important. ``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 +#. 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 +#. You must print the payment in order to retrieve the PDF properly. +#. 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 +#. 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. +#. Chart of Account (Called and shown as COA). +#. Electronic Trial Balance. +#. DIOT report. -1 and 2 are considered as the electronic accounting, and the DIOT is a 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. @@ -324,8 +334,9 @@ 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 ------------------------------- @@ -337,7 +348,8 @@ button **Export for SAT (XML)** .. image:: media/mexico19.png :align: center -**How to add new accounts?** +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. @@ -352,7 +364,8 @@ xml. .. image:: media/mexico20.png :align: center -**What is the meaning of the tag?** +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**. @@ -363,6 +376,7 @@ website on the section called **Código agrupador de cuentas del SAT**. 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 ------------------------ @@ -378,10 +392,12 @@ period you want to export. 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** +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. @@ -395,7 +411,8 @@ 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?** +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 @@ -406,7 +423,8 @@ 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?** +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 @@ -421,7 +439,8 @@ 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?** +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 @@ -441,37 +460,35 @@ Third Parties. You can find the `official information here`_. -**How Generate this report in odoo?** +How Generate this report in Odoo ? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- Go to :menuselection:`Accounting --> Reports --> Mexico --> Transactions with third partied (DIOT)`. +#. Go to :menuselection:`Accounting --> Reports --> Mexico --> Transactions with third partied (DIOT)`. -.. image:: media/mexico23.png - :align: center + .. image:: media/mexico23.png -- 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. +#. 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 + .. image:: media/mexico25.png -- Click on "Export (TXT). +#. Click on "Export (TXT). -.. image:: media/mexico24.png - :align: center + .. image:: media/mexico24.png -- Save in a secure place the downloaded file and go to SAT website and follow - the necessary steps to declare it. +#. 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 -====================================================================== + +Important considerations on your Supplier and Invoice 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 + .. image:: media/mexico22.png - 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 @@ -494,8 +511,9 @@ partners are correctly set. .. image:: media/mexico26.png :align: center + Extra Recommended features -~~~~~~~~~~~~~~~~~~~~~~~~~~ +========================== Contact Module (Free) --------------------- @@ -504,6 +522,7 @@ 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) ---------------------------------------- @@ -519,6 +538,7 @@ 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) ----------------------------------------------------------------------------- @@ -544,13 +564,13 @@ generic one with no explanation. .. note:: If you see an error like this: - The cfdi generated is not valid + 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 + 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 anothe server, + This can be caused by a database backup restored in anothe server, or when the XSD files are not correctly downloaded. Follow the same steps as above but: @@ -559,93 +579,113 @@ generic one with no explanation. FAQ -~~~ +=== -- **Error message** (Only applicable on CFDI 3.3): +- **Error messages** (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_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}'. + - 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. + **Solution**: + You forgot to set the proper "Reference" field in the product, + please go to the product form and set your internal reference properly. + +- **Error messages**: + + - 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. + + **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 + + .. tip:: + For testing purposes this value must be set to ``601 - General de Ley + Personas Morales`` which is the one required for the demo VAT. - **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. + - 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'} -: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. + **Solution**: + The payment method is required on your invoice. -.. 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. + .. image:: media/mexico31.png - 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. +- **Error messages**: -.. image:: media/mexico27.png - :align: center + - 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:: - For testing purposes this value must be *601 - General de Ley Personas Morales* - which is the one required for the demo VAT. + **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_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'} + - 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 payment method is required on your invoice. + **Solution**: + The postal code on your company address is not a valid one + for Mexico, fix it. -.. image:: media/mexico31.png - :align: center + .. image:: media/mexico32.png -- **Error message**: +- **Error messages**: -: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. + - 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:** 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`. + **Solution**: + Set the mexican name for the tax 0% and 16% in your system + and used on the invoice. -- **Error message**: + Your tax which represent the VAT 16% and 0% must have the "Factor Type" field + set to "Tasa". -: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'. + .. image:: media/mexico12.png -.. 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 + .. image:: media/mexico13.png .. _SAT: http://www.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/Anexo24_05012015.pdf .. _Finkok: https://www.finkok.com/contacto.html diff --git a/accounting/localizations/nederlands.rst b/accounting/localizations/netherlands.rst similarity index 100% rename from accounting/localizations/nederlands.rst rename to accounting/localizations/netherlands.rst diff --git a/accounting/localizations/switzerland.rst b/accounting/localizations/switzerland.rst index 46bddd199..ac6864063 100644 --- a/accounting/localizations/switzerland.rst +++ b/accounting/localizations/switzerland.rst @@ -3,7 +3,7 @@ Switzerland =========== ISR (In-payment Slip with Reference number) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +=========================================== The ISRs are payment slips used in Switzerland. You can print them directly from Odoo. On the customer invoices, there is a new button @@ -35,7 +35,7 @@ and tick this box : :align: center Currency Rate Live Update -~~~~~~~~~~~~~~~~~~~~~~~~~ +========================= You can update automatically your currencies rates based on the Federal Tax Administration from Switzerland. For this, go in @@ -46,7 +46,7 @@ you want. :align: center Updated VAT for January 2018 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +============================ Starting from the 1st January 2018, new reduced VAT rates will be applied in Switzerland. The normal 8.0% rate will switch to 7.7% and the diff --git a/accounting/others/adviser/assets.rst b/accounting/others/adviser/assets.rst index 0fbfc7c6d..2100e6465 100644 --- a/accounting/others/adviser/assets.rst +++ b/accounting/others/adviser/assets.rst @@ -79,13 +79,6 @@ before confirming the asset. depreciation journal entries, not those related to the supplier bill. -Explanation of the fields: - -.. demo:fields:: account_asset.action_account_asset_asset_form - -.. demo:action:: account_asset.action_account_asset_asset_form - - Try creating an *Asset* in our online demonstration Create assets automatically from a supplier bill ================================================ diff --git a/accounting/others/adviser/budget.rst b/accounting/others/adviser/budget.rst index bd7ed6ae9..a2ce0cc31 100644 --- a/accounting/others/adviser/budget.rst +++ b/accounting/others/adviser/budget.rst @@ -133,14 +133,12 @@ You can check your budget at any time. To see the evolution, let's book some Invoices and Vendors Bills. .. tip:: - - if you use analytical accounts remember that you need to specify the account in the invoice and / or purchase line. + If you use analytical accounts remember that you need to specify the account in the invoice + and/or purchase line. .. seealso:: - - for more information about booking invoices and purchase orders see: - - * :doc:`../../receivables/customer_invoices/overview` + For more information about booking invoices and purchase orders see + :doc:`../../receivables/customer_invoices/overview` Go back in the budget list and find the Smith Project. @@ -152,10 +150,9 @@ purchase lines booked in the accounts and will display them in the :align: center .. note:: - - The theoretical amount represents the amount of money you theoretically could - have spend / should have received in function of the date. When your budget - is 1200 for 12 months (january to december), and today is 31 of january, the - theoretical amount will be 1000, since this is the actual amount that could - have been realised. + The theoretical amount represents the amount of money you theoretically could + have spend / should have received in function of the date. When your budget + is 1200 for 12 months (january to december), and today is 31 of january, the + theoretical amount will be 1000, since this is the actual amount that could + have been realised. diff --git a/accounting/others/analytic/purchases_expenses.rst b/accounting/others/analytic/purchases_expenses.rst index 3e7e35dd0..c566ac0b1 100644 --- a/accounting/others/analytic/purchases_expenses.rst +++ b/accounting/others/analytic/purchases_expenses.rst @@ -123,8 +123,7 @@ correct analytical account. We simply need to create the correct vendors product. .. note:: - - You can also track cost with timesheets, see: :doc:`timesheets` + You can also track cost with timesheets, see: :doc:`timesheets` Track costs in accounting ========================= @@ -142,7 +141,6 @@ button to have an overview of all cost linked to the account. :align: center .. note:: - - If you would like to have the revenue as well you should - invoice the Consulting Pack in the Invoice menu and link the invoice - line to this same analytical account. + If you would like to have the revenue as well you should + invoice the Consulting Pack in the Invoice menu and link the invoice + line to this same analytical account. diff --git a/accounting/others/analytic/timesheets.rst b/accounting/others/analytic/timesheets.rst index 04357affa..82a3f291b 100644 --- a/accounting/others/analytic/timesheets.rst +++ b/accounting/others/analytic/timesheets.rst @@ -73,11 +73,7 @@ of measures. :align: center For more information on how to create a sales order based on time and -material please see: *How to invoice based on time and material* (Work in Progress). - -.. todo:: - Add a link, and the document is under - Sales --> Invoicing Methods --> Services --> How to invoices blabla +material please see :doc:`../../../sales/invoicing/time_materials`. We save a Sales Order with the service product **External Consulting**. An analytical account will automatically be generated once the **Sales Order** diff --git a/accounting/others/configuration/account_type.rst b/accounting/others/configuration/account_type.rst index f0cba768e..673d7c23a 100644 --- a/accounting/others/configuration/account_type.rst +++ b/accounting/others/configuration/account_type.rst @@ -68,9 +68,7 @@ It will install generic accounts. But if it does not cover all your cases, you can create your own accounts too. .. note:: - - If you are a Saas User, your country chart of account is - automatically installed. + If you are a Saas User, your country chart of account is automatically installed. To create a new accounts, go to the Accounting application. Open the menu :menuselection:`Adviser --> Chart of Accounts`, the click on the diff --git a/accounting/others/inventory.rst b/accounting/others/inventory.rst index 008c2a76f..a68cfee1d 100644 --- a/accounting/others/inventory.rst +++ b/accounting/others/inventory.rst @@ -6,6 +6,5 @@ Inventory :titlesonly: inventory/avg_price_valuation - ../../../inventory/management/reporting/valuation_methods_continental - ../../../inventory/management/reporting/valuation_methods_anglo_saxon + ../../../inventory/management/reporting/inventory_valuation_config diff --git a/accounting/others/multicurrencies/how_it_works.rst b/accounting/others/multicurrencies/how_it_works.rst index 37cedf1df..68e4a20b7 100644 --- a/accounting/others/multicurrencies/how_it_works.rst +++ b/accounting/others/multicurrencies/how_it_works.rst @@ -74,8 +74,7 @@ are set ! :align: center .. note:: - - Only the **active** currencies are updated + Only the **active** currencies are updated Configure your charts of account -------------------------------- @@ -136,8 +135,8 @@ the whole document. Payment Registrations --------------------- -In the accounting application, go to **Sales > Payments**. Register the -payment and set the currency. +In the accounting application, go to :menuselection:`Sales --> Payments`. Register the payment and +set the currency. .. image:: media/works12.png :align: center @@ -166,6 +165,5 @@ journal entries. All the exchange rates differences are recorded in it. :align: center .. seealso:: - - * :doc:`invoices_payments` - * :doc:`exchange` + * :doc:`invoices_payments` + * :doc:`exchange` diff --git a/accounting/others/multicurrencies/invoices_payments.rst b/accounting/others/multicurrencies/invoices_payments.rst index e659ec84f..a67dfba19 100644 --- a/accounting/others/multicurrencies/invoices_payments.rst +++ b/accounting/others/multicurrencies/invoices_payments.rst @@ -115,6 +115,5 @@ Difference** journal entries. All the exchange rates differences are recorded in :align: center .. seealso:: - - * :doc:`how_it_works` - * :doc:`exchange` + * :doc:`how_it_works` + * :doc:`exchange` diff --git a/accounting/overview/main_concepts/in_odoo.rst b/accounting/overview/main_concepts/in_odoo.rst index 20e5fe4c5..8dc9b57ed 100644 --- a/accounting/overview/main_concepts/in_odoo.rst +++ b/accounting/overview/main_concepts/in_odoo.rst @@ -16,8 +16,8 @@ Odoo uses the rules of double-entry bookkeeping system: all journal entries are automatically balanced (sum of debits = sum of credits). .. seealso:: - - `Understand Odoo's accounting transactions per document `__ + - `Understand Odoo's accounting transactions per document + `_ Accrual and Cash Basis Methods ============================== @@ -65,8 +65,6 @@ In particular, Odoo's core accounting engine supports: sold/delivered. * European accounting where expenses are accounted at the supplier bill. -* Storno accounting (Italy) where refund invoices have negative - credit/debit instead of a reverting the original journal items. Odoo also have modules to comply with IFRS rules. @@ -130,8 +128,8 @@ inventory valuations. The available methods are standard price, average price, LIFO (for countries allowing it) and FIFO. .. seealso:: - - `View impact of the valuation method on your transactions `__ + - `View impact of the valuation method on your transactions + `_ Easy retained earnings ====================== diff --git a/accounting/payables/misc/employee_expense.rst b/accounting/payables/misc/employee_expense.rst index b0c1aca3f..53fc34a14 100644 --- a/accounting/payables/misc/employee_expense.rst +++ b/accounting/payables/misc/employee_expense.rst @@ -166,11 +166,8 @@ order. (or it will be done automatically at the end of the week/month if you invoice all your orders in batch) -.. todo:: - - tip - If you want to learn more; check the documentation page :doc: ../../../sale/invoicing/service/expense - `*How to re-invoice expenses to your customers* `__ +.. seealso:: + - :doc:`../../../sales/invoicing/expense` Reimburse the employee ---------------------- @@ -204,5 +201,4 @@ options: account for this invoice. .. seealso:: - - * :doc:`forecast` + - :doc:`forecast` diff --git a/accounting/payables/pay/check.rst b/accounting/payables/pay/check.rst index 9d5e86838..8740b5cad 100644 --- a/accounting/payables/pay/check.rst +++ b/accounting/payables/pay/check.rst @@ -20,10 +20,9 @@ country. As an example, the **U.S. Check Printing** module is required to print U.S. checks. .. note:: - - According to your country and the chart of account you use, those - modules may be installed by default. (example: United States users have - nothing to install, it's configured by default). + According to your country and the chart of account you use, those + modules may be installed by default. (example: United States users have + nothing to install, it's configured by default). Activate checks payment methods ------------------------------- @@ -76,10 +75,8 @@ Explanation of the fields of the payment screen: .. demo:fields:: account.action_account_payments .. demo:action:: account.action_account_payments - - Try paying a supplier bill with a check -.. _PrintChecks: + Try paying a supplier bill with a check Print checks ------------ @@ -101,9 +98,7 @@ Print Check from the top "print" menu. .. image:: ./media/check03.png :align: center -.. _ReconicleBankStatements: - -Reconcile Bank Statements +Reconcile bank statements ------------------------- Once you process your bank statement, when the check is credited from @@ -111,10 +106,9 @@ your bank account, Odoo will propose you automatically to match it with the payment. This will mark the payment as **Reconciled**. .. tip:: - - to review checks that have not been credited, open the list of - payments and filter on the Sent state. Review those payments that have a - date more than 2 weeks ago. + To review checks that have not been credited, open the list of + payments and filter on the Sent state. Review those payments that have a + date more than 2 weeks ago. Pay anything with a check ========================= @@ -133,6 +127,5 @@ Once your payment by check is registered, don't forget to **Confirm** it. Once confirmed, you can use **Print Check** directly or follow the preceding flow to print checks in batch: -- `Print checks `_ - -- `Reconcile bank statements `_ +- `Print checks`_ +- `Reconcile bank statements`_ diff --git a/accounting/payables/pay/multiple.rst b/accounting/payables/pay/multiple.rst index 934fc0ab9..f687b8ab0 100644 --- a/accounting/payables/pay/multiple.rst +++ b/accounting/payables/pay/multiple.rst @@ -97,10 +97,7 @@ can reconcile the transaction from the Dashboard. It will automatically map the transaction amount. .. seealso:: - - For more detail on the bank reconciliation process, please read: - - * :doc:`../../bank/reconciliation/use_cases` + - :doc:`../../bank/reconciliation/use_cases` Partial payments of several supplier bills ========================================== @@ -147,8 +144,5 @@ model for cash discount. Now we are going back to bank statement and opening reconcile view. .. seealso:: - - For bank statement reconciliation with model option, see - - * :doc:`../../bank/reconciliation/configure` + - :doc:`../../bank/reconciliation/configure` diff --git a/accounting/payables/pay/sepa.rst b/accounting/payables/pay/sepa.rst index d4b24ddc0..67defe4bb 100644 --- a/accounting/payables/pay/sepa.rst +++ b/accounting/payables/pay/sepa.rst @@ -33,9 +33,8 @@ module. This module handle the process of generating SEPA files based on Odoo payments. .. note:: - - According to your country and the chart of account you use, this module may - be installed by default. + According to your country and the chart of account you use, this module may + be installed by default. Activate SEPA payment methods on banks -------------------------------------- @@ -54,11 +53,10 @@ won't work with SEPA) and the BIC (bank identifier code) on your bank journal. .. note:: - - By default, the payments you send using SEPA will use your company name as - initiating party name. This is what appears on the recipient's bank statement - in the **payment from** field. You can customize it in your company settings, - in the tab **Configuration**, under the **SEPA** section. + By default, the payments you send using SEPA will use your company name as + initiating party name. This is what appears on the recipient's bank statement + in the **payment from** field. You can customize it in your company settings, + in the tab **Configuration**, under the **SEPA** section. .. image:: ./media/sepa01.png :align: center @@ -128,8 +126,6 @@ account for the partner you are paying but forgot to fill in the BIC field. .. seealso:: - - * :doc:`check` - - .. todo:: How to define a new bank? - .. todo:: How to reconcile bank statements? + - :doc:`check` + - :doc:`../../bank/setup/create_bank_account` + - :doc:`../../bank/reconciliation/use_cases` diff --git a/accounting/payables/supplier_bills.rst b/accounting/payables/supplier_bills.rst index 673c7342d..f11eaea4c 100644 --- a/accounting/payables/supplier_bills.rst +++ b/accounting/payables/supplier_bills.rst @@ -7,3 +7,4 @@ Vendor Bills supplier_bills/manage supplier_bills/bills_or_receipts + supplier_bills/deferred_expenses diff --git a/accounting/payables/supplier_bills/deferred_expenses.rst b/accounting/payables/supplier_bills/deferred_expenses.rst new file mode 100644 index 000000000..bb07bc092 --- /dev/null +++ b/accounting/payables/supplier_bills/deferred_expenses.rst @@ -0,0 +1,193 @@ +================================= +Deferred Expenses and Prepayments +================================= + +**Deferred expenses** and **prepayments** (also known as **prepaid expense**), are both costs that +have already occurred for unconsumed products or services yet to receive. + +Such costs are **assets** for the company that pays them since it already paid for products and +services still to receive or that are yet to be used. The company cannot report them on the current +**Profit and Loss statement**, or *Income Statement*, since the payments will be effectively +expensed in the future. + +These future expenses must be deferred on the company's balance sheet until the moment in time they +can be **recognized**, at once or over a defined period, on the Profit and Loss statement. + +For example, let's say we pay $ 1200 at once for one year of insurance. We already pay the cost now +but haven't used the service yet. Therefore, we post this new expense in a *prepayment account* and +decide to recognize it on a monthly basis. Each month, for the next 12 months, $ 100 will be +recognized as an expense. + +Odoo Accounting handles deferred expenses and prepayments by spreading them in multiple entries that +are automatically created in *draft mode* and then posted periodically. + +.. note:: + The server checks once a day if an entry must be posted. It might then take up to 24 hours before + you see a change from *draft* to *posted*. + +Prerequisites +============= + +Such transactions must be posted on a **Deferred Expense Account** rather than on the default +expense account. + +Configure a Deferred Expense Account +------------------------------------ + +To configure your account in the **Chart of Accounts**, go to :menuselection:`Accounting --> +Configuration --> Chart of Accounts`, click on *Create*, and fill out the form. + +.. image:: media/deferred_expenses01.png + :align: center + :alt: Configuration of a Deferred Expense Account in Odoo Accounting + +.. note:: + This account's type must be either *Current Assets* or *Prepayments* + +Post an expense to the right account +------------------------------------ + +Select the account on a draft bill +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +On a draft bill, select the right account for all the products of which the expenses must be +deferred. + +.. image:: media/deferred_expenses02.png + :align: center + :alt: Selection of a Deferred Expense Account on a draft bill in Odoo Accounting + +Choose a different Expense Account for specific products +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Start editing the product, go to the *Accounting* tab, select the right **Expense Account**, and +save. + +.. image:: media/deferred_expenses03.png + :align: center + :alt: Change of the Expense Account for a product in Odoo + +.. tip:: + It is possible to automate the creation of expense entries for these products (see: + `Automate the Deferred Expenses`_). + +Change the account of a posted journal item +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To do so, open your Purchases Journal by going to :menuselection:`Accounting --> Accounting --> +Purchases`, select the journal item you want to modify, click on the account, and select the right +one. + +.. image:: media/deferred_expenses04.png + :align: center + :alt: Modification of a posted journal item's account in Odoo Accounting + +Deferred Expenses entries +========================= + +Create a new entry +------------------ + +A **Deferred Expense entry** automatically generates all journal entries in *draft mode*. They are +then posted one by one at the right time until the full amount of the expense is recognized. + +To create a new entry, go to :menuselection:`Accounting --> Accounting --> Deferred Expense`, click +on *Create*, and fill out the form. + +Click on **select related purchases** to link an existing journal item to this new entry. Some +fields are then automatically filled out, and the journal item is now listed under the **Related +Expenses** tab. + +.. image:: media/deferred_expenses05.png + :align: center + :alt: Deferred Expense entry in Odoo Accounting + +Once done, you can click on *Compute Deferral* (next to the *Confirm* button) to generate all the +values of the **Expense Board**. This board shows you all the entries that Odoo will post to +recognize your expense, and at which date. + +.. image:: media/deferred_expenses06.png + :align: center + :alt: Expense Board in Odoo Accounting + +What does "Prorata Temporis" mean? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The **Prorata Temporis** feature is useful to recognize your expense the most accurately possible. + +With this feature, the first entry on the Expense Board is computed based on the time left between +the *Prorata Date* and the *First Recognition Date* rather than the default amount of time between +recognitions. + +For example, the Expense Board above has its first expense with an amount of $ 70.97 rather than +$ 100.00. Consequently, the last entry is also lower and has an amount of $ 29.03. + +Deferred Entry from the Purchases Journal +----------------------------------------- + +You can create a deferred entry from a specific journal item in your **Purchases Journal**. + +To do so, open your Purchases Journal by going to :menuselection:`Accounting --> Accounting --> +Purchases`, and select the journal item you want to defer. Make sure that it is posted in the right +account (see: `Change the account of a posted journal item`_). + +Then, click on *Action*, select **Create Deferred Entry**, and fill out the form the same way you +would do to `create a new entry`_. + +.. image:: media/deferred_expenses07.png + :align: center + :alt: Create Deferred Entry from a journal item in Odoo Accounting + +Deferred Expense Models +======================= + +You can create **Deferred Expense Models** to create your Deferred Expense entries faster. + +To create a model, go to :menuselection:`Accounting → Configuration --> Deferred Expense Models`, +click on *Create*, and fill out the form the same way you would do to create a new entry. + +.. tip:: + You can also convert a *confirmed Deferred Expense entry* into a model by opening it from + :menuselection:`Accounting --> Accounting --> Deferred Expenses` and then, by clicking on the + button *Save Model*. + +Apply a Deferred Expense Model to a new entry +--------------------------------------------- + +When you create a new Deferred Expense entry, fill out the **Deferred Expense Account** with the +right recognition account. + +New buttons with all the models linked to that account appear at the top of the form. Clicking on a +model button fills out the form according to that model. + +.. image:: media/deferred_expenses08.png + :align: center + :alt: Deferred Expense model button in Odoo Accounting + +Automate the Deferred Expenses +============================== + +When you create or edit an account of which the type is either *Current Assets* or *Prepayments*, +you can configure it to defer the expenses that are credited on it automatically. + +You have three choices for the **Automate Deferred Expense** field: + +#. **No:** this is the default value. Nothing happens. +#. **Create in draft:** whenever a transaction is posted on the account, a draft *Deferred Expenses + entry* is created, but not validated. You must first fill out the form in + :menuselection:`Accounting --> Accounting --> Deferred Expenses`. +#. **Create and validate:** you must also select a Deferred Expense Model (see: `Deferred Expense + Models`_). Whenever a transaction is posted on the account, a *Deferred Expenses entry* is + created and immediately validated. + +.. image:: media/deferred_expenses09.png + :align: center + :alt: Automate Deferred Expense on an account in Odoo Accounting + +.. tip:: + You can, for example, select this account as the default **Expense Account** of a product to + fully automate its sale completely. (see: `Choose a different Expense Account for specific + products`_). + +.. seealso:: + * :doc:`../../others/configuration/account_type` \ No newline at end of file diff --git a/accounting/payables/supplier_bills/manage.rst b/accounting/payables/supplier_bills/manage.rst index e17ef5fa0..a563c4245 100644 --- a/accounting/payables/supplier_bills/manage.rst +++ b/accounting/payables/supplier_bills/manage.rst @@ -61,10 +61,9 @@ since it is important: products under either of these designations. .. tip:: - - It is recommended that you create a **Miscellaneous** product for all purchases - that occur infrequently and do not require inventory valuation or management. - If you create such a product, it is recommended to set the product type to **Service**. + It is recommended that you create a **Miscellaneous** product for all purchases + that occur infrequently and do not require inventory valuation or management. + If you create such a product, it is recommended to set the product type to **Service**. Managing your Vendor Bills ========================== @@ -146,11 +145,10 @@ need (i.e. remove or add product lines, modify quantities, and change prices). .. note:: + Your vendor may send you several bills for the same Purchase Order if: - Your vendor may send you several bills for the same Purchase Order if: - - 1. Your vendor is in back-order and is sending you invoices as they ship the products. - 2. Your vendor is sending you a partial bill or asking for a deposit. + #. Your vendor is in back-order and is sending you invoices as they ship the products. + #. Your vendor is sending you a partial bill or asking for a deposit. Every time you record a new vendor bill, Odoo will automatically populate the product quantities based on what has been received from the diff --git a/accounting/payables/supplier_bills/media/deferred_expenses01.png b/accounting/payables/supplier_bills/media/deferred_expenses01.png new file mode 100644 index 000000000..17848259d Binary files /dev/null and b/accounting/payables/supplier_bills/media/deferred_expenses01.png differ diff --git a/accounting/payables/supplier_bills/media/deferred_expenses02.png b/accounting/payables/supplier_bills/media/deferred_expenses02.png new file mode 100644 index 000000000..106f2ba89 Binary files /dev/null and b/accounting/payables/supplier_bills/media/deferred_expenses02.png differ diff --git a/accounting/payables/supplier_bills/media/deferred_expenses03.png b/accounting/payables/supplier_bills/media/deferred_expenses03.png new file mode 100644 index 000000000..c68f476c2 Binary files /dev/null and b/accounting/payables/supplier_bills/media/deferred_expenses03.png differ diff --git a/accounting/payables/supplier_bills/media/deferred_expenses04.png b/accounting/payables/supplier_bills/media/deferred_expenses04.png new file mode 100644 index 000000000..03afc1f1f Binary files /dev/null and b/accounting/payables/supplier_bills/media/deferred_expenses04.png differ diff --git a/accounting/payables/supplier_bills/media/deferred_expenses05.png b/accounting/payables/supplier_bills/media/deferred_expenses05.png new file mode 100644 index 000000000..b2f769446 Binary files /dev/null and b/accounting/payables/supplier_bills/media/deferred_expenses05.png differ diff --git a/accounting/payables/supplier_bills/media/deferred_expenses06.png b/accounting/payables/supplier_bills/media/deferred_expenses06.png new file mode 100644 index 000000000..bd00811b5 Binary files /dev/null and b/accounting/payables/supplier_bills/media/deferred_expenses06.png differ diff --git a/accounting/payables/supplier_bills/media/deferred_expenses07.png b/accounting/payables/supplier_bills/media/deferred_expenses07.png new file mode 100644 index 000000000..40a76757b Binary files /dev/null and b/accounting/payables/supplier_bills/media/deferred_expenses07.png differ diff --git a/accounting/payables/supplier_bills/media/deferred_expenses08.png b/accounting/payables/supplier_bills/media/deferred_expenses08.png new file mode 100644 index 000000000..080e88028 Binary files /dev/null and b/accounting/payables/supplier_bills/media/deferred_expenses08.png differ diff --git a/accounting/payables/supplier_bills/media/deferred_expenses09.png b/accounting/payables/supplier_bills/media/deferred_expenses09.png new file mode 100644 index 000000000..76acbca62 Binary files /dev/null and b/accounting/payables/supplier_bills/media/deferred_expenses09.png differ diff --git a/accounting/receivables/customer_invoices/deferred_revenues.rst b/accounting/receivables/customer_invoices/deferred_revenues.rst index 15bbac04b..66ca40bc3 100644 --- a/accounting/receivables/customer_invoices/deferred_revenues.rst +++ b/accounting/receivables/customer_invoices/deferred_revenues.rst @@ -1,54 +1,56 @@ ================= Deferred Revenues ================= -**Deferred revenues**, or **unearned revenue**, are payments made in advance -by customers for products yet to deliver or services yet to render. -Such payments are a **liability** for the company that receives -them since it still owes its customers these products or services. -The company cannot report them on the current **Profit and Loss statement**, -or *Income Statement*, since the payments will be effectively -earned in the future. +**Deferred revenues**, or **unearned revenue**, are payments made in advance by customers for +products yet to deliver or services yet to render. -These future revenues must be deferred on the company's balance sheet -until the moment in time they can be **recognized**, at once or over a -defined period, on the Profit and Loss statement. +Such payments are a **liability** for the company that receives them since it still owes its +customers these products or services. The company cannot report them on the current **Profit and +Loss statement**, or *Income Statement*, since the payments will be effectively earned in the future. -For example, let's say we sell a five-year extended warranty for $ 350. -We already receive the money now but haven't earned it yet. Therefore, -we post this new income in a deferred revenue account and decide to -recognize it on a yearly basis. Each year, for the next 5 years, $ 70 -will be recognized as revenue. +These future revenues must be deferred on the company's balance sheet until the moment in time they +can be **recognized**, at once or over a defined period, on the Profit and Loss statement. -Odoo Accounting handles deferred revenues by spreading them in multiple -entries that are automatically created periodically. +For example, let's say we sell a five-year extended warranty for $ 350. We already receive the money +now but haven't earned it yet. Therefore, we post this new income in a deferred revenue account and +decide to recognize it on a yearly basis. Each year, for the next 5 years, $ 70 will be recognized +as revenue. +Odoo Accounting handles deferred revenues by spreading them in multiple entries that are +automatically created in *draft mode* and then posted periodically. + +.. note:: + The server checks once a day if an entry must be posted. It might then take up to 24 hours before + you see a change from *draft* to *posted*. Prerequisites ============= -Such transactions must be posted on a **Deferred Revenue Account** rather than -on the default income account. + +Such transactions must be posted on a **Deferred Revenue Account** rather than on the default income +account. Configure a Deferred Revenue Account ------------------------------------ -To configure your account in the **Chart of Accounts**, -go to :menuselection:`Accounting --> Configuration --> Chart of Accounts`, -click on *Create*, and fill out the form. + +To configure your account in the **Chart of Accounts**, go to :menuselection:`Accounting --> +Configuration --> Chart of Accounts`, click on *Create*, and fill out the form. .. image:: media/deferred_revenues01.png :align: center :alt: Configuration of a Deferred Revenue Account in Odoo Accounting .. note:: - This account's type must be either *Current Liabilities* or *Non-current - Liabilities* + This account's type must be either *Current Liabilities* or *Non-current Liabilities* Post an income to the right account ----------------------------------- + Select the account on a draft invoice ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -On a draft invoice, select the right account for all the products of which the -incomes must be deferred. + +On a draft invoice, select the right account for all the products of which the incomes must be +deferred. .. image:: media/deferred_revenues02.png :align: center @@ -56,20 +58,22 @@ incomes must be deferred. Choose a different Income Account for specific products ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Start editing the product, go to the *Accounting* tab, select the right -**Income Account**, and save. + +Start editing the product, go to the *Accounting* tab, select the right **Income Account**, and +save. .. image:: media/deferred_revenues03.png :align: center :alt: Change of the Income Account for a product in Odoo .. tip:: - It is possible to automate the creation of revenue entries for these products - (see: `Automate the Deferred Revenues`_). + It is possible to automate the creation of revenue entries for these products (see: + `Automate the Deferred Revenues`_). Change the account of a posted journal item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -To do so, open your Sales Journal by going to + +To do so, open your Sales Journal by going to :menuselection:`Accounting --> Accounting --> Sales`, select the journal item you want to modify, click on the account, and select the right one. @@ -77,29 +81,29 @@ want to modify, click on the account, and select the right one. :align: center :alt: Modification of a posted journal item's account in Odoo Accounting - Deferred Revenues entries ========================= + Create a new entry ------------------ -A **Deferred Revenues entry** automatically generates journal entries at -the right time until the full amount of the income is recognized. -To create a new entry, go to :menuselection:`Accounting --> Accounting --> Deferred -Revenues`, click on *Create*, and fill out the form. +A **Deferred Revenues entry** automatically generates all journal entries in *draft mode*. They are +then posted one by one at the right time until the full amount of the income is recognized. -Click on **select related purchases** to link an existing journal item to -this new entry. Some fields are then automatically filled out, and the -journal item is now listed under the **Related Sales** tab. +To create a new entry, go to :menuselection:`Accounting --> Accounting --> Deferred Revenues`, click +on *Create*, and fill out the form. + +Click on **select related purchases** to link an existing journal item to this new entry. Some +fields are then automatically filled out, and the journal item is now listed under the **Related +Sales** tab. .. image:: media/deferred_revenues05.png :align: center :alt: Deferred Revenue entry in Odoo Accounting - -Once done, you can click on *Compute Revenue* (next to the *Confirm* -button) to generate all the values of the **Revenue Board**. This board -shows you all the entries that Odoo will post to recognize your -revenue, and at which date. + +Once done, you can click on *Compute Revenue* (next to the *Confirm* button) to generate all the +values of the **Revenue Board**. This board shows you all the entries that Odoo will post to +recognize your revenue, and at which date. .. image:: media/deferred_revenues06.png :align: center @@ -107,56 +111,54 @@ revenue, and at which date. What does "Prorata Temporis" mean? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The **Prorata Temporis** feature is useful to recognize your revenue -the most accurately possible. -With this feature, the first entry on the Revenue Board is computed based -on the time left between the *Prorata Date* and the *First Recognition Date* -rather than the default amount of time between recognitions. +The **Prorata Temporis** feature is useful to recognize your revenue the most accurately possible. -For example, the Revenue Board above has its first revenue with an amount of -$ 4.22 rather than $ 70.00. Consequently, the last entry is also lower and -has an amount of $ 65.78. +With this feature, the first entry on the Revenue Board is computed based on the time left between +the *Prorata Date* and the *First Recognition Date* rather than the default amount of time between +recognitions. +For example, the Revenue Board above has its first revenue with an amount of $ 4.22 rather than +$ 70.00. Consequently, the last entry is also lower and has an amount of $ 65.78. Deferred Entry from the Sales Journal ------------------------------------- -You can create a deferred entry from a specific journal item in your **Sales Journal**. + +You can create a deferred entry from a specific journal item in your **Sales Journal**. To do so, open your Sales Journal by going to -:menuselection:`Accounting --> Accounting --> Sales`, and select the journal item you -want to defer. Make sure that it is posted in the right account (see: `Change the -account of a posted journal item`_). +:menuselection:`Accounting --> Accounting --> Sales`, and select the journal item you want to defer. +Make sure that it is posted in the right account (see: +`Change the account of a posted journal item`_). -Then, click on *Action*, select **Create Deferred Entry**, and fill out the form the -same way you would do to `create a new entry`_. +Then, click on *Action*, select **Create Deferred Entry**, and fill out the form the same way you +would do to `create a new entry`_. .. image:: media/deferred_revenues07.png :align: center :alt: Create Deferred Entry from a journal item in Odoo Accounting - Deferred Revenue Models ======================= -You can create **Deferred Revenue Models** to create your Deferred Revenue -entries faster. -To create a model, go to :menuselection:`Accounting --> Configuration --> Deferred -Revenue Models`, click on *Create*, and fill out the form the same way you would -do to create a new entry. +You can create **Deferred Revenue Models** to create your Deferred Revenue entries faster. + +To create a model, go to :menuselection:`Accounting --> Configuration --> Deferred Revenue Models`, +click on *Create*, and fill out the form the same way you would do to create a new entry. .. tip:: You can also convert a *confirmed Deferred Revenue entry* into a model by opening it from :menuselection:`Accounting --> Accounting --> Deferred - Revenues` and then, by clicking on the button **Save Model**. - + Revenues` and then, by clicking on the button *Save Model*. + Apply a Deferred Revenue Model to a new entry --------------------------------------------- -When you create a new Deferred Revenue entry, fill out the **Deferred Revenue -Account** with the right recognition account. -New buttons with all the models linked to that account appear at the top of the form. -Clicking on a model button fills out the form according to that model. +When you create a new Deferred Revenue entry, fill out the **Deferred Revenue Account** with the +right recognition account. + +New buttons with all the models linked to that account appear at the top of the form. Clicking on a +model button fills out the form according to that model. .. image:: media/deferred_revenues08.png :align: center @@ -164,29 +166,27 @@ Clicking on a model button fills out the form according to that model. Automate the Deferred Revenues ============================== -When you create or edit an account of which the type is either *Current Liabilities* -or *Non-current Liabilities*, you can configure it to defer the revenues that -are credited on it automatically. + +When you create or edit an account of which the type is either *Current Liabilities* or *Non-current +Liabilities*, you can configure it to defer the revenues that are credited on it automatically. You have three choices for the **Automate Deferred Revenue** field: #. **No:** this is the default value. Nothing happens. -#. **Create in draft:** whenever a transaction is posted on the account, a draft - *Deferred Revenues entry* is created, but not validated. You must first - fill out the form in :menuselection:`Accounting --> Accounting --> Deferred Revenues`. -#. **Create and validate:** you must also select a Deferred Revenue Model - (see: `Deferred Revenue Models`_). Whenever a transaction is posted on - the account, a *Deferred Revenues entry* is created and immediately - validated. +#. **Create in draft:** whenever a transaction is posted on the account, a draft *Deferred Revenues + entry* is created, but not validated. You must first fill out the form in + :menuselection:`Accounting --> Accounting --> Deferred Revenues`. +#. **Create and validate:** you must also select a Deferred Revenue Model (see: + `Deferred Revenue Models`_). Whenever a transaction is posted on the account, a *Deferred + Revenues entry* is created and immediately validated. .. image:: media/deferred_revenues09.png :align: center :alt: Automate Deferred Revenue on an account in Odoo Accounting .. tip:: - You can, for example, select this account as the default **Income Account** - of a product to fully automate its sale completely. (see: `Choose a different - Income Account for specific products`_). + You can, for example, select this account as the default **Income Account** of a product to fully + automate its sale completely. (see: `Choose a different Income Account for specific products`_). .. seealso:: * :doc:`../../others/configuration/account_type` diff --git a/accounting/receivables/customer_invoices/installment_plans.rst b/accounting/receivables/customer_invoices/installment_plans.rst index 0a21be9e5..67c9556eb 100644 --- a/accounting/receivables/customer_invoices/installment_plans.rst +++ b/accounting/receivables/customer_invoices/installment_plans.rst @@ -11,16 +11,15 @@ Example, for a specific invoice: - Pay the remaining balance within 30 days .. note:: - - payment terms are not to be confused with a payment in several parts. If, - for a specific order, you invoice the customer in two parts, that's not a - payment term but an invoice policy. + Payment terms are not to be confused with a payment in several parts. If, + for a specific order, you invoice the customer in two parts, that's not a + payment term but an invoice policy. Configuration ============= Configure your usual installment plans from the application :menuselection:`Accounting --> -Configuration > Payment Terms`. +Configuration --> Payment Terms`. A payment term may have one line (eg: 21 days) or several lines (10% within 3 days and the balance within 21 days). If you create a payment @@ -32,8 +31,7 @@ may not compute exactly 100%) :align: center .. tip:: - - The description of the payment term will appear on the invoice or the sale order. + The description of the payment term will appear on the invoice or the sale order. Payment terms for customers =========================== @@ -77,11 +75,9 @@ journal entry: | Income | | | 100 | +----------------------+------------+---------+----------+ -On the customer statement, you will see two lines with different due -dates. To get the customer statement, use the menu Sales > Customers -Statement. +On the customer statement, you will see two lines with different du dates. To get the customer +statement, use the menu :menuselection:`Sales --> Customers Statement`. .. seealso:: - - * :doc:`overview` - * :doc:`payment_terms` + - :doc:`overview` + - :doc:`payment_terms` diff --git a/accounting/receivables/customer_invoices/overview.rst b/accounting/receivables/customer_invoices/overview.rst index 031196ed4..baf08d40f 100644 --- a/accounting/receivables/customer_invoices/overview.rst +++ b/accounting/receivables/customer_invoices/overview.rst @@ -41,7 +41,8 @@ lines, invoice a fixed advance. This process is good for both services and physical products. -.. todo:: Read more: *Invoice based on sales orders.* +.. seealso:: + - :doc:`../../../sales/invoicing/proforma` Sales Order ‣ Delivery Order ‣ Invoice -------------------------------------- @@ -56,7 +57,8 @@ really delivered. If you do back orders (deliver partially and the rest later), the customer will receive two invoices, one for each delivery order. -.. todo:: Read more: *Invoice based on delivery orders.* +.. seealso:: + - :doc:`../../../sales/invoicing/invoicing_policy` eCommerce Order ‣ Invoice ------------------------- @@ -79,11 +81,8 @@ salesperson will trigger invoice based on activities on the contract. Activities can be: - fixed products/services, coming from a sale order linked to this contract - -- materials purchased (that you will re-invoiced) - +- materials purchased (that you will re-invoice) - time and material based on timesheets or purchases (subcontracting) - - expenses like travel and accommodation that you re-invoice to the customer You can invoice at the end of the contract or trigger intermediate @@ -91,9 +90,10 @@ invoices. This approach is used by services companies that invoice mostly based on time and material. For services companies that invoice on fix price, they use a regular sales order. -.. todo:: Read more: - - *How to invoice based on time and material?* - - *How to manage contracts and invoicing plans?* +.. seealso:: + - :doc:`../../../sales/invoicing/time_materials` + - :doc:`../../../sales/invoicing/expense` + - :doc:`../../../sales/invoicing/milestone` Recurring Contracts ‣ Invoices ------------------------------ @@ -102,7 +102,8 @@ For subscriptions, an invoice is triggered periodically, automatically. The frequency of the invoicing and the services/products invoiced are defined on the contract. -.. todo:: Read more: *Subscription based invoicing.* +.. seealso:: + - :doc:`../../../sales/invoicing/subscriptions` Others ====== diff --git a/accounting/receivables/customer_payments/batch_sdd.rst b/accounting/receivables/customer_payments/batch_sdd.rst index 94f0780cb..3c76c3456 100644 --- a/accounting/receivables/customer_payments/batch_sdd.rst +++ b/accounting/receivables/customer_payments/batch_sdd.rst @@ -12,7 +12,7 @@ files containing pending payments made with an SDD mandate. .. note:: | SDD is supported by all SEPA countries, which includes the 28 member states of the European Union as well as additional countries. - | `List of all SEPA countries. `_ + | `List of all SEPA countries `_. Configuration ============= @@ -120,7 +120,7 @@ Finally, upload this file to your bank to process the payments. .. seealso:: * :doc:`../../bank/setup/create_bank_account` * `Odoo Academy: SEPA Direct Debit Mandates (SDD) `_ - * `List of all SEPA countries. `_ + * `List of all SEPA countries `_. diff --git a/accounting/receivables/customer_payments/credit_cards.rst b/accounting/receivables/customer_payments/credit_cards.rst index 108e5de1b..ce8596325 100644 --- a/accounting/receivables/customer_payments/credit_cards.rst +++ b/accounting/receivables/customer_payments/credit_cards.rst @@ -100,11 +100,10 @@ list of credit cards payments that have not been cashed in the "Credit card" account (accessible, for example, from the general ledger). .. note:: - - Both methods will produce the same data in your accounting at the end of the - process. But, if you have credit cards that have not been cashed, this one - is cleaner because those credit cards have not been reported yet on your bank - account. + Both methods will produce the same data in your accounting at the end of the + process. But, if you have credit cards that have not been cashed, this one + is cleaner because those credit cards have not been reported yet on your bank + account. Option 2: One journal entry only ================================ @@ -146,11 +145,10 @@ books: +----------------------+-------------------+----------+----------+ .. tip:: - - You may also record the payment directly without going on the customer - invoice, using the top menu :menuselection:`Sales --> Payments`. This method may be more - convenient if you have a lot of credit cards to record in a batch but you - will have to reconcile entries afterwards (matching payments with invoices). + You may also record the payment directly without going on the customer + invoice, using the top menu :menuselection:`Sales --> Payments`. This method may be more + convenient if you have a lot of credit cards to record in a batch but you + will have to reconcile entries afterwards (matching payments with invoices). If you use this approach to manage received credit cards, you can use the report "Bank Reconciliation Report" to verify which credit cards diff --git a/accounting/receivables/customer_payments/recording.rst b/accounting/receivables/customer_payments/recording.rst index 9baf6d12b..8be75a300 100644 --- a/accounting/receivables/customer_payments/recording.rst +++ b/accounting/receivables/customer_payments/recording.rst @@ -29,11 +29,10 @@ the payment. From there you can choose to open the journal entry or reconcile the payment. .. note:: - - If you unreconcile a payment, it is still registered in your books but not - linked to the specific invoice any longer. If you unreconcile a payment in a - different currency, Odoo will create a journal entry to reverse the Currency - Exchange Loss/Gain posted at the time of reconciliation. + If you unreconcile a payment, it is still registered in your books but not + linked to the specific invoice any longer. If you unreconcile a payment in a + different currency, Odoo will create a journal entry to reverse the Currency + Exchange Loss/Gain posted at the time of reconciliation. Payments not tied to an invoice =============================== @@ -114,17 +113,15 @@ payments. :align: center .. note:: - - When making an internal transfer from one bank account to another, select - the bank you want to apply the transfer from in the dashboard, and in the - register payments screen, you select the transfer to account. Do not go - through this process again in the other bank account or else you will end up - with two journal entries for the same transaction. + When making an internal transfer from one bank account to another, select + the bank you want to apply the transfer from in the dashboard, and in the + register payments screen, you select the transfer to account. Do not go + through this process again in the other bank account or else you will end up + with two journal entries for the same transaction. .. seealso:: - - * :doc:`credit_cards` - * :doc:`../../bank/feeds/paypal` - * :doc:`check` - * :doc:`followup` + - :doc:`credit_cards` + - :doc:`../../bank/feeds/paypal` + - :doc:`check` + - :doc:`followup` diff --git a/applications.rst b/applications.rst index 1d4f6bfce..4390e9cf0 100644 --- a/applications.rst +++ b/applications.rst @@ -20,8 +20,10 @@ Applications helpdesk livechat/livechat expense/expense - general iot mobile/firebase social_marketing sms_marketing + fsm + planning + general diff --git a/business.rst b/business.rst index a1ab61104..66bae260f 100644 --- a/business.rst +++ b/business.rst @@ -5,5 +5,5 @@ Business Mementos .. toctree:: Accounting Memento (US GAAP) Double-Entry Inventory - Inventory Valuation (Continental Accounting) - Inventory Valuation (Anglo-Saxon Accounting) + Inventory Valuation (Continental Accounting) + Inventory Valuation (Anglo-Saxon Accounting) diff --git a/conf.py b/conf.py index 752f9511d..2b89e1b08 100644 --- a/conf.py +++ b/conf.py @@ -299,8 +299,7 @@ texinfo_documents = [ odoo_cover_external = { 'https://odoo.com/documentation/user/accounting/overview/main_concepts/memento.html' : 'banners/m_accounting.jpg', 'https://odoo.com/documentation/user/inventory/overview/concepts/double-entry.html' : 'banners/m_1.jpg', - 'https://odoo.com/documentation/user/inventory/management/reporting/valuation_methods_continental.html' : 'banners/m_2.jpg', - 'https://odoo.com/documentation/user/inventory/management/reporting/valuation_methods_anglo_saxon.html' : 'banners/m_2.jpg', + 'https://odoo.com/documentation/user/inventory/management/reporting/inventory_valuation_config.html' : 'banners/m_2.jpg', } github_user = 'odoo' @@ -360,8 +359,11 @@ def versionize(app, pagename, templatename, context, doctree): if not (app.config.canonical_root and app.config.versions): return + # remove last fragment containing the version + root = '/'.join(app.config.canonical_root.rstrip('/').split('/')[:-1]) + context['versions'] = [ - (vs, _build_url(app.config.canonical_root, vs, pagename)) + (vs, _build_url(root, vs, pagename)) for vs in app.config.versions.split(',') if vs != app.config.version ] @@ -414,16 +416,24 @@ def canonicalize(app, pagename, templatename, context, doctree): """ Adds a 'canonical' URL for the current document in the rendering context. Requires the ``canonical_root`` setting being set. The canonical branch is ``master`` but can be overridden using ``canonical_branch``. + /documentation/user/12.0/sale.html -> /documentation/user/13.0/sale.html + /documentation/user/11.0/fr/website.html -> /documentation/user/13.0/fr/website.html """ if not app.config.canonical_root: return + # remove last fragment containing the version + root = '/'.join(app.config.canonical_root.rstrip('/').split('/')[:-1]) + root += '/' + app.config.canonical_branch + current_lang = app.config.language or 'en' + context['canonical'] = _build_url( - app.config.canonical_root, app.config.canonical_branch, pagename) + root, (current_lang != 'en' and current_lang or ''), pagename) def _build_url(root, branch, pagename): - if not branch: - root = root.rstrip('/') + root = root.rstrip('/') + if branch: + root += '/' return "{canonical_url}{canonical_branch}/{canonical_page}".format( canonical_url=root, canonical_branch=branch, diff --git a/crm/acquire_leads/convert.rst b/crm/acquire_leads/convert.rst index 5ffb60065..1aafaad16 100644 --- a/crm/acquire_leads/convert.rst +++ b/crm/acquire_leads/convert.rst @@ -63,5 +63,5 @@ want to merge and the action button will appear. Then, you can select merge. .. image:: media/convert_05.png :align: center -..note:: - It is also possible to merge more than 2 opportunities or leads. \ No newline at end of file +.. note:: + It is also possible to merge more than 2 opportunities or leads. \ No newline at end of file diff --git a/crm/acquire_leads/lead_mining.rst b/crm/acquire_leads/lead_mining.rst index 5f3741f9c..28a053bb9 100644 --- a/crm/acquire_leads/lead_mining.rst +++ b/crm/acquire_leads/lead_mining.rst @@ -28,7 +28,7 @@ From there, click on the **Generate Leads** button, a window where you will be a .. image:: media/LM5.png - :align: center + :align: center When choosing to target Companied and their contacts you can choose the contacts you are getting based on Role or Seniority. @@ -51,7 +51,8 @@ Pricing This is an In-App Purchase feature, each generated lead will cost you one credit. If you choose to get contact information each contact will also cost us one additional credit. Here is the pricing for this `feature `__, -To buy credits you can either go to CRM > Configuration > Settings > Buy Credits; or go to Settings > In-App Purchases>View my Services +To buy credits you can either go to :menuselection:`CRM --> Configuration --> Settings --> Buy +Credits`; or go to `Settings --> In-App Purchases --> View my Services`. .. image:: media/LM6.png :align: center @@ -64,7 +65,8 @@ To buy credits you can either go to CRM > Configuration > Settings > Buy Credits The blue box will automatically tell you how many credits are going to be consumed. .. tip:: - If you are on Odoo Online (SAAS) and have the Enterprise version, you benefit from free trial credits to test the feature. + If you are on Odoo Online (SAAS) and have the Enterprise version, you benefit from free trial credits to test the feature. -More information about `In-App Purchases `__, (IAP). +.. seealso:: + * :doc:`In-App Purchases (IAP) <../../general/in_app_purchase/in_app_purchase>` diff --git a/crm/optimize/media/voip_config01.png b/crm/optimize/media/voip_config01.png new file mode 100644 index 000000000..09cf4b85d Binary files /dev/null and b/crm/optimize/media/voip_config01.png differ diff --git a/crm/optimize/media/voip_config02.png b/crm/optimize/media/voip_config02.png new file mode 100644 index 000000000..3a5f2cf11 Binary files /dev/null and b/crm/optimize/media/voip_config02.png differ diff --git a/crm/optimize/setup.rst b/crm/optimize/setup.rst index 930f54dc1..8fe192be6 100644 --- a/crm/optimize/setup.rst +++ b/crm/optimize/setup.rst @@ -203,14 +203,23 @@ Configure Odoo VOIP In Odoo, the configuration should be done in the user's preferences. -The SIP Login/Browser's Extension is the number you configured previously in the -sip.conf file. In our example, 1060. The SIP Password is the secret you chose in -the sip.conf file. The extension of your office's phone is not a required field -but it is used if you want to transfer your call from Odoo to an external phone -also configured in the sip.conf file. -The configuration should also be done in the sale settings under the title "PBX -Configuration". You need to put the IP you define in the http.conf file and the -WebSocket should be: ws://127.0.0.1:8088/ws. The part "127.0.0.1" needs to be -the same as the IP defined previously and the "8088" is the port you defined in -the http.conf file. +.. image:: media/voip_config01.png + :align: center + +- The SIP Login/Browser's Extension is the number you configured previously in the sip.conf file (in our example: 1060). + +- The SIP Password is the secret you chose in the sip.conf file. + +- The extension of your office's phone is not a required field but it is used if you want to transfer your call from Odoo to an external phone also configured in the sip.conf file. + + +The configuration should also be done in the General Settings under the "Integrations" section. + +.. image:: media/onsip02.png + :align: center + +- The PBX Server IP should be the same as the IP you define in the http.conf file. + +- The WebSocket should be: ws://localhost:XXXX/ws where "localhost" needs to be the same as the IP defined previously and "XXXX" needs to be the port defined in the http.conf file. + diff --git a/db_management/db_online.rst b/db_management/db_online.rst index 8dd05aeb3..773e7deff 100644 --- a/db_management/db_online.rst +++ b/db_management/db_online.rst @@ -136,9 +136,9 @@ e-mail once the process is completed. .. image:: media/upgrade_prod.png :align: center -.. warning :: Your database will be taken offline during the upgrade - (usually between 30min up to several hours for big databases), - so make sure to plan your migration during non-business hours. +.. warning:: + Your database will be taken offline during the upgrade (usually between 30min up to several hours + for big databases), so make sure to plan your migration during non-business hours. .. _duplicate_online: @@ -176,10 +176,11 @@ After a few seconds, you will be logged in your duplicated database. Notice that the url uses the name you chose for your duplicated database. -.. note :: Duplicate databases expire automatically after 15 days. +.. note:: + Duplicate databases expire automatically after 15 days. - .. image:: media/dup_expires.png - :align: center + .. image:: media/dup_expires.png + :align: center .. _rename_online_database: diff --git a/db_management/db_premise.rst b/db_management/db_premise.rst index 3129d75cf..0c8a5d4dd 100644 --- a/db_management/db_premise.rst +++ b/db_management/db_premise.rst @@ -109,14 +109,9 @@ The countdown is updated everyday. Solutions ''''''''' -* **Add more users** on your subscription: follow the link and Validate +- **Add more users** on your subscription: follow the link and Validate the upsell quotation and pay for the extra users. - -or - -* **Deactivate users** as explained in this `Documentation - `__ +- **Deactivate users** as explained in this `documentation `_ and **Reject** the upsell quotation. Once your database has the correct number of users, the expiration message @@ -176,10 +171,9 @@ problems down the line. .. note:: From July 2016 onward, Odoo 9 now automatically change the uuid of a duplicated database; a manual operation is no longer required. -The database uuid is currently accessible from the menu **Settings > Technical -> System Parameters**, we advise you to use a -`uuid generator `__ or to use the unix command -``uuidgen`` to generate a new uuid. You can then simply replace it like any +The database uuid is currently accessible from the menu :menuselection:`Settings --> Technical --> +System Parameters`, we advise you to use a `uuid generator `_ or to +use the unix command ``uuidgen`` to generate a new uuid. You can then simply replace it like any other record by clicking on it and using the edit button. .. image:: media/db_uuid.png diff --git a/ecommerce/shopper_experience/media/paypal06.png b/ecommerce/shopper_experience/media/paypal06.png deleted file mode 100644 index 0f5c7c8a6..000000000 Binary files a/ecommerce/shopper_experience/media/paypal06.png and /dev/null differ diff --git a/ecommerce/shopper_experience/media/paypal_button_encoding.png b/ecommerce/shopper_experience/media/paypal_button_encoding.png deleted file mode 100644 index 98f53031d..000000000 Binary files a/ecommerce/shopper_experience/media/paypal_button_encoding.png and /dev/null differ diff --git a/ecommerce/shopper_experience/payment.rst b/ecommerce/shopper_experience/payment.rst index 8db0ce9b7..57f4e9f46 100644 --- a/ecommerce/shopper_experience/payment.rst +++ b/ecommerce/shopper_experience/payment.rst @@ -101,7 +101,7 @@ like installment plans (e.g. Such a customization service is made on-demand by our technical experts based on your own requirements. A business advisor can reach you out for -such matter. `Contact us. `__ +such matter. `Contact us `_. .. seealso:: diff --git a/ecommerce/shopper_experience/payment_acquirer.rst b/ecommerce/shopper_experience/payment_acquirer.rst index 913587c7d..3f40ed210 100644 --- a/ecommerce/shopper_experience/payment_acquirer.rst +++ b/ecommerce/shopper_experience/payment_acquirer.rst @@ -50,14 +50,13 @@ orders straight on. .. image:: media/payment_invoice.png :align: center -.. note:: If you choose this mode you are requested to select a payment journal - in order to record payments in your books. - This payment is automatically reconcilied with the invoice, marking it as paid. - Select your **bank account** if you get paid immediately on your bank account. - If you don't you can create a specific journal for the payment acquirer - (type = Bank). That way, you can track online payments in an intermediary - account of your books until you get paid into your bank account - (see `How to register credit card payments <../../accounting/receivables/customer_payments/credit_cards.html>`__). +.. note:: + If you choose this mode you are requested to select a payment journal in order to record payments + in your books. This payment is automatically reconcilied with the invoice, marking it as paid. + Select your **bank account** if you get paid immediately on your bank account. If you don't you + can create a specific journal for the payment acquirer (type = Bank). That way, you can track + online payments in an intermediary account of your books until you get paid into your bank + account (see :doc:`../../accounting/receivables/customer_payments/credit_cards`). Capture the payment after the delivery diff --git a/ecommerce/shopper_experience/paypal.rst b/ecommerce/shopper_experience/paypal.rst index 2cbd428d1..9aabfd3ed 100644 --- a/ecommerce/shopper_experience/paypal.rst +++ b/ecommerce/shopper_experience/paypal.rst @@ -11,7 +11,12 @@ payment. Paypal account ============== -A business account is needed to get paid with Paypal. Create a `Paypayl Business Account `__ or upgrade your Personal account to a Business account. Go to the Paypal settings and click on *Upgrade to a Business account*. Then follow the few configuration steps. +A business account is needed to get paid with Paypal. Create a +`Paypal Business Account `_ +or upgrade your Personal account to a Business account. Go to the Paypal +settings and click on *Upgrade to a Business account*. +Then follow the few configuration steps. Settings in Paypal @@ -19,8 +24,8 @@ Settings in Paypal | First, let’s see how to set up your Paypal account in order to build a seamless customer experience with Odoo. -| Log in and open the settings. Go to *Products & Services > Website - payments* and click *Update* on *Website preferences*. +| Log in and open the settings. Go to :menuselection:`Products & Services --> + Website payments` and click **Update** on **Website preferences**. .. image:: media/paypal01.png :align: center @@ -30,8 +35,8 @@ Auto Return *Auto Return* automatically redirects your customers to Odoo once the payment is processed. Check *Auto Return* and enter your domain name -"/shop/confirmation" as *Return URL* (e.g. -https://yourcompany.odoo.com/shop/confirmation). +with the suffix ``/shop/confirmation`` as *Return URL* +(e.g. ``https://yourcompany.odoo.com/shop/confirmation``). This URL is requested in Paypal but not used in practice as Odoo transmits it at each transaction. Don’t worry if you manage several @@ -71,8 +76,7 @@ is virtually guaranteed since IPN resends a confirmation until your site acknowl | To activate IPN, get back to *Website payments* menu and click *Update* in *Instant Payment Notification*. | The *Notification URL* to set is your domain name + - “payment/paypal/ipn” (e.g. - https://yourcompany.odoo.com/payment/paypal/ipn). + “payment/paypal/ipn” (e.g. ``https://yourcompany.odoo.com/payment/paypal/ipn``). .. image:: media/paypal05.png :align: center @@ -80,14 +84,21 @@ is virtually guaranteed since IPN resends a confirmation until your site acknowl Payment Messages Format ----------------------- -Finally make sure the encoding format of payment messages is correctly -set. Go to *PayPal button language encoding*. +If you use accented characters (or anything else than basic Latin characters) +for your customer names, addresses... you MUST configure the encoding format of +the payment request sent by Odoo to Paypal. -.. image:: media/paypal06.png - :align: center +.. danger:: -Click *More Options* and set the two default encoding formats as -*UTF-8*. + If you don't configure this setting, some transactions fail without notice. + +To do so, open: + +* `this page for a test account `__ + +* `this page for a production account `__ + +Then, click *More Options* and set the two default encoding formats as **UTF-8**. .. image:: media/paypal07.png :align: center @@ -97,8 +108,17 @@ Click *More Options* and set the two default encoding formats as Your Paypal account is ready! - .. tip:: For Encrypted Website Payments & EWP_SETTINGS error, - please check the `paypal documentation. `__ +.. tip:: + If you want your customers to pay without creating a Paypal account, + *Paypal Account Optional* needs to be turned on. + + .. image:: media/paypal_account_optional.png + +.. tip:: + For Encrypted Website Payments & EWP_SETTINGS error, + please check the `Paypal documentation `_. Settings in Odoo ================ @@ -114,11 +134,10 @@ Credentials Odoo requires three Paypal credentials: -- *Email ID* is your login email address in Paypal. - -- *Merchant ID* can be found in the settings of your Paypal account, in *Profile > About the business*. - -- *Paypal PDT Token* is given in *Website payments* configuration as explained here above. +- *Email ID* is your login email address in Paypal. +- *Merchant ID* can be found in the settings of your Paypal account, in :menuselection:`Profile --> + About the business`. +- *Paypal PDT Token* is given in *Website payments* configuration as explained here above. .. image:: media/paypal09.png :align: center @@ -138,8 +157,9 @@ Odoo and check *Add Extra Fees*. You can refer to `Paypal Fees `__ to set up fees. -..note:: `Traders in the EU `__ -are not allowed to charge extra fees for paying with credit cards. +.. note:: + `Traders in the EU `_ are not allowed to charge extra fees for paying with credit cards. Go live! ======== @@ -182,8 +202,6 @@ when a fictitious transaction is completed. Run a test transaction from Odoo using the sandbox personal account. -See also - -`How to manage orders paid with payment acquirers `__ - -`How to manage orders paid with payment acquirers `__ +.. seealso:: + - :doc:`payment` + - :doc:`payment_acquirer` diff --git a/expense/expense.rst b/expense/expense.rst index cdd4f1294..6fe3536c0 100644 --- a/expense/expense.rst +++ b/expense/expense.rst @@ -90,7 +90,7 @@ How to submit expenses to managers When you are ready to submit your expenses to your manager (e.g. at the end of a business trip, or once a month), go to the menu :menuselection:`My Expenses --> Expenses to Submit`. Select all expenses -from the list view and click on :menuselection:`Action > Submit to Manager`. +from the list view and click on :menuselection:`Action --> Submit to Manager`. Save the newly created expense report (i.e. set of expenses), and wait for your manager to approve it. diff --git a/fsm.rst b/fsm.rst new file mode 100644 index 000000000..a918205e6 --- /dev/null +++ b/fsm.rst @@ -0,0 +1,17 @@ +:banner: banners/fsm.jpg + +============== +Field Service +============== + +.. toctree:: + :titlesonly: + + fsm/planning_itinerary + fsm/keep_track + fsm/invoicing_time + fsm/create_quotations + fsm/onsite_tasks_from_sales_orders + fsm/manage_employees_schedule + fsm/customize_worksheets + fsm/plan_onsite diff --git a/fsm/create_quotations.rst b/fsm/create_quotations.rst new file mode 100644 index 000000000..93302d004 --- /dev/null +++ b/fsm/create_quotations.rst @@ -0,0 +1,25 @@ +============================ +Create quotations from tasks +============================ +Allowing quotations to be created from tasks delivers a more efficient service as it allows space +for preventive actions, while making the flow easy for employees. + +Enable the feature +=================== +First, go to :menuselection:`Field Service --> Configuration --> Settings` and enable the option +*Extra Quotations*. + +.. image:: media/cq1.png + :align: center + :alt: Create quotations in Odoo Field Service + +Second, go to :menuselection:`Configuration --> Projects` and enable *Extra Quotations*. + +.. image:: media/cq2.png + :alt: Create quotations in Odoo Field Service + +You can now create *New Quotations* directly from your tasks. + +.. image:: media/cq3.png + :align: center + :alt: Create quotations in Odoo Field Service diff --git a/fsm/customize_worksheets.rst b/fsm/customize_worksheets.rst new file mode 100644 index 000000000..e1d0f0c71 --- /dev/null +++ b/fsm/customize_worksheets.rst @@ -0,0 +1,38 @@ +============================ +Customize worksheet reports +============================ +Personalizing your customer reports, also called *worksheets*, allows you to have different +descriptions of the work for each type of intervention. It speeds up the flow for your employees +while giving customers a detailed summary, which can be reviewed and signed onsite. + +Enable the feature +=================== +Go to :menuselection:`Field Service --> Configuration` and enable +:menuselection:`Worksheet Templates --> Save`. + +.. image:: media/cc1.png + :align: center + :alt: Custom Worksheet in Odoo Field Service + +Designing worksheets +===================== +Under :menuselection:`Configuration --> Worksheet Templates`, click on *Create* and start to +*Design Worksheet Template*. +You will be redirected to the *Studio* application. + +.. image:: media/cc2.png + :align: center + :alt: Custom Worksheet in Odoo Field Service + +With the freedom of *Studio*, drag and drop fields to create a report tailored to your needs. +Once you are done, click on *Close* and get an overview of the work done. + +*Worksheets* is where you can see how many times the worksheet has been used/completed under a task. +*Analysis* examines all the worksheets under that given template and generates a graph. + +.. image:: media/cc3.png + :align: center + :alt: Custom Worksheet in Odoo Field Service + +.. seealso:: + - `Studio Basics `_ diff --git a/fsm/invoicing_time.rst b/fsm/invoicing_time.rst new file mode 100644 index 000000000..39088efda --- /dev/null +++ b/fsm/invoicing_time.rst @@ -0,0 +1,60 @@ +========================================= +Invoicing time and material to customers +========================================= +Track the exact time spent on a task and give customers the ability to sign their worksheet +report onsite. Invoice customers as soon as the work is complete, leaving you, and the customer, +with the confidence that they will be charged for the exact right hours and material used. + +Get the exact time spent on a task +=================================== +Click on *Start* to launch the timer. You can *Pause* at any moment and *Resume* when you would like +to continue. + +.. image:: media/im1.png + :align: center + :alt: Timesheet Timer in Odoo Field Service + +Click on *Stop* once the work is done to confirm the total time spent and add a description. + +.. image:: media/im2.png + :align: center + :alt: Timesheet Timer in Odoo Field Service + +Sign and send reports & validate stock-picking +=============================================== +Now, fill your *Worksheet* and add the used products clicking on *Products*. + +.. image:: media/im3.png + :align: center + :alt: Sign and send reports in Odoo Field Service + +Click on *Start* if you need to record additional time for the same activity. The time recorded will +be added to the already created and signed worksheet. Then, create a new invoice for the time added. + +*Mark as done* to close the task and to invoice your intervention. It also validates the +stock-picking keeping your inventory up-to-date. + +*Sign Report* generates a detailed worksheet report for the customer to sign. Send it through email +clicking on *Send Report*. + +Invoice your time and material +=============================== +Under :menuselection:`All Tasks --> To Invoice`, find a list of all tasks marked as done but that +have not been invoiced. +Convenient feature as it allows accountants to easily access all finished tasks at once. + +.. image:: media/im4.png + :align: center + :alt: Invoice Tasks in Odoo Field Service + + +.. tip:: + Invoice all tasks at once selecting them all and going to :menuselection:`Action --> + Create Invoice`. + +.. image:: media/im5.png + :align: center + :alt: Invoice Task in Odoo Field Service + +.. seealso:: + * :doc:`../project/advanced/feedback` diff --git a/fsm/keep_track.rst b/fsm/keep_track.rst new file mode 100644 index 000000000..8b053d325 --- /dev/null +++ b/fsm/keep_track.rst @@ -0,0 +1,20 @@ +======================== +Keeping track of stock +======================== +The integration with the Inventory application makes possible to track the material used and +automatically keep your stock up to date. + +Set up your Field Service project +================================== +Go to :menuselection:`Field Service --> Configuration --> Projects` and make sure the option +*Products on Tasks* is enabled. + +.. image:: media/kts1.png + :alt: Keep track of stock in Odoo Field Service + +Now, add the materials used in the intervention to the worksheet, and once the task is +*Marked as done*, the stock-picking is automatically validated and the inventory evaluation +is automatically updated. + +.. image:: media/kts2.png + :alt: Keep track of stock in Odoo Field Service diff --git a/fsm/manage_employees_schedule.rst b/fsm/manage_employees_schedule.rst new file mode 100644 index 000000000..ba3b6c51f --- /dev/null +++ b/fsm/manage_employees_schedule.rst @@ -0,0 +1,42 @@ +============================================== +Manage your employees’ schedules and time off +============================================== +The integration with the *Time off* application allows you to quickly see your employees’ +availabilities. It will avoid conflicts and errors between employees schedules and interventions. + +Effortlessly see employees’ time off +===================================== +No configuration needs to be done. +Once the employees’ time has been validated in the *Time off* application, cells will be grayed for +those days in your Gantt view. + +It also adapts to the working calendar of the employee. Example: the employee works part-time +(from Monday to Wednesday). So, Thursday and Friday will also be greyed, in addition to the weekends. + +.. image:: media/mw1.png + :alt: Employees' Time off in Odoo Field Service + +Easily manage employees’ schedules +=================================== +From the Gantt view (under *Planning by User, Project or Worksheet*), click on the plus sign to add +a new task or on the magnifying glass to plan an existing one. + +.. image:: media/mw2.png + :align: center + :alt: Manage employees' schedules in Odoo Field Service + +Unassigned tasks +================= +If you need to plan an intervention but you do not know yet who will take care of it, you can leave +the task unassigned. It will still be shown in the Gantt view. Simply drag and drop the responsible +person he can be assigned. + +.. image:: media/mw3.png + :align: center + :alt: Unassigned tasks in Odoo Field Service + +.. tip:: + Create projects per team, or per working site, and have a more accurate and dynamic database. + +.. seealso:: + * :doc:`../project/configuration/setup` diff --git a/fsm/media/cc1.png b/fsm/media/cc1.png new file mode 100644 index 000000000..f9a236a07 Binary files /dev/null and b/fsm/media/cc1.png differ diff --git a/fsm/media/cc2.png b/fsm/media/cc2.png new file mode 100644 index 000000000..06a6ddb07 Binary files /dev/null and b/fsm/media/cc2.png differ diff --git a/fsm/media/cc3.png b/fsm/media/cc3.png new file mode 100644 index 000000000..d5de92202 Binary files /dev/null and b/fsm/media/cc3.png differ diff --git a/fsm/media/cq1.png b/fsm/media/cq1.png new file mode 100644 index 000000000..22fec92df Binary files /dev/null and b/fsm/media/cq1.png differ diff --git a/fsm/media/cq2.png b/fsm/media/cq2.png new file mode 100644 index 000000000..89f1575ef Binary files /dev/null and b/fsm/media/cq2.png differ diff --git a/fsm/media/cq3.png b/fsm/media/cq3.png new file mode 100644 index 000000000..428b7631d Binary files /dev/null and b/fsm/media/cq3.png differ diff --git a/fsm/media/im1.png b/fsm/media/im1.png new file mode 100644 index 000000000..b3e37e7c0 Binary files /dev/null and b/fsm/media/im1.png differ diff --git a/fsm/media/im2.png b/fsm/media/im2.png new file mode 100644 index 000000000..b5ecd020e Binary files /dev/null and b/fsm/media/im2.png differ diff --git a/fsm/media/im3.png b/fsm/media/im3.png new file mode 100644 index 000000000..8464523fb Binary files /dev/null and b/fsm/media/im3.png differ diff --git a/fsm/media/im4.png b/fsm/media/im4.png new file mode 100644 index 000000000..fcea159a9 Binary files /dev/null and b/fsm/media/im4.png differ diff --git a/fsm/media/im5.png b/fsm/media/im5.png new file mode 100644 index 000000000..cbad741bc Binary files /dev/null and b/fsm/media/im5.png differ diff --git a/fsm/media/kts1.png b/fsm/media/kts1.png new file mode 100644 index 000000000..6f016f905 Binary files /dev/null and b/fsm/media/kts1.png differ diff --git a/fsm/media/kts2.png b/fsm/media/kts2.png new file mode 100644 index 000000000..8fc115326 Binary files /dev/null and b/fsm/media/kts2.png differ diff --git a/fsm/media/mw1.png b/fsm/media/mw1.png new file mode 100644 index 000000000..dc75ae550 Binary files /dev/null and b/fsm/media/mw1.png differ diff --git a/fsm/media/mw2.png b/fsm/media/mw2.png new file mode 100644 index 000000000..8661cbdfa Binary files /dev/null and b/fsm/media/mw2.png differ diff --git a/fsm/media/mw3.png b/fsm/media/mw3.png new file mode 100644 index 000000000..92737dba7 Binary files /dev/null and b/fsm/media/mw3.png differ diff --git a/fsm/media/onsite1.png b/fsm/media/onsite1.png new file mode 100644 index 000000000..961e200a0 Binary files /dev/null and b/fsm/media/onsite1.png differ diff --git a/fsm/media/onsite2.png b/fsm/media/onsite2.png new file mode 100644 index 000000000..939776169 Binary files /dev/null and b/fsm/media/onsite2.png differ diff --git a/fsm/media/plit1.png b/fsm/media/plit1.png new file mode 100644 index 000000000..4c0612d47 Binary files /dev/null and b/fsm/media/plit1.png differ diff --git a/fsm/media/plit2.png b/fsm/media/plit2.png new file mode 100644 index 000000000..b776ae97f Binary files /dev/null and b/fsm/media/plit2.png differ diff --git a/fsm/media/plit3.png b/fsm/media/plit3.png new file mode 100644 index 000000000..da7f27498 Binary files /dev/null and b/fsm/media/plit3.png differ diff --git a/fsm/media/plit4.png b/fsm/media/plit4.png new file mode 100644 index 000000000..ccdac1370 Binary files /dev/null and b/fsm/media/plit4.png differ diff --git a/fsm/media/po1.png b/fsm/media/po1.png new file mode 100644 index 000000000..441b0902c Binary files /dev/null and b/fsm/media/po1.png differ diff --git a/fsm/media/po2.png b/fsm/media/po2.png new file mode 100644 index 000000000..07bb4e9c2 Binary files /dev/null and b/fsm/media/po2.png differ diff --git a/fsm/onsite_tasks_from_sales_orders.rst b/fsm/onsite_tasks_from_sales_orders.rst new file mode 100644 index 000000000..cf6b3d74d --- /dev/null +++ b/fsm/onsite_tasks_from_sales_orders.rst @@ -0,0 +1,29 @@ +===================================================== +Create onsite interventions tasks from Sales Orders +===================================================== +By allowing your sales team to open onsite interventions tasks will create a seamless experience +for your customers. It also allows them to first receive a quotation with the materials that will +be used plus the service price to be approved before the work even starts. + +Enable the feature +=================== +Go to :menuselection:`Sales --> Products --> Create` or edit an existing one. +Select: under :menuselection:`General Information --> Product Type: Service`; +under :menuselection:`Sales --> Service Invoicing Policy: Timesheet on task --> Service Tracking: +Create a task in an existing project --> Project --> Worksheet Template --> Save`. + +.. image:: media/onsite1.png + :align: center + :alt: Onsite Interventions from Sales Order in Odoo Field Service + +Now, once you have *Confirmed* a *quotation*, a task will be created in the respective +project you have chosen. + +.. image:: media/onsite2.png + :align: center + :alt: Onsite Interventions from Sales Order in Odoo Field Service + + +.. tip:: + One of the greatest benefits here is that you can have different *Worksheets Templates* under the + same project and product, for example. diff --git a/fsm/plan_onsite.rst b/fsm/plan_onsite.rst new file mode 100644 index 000000000..2be9a2c9e --- /dev/null +++ b/fsm/plan_onsite.rst @@ -0,0 +1,19 @@ +================================================ +Plan onsite interventions from Helpdesk Tickets +================================================ +The integration with the Helpdesk application lets your helpdesk team manage interventions requests +directly. It speeds up processes as you can plan field services tasks from tickets. + +Enable the feature +=================== +Go to :menuselection:`Helpdesk --> Configuration --> Helpdesk Teams --> Edit` and enable +:menuselection:`Onsite Interventions --> Save`. + +.. image:: media/po1.png + :alt: Tasks from tickets in Odoo Field Service + +Now once your helpdesk team needs, they have the option to *Plan Intervention* from tickets. + +.. image:: media/po2.png + :align: center + :alt: Tasks from tickets in Odoo Field Service diff --git a/fsm/planning_itinerary.rst b/fsm/planning_itinerary.rst new file mode 100644 index 000000000..a826f5be4 --- /dev/null +++ b/fsm/planning_itinerary.rst @@ -0,0 +1,36 @@ +====================== +Planning an itinerary +====================== + +Having an itinerary being shown based on the chronological order of the activities and on the best +route to take, makes employees’ life easier and the workload more efficient. + +Have an itinerary displayed directly in Odoo +============================================= +Go to *Settings* and under *Map view* click on *Get token*. + +.. image:: media/plit1.png + :alt: Configure Mapbox for Odoo Field Service + +Click on :menuselection:`Start mapping for free --> fill the Username, email and password fields +--> agree with their Terms of Service and Privacy Policy --> Get started`. You will be redirected to +your account. Scrolling the page down you will find *Access tokens*. Copy the *Default public +token*. + +.. image:: media/plit2.png + :align: center + :alt: Configure Mapbox for Odoo Field Service + +Back in Odoo, paste it on :menuselection:`Token --> Save`. + +.. image:: media/plit3.png + :alt: Configure Mapbox for Odoo Field Service + +Now, your maps will show the itinerary based on the scheduled time and best route. + +.. image:: media/plit4.png + :align: center + :alt: Configure Mapbox for Odoo Field Service + +.. note:: + This is an optional feature, as you can still have access to a map view without a Mapbox account. diff --git a/general/auth/google.rst b/general/auth/google.rst index c072742b0..3e7eaeba6 100644 --- a/general/auth/google.rst +++ b/general/auth/google.rst @@ -2,7 +2,8 @@ How to allow users to sign in with their Google account ======================================================= -- Connect to your Google account and go to `https://console.developers.google.com/ `_. +- Connect to your Google account and go to the `Google API Dashboard + `_. - Click on **Create Project** and enter the project name and other details. diff --git a/general/base_import/import_faq.rst b/general/base_import/import_faq.rst index 8593d7ff7..ea61af351 100644 --- a/general/base_import/import_faq.rst +++ b/general/base_import/import_faq.rst @@ -17,7 +17,6 @@ There you are provided with templates you can easily populate with your own data. Such templates can be imported in one click; The data mapping is already done. - How to adapt the template ------------------------- @@ -78,19 +77,28 @@ you will then be able to choose from the complete list of fields for each column Where can I change the date import format? ------------------------------------------ -Odoo can automatically detect if a column is a date, and it will try to guess the date format from a set of most commonly used date formats. While this process can work for many date formats, some date formats will not be recognized. This can cause confusion due to day-month inversions; it is difficult to guess which part of a date format is the day and which part is the month in a date such as '01-03-2016'. +Odoo can automatically detect if a column is a date, and it will try to guess the date format from a +set of most commonly used date formats. While this process can work for many date formats, some date +formats will not be recognized. This can cause confusion due to day-month inversions; it is +difficult to guess which part of a date format is the day and which part is the month in a date such +as '01-03-2016'. -To view which date format Odoo has found from your file you can check the **Date Format** that is shown when clicking on **Options** under the file selector. If this format is incorrect you can change it to your liking using the *ISO 8601* to define the format. +To view which date format Odoo has found from your file you can check the **Date Format** that is +shown when clicking on **Options** under the file selector. If this format is incorrect you can +change it to your liking using the *ISO 8601* to define the format. .. note:: - If you are importing an excel (.xls, .xlsx) file, you can use date cells to store dates as the display of dates in excel is different from the way it is stored. That way you will be sure that the date format is correct in Odoo whatever your locale date format is. - - + If you are importing an excel (.xls, .xlsx) file, you can use date cells to store dates as the + display of dates in excel is different from the way it is stored. That way you will be sure that + the date format is correct in Odoo whatever your locale date format is. Can I import numbers with currency sign (e.g.: $32.00)? ------------------------------------------------------- -Yes, we fully support numbers with parenthesis to represent negative sign as well as numbers with currency sign attached to them. Odoo also automatically detect which thousand/decimal separator you use (you can change those under **options**). If you use a currency symbol that is not known to Odoo, it might not be recognized as a number though and it will crash. +Yes, we fully support numbers with parenthesis to represent negative sign as well as numbers with +currency sign attached to them. Odoo also automatically detect which thousand/decimal separator you +use (you can change those under **options**). If you use a currency symbol that is not known to +Odoo, it might not be recognized as a number though and it will crash. Examples of supported numbers (using thirty-two thousands as an example): @@ -107,36 +115,42 @@ Example that will not work: - ABC 32.000,00 - $ (32.000,00) - - What can I do when the Import preview table isn't displayed correctly? ---------------------------------------------------------------------- -By default the Import preview is set on commas as field separators and quotation marks as text delimiters. If your csv file does not have these settings, you can modify the File Format Options (displayed under the Browse CSV file bar after you select your file). - -Note that if your CSV file has a tabulation as separator, Odoo will not detect the separations. You will need to change the file format options in your spreadsheet application. See the following question. - +By default the Import preview is set on commas as field separators and quotation marks as text +delimiters. If your csv file does not have these settings, you can modify the File Format Options +(displayed under the Browse CSV file bar after you select your file). +Note that if your CSV file has a tabulation as separator, Odoo will not detect the separations. You +will need to change the file format options in your spreadsheet application. See the following +question. How can I change the CSV file format options when saving in my spreadsheet application? --------------------------------------------------------------------------------------- -If you edit and save CSV files in speadsheet applications, your computer's regional settings will be applied for the separator and delimiter. We suggest you use OpenOffice or LibreOffice Calc as they will allow you to modify all three options (in 'Save As' dialog box > Check the box 'Edit filter settings' > Save). - -Microsoft Excel will allow you to modify only the encoding when saving (in 'Save As' dialog box > click 'Tools' dropdown list > Encoding tab). - +If you edit and save CSV files in spreadsheet applications, your computer's regional settings will +be applied for the separator and delimiter. We suggest you use OpenOffice or LibreOffice Calc as +they will allow you to modify all three options (in :menuselection:`'Save As' dialog box --> Check the +box 'Edit filter settings' --> Save`). +Microsoft Excel will allow you to modify only the encoding when saving (in :menuselection:`'Save As' +dialog box --> click 'Tools' dropdown list --> Encoding tab`). What's the difference between Database ID and External ID? ---------------------------------------------------------- -Some fields define a relationship with another object. For example, the country of a contact is a link to a record of the 'Country' object. When you want to import such fields, Odoo will have to recreate links between the different records. To help you import such fields, Odoo provides 3 mechanisms. You must use one and only one mechanism per field you want to import. +Some fields define a relationship with another object. For example, the country of a contact is a +link to a record of the 'Country' object. When you want to import such fields, Odoo will have to +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: - 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) +- 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: @@ -144,92 +158,123 @@ For the country Belgium, you can use one of these 3 ways to import: - Country/Database ID: 21 - Country/External ID: base.be -According to your need, you should use one of these 3 ways to reference records in relations. Here is when you should use one or the other, according to your need: +According to your need, you should use one of these 3 ways to reference records in relations. Here +is when you should use one or the other, according to your need: -- Use Country: This is the easiest way when your data come from CSV files that have been created manually. -- Use Country/Database ID: You should rarely use this notation. It's mostly used by developers as it's main advantage is to never have conflicts (you may have several records with the same name, but they always have a unique Database ID) +- Use Country: This is the easiest way when your data come from CSV files that have been created + manually. +- Use Country/Database ID: You should rarely use this notation. It's mostly used by developers as + it's main advantage is to never have conflicts (you may have several records with the same name, + but they always have a unique Database ID) - Use Country/External ID: Use External ID when you import data from a third party application. -When you use External IDs, you can import CSV files with the "External ID" column to define the External ID of each record you import. Then, you will be able to make a reference to that record with columns like "Field/External ID". The following two CSV files give you an example for Products and their Categories. +When you use External IDs, you can import CSV files with the "External ID" column to define the +External ID of each record you import. Then, you will be able to make a reference to that record +with columns like "Field/External ID". The following two CSV files give you an example for Products +and their Categories. -`CSV file for categories <../../_static/example_files/External_id_3rd_party_application_product_categories.csv>`_. - -`CSV file for Products <../../_static/example_files/External_id_3rd_party_application_products.csv>`_. +:download:`CSV file for categories +<../../_static/example_files/External_id_3rd_party_application_product_categories.csv>`. +:download:`CSV file for Products +<../../_static/example_files/External_id_3rd_party_application_products.csv>`. What can I do if I have multiple matches for a field? ----------------------------------------------------- -If for example you have two product categories with the child name "Sellable" (ie. "Misc. Products/Sellable" & "Other Products/Sellable"), your validation is halted but you may still import your data. However, we recommend you do not import the data because they will all be linked to the first 'Sellable' category found in the Product Category list ("Misc. Products/Sellable"). We recommend you modify one of the duplicates' values or your product category hierarchy. - -However if you do not wish to change your configuration of product categories, we recommend you use make use of the external ID for this field 'Category'. - +If for example you have two product categories with the child name "Sellable" (ie. "Misc. +Products/Sellable" & "Other Products/Sellable"), your validation is halted but you may still import +your data. However, we recommend you do not import the data because they will all be linked to the +first 'Sellable' category found in the Product Category list ("Misc. Products/Sellable"). We +recommend you modify one of the duplicates' values or your product category hierarchy. +However if you do not wish to change your configuration of product categories, we recommend you use +make use of the external ID for this field 'Category'. How can I import a many2many relationship field (e.g. a customer that has multiple tags)? ----------------------------------------------------------------------------------------- -The tags should be separated by a comma without any spacing. For example, if you want your customer to be linked to both tags 'Manufacturer' and 'Retailer' then you will encode "Manufacturer,Retailer" in the same column of your CSV file. - -`CSV file for Manufacturer, Retailer <../../_static/example_files/m2m_customers_tags.csv>`_. +The tags should be separated by a comma without any spacing. For example, if you want your customer +to be linked to both tags 'Manufacturer' and 'Retailer' then you will encode "Manufacturer,Retailer" +in the same column of your CSV file. +:download:`CSV file for Manufacturer, Retailer <../../_static/example_files/m2m_customers_tags.csv>` How can I import a one2many relationship (e.g. several Order Lines of a Sales Order)? ------------------------------------------------------------------------------------- -If you want to import sales order having several order lines; for each order line, you need to reserve a specific row in the CSV file. The first order line will be imported on the same row as the information relative to order. Any additional lines will need an addtional row that does not have any information in the fields relative to the order. -As an example, here is purchase.order_functional_error_line_cant_adpat.CSV file of some quotations you can import, based on demo data. +If you want to import sales order having several order lines; for each order line, you need to +reserve a specific row in the CSV file. The first order line will be imported on the same row as the +information relative to order. Any additional lines will need an additional row that does not have +any information in the fields relative to the order. As an example, here is +``purchase.order_functional_error_line_cant_adpat.CSV`` file of some quotations you can import, +based on demo data. -`File for some Quotations <../../_static/example_files/purchase.order_functional_error_line_cant_adpat.csv>`_. +:download:`File for some Quotations +<../../_static/example_files/purchase.order_functional_error_line_cant_adpat.csv>`. -The following CSV file shows how to import purchase orders with their respective purchase order lines: +The following CSV file shows how to import purchase orders with their respective purchase order +lines: -`Purchase orders with their respective purchase order lines <../../_static/example_files/o2m_purchase_order_lines.csv>`_. +:download:`Purchase orders with their respective purchase order lines +<../../_static/example_files/o2m_purchase_order_lines.csv>`. The following CSV file shows how to import customers and their respective contacts: -`Customers and their respective contacts <../../_static/example_files/o2m_customers_contacts.csv>`_. - - +:download:`Customers and their respective contacts +<../../_static/example_files/o2m_customers_contacts.csv>`. 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 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. - -This feature allows you to use the Import/Export tool of Odoo to modify a batch of records in your favorite spreadsheet application. - +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 +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. +This feature allows you to use the Import/Export tool of Odoo to modify a batch of records in your +favorite spreadsheet application. What happens if I do not provide a value for a specific field? -------------------------------------------------------------- -If you do not set all fields in your CSV file, Odoo will assign the default value for every non defined fields. But if you set fields with empty values in your CSV file, Odoo will set the EMPTY value in the field, instead of assigning the default value. - - +If you do not set all fields in your CSV file, Odoo will assign the default value for every non +defined fields. But if you set fields with empty values in your CSV file, Odoo will set the EMPTY +value in the field, instead of assigning the default value. How to export/import different tables from an SQL application to Odoo? ---------------------------------------------------------------------- -If you need to import data from different tables, you will have to recreate relations between records belonging to different tables. (e.g. if you import companies and persons, you will have to recreate the link between each person and the company they work for). +If you need to import data from different tables, you will have to recreate relations between +records belonging to different tables. (e.g. if you import companies and persons, you will have to +recreate the link between each person and the company they work for). -To manage relations between tables, you can use the "External ID" facilities of Odoo. The "External ID" of a record is the unique identifier of this record in another application. This "External ID" must be unique accoss all the records of all objects, so it's a good practice to prefix this "External ID" with the name of the application or table. (like 'company_1', 'person_1' instead of '1') +To manage relations between tables, you can use the "External ID" facilities of Odoo. The "External +ID" of a record is the unique identifier of this record in another application. This "External ID" +must be unique across all the records of all objects, so it's a good practice to prefix this +"External ID" with the name of the application or table. (like 'company_1', 'person_1' instead of +'1') -As an example, suppose you have a SQL database with two tables you want to import: companies and persons. Each person belong to one company, so you will have to recreate the link between a person and the company he work for. (If you want to test this example, here is a dump of such a PostgreSQL database) +As an example, suppose you have a SQL database with two tables you want to import: companies and +persons. Each person belong to one company, so you will have to recreate the link between a person +and the company he work for. (If you want to test this example, here is a :download:`dump of such a +PostgreSQL database <../../_static/example_files/database_import_test.sql>`) We will first export all companies and their "External ID". In PSQL, write the following command: .. code-block:: sh - > copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER; + > copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER; -This SQL command will create the following CSV file:: +This SQL command will create the following CSV file: - External ID,Name,Is a Company - company_1,Bigees,True - company_2,Organi,True - company_3,Boum,True +.. code-block:: text + + External ID,Name,Is a Company + company_1,Bigees,True + company_2,Organi,True + company_3,Boum,True To create the CSV file for persons, linked to companies, we will use the following SQL command in PSQL: @@ -237,14 +282,22 @@ To create the CSV file for persons, linked to companies, we will use the followi > copy (select 'person_'||id as "External ID",person_name as "Name",'False' as "Is a Company",'company_'||company_id as "Related Company/External ID" from persons) TO '/tmp/person.csv' with CSV -It will produce the following CSV file:: +It will produce the following CSV file: - External ID,Name,Is a Company,Related Company/External ID - person_1,Fabien,False,company_1 - person_2,Laurence,False,company_1 - person_3,Eric,False,company_2 - person_4,Ramsy,False,company_3 +.. code-block:: text -As you can see in this file, Fabien and Laurence are working for the Bigees company (company_1) and Eric is working for the Organi company. The relation between persons and companies is done using the External ID of the companies. We had to prefix the "External ID" by the name of the table to avoid a conflict of ID between persons and companies (person_1 and company_1 who shared the same ID 1 in the orignial database). + External ID,Name,Is a Company,Related Company/External ID + person_1,Fabien,False,company_1 + person_2,Laurence,False,company_1 + person_3,Eric,False,company_2 + person_4,Ramsy,False,company_3 -The two files produced are ready to be imported in Odoo without any modifications. After having imported these two CSV files, you will have 4 contacts and 3 companies. (the firsts two contacts are linked to the first company). You must first import the companies and then the persons. +As you can see in this file, Fabien and Laurence are working for the Bigees company (company_1) and +Eric is working for the Organi company. The relation between persons and companies is done using the +External ID of the companies. We had to prefix the "External ID" by the name of the table to avoid a +conflict of ID between persons and companies (person_1 and company_1 who shared the same ID 1 in the +original database). + +The two files produced are ready to be imported in Odoo without any modifications. After having +imported these two CSV files, you will have 4 contacts and 3 companies. (the firsts two contacts are +linked to the first company). You must first import the companies and then the persons. diff --git a/general/in_app_purchase/in_app_purchase.rst b/general/in_app_purchase/in_app_purchase.rst index d58fc4acc..815ccac1f 100644 --- a/general/in_app_purchase/in_app_purchase.rst +++ b/general/in_app_purchase/in_app_purchase.rst @@ -1,47 +1,71 @@ ================================================== General guide about In-App Purchase (IAP) Services ================================================== -In-App Purchases (IAP) gives access to additional services through Odoo. For instance, it allows me to send SMS Text Messages or to send Invoices by post directly from my database. + +In-App Purchases (IAP) gives access to additional services through Odoo. For instance, it allows me +to send SMS Text Messages or to send Invoices by post directly from my database. Buying Credits ============== -Each IAP Service relies on prepaid credits to work and has its own pricing. To consult my current balance or to recharge my account, go to *Settings> Odoo IAP > View my Services*. + +Each IAP Service relies on prepaid credits to work and has its own pricing. To consult my current +balance or to recharge my account, go to :menuselection:`Settings --> Odoo IAP --> +View my Services`. .. image:: media/image1.png :align: center -.. tip:: If I am on Odoo Online (SAAS) and have the Enterprise version, I benefit from free credits to test our IAP features. +.. tip:: + If I am on Odoo Online (SAAS) and have the Enterprise version, I benefit from free credits to + test our IAP features. IAP accounts ============ -Credits to use IAP services are stored on IAP accounts, which are specific to each service and database. By default, IAP accounts are common to all companies, but can be restricted to specific ones by going to *Settings app > Activate the Developer Mode > Technical Settings > IAP Accoun*. + +Credits to use IAP services are stored on IAP accounts, which are specific to each service and +database. By default, IAP accounts are common to all companies, but can be restricted to specific +ones by going to :menuselection:`Settings app --> Activate the Developer Mode --> Technical Settings +--> IAP Account`. .. image:: media/image2.png :align: center IAP Portal ========== -The IAP Portal is a platform regrouping my IAP Services. It is accessible from *Settings app > Odoo IAP > View my Services*. From there, I can view my current balance, recharge my credits, review my consumption and set a reminder to when credits are low. + +The IAP Portal is a platform regrouping my IAP Services. It is accessible from +:menuselection:`Settings app --> Odoo IAP --> View my Services`. From there, I can view my current +balance, recharge my credits, review my consumption and set a reminder to when credits are low. .. image:: media/image3.png :align: center Get notified when credits are low ================================= -To be notified when it’s time to recharge my credits, I’ll go to my IAP Portal through *Settings app> Odoo IAP > View my Services*, unfold a service and mark the Receive threshold warning option. -Then, I’ll provide a minimum amount of credits and email addresses. Now, every time that the limit is reached, an automatic reminder will be sent to by email! + +To be notified when it’s time to recharge my credits, I’ll go to my IAP Portal through +:menuselection:`Settings app --> Odoo IAP --> View my Services`, unfold a service and mark the +Receive threshold warning option. Then, I’ll provide a minimum amount of credits and email +addresses. Now, every time that the limit is reached, an automatic reminder will be sent to by +email! .. image:: media/image4.png :align: center IAP services available ====================== + Different services are available depending on the hosting type of your Database: -- *Odoo Online (SAAS)*: only the IAP services provided by Odoo can be used (i.e. the SMS, Snailmail, Reveal and Partner Autocomplete features); - -- *Odoo.sh and Odoo Enterprise (on-premise)*: both the services provided by Odoo and by third-party apps can be used. +- *Odoo Online (SAAS)*: only the IAP services provided by Odoo can be used (i.e. the SMS, Snailmail, + Reveal and Partner Autocomplete features); +- *Odoo.sh and Odoo Enterprise (on-premise)*: both the services provided by Odoo and by third-party + apps can be used. Offering my own services ======================== -I am more than welcome to offer my own IAP services through Odoo Apps! It is the perfect opportunity to get recurring revenue for an ongoing service use rather than — and possibly instead of — a sole initial purchase. Please, find more information at: `In-App Purchase `_ + +I am more than welcome to offer my own IAP services through Odoo Apps! It is the perfect opportunity +to get recurring revenue for an ongoing service use rather than — and possibly instead of — a sole +initial purchase. Please, find more information at: `In-App Purchase +`_ diff --git a/general/odoo_basics/add_user.rst b/general/odoo_basics/add_user.rst index c3bff60fd..3c265f48e 100644 --- a/general/odoo_basics/add_user.rst +++ b/general/odoo_basics/add_user.rst @@ -30,7 +30,7 @@ log-in. .. note:: Remember that each additional user will increase your subscription fees. - Refer to our `*Pricing page* `__ for more information. + Refer to our `Pricing page `_ for more information. .. image:: media/add_user03.png :align: center @@ -39,9 +39,8 @@ log-in. You can also add a new user on the fly from your dashboard. From the above screenshot, enter the email address of the user you would like to add and click on **INVITE**. The user will receive an email invite containing a link to set his password. You - will then be able to define his accesses rights under the :menuselection:`Settings --> Users menu`. + will then be able to define his accesses rights under the :menuselection:`Settings --> + Users menu`. .. seealso:: - * `Deactivating Users <../../db_management/documentation.html#deactivating-users>`_ - -.. todo:: Add link to How to add companies + - `Deactivating Users <../../db_management/documentation.html#deactivating-users>`_ diff --git a/getting_started/documentation.rst b/getting_started/documentation.rst index 1e7614346..2e2f4fcb5 100644 --- a/getting_started/documentation.rst +++ b/getting_started/documentation.rst @@ -8,8 +8,8 @@ This document summarizes Odoo Online's services, our Success Pack implementation methodology, and best practices to get started with our product. -1. The SPoC (*Single Point of Contact*) and the Consultant -========================================================== +The SPoC (*Single Point of Contact*) and the Consultant +======================================================= Within the context of your project, it is highly recommended to designate and maintain on both sides (your side and ours) **one @@ -41,10 +41,12 @@ authority** in terms of decision making. he can pass on this knowledge to his collaborators. In order for this approach to be successful, it is necessary that the SPoC is also involved in its own rise in skills through self-learning via - the `Odoo documentation `__, `The elearning platform `__ and the testing of functionalities. + the :doc:`Odoo documentation <../index>`, + `The elearning platform `_ + and the testing of functionalities. -2. Project Scope -================ +Project Scope +============= To make sure all the stakeholders involved are always aligned, it is necessary to define and to make the project scope evolve as long as the @@ -76,8 +78,8 @@ project implementation is pursuing. .. image:: media/basic_quickstart01.png :align: center -3. Managing expectations -======================== +Managing expectations +===================== The gap between the reality of an implementation and the expectations of future users is a crucial factor. Three important aspects must be taken @@ -139,8 +141,8 @@ without verifying its veracity beforehand. *This list can, of course, be completed by other tools that would more adequately meet the realities and needs of your project* -4. Communication Strategy -========================= +Communication Strategy +====================== The purpose of the QuickStart methodology is to ensure quick ownership of the tool for end users. Effective communication is therefore crucial @@ -171,8 +173,8 @@ us to follow those principles: - Training sessions on the standard or customized solution will be organized. -5. Customizations and Development -================================= +Customizations and Development +============================== Odoo is a software known for its flexibility and its important evolution capacity. However, a significant amount of development contradicts a @@ -198,8 +200,8 @@ recommended to: initiator both in terms of how the software will be used and at the level of the business processes of the company. -6. Testing and Validation principles -==================================== +Testing and Validation principles +================================= Whether developments are made or not in the implementation, it is crucial to test and validate the correspondence of the solution with the @@ -215,15 +217,16 @@ operational needs of the company. When a change needs to be made to the solution, the noted gap is caused by: - - A difference between the specification and the delivered solution - This is a correction for which the Consultant is responsible + - A difference between the specification and the delivered solution - + This is a correction for which the Consultant is responsible **or** - A difference between the specification and the imperatives of operational reality - This is a change that is the responsibility of SPoC. -7. Data Imports -=============== +Data Imports +============ Importing the history of transactional data is an important issue and must be answered appropriately to allow the project running smoothly. @@ -249,8 +252,8 @@ as possible, it will be decided : the software retrospectively. In this case, the production launch of the solution will precede the required imports. -8. Support -========== +Support +======= When your project is put in production, our support teams take care of your questions or technical issues. diff --git a/helpdesk.rst b/helpdesk.rst index a86f6f268..ace899e58 100644 --- a/helpdesk.rst +++ b/helpdesk.rst @@ -10,3 +10,5 @@ Helpdesk helpdesk/getting_started helpdesk/invoice_time helpdesk/after_sales + helpdesk/close_tickets + helpdesk/reinvoice_from_project diff --git a/helpdesk/after_sales.rst b/helpdesk/after_sales.rst index 542cb3d4c..2d641ff2b 100644 --- a/helpdesk/after_sales.rst +++ b/helpdesk/after_sales.rst @@ -1,53 +1,67 @@ -=========================================================================== +========================================================================== After sales features: refund, coupon, return, repair, onsite interventions -=========================================================================== -As my business grows, having the tools to allow my helpdesk team to record, track and manage issues raised easy and efficiently, is key. Odoo’s Helpdesk app allows me to generate credit notes, return products, grant coupons, do repairs and plan onsite interventions from a ticket’s page. +========================================================================== + +As my business grows, having the tools to allow my helpdesk team to record, track and manage issues +raised easy and efficiently, is key. Odoo’s Helpdesk app allows me to generate credit notes, return +products, grant coupons, do repairs and plan onsite interventions from a ticket’s page. Set up the After Sales services -========================================= -Go to *Configuration > Helpdesk Teams* and enable the After Sales options: *Refunds, Returns, Coupons, Repairs and Onsite Interventions*. +=============================== + +Go to :menuselection:`Configuration --> Helpdesk Teams` and enable the After Sales options: +*Refunds, Returns, Coupons, Repairs and Onsite Interventions*. .. image:: ./media/aftersales1.png :align: center Generate credit notes from tickets ========================================= -I can use a credit note to refund a customer or adjust the amount due. For that, I’ll simply go to my ticket page, click on *Refund* and select the corresponding *Invoice*. -Clicking on *Reverse* the credit note will be generated, and I can *Post* it while still being in the *Helpdesk* app. + +I can use a credit note to refund a customer or adjust the amount due. For that, I’ll simply go to +my ticket page, click on *Refund* and select the corresponding *Invoice*. Clicking on *Reverse* the +credit note will be generated, and I can *Post* it while still being in the *Helpdesk* app. .. image:: ./media/aftersales2.png :align: center Allow product returns from tickets -========================================= -The process of a product return from my customer back to my warehouse will be taken into action when, at the ticket page, I choose the option *Return*. +================================== + +The process of a product return from my customer back to my warehouse will be taken into action +when, at the ticket page, I choose the option *Return*. .. image:: ./media/aftersales3.png :align: center Grant coupons from tickets -========================================= -First, be sure to have your *Coupon Program* planned at the *Sales or Website* app. -At the *Helpdesk* app, I will open my ticket and click on *Coupon*, choose the *Coupon Program > Generate*. +========================== + +First, be sure to have your *Coupon Program* planned at the *Sales or Website* app. At the +*Helpdesk* app, I will open my ticket and click on *Coupon*, choose the +:menuselection:`Coupon Program --> Generate`. .. image:: ./media/aftersales4.png :align: center Repairs from tickets -========================================= -Clicking on *Repair* option, on my ticket page, a new repair order form will be shown. Fill up the rest of the fields as needed and choose the next step. +==================== + +Clicking on *Repair* option, on my ticket page, a new repair order form will be shown. Fill up the +rest of the fields as needed and choose the next step. .. image:: ./media/aftersales5.png :align: center Plan onsite interventions from tickets -========================================= -At the ticket page, I can now configure my onsite interventions exactly the same way I would do being on the *Field Service* app, clicking on *Plan Intervention*. +====================================== + +At the ticket page, I can now configure my onsite interventions exactly the same way I would do +being on the *Field Service* app, clicking on *Plan Intervention*. .. image:: ./media/aftersales6.png :align: center - .. seealso:: * `Coupons `_ * :doc:`../manufacturing/repair/repair` \ No newline at end of file diff --git a/helpdesk/close_tickets.rst b/helpdesk/close_tickets.rst new file mode 100644 index 000000000..38976cf54 --- /dev/null +++ b/helpdesk/close_tickets.rst @@ -0,0 +1,52 @@ +======================================= +Allow customers to close their tickets +======================================= + +Allowing customers to close their tickets gives them autonomy and minimize misunderstandings about +when an issue is considered solved, or not. It makes communication and actions more efficient. + +Configure the feature +====================== + +To configure the feature go to :menuselection:`Helpdesk --> Settings --> Helpdesk Teams --> Edit` +and enable *Ticket closing*. + +.. image:: media/closetickets1.png + :align: center + :alt: Ticket closing in Odoo Helpdesk + +In order to designate to which stage the ticket will migrate to once it is closed, go to +:menuselection:`Overview --> Tickets`. + +.. image:: media/closetickets2.png + :align: center + :alt: Ticket closing in Odoo Helpdesk + +You can either create a new kanban stage or work with an existing one. For both scenarios, go to +:menuselection:`Settings --> Edit Stage` and enable *Closing Stage*. + +.. image:: media/closetickets3.png + :align: center + :alt: Ticket closing in Odoo Helpdesk + +If a closing stage is not specified, by default, the ticket will be transferred to the last stage; contrarily, if you have more than one stage set as closing, the ticket will be put in the first one. + +The Costumer Portal +==================== + +Now, once the user logs in to his Portal, the option *Close this ticket* is available. + +.. image:: media/closetickets4.png + :align: center + :alt: Ticket closing in Odoo Helpdesk + +Get reports on tickets closed by costumers +=========================================== + +To do an analysis of the tickets that have been closed by costumers go to +:menuselection:`Reporting --> Tickets --> Filters --> Add Custom filter --> Closed by partner --> +Applied`. + +.. image:: media/closetickets5.png + :align: center + :alt: Reports on Ticket closing in Odoo Helpdesk diff --git a/helpdesk/getting_started.rst b/helpdesk/getting_started.rst index c8dbaa4d6..b55543302 100644 --- a/helpdesk/getting_started.rst +++ b/helpdesk/getting_started.rst @@ -83,9 +83,8 @@ Ticket. .. image:: media/helpdesk08.png :align: center -The final option to submit tickets is thru an API connection. View the -documentation -`*here* `__. +The final option to submit tickets is through an API connection. View the +documentation `here `_. Tickets have been created, now what? ------------------------------------ diff --git a/helpdesk/media/closetickets1.png b/helpdesk/media/closetickets1.png new file mode 100644 index 000000000..ed2dd1bc7 Binary files /dev/null and b/helpdesk/media/closetickets1.png differ diff --git a/helpdesk/media/closetickets2.png b/helpdesk/media/closetickets2.png new file mode 100644 index 000000000..75bae58c3 Binary files /dev/null and b/helpdesk/media/closetickets2.png differ diff --git a/helpdesk/media/closetickets3.png b/helpdesk/media/closetickets3.png new file mode 100644 index 000000000..46263509a Binary files /dev/null and b/helpdesk/media/closetickets3.png differ diff --git a/helpdesk/media/closetickets4.png b/helpdesk/media/closetickets4.png new file mode 100644 index 000000000..7a668b17a Binary files /dev/null and b/helpdesk/media/closetickets4.png differ diff --git a/helpdesk/media/closetickets5.png b/helpdesk/media/closetickets5.png new file mode 100644 index 000000000..f00bac8ca Binary files /dev/null and b/helpdesk/media/closetickets5.png differ diff --git a/helpdesk/media/reinvoice_time1.png b/helpdesk/media/reinvoice_time1.png new file mode 100644 index 000000000..d90709626 Binary files /dev/null and b/helpdesk/media/reinvoice_time1.png differ diff --git a/helpdesk/media/reinvoice_time2.png b/helpdesk/media/reinvoice_time2.png new file mode 100644 index 000000000..dd9b54bf2 Binary files /dev/null and b/helpdesk/media/reinvoice_time2.png differ diff --git a/helpdesk/media/reinvoice_time3.png b/helpdesk/media/reinvoice_time3.png new file mode 100644 index 000000000..27041c1ce Binary files /dev/null and b/helpdesk/media/reinvoice_time3.png differ diff --git a/helpdesk/reinvoice_from_project.rst b/helpdesk/reinvoice_from_project.rst new file mode 100644 index 000000000..3abad2cb4 --- /dev/null +++ b/helpdesk/reinvoice_from_project.rst @@ -0,0 +1,35 @@ +============================================================== +Turn helpdesk hours into invoices directly from a project task +============================================================== + +Directly pull the billable time you have tracked on your helpdesk tickets into sales orders and +invoices through a project task. It gives you more control over what you charge your client, and it +is more efficient. + +Configuration +============== + +Go to :menuselection:`Helpdesk --> Configuration --> Helpdesk team --> Edit` and enable the options +*Timesheet on Ticket* and *Time Reinvoicing*. +Under *Timesheet on Ticket*, choose the *Project* to which the tickets (and timesheets) will be +linked by default. Open its *External link* to enable the feature *Bill from tasks*. + +.. image:: media/reinvoice_time1.png + :align: center + :alt: Bill from Tasks in Odoo Helpdesk + +Create a sales order and an invoice +==================================== + +Now, once you added the time you spent on the helpdesk ticket, under the *Timesheets* tab, access +the task clicking on its name. + +.. image:: media/reinvoice_time2.png + :align: center + :alt: Sales Order from a task in Odoo Helpdesk + +*Create Sales Order* and proceed to create the invoice. + +.. image:: media/reinvoice_time3.png + :align: center + :alt: Sales Order from a task in Odoo Helpdesk diff --git a/inventory/barcode/operations/barcode_nomenclature.rst b/inventory/barcode/operations/barcode_nomenclature.rst index 8fbb51b32..87680b41b 100644 --- a/inventory/barcode/operations/barcode_nomenclature.rst +++ b/inventory/barcode/operations/barcode_nomenclature.rst @@ -1,23 +1,21 @@ -============================== -Work with Barcode Nomenclature -============================== +======== +Overview +======== There are different situations in which barcode nomenclatures can be -useful. A well-known use case is the one of a point of sales that sells -products in bulk. The customers will scale their products themselves and -get the printed barcode to stick on the product. This barcode will -contain the weight of the product and help compute the price -accordingly. +useful. A well-known use case is the one of a point of sale which sells +products in bulk, in which the customers will scale their products +themselves and get the printed barcode to stick on the product. This +barcode will contain the weight of the product and help compute the +price accordingly. Create a Barcode Nomenclature ============================= -Odoo supports *Barcode Nomenclatures*, which determine the mapping and +Odoo supports Barcode Nomenclatures, which determine the mapping and interpretation of the encoded information. - -To configure the *Barcode Nomenclature*, you need to activate the -debug mode. To do so, go to *Inventory > Configuration > Barcode -Nomenclature*. +You can configure your barcode nomenclature being in **debug** mode. +To do so, go to :menuselection:`Inventory --> Configuration --> Barcode Nomenclature`. You can create a barcode nomenclature from there, and then add a line to create your first rule. @@ -25,74 +23,63 @@ create your first rule. .. image:: media/barcode_nomenclature_01.png :align: center -The first step is to specify the *rule name*, for example, *Weight -Barcode* with 3 decimals. Then, you have to specify the type for -barcode nomenclature, like the *Weighted Product*. +The first step is to specify the **rule name**, for example Weight +Barcode with 3 Decimals. You then have to specify the type for barcode +nomenclature, in our case it will be Weighted Product. .. image:: media/barcode_nomenclature_02.png :align: center -The *Barcode Pattern* is a regular expression that defines the -structure of the barcode. In this example, 21 defines the products on -which the rule will be applied. Those are the numbers by which the -product barcode should start. The 5 “dots” are the following numbers of -the product barcode and are there to identify the product in question. -The “N” defines a number and the “D” defines the decimals. +The Barcode Pattern is a regular expression that defines the structure +of the barcode. In this example 21 defines the products on which the +rule will be applied, those are the numbers by which the product barcode +should start. The 5 “dots” are the following numbers of the product +barcode and are there simply to identify the product in question. The +“N” define a number and the “D” define the decimals. + +The encoding allows to specify the barcode encoding on which the rule +should be applied. .. note:: You can define different rules and order their priority thanks to the - sequence. The first rule that matches the scanned barcode will then be + sequence. The first rule which matches the scanned barcode will be applied. Configure your Product -====================== +---------------------- 1. The barcode of the product should start by “21”; - 2. The 5 “dots” are the other numbers of your product barcode, allowing to identify the product; - -3. The barcode should contain 0’s when you did defined D’s or N’s. In our case, we need to set 5 zeros because we condigures “21………{NNDDD}”; - -4. In EAN-13, the last number is a check number. Use an EAN13 generator to know which digit it should be in your case. +3. The barcode should contain 0’s where you did defined D’s or N’s. In our case we need to set 5 zeros because we configured “21…..{NNDDD}”; +4. In EAN-13, the last number is a check number, use an EAN13 generator to know which digit it should be in your case. .. image:: media/barcode_nomenclature_03.png :align: center -In case you weight 1,5kg of pasta, the balance will print you the -following barcode: *2112345015001*. If you scan this barcode in your -PoS, or when receiving the products in your barcode app, Odoo will -automatically create a new line for the product, for a quantity of -1,5kg. - -For the point of sale, a price depending on the quantity will also be -computed. +In case you weight 1,5 Kg of pasta, the balance will print you the +following barcode 2112345015002. If you scan this barcode in your POS or +when receiving products in your barcode application, Odoo will +automatically create a new line for the Pasta product for a quantity of +1.5 Kg. For the point of sale, a price depending on the quantity will +also be computed. .. image:: media/barcode_nomenclature_04.png :align: center Rule Types -========== +---------- -- **Priced Product**: it allows you to identify the product and specify its price, used in PoS; - -- **Discounted Product**: it allows you to create one barcode per applied discount. Then, you can scan your product in the PoS and apply discounts on the product by scanning the discount barcode; - -- **Weighted Product**: it allows you to identify the product and specify its weight, used in both PoS and in Inventory; - -- **Client**: it allows you to identify the customer, for example used with loyalty program; - -- **Cashier**: it allows you to identify the cashier when entering the PoS; - -- **Location**: it allows you to identify the location on a transfer when multi-location is activated; - -- **Package**: it allows you to identify packages on a transfer when packages are activated; - -- **Lot**: it allows you to identify the lot number of a product on a transfer; - -- **Credit Card**: it doesn’t need manual modification, exists for data from the Mercury module; - -- **Unit Product**: it allows you to identify a product for both PoS and Transfers. +- **Priced Product**: allows you to identify the product and specify its price, used in POS. +- **Discounted Product**: allows you to create one barcode per applied discount. You can then scan your product in the POS and then scan the discount barcode, discount will be applied on the normal price of the product. +- **Weighted Product**: allows you to identify the product and specify its weight, used in both POS (in which the price is computed based on the weight) and in inventory. +- **Client**: allows you to identify the customer, for example used with loyalty program. +- **Cashier**: allows you to identify the cashier when entering the POS. +- **Location**: allows you to identify the location on a transfer when multi-location is activated. +- **Package**: allows you to identify packages on a transfer when packages are activated. +- **Lot**: allows you to identify the lot number of a product on a transfer. +- **Credit Card**: doesn’t need manual modification, exists for data from the Mercury module. +- **Unit Product**: allows you to identify a product for both POS and transfers. .. note:: When the barcode pattern contains .*, it means that it can contain any - number of characters. Those characters can be any number. + number of characters, those characters being any number. \ No newline at end of file diff --git a/inventory/barcode/operations/media/barcode_nomenclature_02.png b/inventory/barcode/operations/media/barcode_nomenclature_02.png index ecbdf996d..64ad95994 100644 Binary files a/inventory/barcode/operations/media/barcode_nomenclature_02.png and b/inventory/barcode/operations/media/barcode_nomenclature_02.png differ diff --git a/inventory/barcode/operations/media/barcode_nomenclature_03.png b/inventory/barcode/operations/media/barcode_nomenclature_03.png index 7c5eb484e..3272f4af3 100644 Binary files a/inventory/barcode/operations/media/barcode_nomenclature_03.png and b/inventory/barcode/operations/media/barcode_nomenclature_03.png differ diff --git a/inventory/barcode/setup/software.rst b/inventory/barcode/setup/software.rst index 1ce8906f3..5ac1f125b 100644 --- a/inventory/barcode/setup/software.rst +++ b/inventory/barcode/setup/software.rst @@ -12,7 +12,7 @@ Configuration ============= To use this feature, you first need to activate the *Barcode* -functionality via *Inventory > Settings > Barcode Scanner*. Once you +functionality via :menuselection:`Inventory --> Settings --> Barcode Scanner`. Once you have ticked the feature, you can hit save. .. image:: media/software_01.png @@ -22,8 +22,7 @@ Set Product Barcodes ==================== You can easily assign barcodes to your different products via the -*Inventory* app. To do so, go to *Settings > Configure Products -Barcodes*. +*Inventory* app. To do so, go to :menuselection:`Settings --> Configure Products Barcodes`. .. image:: media/software_02.png :align: center @@ -47,7 +46,7 @@ Set Locations Barcodes If you manage multiple locations, you will find useful to attribute a barcode to each location and stick it on the location. You can configure -the locations barcodes in *Inventory > Configuration > Locations*. +the locations barcodes in :menuselection:`Inventory --> Configuration --> Locations`. .. image:: media/software_05.png :align: center diff --git a/inventory/management/delivery/dropshipping.rst b/inventory/management/delivery/dropshipping.rst index d6040b71f..eaafb2d51 100644 --- a/inventory/management/delivery/dropshipping.rst +++ b/inventory/management/delivery/dropshipping.rst @@ -51,13 +51,13 @@ Points to be Considered while Implementing Drop-Shipping Configure Drop-Shipping ======================= -Activate the functionality in the *Purchase* application by going to -*Configuration > Settings*. +Activate the functionality in the *Purchase* application by going to :menuselection:`Configuration +--> Settings`. .. image:: media/dropshipping_01.png :align: center -Then, go to the *Inventory* app, in *Configuration > Settings* to +Then, go to the *Inventory* app, in :menuselection:`Configuration --> Settings` to activate the *Multi-Step Routes* feature. It will allow you to make the *Route* field appear on the sale order lines to specify you send a product via drop-shipping. @@ -65,7 +65,7 @@ product via drop-shipping. .. image:: media/dropshipping_02.png :align: center -Now, in the *Sales* app, go to *Products > Products*. Select the +Now, in the *Sales* app, go to :menuselection:`Products --> Products`. Select the product you would like to drop-ship and add a vendor pricelist which contains the right supplier, via the purchase tab. diff --git a/inventory/management/delivery/one_step.rst b/inventory/management/delivery/one_step.rst index a94d27e13..d0d4a29ab 100644 --- a/inventory/management/delivery/one_step.rst +++ b/inventory/management/delivery/one_step.rst @@ -8,8 +8,8 @@ vendors to the stock. However, if advanced routes have been activated and you set another incoming configuration on your warehouse, you can set it back to the -one-step receipt configuration. To do so, go to *Configuration > -Warehouses* and edit the warehouse in question. +one-step receipt configuration. To do so, go to :menuselection:`Configuration --> +Warehouses` and edit the warehouse in question. Set the *Incoming Shipments* option to *Receive goods directly (1 step)*. diff --git a/inventory/management/delivery/packaging_type.rst b/inventory/management/delivery/packaging_type.rst index 532ad4971..58ad4d8bb 100644 --- a/inventory/management/delivery/packaging_type.rst +++ b/inventory/management/delivery/packaging_type.rst @@ -9,7 +9,7 @@ Configuration ============= First, you need to activate the *Delivery Packages* feature in the -*Inventory app > Configuration > Settings*. +:menuselection:`Inventory app --> Configuration --> Settings`. .. image:: media/packaging_type_01.png :align: center diff --git a/inventory/management/delivery/three_steps.rst b/inventory/management/delivery/three_steps.rst index c7a64c542..b68983ede 100644 --- a/inventory/management/delivery/three_steps.rst +++ b/inventory/management/delivery/three_steps.rst @@ -27,7 +27,7 @@ Indeed, routes provide a mechanism to chain different actions together. Here, we will chain the picking to the shipping. To activate *multi-step routes*, open the *inventory app*, and go to -*Configuration > Settings* and activate the option. By default, +:menuselection:`Configuration --> Settings` and activate the option. By default, activating *multi-step routes* will also activate *Storage Locations*. @@ -37,8 +37,8 @@ Locations*. Warehouse configuration ======================= -Now that *Multi-Step Routes* is activated, go to *Configuration > -Warehouse* and open the one you will use to deliver in 3 steps. Then, +Now that *Multi-Step Routes* is activated, go to :menuselection:`Configuration --> +Warehouse` and open the one you will use to deliver in 3 steps. Then, you can select the option *Pack good, send goods in output and then deliver (3 steps)* as *Outgoing Shipments*. @@ -49,7 +49,7 @@ Activating this option will lead to the creation of two new locations, *Output* and *Packing Zone*. Of course, you can rename them if you want. To do so, go to -*Configuration > Locations* and select the one you want to rename. +:menuselection:`Configuration --> Locations` and select the one you want to rename. Change its name and hit save. Create a Sales Order diff --git a/inventory/management/delivery/two_steps.rst b/inventory/management/delivery/two_steps.rst index 1e64633aa..2270450ba 100644 --- a/inventory/management/delivery/two_steps.rst +++ b/inventory/management/delivery/two_steps.rst @@ -23,7 +23,7 @@ provide a mechanism to chain different actions together. In this case, we will chain the unload step in the input area to the step entering the products in stock. -To allow *multi-step routes*, go to *Configuration > Settings* and +To allow *multi-step routes*, go to :menuselection:`Configuration --> Settings` and activate the feature. By default, activating *multi-step routes* will also activate *Storage Locations*. @@ -33,8 +33,8 @@ also activate *Storage Locations*. Configure warehouse for receipt in 2 steps ========================================== -Once *multi-step routes* is activated, you can go to *Configuration > -Warehouse* and enter the warehouse which will use receipt in 2 steps. +Once *multi-step routes* is activated, you can go to :menuselection:`Configuration --> +Warehouse` and enter the warehouse which will use receipt in 2 steps. Then, you can select the option *Receive goods in input and then stock (2 steps)* for *Incoming Shipments*. @@ -43,8 +43,8 @@ Then, you can select the option *Receive goods in input and then stock Activating this option will lead to the creation of a new *Input* -location. If you want to rename it, you can go to *Configuration > -Locations > Select Input* and update its name. +location. If you want to rename it, you can go to :menuselection:`Configuration --> +Locations --> Select Input` and update its name. .. image:: media/two_steps_03.png :align: center diff --git a/inventory/management/incoming/handle_receipts.rst b/inventory/management/incoming/handle_receipts.rst index 74a1020d4..86fa08396 100644 --- a/inventory/management/incoming/handle_receipts.rst +++ b/inventory/management/incoming/handle_receipts.rst @@ -65,8 +65,5 @@ Three steps flow Please read documentation on :doc:`three_steps` .. seealso:: - * :doc:`../delivery/inventory_flow` - -.. todo:: - Add section when available - - How to analyse the performance of my vendors? \ No newline at end of file + - :doc:`../delivery/inventory_flow` + - :doc:`../../../purchase/purchases/rfq/analyze` \ No newline at end of file diff --git a/inventory/management/incoming/one_step.rst b/inventory/management/incoming/one_step.rst index 0100dd243..0ad5e9113 100644 --- a/inventory/management/incoming/one_step.rst +++ b/inventory/management/incoming/one_step.rst @@ -8,8 +8,8 @@ vendors to the stock. However, if advanced routes have been activated and you set another incoming configuration on your warehouse, you can set it back to the -one-step receipt configuration. To do so, go to *Configuration > -Warehouses* and edit the warehouse in question. +one-step receipt configuration. To do so, go to :menuselection:`Configuration --> +Warehouses` and edit the warehouse in question. Set the *Incoming Shipments* option to *Receive goods directly (1 step)*. diff --git a/inventory/management/incoming/three_steps.rst b/inventory/management/incoming/three_steps.rst index 24dd215cd..beedd11a2 100644 --- a/inventory/management/incoming/three_steps.rst +++ b/inventory/management/incoming/three_steps.rst @@ -27,7 +27,7 @@ Indeed, routes provide a mechanism to chain different actions together. Here, we will chain the picking to the shipping. To activate *multi-step routes*, open the *inventory app*, and go to -*Configuration > Settings* and activate the option. By default, +:menuselection:`Configuration --> Settings` and activate the option. By default, activating *multi-step routes* will also activate *Storage Locations*. @@ -37,8 +37,8 @@ Locations*. Warehouse configuration ======================= -Now that *Multi-Step Routes* is activated, go to *Configuration > -Warehouse* and open the one you will use to deliver in 3 steps. Then, +Now that *Multi-Step Routes* is activated, go to :menuselection:`Configuration --> +Warehouse` and open the one you will use to deliver in 3 steps. Then, you can select the option *Pack good, send goods in output and then deliver (3 steps)* as *Outgoing Shipments*. @@ -49,7 +49,7 @@ Activating this option will lead to the creation of two new locations, *Output* and *Packing Zone*. Of course, you can rename them if you want. To do so, go to -*Configuration > Locations* and select the one you want to rename. +:menuselection:`Configuration --> Locations` and select the one you want to rename. Change its name and hit save. Create a Sales Order diff --git a/inventory/management/incoming/two_steps.rst b/inventory/management/incoming/two_steps.rst index f58976bec..63992648a 100644 --- a/inventory/management/incoming/two_steps.rst +++ b/inventory/management/incoming/two_steps.rst @@ -23,7 +23,7 @@ provide a mechanism to chain different actions together. In this case, we will chain the unload step in the input area to the step entering the products in stock. -To allow *multi-step routes*, go to *Configuration > Settings* and +To allow *multi-step routes*, go to :menuselection:`Configuration --> Settings` and activate the feature. By default, activating *multi-step routes* will also activate *Storage Locations*. @@ -33,8 +33,8 @@ also activate *Storage Locations*. Configure warehouse for receipt in 2 steps ========================================== -Once *multi-step routes* is activated, you can go to *Configuration > -Warehouse* and enter the warehouse which will use receipt in 2 steps. +Once *multi-step routes* is activated, you can go to :menuselection:`Configuration --> +Warehouse` and enter the warehouse which will use receipt in 2 steps. Then, you can select the option *Receive goods in input and then stock (2 steps)* for *Incoming Shipments*. @@ -42,8 +42,8 @@ Then, you can select the option *Receive goods in input and then stock :align: center Activating this option will lead to the creation of a new *Input* -location. If you want to rename it, you can go to *Configuration > -Locations > Select Input* and update its name. +location. If you want to rename it, you can go to :menuselection:`Configuration --> +Locations --> Select Input` and update its name. .. image:: media/two_steps_03.png :align: center diff --git a/inventory/management/lots_serial_numbers/expiration_dates.rst b/inventory/management/lots_serial_numbers/expiration_dates.rst index 6b2f85bc6..f2c5374f3 100644 --- a/inventory/management/lots_serial_numbers/expiration_dates.rst +++ b/inventory/management/lots_serial_numbers/expiration_dates.rst @@ -17,7 +17,7 @@ Application configuration ------------------------- To use expiration dates tracking, open the *Inventory* application and -go to *Configuration > Settings* and activate the *Lots & Serial +go to :menuselection:`Configuration --> Settings` and activate the *Lots & Serial Numbers* and *Expiration Dates* features. .. image:: media/expiration_dates_01.png @@ -58,7 +58,7 @@ Expiration Alerts ================= You can access all your expiration alerts from the *inventory* app. To -do so, go to *Master Data > Lots/Serial Numbers*. There, you can use +do so, go to :menuselection:`Master Data --> Lots/Serial Numbers`. There, you can use the pre-existing filter that shows all the lots/serial numbers that exceeded their alert date. diff --git a/inventory/management/lots_serial_numbers/lots.rst b/inventory/management/lots_serial_numbers/lots.rst index b053bf754..1aa326c98 100644 --- a/inventory/management/lots_serial_numbers/lots.rst +++ b/inventory/management/lots_serial_numbers/lots.rst @@ -21,7 +21,7 @@ Application Configuration ------------------------- First, you need to activate the tracking of lot numbers. To do so, go to -*Inventory > Configuration > Settings* and tick *Lots & Serial +:menuselection:`Inventory --> Configuration --> Settings` and tick *Lots & Serial Numbers*. Then, click on save. .. image:: media/lots_01.png @@ -33,7 +33,7 @@ Product Configuration Now, you have to configure which products you want to track by serial numbers. -Go to *Master Data > Products* and open the product of your choice. +Go to :menuselection:`Master Data --> Products` and open the product of your choice. There, click on *Edit* and select *Tracking by Lots* in the inventory tab. @@ -94,7 +94,7 @@ Operation Types Of course, you also have the possibility to define how you will manage lots for each operation type. To do so, open the *Inventory* app and -go to *Configuration > Operation Types*. +go to :menuselection:`Configuration --> Operation Types`. For each type (receipts, internal transfers, deliveries, …), you can decide if you allow to create new lot numbers or only use existing ones. @@ -114,8 +114,8 @@ The lot number given to the products allows you to keep track of where they were received, put in stock, to whom they were sold and where they were shipped to. -To track an item, open the *Inventory* module and, in *Master Data > -Lots/Serial Numbers*, click on the lot number corresponding to your +To track an item, open the *Inventory* module and, in :menuselection:`Master Data --> +Lots/Serial Numbers`, click on the lot number corresponding to your search. .. image:: media/lots_09.png diff --git a/inventory/management/lots_serial_numbers/serial_numbers.rst b/inventory/management/lots_serial_numbers/serial_numbers.rst index 1dd7b3463..a505c859b 100644 --- a/inventory/management/lots_serial_numbers/serial_numbers.rst +++ b/inventory/management/lots_serial_numbers/serial_numbers.rst @@ -18,7 +18,7 @@ Application configuration ------------------------- First, you need to activate the serial numbers tracking. To do so, go to -*Configuration > Settings* in the *Inventory* application. Then, +:menuselection:`Configuration --> Settings` in the *Inventory* application. Then, enable the feature and hit save. .. image:: media/serial_numbers_01.png @@ -28,7 +28,7 @@ Product configuration --------------------- Now, you have to configure the products you want to track by serial -numbers. To do so, go to *Master Data > Products* and open the product +numbers. To do so, go to :menuselection:`Master Data --> Products` and open the product of your choice. Edit it and select *Tracking By Unique Serial Number* in the *Inventory tab*. Then, click on save. @@ -106,8 +106,8 @@ Operation types =============== You also have the possibility to define how you will manage lots for -each operation type. To define it, go to *Configuration > Operation -Types* in the *Inventory* app. +each operation type. To define it, go to :menuselection:`Configuration --> Operation Types` in the +*Inventory* app. For each type, you can decide if you allow the creation of new lot numbers or want to use existing ones. By default, the creation of new @@ -127,11 +127,9 @@ Using serial numbers allows you to keep track of where the products were received, put in stock, to whom they were sold, and where they were shipped to. -Tracking an item is easy: open the *Inventory* app, and go to *Master -Data > Lots/Serial Numbers* and click on the serial number -corresponding to your search. Then, open the *Traceability* -information. There, you will see in which documents the serial number -has been used. +Tracking an item is easy: open the *Inventory* app, and go to :menuselection:`Master Data --> +Lots/Serial Numbers` and click on the serial number corresponding to your search. Then, open the +*Traceability* information. There, you will see in which documents the serial number has been used. .. image:: media/serial_numbers_12.png :align: center diff --git a/inventory/management/misc/owned_stock.rst b/inventory/management/misc/owned_stock.rst index 7e45ff8db..e4827cd15 100644 --- a/inventory/management/misc/owned_stock.rst +++ b/inventory/management/misc/owned_stock.rst @@ -17,7 +17,7 @@ advanced settings. Configuration ============= -To use this feature, go to *Inventory > Configuration > Settings* in +To use this feature, go to :menuselection:`Inventory --> Configuration --> Settings` in the inventory app. Then, enable the *Consignment* feature in the *Traceability* section. Now, hit save. @@ -36,7 +36,7 @@ owns the stock. :align: center .. note:: - If you are the owner, you can leave the field blank. + If you are the owner, you can leave the field blank. Once the receipt is validated, the products enter your stock but still belong to the owner. They don’t impact your inventory valuation. diff --git a/inventory/management/misc/scrap.rst b/inventory/management/misc/scrap.rst index 795f1b395..b9902be6c 100644 --- a/inventory/management/misc/scrap.rst +++ b/inventory/management/misc/scrap.rst @@ -22,13 +22,13 @@ When you install the *Inventory* app, Odoo automatically creates a scrap location. It’s named *Virtual Location/Scap*. Of course, you can create new scrap areas if needed. To do so, go to -*Inventory > Configuration > Settings* and activate the *Storage +:menuselection:`Inventory --> Configuration --> Settings` and activate the *Storage Locations* feature. .. image:: media/scrap_01.png :align: center -Now, go to *Configuration > Locations* and create your scrap location. +Now, go to :menuselection:`Configuration --> Locations` and create your scrap location. .. note:: You have to check *Is a Scrap Location?* on the location form. In @@ -44,8 +44,8 @@ a delivery order, and from an internal transfer. Scrap from receipt ------------------ -Scrapping products from receipts is easy. Go to *Inventory > Dashboard -> Receipts* or click on *1 TO PROCESS* under the receipts location. +Scrapping products from receipts is easy. Go to :menuselection:`Inventory --> Dashboard --> +Receipts` or click on *1 TO PROCESS* under the receipts location. .. image:: media/scrap_02.png :align: center @@ -67,8 +67,8 @@ location. Scrap from delivery order ------------------------- -To scrap products from a delivery order, go to *Inventory > Dashboard > -Delivery orders* or click on *1 TO PROCESS*. +To scrap products from a delivery order, go to :menuselection:`Inventory --> Dashboard --> +Delivery orders` or click on *1 TO PROCESS*. .. image:: media/scrap_05.png :align: center @@ -93,7 +93,7 @@ Scrap from an internal transfer ------------------------------- To do this, the flow is almost the same. In fact, you just have to go to -*Inventory > Dashboard > Internal Transfers*. +:menuselection:`Inventory --> Dashboard --> Internal Transfers`. .. image:: media/scrap_09.png :align: center diff --git a/inventory/management/planning/scheduled_date.rst b/inventory/management/planning/scheduled_date.rst index 65884b6f2..3d6618c06 100644 --- a/inventory/management/planning/scheduled_date.rst +++ b/inventory/management/planning/scheduled_date.rst @@ -94,8 +94,8 @@ calculation and, thus, to compute a scheduled date earlier than the one you promised to your client. In that way, you are sure to be able to keep your commitment. -To set up your security dates, go to *Inventory > Configuration > -Settings* and enable the feature. +To set up your security dates, go to :menuselection:`Inventory --> Configuration --> +Settings` and enable the feature. .. image:: media/scheduled_date_04.png :align: center @@ -111,8 +111,8 @@ When the system generates purchase orders for procuring products, they will be scheduled that many days earlier to cope with unexpected vendor delays. -To find purchase lead time, go to *Inventory > Configuration > -Settings* and enable the feature. +To find purchase lead time, go to :menuselection:`Inventory --> Configuration --> +Settings` and enable the feature. .. image:: media/scheduled_date_05.png :align: center @@ -124,7 +124,7 @@ The security lead time for manufacturing allows generating manufacturing orders which are scheduled that many days earlier to cope with unexpected manufacturing days. -To configure it, go to *Manufacturing > Configuration > Settings* and +To configure it, go to :menuselection:`Manufacturing --> Configuration --> Settings` and enable the *Security Lead Time* option. Then, hit save. .. image:: media/scheduled_date_06.png @@ -138,7 +138,7 @@ influence the computed date. The delays due to internal transfers can be specified in the *Inventory* app when you create a new rule in a route. -To specify them, go to *Inventory > Configuration > Routes* and add a +To specify them, go to :menuselection:`Inventory --> Configuration --> Routes` and add a push rule to set a delay. Of course, you need to activate *Multi-step Routes* to use this feature. diff --git a/inventory/management/planning/schedulers.rst b/inventory/management/planning/schedulers.rst index fc9ca45c1..83b7c517c 100644 --- a/inventory/management/planning/schedulers.rst +++ b/inventory/management/planning/schedulers.rst @@ -23,9 +23,9 @@ account when starting reservations and procurements. Urgent requests will be started first. .. note:: - In case there are not enough products in stock to satisfy all the - requests, you can be sure that the most urgent ones will be produced - first. + In case there are not enough products in stock to satisfy all the + requests, you can be sure that the most urgent ones will be produced + first. Configure and run the scheduler =============================== @@ -33,8 +33,8 @@ Configure and run the scheduler Run the scheduler manually -------------------------- -To start the scheduler manually, go to *Inventory > Operations > Run -Schedulers*. The scheduler uses all the relevant parameters defined for +To start the scheduler manually, go to :menuselection:`Inventory --> Operations --> Run +Schedulers`. The scheduler uses all the relevant parameters defined for products, suppliers and the company to prioritize the different production orders, deliveries and supplier purchases. @@ -45,12 +45,12 @@ Configure and run the scheduler (for advanced users) ---------------------------------------------------- To use this feature, you have to enable the debug mode. To do so, go to -*Settings > Activate the developer mode*. +:menuselection:`Settings --> Activate the developer mode`. .. image:: media/schedulers_02.png :align: center -Then, go to *Settings > Technical > Automation > Scheduled Actions* +Then, go to :menuselection:`Settings --> Technical --> Automation --> Scheduled Actions` and modify the *Run MRP Scheduler Configuration*. There, you can set the starting time of the scheduler. diff --git a/inventory/management/products/uom.rst b/inventory/management/products/uom.rst index fb772d2a3..b13926c03 100644 --- a/inventory/management/products/uom.rst +++ b/inventory/management/products/uom.rst @@ -15,7 +15,7 @@ product. Configuration ============= -In the *Inventory* application, go to *Configuration > Settings*. In +In the *Inventory* application, go to :menuselection:`Configuration --> Settings`. In the *Products* section, activate *Units of Measure*, then *Save*. .. image:: media/uom_01.png @@ -24,7 +24,7 @@ the *Products* section, activate *Units of Measure*, then *Save*. Create New Units of Measure =========================== -In the *Inventory* application go to *Configuration > UoM*. There, +In the *Inventory* application go to :menuselection:`Configuration --> UoM`. There, hit *Create*. As an example, we will create a Box of 6 units that we will use for the Egg product. @@ -42,7 +42,7 @@ unit of measure for the category which is “Units” here. Specify Units of Measure on your Products ========================================= -In the *Inventory application > Master Data > Products*, open the +In the :menuselection:`Inventory application --> Master Data --> Products`, open the product which you would like to change the purchase/sale unit of measure, and click on *Edit*. @@ -82,7 +82,7 @@ Replenishment ------------- When doing a replenishment via the *Replenish* button on the product -form, you have the possibility to change the unit of measure. +form, you have the possibility to use a different unit of measure. .. image:: media/uom_07.png :align: center @@ -104,4 +104,4 @@ In the delivery order, the *UoM* used in the sale order is converted to the *UoM* used for stock management, in our use case, the Units. .. image:: media/uom_10.png - :align: center \ No newline at end of file + :align: center diff --git a/inventory/management/products/usage.rst b/inventory/management/products/usage.rst index 32b7d81a8..0329352a1 100644 --- a/inventory/management/products/usage.rst +++ b/inventory/management/products/usage.rst @@ -40,6 +40,10 @@ can decide to separate the quantity into two different packages. It then allows you to have a report with the quantity of products for each package. +To separate a delivery into different packages you will have to set the +done quantity to the desired package quantity then click on "PUT IN +PACK", do this for each package. + .. image:: media/usage_05.png :align: center @@ -65,4 +69,4 @@ They can be specified on the product form, in the inventory tab. .. note:: Another useful use of the packaging is for product reception. By scanning the barcode of the packaging, Odoo adds the number of units - contained in the packing on the picking. \ No newline at end of file + contained in the packing on the picking. diff --git a/inventory/management/replenishment_strategies/min_stock_rule_vs_mto.rst b/inventory/management/replenishment_strategies/min_stock_rule_vs_mto.rst index fbbdeebe2..05fc6f03d 100644 --- a/inventory/management/replenishment_strategies/min_stock_rule_vs_mto.rst +++ b/inventory/management/replenishment_strategies/min_stock_rule_vs_mto.rst @@ -15,11 +15,7 @@ with the needed quantity to reach the maximum stock level. The *Make to Order* route will trigger a procurement (purchase order or manufacturing order) with the necessary quantity to fulfill a product request (coming from a sale order or a manufacturing order). The system -will check the quantity on hand for the corresponding product and if the -available quantity is higher or equal to the necessary quantity, Odoo -will use what is in stock to fulfill the request. In case you don’t have -enough available stock to fully fulfill the product request, procurement -will be generated for the total quantity requested. +will not check the quantity on hand for the corresponding product. Configuration ============= @@ -28,7 +24,7 @@ Reordering Rules ---------------- The *Reordering Rules* configuration is available through the menu -*Inventory > Master Data > Reordering Rules*. There, click on +:menuselection:`Inventory --> Master Data --> Reordering Rules`. There, click on *Create* to set minimum and maximum stock values for a given product. .. image:: media/min_stock_rule_vs_mto_01.png @@ -71,7 +67,7 @@ Make to Order ------------- The *Make To Order* configuration is available on your product form -through your *Inventory module > Master Data > Products* (or in any +through your :menuselection:`Inventory module --> Master Data --> Products` (or in any other module where products are available). On the product form, in the *Inventory tab*, you can set a route. You @@ -80,7 +76,7 @@ can choose *Make To Order* and another route, either *Buy* or Again, if the *Buy* route is selected, make sure to set a *Vendor pricelist* in the *Purchase tab*. In case you have set a -*Manufacture* route, male sure you have a *BoM* for this product. +*Manufacture* route, make sure you have a *BoM* for this product. .. image:: media/min_stock_rule_vs_mto_05.png - :align: center \ No newline at end of file + :align: center diff --git a/inventory/management/replenishment_strategies/virtual_warehouses.rst b/inventory/management/replenishment_strategies/virtual_warehouses.rst index 2f0b20490..f2fda4042 100644 --- a/inventory/management/replenishment_strategies/virtual_warehouses.rst +++ b/inventory/management/replenishment_strategies/virtual_warehouses.rst @@ -13,9 +13,9 @@ multi-warehouses. .. image:: media/virtual_warehouses_01.png :align: center -You can then access your warehouses via \*Inventory > Configuration > -Warehouses\*. Create the necessary warehouses following this -`*documentation* `__. +You can then access your warehouses via :menuselection:`Inventory --> Configuration --> +Warehouses`. Create the necessary warehouses following this :doc:`documentation +<../warehouses/warehouse_creation>`. Enter the warehouse which should be resupplied by another one. You will have the possibility to directly indicate through which warehouse it gets resupplied. @@ -33,8 +33,8 @@ order\*. For the demonstration, I set a reordering rule with a minimum of 5 units in stock and a maximum of 10 units in stock, having currently 0 units on -hand. I will run the scheduler by going to \*Inventory > Operations > -Run scheduler\*. +hand. I will run the scheduler by going to :menuselection:`Inventory --> Operations --> +Run scheduler`. .. image:: media/virtual_warehouses_04.png :align: center diff --git a/inventory/management/reporting.rst b/inventory/management/reporting.rst index 00656e8a4..32fe4d83f 100644 --- a/inventory/management/reporting.rst +++ b/inventory/management/reporting.rst @@ -6,5 +6,7 @@ Valuation Methods :titlesonly: :glob: - reporting/valuation_methods_continental - reporting/valuation_methods_anglo_saxon + reporting/inventory_valuation_config + reporting/using_inventory_valuation + reporting/integrating_landed_costs + ../../accounting/others/inventory/avg_price_valuation \ No newline at end of file diff --git a/inventory/management/reporting/integrating_landed_costs.rst b/inventory/management/reporting/integrating_landed_costs.rst new file mode 100644 index 000000000..ede0d35e0 --- /dev/null +++ b/inventory/management/reporting/integrating_landed_costs.rst @@ -0,0 +1,64 @@ +======================================================= +Integrating additional costs to products (landed costs) +======================================================= + +The landed cost feature in Odoo allows to include additional costs +(shipment, insurance, customs duties, etc.) into the cost of the +product. + +.. note:: + Landed costs can only be applied to products with a FIFO or AVCO costing + method and an automated inventory valuation (which requires the + accounting application to be installed). + +Configuration +============= + +First, you need to go in :menuselection:`Inventory --> Configuration --> Settings` and +activate the landed costs feature. You can also determine the default +journal in which the landed cost accounting entries will be recorded. + +.. image:: media/integrating_landed_costs_01.png + :align: center + +Add costs to products +===================== + +Receive the vendor bill +----------------------- + +Let’s imagine I receive a bill from custom duties for a shipment. I’ll +tick the box *Landed Costs* on the vendor bill line. + +.. image:: media/integrating_landed_costs_02.png + :align: center + +.. note:: + The landed cost product must be of type service. + +If this product is always a landed cost, you can also define it on the +product and avoid having to tick the box on each vendor bill. + +.. image:: media/integrating_landed_costs_03.png + :align: center + +At the top of my vendor bill, I’ll see a button *create landed costs*. +I click on this button and a landed cost is automatically created. I can +now decide on which picking those additional costs should apply. + +.. image:: media/integrating_landed_costs_04.png + :align: center + +I can now click on *Compute* and go in the tab *Valuation +Adjustments* to see the impact on my products costs. The last step is +to validate the landed cost. + +I can access the journal entry that has been created by the landed cost +by clicking on the journal entry. + +.. image:: media/integrating_landed_costs_05.png + :align: center + +.. note:: + You are not forced to start from the vendor bill, you can also go in :menuselection:`Inventory + --> Operations --> Landed Costs` and directly create the landed cost from there. \ No newline at end of file diff --git a/inventory/management/reporting/inventory_valuation_config.rst b/inventory/management/reporting/inventory_valuation_config.rst new file mode 100644 index 000000000..b15190d1a --- /dev/null +++ b/inventory/management/reporting/inventory_valuation_config.rst @@ -0,0 +1,421 @@ +:code-column: + +================================= +Inventory valuation configuration +================================= + +Inventory valuation refers to how you value your stock. It’s a very +important aspect of a business as the inventory can be the biggest asset +of a company. + +Inventory valuation implies two main choices: + +- The cost method you use to value your goods (standard, fifo, avco) +- The way you record this value into your accounting books (manually or automatically) + +Those two concepts are explained in the sections below. + +Costing Methods: Standard, FIFO, AVCO +===================================== + +The costing method is defined in the product category. There are three +options available. Each of them is explained in detail below. + +.. rst-class:: alternatives doc-aside + +Standard Price + .. rst-class:: values-table + + .. list-table:: + :widths: 28 18 18 18 18 + :header-rows: 1 + :stub-columns: 1 + + * - Operation + - Unit Cost + - Qty On Hand + - Delta Value + - Inventory Value + * - + - €10 + - 0 + - + - €0 + * - Receive 8 Products at €10 + - €10 + - 8 + - +8*€10 + - €80 + * - Receive 4 Products at €16 + - €10 + - 12 + - +4*€10 + - €120 + * - Deliver 10 Products + - €10 + - 2 + - | -10*€10 + | + - €20 + * - Receive 2 Products at €9 + - €10 + - 4 + - +2*€10 + - €40 + + In **Standard Price**, any product will be valued at the cost that you defined + manually on the product form. Usually, this cost is an estimation based + on the material and labor needed to obtain the product. This cost must + be reviewed periodically. + +Average Price + .. rst-class:: values-table + + .. list-table:: + :widths: 28 18 18 18 18 + :header-rows: 1 + :stub-columns: 1 + + * - Operation + - Unit Cost + - Qty On Hand + - Delta Value + - Inventory Value + * - + - €0 + - 0 + - + - €0 + * - Receive 8 Products at €10 + - €10 + - 8 + - +8*€10 + - €80 + * - Receive 4 Products at €16 + - €12 + - 12 + - +4*€16 + - €144 + * - Deliver 10 Products + - €12 + - 2 + - | -10*€12 + | + - €24 + * - Receive 2 Products at €6 + - €9 + - 4 + - +2*€6 + - €36 + + In **AVCO (Average Cost)**, each product has the same value and this + value is the average purchase cost of the product. With this costing method, the + cost of the product is recomputed as each receipt. + + The average cost does not change when products leave the warehouse. + +FIFO + .. rst-class:: values-table + + .. list-table:: + :widths: 28 18 18 18 18 + :header-rows: 1 + :stub-columns: 1 + + * - Operation + - Unit Cost + - Qty On Hand + - Delta Value + - Inventory Value + * - + - €0 + - 0 + - + - €0 + * - Receive 8 Products at €10 + - €10 + - 8 + - +8*€10 + - €80 + * - Receive 4 Products at €16 + - €12 + - 12 + - +4*€16 + - €144 + * - Deliver 10 Products + - €16 + - 2 + - | -8*€10 + | -2*€16 + - €32 + * - Receive 2 Products at €6 + - €11 + - 4 + - +2*€6 + - €44 + + In **FIFO (First In First Out)**, the products are valued at their + purchase cost. When a product leaves the stock, that’s the “First in, + first out” rule that applies. + + Pay attention, that this is a financial FIFO. The first value “in” + is the first value “out”, no matter the storage location, warehouse + or serial number. + + FIFO is advised if you manage all your workflows into Odoo (Sales, + Purchases, Inventory). It suits any kind of users. + +Inventory Valuation: Manual or Automated +======================================== + +There are two ways to record your inventory valuation in your accounting +books. As the costing method, this is defined in your product category. +Those two methods are detailed below. + +It is important to also note that the accounting entries will depend on +your accounting mode: it can be continental or anglo-saxon. In +continental accounting, the cost of a good is taken into account as soon +as the product is received in stock. In anglo-saxon accounting, the cost +of a good is only recorded as an expense when this good is invoiced to a +final customer. In the tables below, you can easily compare those two +accounting modes. + +Usually, based on your country, the correct accounting mode will be +chosen by default. If you want to verify your accounting mode, activate +the developer mode and open your accounting settings. + +Manual Inventory Valuation +-------------------------- + +In this case, goods receipts and deliveries won’t have any direct impact +on your accounting books. Periodically, you create a manual journal +entry representing the value of what you have in stock. To know that +value, go in :menuselection:`Inventory --> Reporting --> Inventory Valuation`. + +This is the default configuration in Odoo and it works +out-of-the-box. Check following operations and find out how +Odoo is managing the accounting postings. + +Continental Accounting +~~~~~~~~~~~~~~~~~~~~~~ + +.. rst-class:: alternatives doc-aside + +Vendor Bill + .. rst-class:: values-table + + ============================= ===== ====== + \ Debit Credit + ============================= ===== ====== + Assets: Inventory 50 + Assets: Deferred Tax Assets 4.68 + Liabilities: Accounts Payable 54.68 + ============================= ===== ====== + + Configuration: + * Purchased Goods: defined on the product or on the internal category of related product (Expense Account field) + * Deferred Tax Assets: defined on the tax used on the purchase order line + * Accounts Payable: defined on the vendor related to the bill +Goods Receptions + No Journal Entry +Customer Invoice + .. rst-class:: values-table + + ===================================== ===== ====== + \ Debit Credit + ===================================== ===== ====== + Revenues: Sold Goods 100 + Liabilities: Deferred Tax Liabilities 9 + Assets: Accounts Receivable 109 + ===================================== ===== ====== + + Configuration: + * Revenues: defined on the product or on the internal category of related product (Income Account field) + * Deferred Tax Liabilities: defined on the tax used on the invoice line + * Accounts Receivable: defined on the customer (Receivable Account) + + The fiscal position used on the invoice may have a rule that replaces the + Income Account or the tax defined on the product by another one. +Customer Shipping + No Journal Entry +Manufacturing Orders + No Journal Entry + +.. raw:: html + +
    + +At the end of the month/year, your company does a physical inventory +or just relies on the inventory in Odoo to value the stock into your books. + +Create a journal entry to move the stock variation value from your +Profit&Loss section to your assets. + +.. h:div:: doc-aside + + .. rst-class:: values-table + + ===================================== ===== ====== + \ Debit Credit + ===================================== ===== ====== + Assets: Inventory X + Expenses: Inventory Variations X + ===================================== ===== ====== + + If the stock value decreased, the **Inventory** account is credited + and te **Inventory Variations** debited. + +.. raw:: html + +
    + +Anglo-Saxon Accounting +~~~~~~~~~~~~~~~~~~~~~~ + +.. rst-class:: alternatives doc-aside + +Vendor Bill + .. rst-class:: values-table + + ============================= ===== ====== + \ Debit Credit + ============================= ===== ====== + Assets: Inventory 50 + Assets: Deferred Tax Assets 4.68 + Liabilities: Accounts Payable 54.68 + ============================= ===== ====== + + Configuration: + * Purchased Goods: defined on the product or on the internal category of related product + (Expense Account field) + * Deferred Tax Assets: defined on the tax used on the purchase order line + * Accounts Payable: defined on the vendor related to the bill +Goods Receptions + No Journal Entry +Customer Invoice + .. rst-class:: values-table + + ===================================== ===== ====== + \ Debit Credit + ===================================== ===== ====== + Revenues: Sold Goods 100 + Liabilities: Deferred Tax Liabilities 9 + Assets: Accounts Receivable 109 + ===================================== ===== ====== + + Configuration: + * Revenues: defined on the product or on the internal category of related + product (Income Account field) + * Deferred Tax Liabilities: defined on the tax used on the invoice line + * Accounts Receivable: defined on the customer (Receivable Account) + + The fiscal position used on the invoice may have a rule that replaces the + Income Account or the tax defined on the product by another one. +Customer Shipping + No Journal Entry +Manufacturing Orders + No Journal Entry + +.. raw:: html + +
    + +At the end of the month/year, your company does a physical inventory +or just relies on the inventory in Odoo to value the stock into your books. + +Then you need to break down the purchase balance into both the inventory and +the cost of goods sold using the following formula: + +Cost of goods sold (COGS) = Starting inventory value + Purchases – Closing inventory value + +To update the stock valuation in your books, record such an entry: + +.. h:div:: doc-aside + + .. rst-class:: values-table + + ===================================== ===== ====== + \ Debit Credit + ===================================== ===== ====== + Assets: Inventory (closing value) X + Expenses: Cost of Good Sold X + Expenses: Purchased Goods X + Assets: Inventory (starting value) X + ===================================== ===== ====== + +Automated Inventory Valuation +----------------------------- + +In that case, when a product enters or leaves your stock, an accounting +entry will be automatically created. This means your accounting books +are always up-to-date. This mode is dedicated to expert accountants and +advanced users only. As opposed to periodic valuation, it requires some +extra configuration & testing. + +First, you need to define the accounts that will be used for those +accounting entries. This is done on the product category. + +Continental Accounting +~~~~~~~~~~~~~~~~~~~~~~ + +.. h:div:: valuation-chart-continental doc-aside + + .. placeholder + +.. raw:: html + +
    + +.. h:div:: doc-aside + + **Configuration:** + + - Accounts Receivable/Payable: defined on the partner (Accounting tab) + + - Deferred Tax Assets/Liabilities: defined on the tax used on the invoice line + + - Revenues/Expenses: defined by default on product's internal category; can be + also set in product form (Accounting tab) as a replacement value. + + - Inventory Variations: to set as Stock Input/Output Account in product's internal + category + + - Inventory: to set as Stock Valuation Account in product's internal category + +Anglo-Saxon Accounting +~~~~~~~~~~~~~~~~~~~~~~ + +.. h:div:: valuation-chart-anglo-saxon doc-aside + + .. placeholder + +.. raw:: html + +
    + +.. h:div:: doc-aside + + **Configuration:** + + - Accounts Receivable/Payable: defined on the partner (Accounting tab) + + - Deferred Tax Assets/Liabilities: defined on the tax used on the + invoice line + + - Revenues: defined on the product category as a default, or specifically + to a specific product. + + - Expenses: this is where you should set the "Cost of Goods Sold" account. + Defined on the product category as a default value, or specifically on + the product form. + + - Goods Received Not Purchased: to set as Stock Input Account in product's + internal category + + - Goods Issued Not Invoiced: to set as Stock Output Account in product's + internal category + + - Inventory: to set as Stock Valuation Account in product's internal category + + - Price Difference: to set in product's internal category or in product + form as a specific replacement value diff --git a/inventory/management/reporting/media/integrating_landed_costs_01.png b/inventory/management/reporting/media/integrating_landed_costs_01.png new file mode 100644 index 000000000..b99432626 Binary files /dev/null and b/inventory/management/reporting/media/integrating_landed_costs_01.png differ diff --git a/inventory/management/reporting/media/integrating_landed_costs_02.png b/inventory/management/reporting/media/integrating_landed_costs_02.png new file mode 100644 index 000000000..9424f8b64 Binary files /dev/null and b/inventory/management/reporting/media/integrating_landed_costs_02.png differ diff --git a/inventory/management/reporting/media/integrating_landed_costs_03.png b/inventory/management/reporting/media/integrating_landed_costs_03.png new file mode 100644 index 000000000..035ea3587 Binary files /dev/null and b/inventory/management/reporting/media/integrating_landed_costs_03.png differ diff --git a/inventory/management/reporting/media/integrating_landed_costs_04.png b/inventory/management/reporting/media/integrating_landed_costs_04.png new file mode 100644 index 000000000..75dbcfd14 Binary files /dev/null and b/inventory/management/reporting/media/integrating_landed_costs_04.png differ diff --git a/inventory/management/reporting/media/integrating_landed_costs_05.png b/inventory/management/reporting/media/integrating_landed_costs_05.png new file mode 100644 index 000000000..004d35772 Binary files /dev/null and b/inventory/management/reporting/media/integrating_landed_costs_05.png differ diff --git a/inventory/management/reporting/media/inventory_valuation_config_02.png b/inventory/management/reporting/media/inventory_valuation_config_02.png new file mode 100644 index 000000000..35f7e8120 Binary files /dev/null and b/inventory/management/reporting/media/inventory_valuation_config_02.png differ diff --git a/inventory/management/reporting/media/use_inventory_valuation_01.png b/inventory/management/reporting/media/use_inventory_valuation_01.png new file mode 100644 index 000000000..ff81a1a98 Binary files /dev/null and b/inventory/management/reporting/media/use_inventory_valuation_01.png differ diff --git a/inventory/management/reporting/media/use_inventory_valuation_02.png b/inventory/management/reporting/media/use_inventory_valuation_02.png new file mode 100644 index 000000000..26be5419b Binary files /dev/null and b/inventory/management/reporting/media/use_inventory_valuation_02.png differ diff --git a/inventory/management/reporting/media/use_inventory_valuation_03.png b/inventory/management/reporting/media/use_inventory_valuation_03.png new file mode 100644 index 000000000..2b50fe394 Binary files /dev/null and b/inventory/management/reporting/media/use_inventory_valuation_03.png differ diff --git a/inventory/management/reporting/media/use_inventory_valuation_04.png b/inventory/management/reporting/media/use_inventory_valuation_04.png new file mode 100644 index 000000000..9c241c339 Binary files /dev/null and b/inventory/management/reporting/media/use_inventory_valuation_04.png differ diff --git a/inventory/management/reporting/media/use_inventory_valuation_05.png b/inventory/management/reporting/media/use_inventory_valuation_05.png new file mode 100644 index 000000000..e5230b738 Binary files /dev/null and b/inventory/management/reporting/media/use_inventory_valuation_05.png differ diff --git a/inventory/management/reporting/media/use_inventory_valuation_06.png b/inventory/management/reporting/media/use_inventory_valuation_06.png new file mode 100644 index 000000000..189cac11a Binary files /dev/null and b/inventory/management/reporting/media/use_inventory_valuation_06.png differ diff --git a/inventory/management/reporting/using_inventory_valuation.rst b/inventory/management/reporting/using_inventory_valuation.rst new file mode 100644 index 000000000..0ea569c83 --- /dev/null +++ b/inventory/management/reporting/using_inventory_valuation.rst @@ -0,0 +1,77 @@ +============================= +Using the inventory valuation +============================= + +Inventory valuation refers to how you value your stock. It’s a very +important aspect of a business as the inventory can be the biggest asset +of a company. + +In this documentation, we will explain how the inventory valuation works +in Odoo. + +Inventory valuation: the basics +=============================== + +Receive a product +----------------- + +Each time a product enters or leaves your stock, the value of your +inventory is impacted. The way it is impacted depends on the +configuration of your product (more info here). + +Let’s take an example with a product - a table - configured with a +*FIFO costing method* and an automated inventory valuation. + +I purchase 10 tables at a cost of $10. + +.. image:: media/use_inventory_valuation_01.png + :align: center + +When I’ll confirm the receipt of the products, the value of my inventory +will be impacted. If I want to know what this impact is, I can click on +the valuation stat button. + +.. tip:: + The consignment feature allows you to set owners on your stock (discover + more about the consignment feature). When you receive products that are + owned by another company, they are not taken into account in your + inventory valuation. + +.. image:: media/use_inventory_valuation_02.png + :align: center + +.. note:: + You need access rights on the accounting module to see that button. + +In this case, I can see that the 10 tables entered the stock for a total +value of $100. + +.. image:: media/use_inventory_valuation_03.png + :align: center + +I can also easily access the accounting entry that has been generated +(in case of automated inventory valuation). + +.. image:: media/use_inventory_valuation_04.png + :align: center + +Deliver a product +----------------- + +In the same logic, when a table will be delivered, the stock valuation +will be impacted and you will have access to a similar information. + +.. image:: media/use_inventory_valuation_05.png + :align: center + +The inventory valuation report +------------------------------ + +The summary of this is accessible via the inventory valuation report +(accessible from :menuselection:`Inventory --> Reporting --> Inventory Valuation`). It gives +you, product per product, the value of your stock. By clicking on the +button *Inventory At Date*, you can have the same information for a +past date. + +.. image:: media/use_inventory_valuation_06.png + :align: center \ No newline at end of file diff --git a/inventory/management/reporting/valuation_methods_anglo_saxon.rst b/inventory/management/reporting/valuation_methods_anglo_saxon.rst deleted file mode 100644 index 90f4735ed..000000000 --- a/inventory/management/reporting/valuation_methods_anglo_saxon.rst +++ /dev/null @@ -1,369 +0,0 @@ -:code-column: - -========================================================== -How to do an inventory valuation? (Anglo-Saxon Accounting) -========================================================== - -Every year your inventory valuation has to be recorded in your -balance sheet. This implies two main choices: - -- the way you compute the cost of your stored items - (Standard vs. Average vs. Real Price); - -- the way you record the inventory value into your books - (periodic vs. Perpetual). - -Costing Method -============== -.. rst-class:: alternatives doc-aside - -Standard Price - .. rst-class:: values-table - - .. list-table:: - :widths: 28 18 18 18 18 - :header-rows: 1 - :stub-columns: 1 - - * - Operation - - Unit Cost - - Qty On Hand - - Delta Value - - Inventory Value - * - - - $10 - - 0 - - - - $0 - * - Receive 8 Products at $10 - - $10 - - 8 - - +8*$10 - - $80 - * - Receive 4 Products at $16 - - $10 - - 12 - - +4*$10 - - $120 - * - Deliver 10 Products - - $10 - - 2 - - | -10*$10 - | - - $20 - * - Receive 2 Products at $9 - - $10 - - 4 - - +2*$10 - - $40 - - **Standard Price** means you estimate the cost price based - on direct materials, direct labor and manufacturing overhead - at the end of a specific period (usually once a year). You - enter this cost price in the product form. - -Average Price - .. rst-class:: values-table - - .. list-table:: - :widths: 28 18 18 18 18 - :header-rows: 1 - :stub-columns: 1 - - * - Operation - - Unit Cost - - Qty On Hand - - Delta Value - - Inventory Value - * - - - $0 - - 0 - - - - $0 - * - Receive 8 Products at $10 - - $10 - - 8 - - +8*$10 - - $80 - * - Receive 4 Products at $16 - - $12 - - 12 - - +4*$16 - - $144 - * - Deliver 10 Products - - $12 - - 2 - - | -10*$12 - | - - $24 - * - Receive 2 Products at $6 - - $9 - - 4 - - +2*$6 - - $36 - - The **Average Price** method recomputes the cost price as a receipt order - has been processed, based on prices defined in tied purchase orders: - FORMULA (see here attached) - - The average cost does not change when products leave the warehouse. - - From an accounting point of view, this method is mainly justified in - case of huge purchase price variations and is quite unusual due to its - operational complexity. Your actually need a software like Odoo to - easily keep this cost up-to-date. - - This method is dedicated to advanced users. It requires well established - business processes because the order in which you process receipt orders - matters in the cost computation. - -FIFO - .. rst-class:: values-table - - .. list-table:: - :widths: 28 18 18 18 18 - :header-rows: 1 - :stub-columns: 1 - - * - Operation - - Unit Cost - - Qty On Hand - - Delta Value - - Inventory Value - * - - - $0 - - 0 - - - - $0 - * - Receive 8 Products at $10 - - $10 - - 8 - - +8*$10 - - $80 - * - Receive 4 Products at $16 - - $12 - - 12 - - +4*$16 - - $144 - * - Deliver 10 Products - - $16 - - 2 - - | -8*$10 - | -2*$16 - - $32 - * - Receive 2 Products at $6 - - $11 - - 4 - - +2*$6 - - $44 - - For **Real Price** (FIFO, LIFO, FEFO, etc), the costing is further - refined by the removal strategy set on the warehouse location - or product's internal category. The default strategy is FIFO. With - such method, your inventory value is computed from the real cost - of your stored products (cfr. Quantitative Valuation) and not from - the cost price shown in the product form. Whenever you ship items, - the cost price is reset to the cost of the last item(s) shipped. - This cost price is used to value any product not received from a - purchase order (e.g. inventory adjustments). - - FIFO is advised if you manage all your workflow into Odoo (Sales, - Purchases, Inventory). It suits any kind of users. - -LIFO (not accepted in IFRS) - .. rst-class:: values-table - - .. list-table:: - :widths: 28 18 18 18 18 - :header-rows: 1 - :stub-columns: 1 - - * - Operation - - Unit Cost - - Qty On Hand - - Delta Value - - Inventory Value - * - - - $0 - - 0 - - - - $0 - * - Receive 8 Products at $10 - - $10 - - 8 - - +8*$10 - - $80 - * - Receive 4 Products at $16 - - $12 - - 12 - - +4*$16 - - $144 - * - Deliver 10 Products - - $10 - - 2 - - | -4*$16 - | -6*$10 - - $20 - * - Receive 2 Products at $6 - - $8 - - 4 - - +2*$6 - - $32 - - For **Real Price** (FIFO, LIFO, FEFO, etc), the costing is further - refined by the removal strategy set on the warehouse location - or product's internal category. The default strategy is FIFO. - With such method, your inventory value is computed from the - real cost of your stored products (cfr. Quantitative Valuation) - and not from the cost price shown in the product form. Whenever - you ship items, the cost price is reset to the cost of the last - item(s) shipped. This cost price is used to value any product - not received from a purchase order (e.g. inventory adjustments). - - LIFO is not permitted outside the United States. - -Odoo allows any method. The default one is **Standard Price**. -To change it, check **Use a 'Fixed', 'Real' or 'Average' price -costing method** in Purchase settings. Then set the costing -method from products' internal categories. Categories show up -in the Inventory tab of the product form. - -Whatever the method is, Odoo provides a full inventory valuation -in :menuselection:`Inventory --> Reports --> Inventory Valuation` -(i.e. current quantity in stock * cost price). - -Periodic Inventory Valuation -============================ - -In a periodic inventory valuation, goods reception and -outgoing shipments have no direct impact in the accounting. -At the end of the month or year, the accountant posts one -journal entry representing the value of the physical inventory. - -This is the default configuration in Odoo and it works -out-of-the-box. Check following operations and find out how -Odoo is managing the accounting postings. - -.. rst-class:: alternatives doc-aside - -Vendor Bill - .. rst-class:: values-table - - ============================= ===== ====== - \ Debit Credit - ============================= ===== ====== - Assets: Inventory 50 - Assets: Deferred Tax Assets 4.68 - Liabilities: Accounts Payable 54.68 - ============================= ===== ====== - - Configuration: - * Purchased Goods: defined on the product or on the internal category of related product - (Expense Account field) - * Deferred Tax Assets: defined on the tax used on the purchase order line - * Accounts Payable: defined on the vendor related to the bill -Goods Receptions - No Journal Entry -Customer Invoice - .. rst-class:: values-table - - ===================================== ===== ====== - \ Debit Credit - ===================================== ===== ====== - Revenues: Sold Goods 100 - Liabilities: Deferred Tax Liabilities 9 - Assets: Accounts Receivable 109 - ===================================== ===== ====== - - Configuration: - * Revenues: defined on the product or on the internal category of related - product (Income Account field) - * Deferred Tax Liabilities: defined on the tax used on the invoice line - * Accounts Receivable: defined on the customer (Receivable Account) - - The fiscal position used on the invoice may have a rule that replaces the - Income Account or the tax defined on the product by another one. -Customer Shipping - No Journal Entry -Manufacturing Orders - No Journal Entry - -.. raw:: html - -
    - -At the end of the month/year, your company does a physical inventory -or just relies on the inventory in Odoo to value the stock into your books. - -Then you need to break down the purchase balance into both the inventory and -the cost of goods sold using the following formula: - -Cost of goods sold (COGS) = Starting inventory value + Purchases – Closing inventory value - -To update the stock valuation in your books, record such an entry: - -.. h:div:: doc-aside - - .. rst-class:: values-table - - ===================================== ===== ====== - \ Debit Credit - ===================================== ===== ====== - Assets: Inventory (closing value) X - Expenses: Cost of Good Sold X - Expenses: Purchased Goods X - Assets: Inventory (starting value) X - ===================================== ===== ====== - -Perpetual Inventory Valuation -============================= - -In a perpetual inventory valuation, goods receptions and -outgoing shipments are posted in your books in real time. -The books are therefore always up-to-date. This mode is -dedicated to expert accountants and advanced users only. -As opposed to periodic valuation, it requires some extra -configuration & testing. - -Let's take the case of a reseller. - -.. h:div:: valuation-chart-anglo-saxon doc-aside - - .. placeholder - -.. raw:: html - -
    - -.. h:div:: doc-aside - - **Configuration:** - - - Accounts Receivable/Payable: defined on the partner (Accounting tab) - - - Deferred Tax Assets/Liabilities: defined on the tax used on the - invoice line - - - Revenues: defined on the product category as a default, or specifically - to a specific product. - - - Expenses: this is where you should set the "Cost of Goods Sold" account. - Defined on the product category as a default value, or specifically on - the product form. - - - Goods Received Not Purchased: to set as Stock Input Account in product's - internal category - - - Goods Issued Not Invoiced: to set as Stock Output Account in product's - internal category - - - Inventory: to set as Stock Valuation Account in product's internal category - - - Price Difference: to set in product's internal category or in product - form as a specific replacement value - -.. seealso:: - - * :doc:`../../routes/strategies/removal` - * :doc:`../../../accounting/others/inventory/avg_price_valuation` - * :doc:`../../routes/costing/landed_costs` \ No newline at end of file diff --git a/inventory/management/reporting/valuation_methods_continental.rst b/inventory/management/reporting/valuation_methods_continental.rst deleted file mode 100644 index bee9abddb..000000000 --- a/inventory/management/reporting/valuation_methods_continental.rst +++ /dev/null @@ -1,358 +0,0 @@ -:code-column: - -========================================================== -How to do an inventory valuation? (Continental Accounting) -========================================================== - -Every year your inventory valuation has to be recorded in your -balance sheet. This implies two main choices: - -- the way you compute the cost of your stored items - (Standard vs. Average vs. Real Price); - -- the way you record the inventory value into your books - (periodic vs. Perpetual). - -Costing Method -============== - -.. rst-class:: alternatives doc-aside - -Standard Price - .. rst-class:: values-table - - .. list-table:: - :widths: 28 18 18 18 18 - :header-rows: 1 - :stub-columns: 1 - - * - Operation - - Unit Cost - - Qty On Hand - - Delta Value - - Inventory Value - * - - - €10 - - 0 - - - - €0 - * - Receive 8 Products at €10 - - €10 - - 8 - - +8*€10 - - €80 - * - Receive 4 Products at €16 - - €10 - - 12 - - +4*€10 - - €120 - * - Deliver 10 Products - - €10 - - 2 - - | -10*€10 - | - - €20 - * - Receive 2 Products at €9 - - €10 - - 4 - - +2*€10 - - €40 - - **Standard Price** means you estimate the cost price based - on direct materials, direct labor and manufacturing overhead - at the end of a specific period (usually once a year). You - enter this cost price in the product form. - -Average Price - .. rst-class:: values-table - - .. list-table:: - :widths: 28 18 18 18 18 - :header-rows: 1 - :stub-columns: 1 - - * - Operation - - Unit Cost - - Qty On Hand - - Delta Value - - Inventory Value - * - - - €0 - - 0 - - - - €0 - * - Receive 8 Products at €10 - - €10 - - 8 - - +8*€10 - - €80 - * - Receive 4 Products at €16 - - €12 - - 12 - - +4*€16 - - €144 - * - Deliver 10 Products - - €12 - - 2 - - | -10*€12 - | - - €24 - * - Receive 2 Products at €6 - - €9 - - 4 - - +2*€6 - - €36 - - The **Average Price** method recomputes the cost price as a receipt order - has been processed, based on prices defined in tied purchase orders: - FORMULA (see here attached) - - The average cost does not change when products leave the warehouse. - - From an accounting point of view, this method is mainly justified in - case of huge purchase price variations and is quite unusual due to its - operational complexity. Your actually need a software like Odoo to - easily keep this cost up-to-date. - - This method is dedicated to advanced users. It requires well established - business processes because the order in which you process receipt orders - matters in the cost computation. - -FIFO - .. rst-class:: values-table - - .. list-table:: - :widths: 28 18 18 18 18 - :header-rows: 1 - :stub-columns: 1 - - * - Operation - - Unit Cost - - Qty On Hand - - Delta Value - - Inventory Value - * - - - €0 - - 0 - - - - €0 - * - Receive 8 Products at €10 - - €10 - - 8 - - +8*€10 - - €80 - * - Receive 4 Products at €16 - - €12 - - 12 - - +4*€16 - - €144 - * - Deliver 10 Products - - €16 - - 2 - - | -8*€10 - | -2*€16 - - €32 - * - Receive 2 Products at €6 - - €11 - - 4 - - +2*€6 - - €44 - - For **Real Price** (FIFO, LIFO, FEFO, etc), the costing is further - refined by the removal strategy set on the warehouse location - or product's internal category. The default strategy is FIFO. With - such method, your inventory value is computed from the real cost - of your stored products (cfr. Quantitative Valuation) and not from - the cost price shown in the product form. Whenever you ship items, - the cost price is reset to the cost of the last item(s) shipped. - This cost price is used to value any product not received from a - purchase order (e.g. inventory adjustments). - - FIFO is advised if you manage all your workflow into Odoo (Sales, - Purchases, Inventory). It suits any kind of users. - -LIFO (not accepted in IFRS) - .. rst-class:: values-table - - .. list-table:: - :widths: 28 18 18 18 18 - :header-rows: 1 - :stub-columns: 1 - - * - Operation - - Unit Cost - - Qty On Hand - - Delta Value - - Inventory Value - * - - - €0 - - 0 - - - - €0 - * - Receive 8 Products at €10 - - €10 - - 8 - - +8*€10 - - €80 - * - Receive 4 Products at €16 - - €12 - - 12 - - +4*€16 - - €144 - * - Deliver 10 Products - - €10 - - 2 - - | -4*€16 - | -6*€10 - - €20 - * - Receive 2 Products at €6 - - €8 - - 4 - - +2*€6 - - €32 - - For **Real Price** (FIFO, LIFO, FEFO, etc), the costing is further - refined by the removal strategy set on the warehouse location - or product's internal category. The default strategy is FIFO. - With such method, your inventory value is computed from the - real cost of your stored products (cfr. Quantitative Valuation) - and not from the cost price shown in the product form. Whenever - you ship items, the cost price is reset to the cost of the last - item(s) shipped. This cost price is used to value any product - not received from a purchase order (e.g. inventory adjustments). - - LIFO is not permitted outside the United States. - -Odoo allows any method. The default one is **Standard Price**. -To change it, check **Use a 'Fixed', 'Real' or 'Average' price -costing method** in Purchase settings. Then set the costing -method from products' internal categories. Categories show up -in the Inventory tab of the product form. - -Whatever the method is, Odoo provides a full inventory valuation -in :menuselection:`Inventory --> Reports --> Inventory Valuation` -(i.e. current quantity in stock * cost price). - -Periodic Inventory Valuation -============================ - -In a periodic inventory valuation, goods reception and -outgoing shipments have no direct impact in the accounting. -At the end of the month or year, the accountant posts one -journal entry representing the value of the physical inventory. - -This is the default configuration in Odoo and it works -out-of-the-box. Check following operations and find out how -Odoo is managing the accounting postings. - -.. rst-class:: alternatives doc-aside - -Vendor Bill - .. rst-class:: values-table - - ============================= ===== ====== - \ Debit Credit - ============================= ===== ====== - Assets: Inventory 50 - Assets: Deferred Tax Assets 4.68 - Liabilities: Accounts Payable 54.68 - ============================= ===== ====== - - Configuration: - * Purchased Goods: defined on the product or on the internal category of related product (Expense Account field) - * Deferred Tax Assets: defined on the tax used on the purchase order line - * Accounts Payable: defined on the vendor related to the bill -Goods Receptions - No Journal Entry -Customer Invoice - .. rst-class:: values-table - - ===================================== ===== ====== - \ Debit Credit - ===================================== ===== ====== - Revenues: Sold Goods 100 - Liabilities: Deferred Tax Liabilities 9 - Assets: Accounts Receivable 109 - ===================================== ===== ====== - - Configuration: - * Revenues: defined on the product or on the internal category of related product (Income Account field) - * Deferred Tax Liabilities: defined on the tax used on the invoice line - * Accounts Receivable: defined on the customer (Receivable Account) - - The fiscal position used on the invoice may have a rule that replaces the - Income Account or the tax defined on the product by another one. -Customer Shipping - No Journal Entry -Manufacturing Orders - No Journal Entry - -.. raw:: html - -
    - -At the end of the month/year, your company does a physical inventory -or just relies on the inventory in Odoo to value the stock into your books. - -Create a journal entry to move the stock variation value from your -Profit&Loss section to your assets. - -.. h:div:: doc-aside - - .. rst-class:: values-table - - ===================================== ===== ====== - \ Debit Credit - ===================================== ===== ====== - Assets: Inventory X - Expenses: Inventory Variations X - ===================================== ===== ====== - - If the stock value decreased, the **Inventory** account is credited - and te **Inventory Variations** debited. - -.. raw:: html - -
    - -Perpetual Inventory Valuation -============================= - -In a perpetual inventory valuation, goods receptions and -outgoing shipments are posted in your books in real time. -The books are therefore always up-to-date. This mode is -dedicated to expert accountants and advanced users only. -As opposed to periodic valuation, it requires some extra -configuration & testing. - -Let's take the case of a reseller. - -.. h:div:: valuation-chart-continental doc-aside - - .. placeholder - -.. raw:: html - -
    - -.. h:div:: doc-aside - - **Configuration:** - - - Accounts Receivable/Payable: defined on the partner (Accounting tab) - - - Deferred Tax Assets/Liabilities: defined on the tax used on the invoice line - - - Revenues/Expenses: defined by default on product's internal category; can be - also set in product form (Accounting tab) as a replacement value. - - - Inventory Variations: to set as Stock Input/Output Account in product's internal - category - - - Inventory: to set as Stock Valuation Account in product's internal category - -.. seealso:: - - * :doc:`../../routes/strategies/removal` - * :doc:`../../../accounting/others/inventory/avg_price_valuation` - * :doc:`../../routes/costing/landed_costs` \ No newline at end of file diff --git a/inventory/management/warehouses/location_creation.rst b/inventory/management/warehouses/location_creation.rst index 935f9e614..a79e92f4f 100644 --- a/inventory/management/warehouses/location_creation.rst +++ b/inventory/management/warehouses/location_creation.rst @@ -7,13 +7,13 @@ Configuration In order to be able to create different locations, you will need to activate *Multi-Locations* in the settings which can be done from the -*Inventory application > Configuration > Settings*. +:menuselection:`Inventory application --> Configuration --> Settings`. .. image:: media/location_creation_01.png :align: center -In the *Inventory application*, you can now go to *Configuration > -Locations* and hit *Create* in order to create a new location. +In the *Inventory application*, you can now go to :menuselection:`Configuration --> +Locations` and hit *Create* in order to create a new location. .. image:: media/location_creation_02.png :align: center @@ -34,6 +34,6 @@ If you have the *Barcode* application installed, you can specify the barcode which will correspond to this location. .. note:: - A warehouse also corresponds to a location. As the locations are - hierarchical, Odoo will create the parent location of the warehouse, - containing all the sublocations in it. \ No newline at end of file + A warehouse also corresponds to a location. As the locations are + hierarchical, Odoo will create the parent location of the warehouse, + containing all the sublocations in it. \ No newline at end of file diff --git a/inventory/management/warehouses/warehouse_creation.rst b/inventory/management/warehouses/warehouse_creation.rst index c1af4e514..d409738a5 100644 --- a/inventory/management/warehouses/warehouse_creation.rst +++ b/inventory/management/warehouses/warehouse_creation.rst @@ -9,13 +9,13 @@ In order to create a new warehouse, you should activate the *Multi-Warehouse* settings. Note that the *Multi-Locations* settings will be automatically activated at the same time. -In order to do so, go to the *Inventory app > Configuration > -Settings*. +In order to do so, go to the :menuselection:`Inventory app --> Configuration --> +Settings`. .. image:: media/warehouse_creation_01.png :align: center -You can then go to *Inventory > Configuration > Warehouses* and hit +You can then go to :menuselection:`Inventory --> Configuration --> Warehouses` and hit *Create* to add a new warehouse. .. image:: media/warehouse_creation_02.png diff --git a/inventory/overview/process/deliver_from_stock.rst b/inventory/overview/process/deliver_from_stock.rst index e1556c14b..efd49dcc0 100644 --- a/inventory/overview/process/deliver_from_stock.rst +++ b/inventory/overview/process/deliver_from_stock.rst @@ -6,7 +6,7 @@ Create Storable/Consumable Products =================================== The first step to use the inventory application is to create products in -your database via the menu *Master Data > Products*. Click the Create +your database via the menu :menuselection:`Master Data --> Products`. Click the Create button and enter the name of your product. .. image:: media/deliver_from_stock_01.png @@ -42,15 +42,13 @@ the products will go out of your stock. .. image:: media/deliver_from_stock_05.png :align: center -In case you have a delivery that is planned but shouldn’t be immediately -validated, you can create a *planned delivery* with a scheduled date -in the future. You can indicate the initial demand for each product, -corresponding to what has been ordered by your customer. Once the -document is filled in, you can hit “Mark as to do” in order to consider -it in your product forecasts. +In case you have a delivery that is planned but shouldn’t be immediately validated, you can create a *planned delivery* with a scheduled date in the future. You can indicate the initial demand for each product, corresponding to what has been ordered by your customer. Once the document is filled in, you can hit “Mark as to do” in order to consider it in your product forecasts. .. image:: media/deliver_from_stock_06.png :align: center + +.. note:: + The default setting is the immediate transfer where you do not need to “Mark as to do” and “Check availability” when delivering a product. Deliver Products from Stock from a Sale Order ============================================= @@ -60,4 +58,4 @@ directly created by *validating a quotation*. You will be able to find the corresponding delivery directly on the *sale order*. .. image:: media/deliver_from_stock_07.png - :align: center \ No newline at end of file + :align: center diff --git a/inventory/overview/process/initial_stock.rst b/inventory/overview/process/initial_stock.rst index 2cfd814db..735b7ec37 100644 --- a/inventory/overview/process/initial_stock.rst +++ b/inventory/overview/process/initial_stock.rst @@ -3,7 +3,7 @@ Set your Initial Stock ====================== The first step to use the inventory application is to create products in -your database via the menu *Master Data > Products*. Click the Create +your database via the menu :menuselection:`Master Data --> Products`. Click the Create button and enter the name of your product. .. image:: media/initial_stock_01.png @@ -20,7 +20,7 @@ Inventory Adjustment for Multiple Products Once you have created all your *storable products*, you can create an *inventory adjustment* to determine their current stock level in Odoo. -You therefore need to go to *Operations > Inventory Adjustments* and +You therefore need to go to :menuselection:`Operations --> Inventory Adjustments` and create a new one. .. image:: media/initial_stock_03.png diff --git a/inventory/overview/process/receive_in_stock.rst b/inventory/overview/process/receive_in_stock.rst index 756d70d2b..cb402c4af 100644 --- a/inventory/overview/process/receive_in_stock.rst +++ b/inventory/overview/process/receive_in_stock.rst @@ -3,7 +3,7 @@ Receive Products in Stock ========================= The first step to use the inventory application is to create products in -your database via the menu *Master Data > Products*. Click the Create +your database via the menu :menuselection:`Master Data --> Products`. Click the Create button and enter the name of your product. .. image:: media/receive_in_stock_01.png diff --git a/inventory/routes.rst b/inventory/routes.rst index 6695dafb1..badc8afba 100644 --- a/inventory/routes.rst +++ b/inventory/routes.rst @@ -7,5 +7,4 @@ Advanced Routes :glob: routes/concepts - routes/costing routes/strategies diff --git a/inventory/routes/concepts/cross_dock.rst b/inventory/routes/concepts/cross_dock.rst index 86e3a3fec..bd7990ff0 100644 --- a/inventory/routes/concepts/cross_dock.rst +++ b/inventory/routes/concepts/cross_dock.rst @@ -5,30 +5,34 @@ Organize a cross-dock in a warehouse Cross-docking is the process of sending products that are received directly to the customers, without making them enter the stock. The trucks are simply unloaded in a *Cross-Dock* area in order to reorganize products and load another truck. .. image:: media/cross1.png - :align: center + :align: center .. note:: - For more information on how to organize your warehouse, read our blog: `What is cross-docking and is it for me? `__ + For more information on how to organize your warehouse, read our blog: `What is cross-docking and is it for me? `__ Configuration ============== -In the *Inventory* app, open *Configuration > Settings* and activate the *Multi-Step Routes*. + +In the *Inventory* app, open :menuselection:`Configuration --> Settings` and activate the *Multi-Step Routes*. .. image:: media/cross2.png - :align: center - -.. note:: - Doing so will also enable the *Storage Locations* feature. + :align: center -Now, both *Incoming* and *Outgoing* shipments should be configured to work with 2 steps. To adapt the configuration, go to *Inventory > Configuration > Warehouses* and edit your warehouse. +.. note:: + Doing so will also enable the *Storage Locations* feature. + +Now, both *Incoming* and *Outgoing* shipments should be configured to work with 2 steps. To adapt +the configuration, go to :menuselection:`Inventory --> Configuration --> Warehouses` and edit your +warehouse. .. image:: media/cross3.png - :align: center + :align: center -This modification will lead to the creation of a *Cross-Docking* route that can be found in *Inventory > Configuration > Routes*. +This modification will lead to the creation of a *Cross-Docking* route that can be found in +:menuselection:`Inventory --> Configuration --> Routes`. .. image:: media/cross4.png - :align: center + :align: center Configure products with Cross-Dock Route ========================================= @@ -36,39 +40,39 @@ Configure products with Cross-Dock Route Create the product that uses the *Cross-Dock Route* and then, in the inventory tab, select the routes *Buy* and *Cross-Dock*. Now, in the purchase tab, specify the vendor to who you buy the product and set a price for it. .. image:: media/cross5.png - :align: center + :align: center .. image:: media/cross6.png - :align: center + :align: center Once done, create a sale order for the product and confirm it. Odoo will automatically create two transfers which will be linked to the sale order. The first one is the transfer from the *Input Location* to the *Output Location*, corresponding to the move of the product in the *Cross-Dock* area. The second one is the delivery order from the *Output Location* to your *Customer Location. Both are in state *Waiting Another Operation* because we still need to order the product to our supplier. .. image:: media/cross7.png - :align: center + :align: center .. image:: media/cross8.png - :align: center + :align: center Now, go to the *Purchase* app. There, you will find the purchase order that has been automatically triggered by the system. Validate it and receive the products in the *Input Location*. .. image:: media/cross9.png - :align: center + :align: center .. image:: media/cross10.png - :align: center + :align: center When the products have been received from the supplier, you can go back to your initial sale order and validate the internal transfer from *Input* to *Output*. .. image:: media/cross11.png - :align: center + :align: center .. image:: media/cross12.png - :align: center + :align: center The delivery order is now ready to be processed and can be validated too. .. image:: media/cross13.png - :align: center + :align: center .. image:: media/cross14.png - :align: center + :align: center diff --git a/inventory/routes/concepts/inter_warehouse.rst b/inventory/routes/concepts/inter_warehouse.rst index 56cf561b8..b64f92494 100644 --- a/inventory/routes/concepts/inter_warehouse.rst +++ b/inventory/routes/concepts/inter_warehouse.rst @@ -18,9 +18,8 @@ warehouse** option. Please don't forget to **apply** your changes. :align: center .. tip:: - - This option should also be ticked if you wish to manage different - locations and routes in your warehouse. + This option should also be ticked if you wish to manage different + locations and routes in your warehouse. Creating a new warehouse ======================== @@ -37,11 +36,10 @@ characters maximum. :align: center .. tip:: - - please note that the **Short Name** is very important as it will - appear on your transfer orders and other warehouse documents. It might - be smart to use an understandable one (e.g.: WH/[first letters of - location]). + Please note that the **Short Name** is very important as it will + appear on your transfer orders and other warehouse documents. It might + be smart to use an understandable one (e.g.: WH/[first letters of + location]). If you go back to your dashboard, new operations will automatically have been generated for your new warehouse. @@ -110,7 +108,7 @@ It is also possible to manually transfer each product: 1. Via your dashboard, select the transfer order in the source location. .. image:: media/inter08.png - :align: center + :align: center 2. Select the right transfer order @@ -125,10 +123,9 @@ window you can manually indicate how much products you process :align: center .. tip:: - - If you decide to partially process the transfer order (e.g. a part of the - products can't be shipped yet due to an unexpected event), Odoo will - automatically ask if you wish to create a **backorder**. - Create a backorder if you expect to process the remaining products - later, do not create a backorder if you will not supply/receive the - remaining products. + If you decide to partially process the transfer order (e.g. a part of the + products can't be shipped yet due to an unexpected event), Odoo will + automatically ask if you wish to create a **backorder**. + Create a backorder if you expect to process the remaining products + later, do not create a backorder if you will not supply/receive the + remaining products. diff --git a/inventory/routes/concepts/procurement_rule.rst b/inventory/routes/concepts/procurement_rule.rst index ea7863be6..41a688b89 100644 --- a/inventory/routes/concepts/procurement_rule.rst +++ b/inventory/routes/concepts/procurement_rule.rst @@ -35,7 +35,7 @@ Procurement rules settings ========================== The procurement rules are set on the routes. In the inventory -application, go to Configuration > Routes. +application, go to :menuselection:`Configuration --> Routes`. In the Procurement rules section, click on Add an item. diff --git a/inventory/routes/concepts/stock_warehouses.rst b/inventory/routes/concepts/stock_warehouses.rst index cd3e13312..5c2d879eb 100644 --- a/inventory/routes/concepts/stock_warehouses.rst +++ b/inventory/routes/concepts/stock_warehouses.rst @@ -10,15 +10,15 @@ Set up virtual warehouses Let’s say you have two warehouses: Warehouse A and Warehouse B. Create a new warehouse, that will be a virtual one. It will allow you to take the stock from A or B. To do so, go to your inventory app settings and enable the multi-warehouses feature. Then, go to the warehouses menu and click on create. .. image:: media/ware1.png - :align: center + :align: center .. note:: - The *Storage Location* feature will be automatically enabled. Good news, because you will need it later in the process. + The *Storage Location* feature will be automatically enabled. Good news, because you will need it later in the process. Now, you have to make sure that the main stock locations of warehouse A and warehouse B are children locations of the main stock location of warehouse A + B. Go to the locations menu, and edit the main location of your two warehouses. Then, change their parent location to main location of warehouse A+B. .. image:: media/ware2.png - :align: center + :align: center Sell a product from the virtual warehouse ========================================== @@ -26,9 +26,9 @@ Sell a product from the virtual warehouse Let’s say you have two products, one stored in warehouse A and one stored in warehouse B. Now, you can create a new quotation for one of each product. Go to other information and choose Warehouse A+B in the shipping information. .. image:: media/ware3.png - :align: center + :align: center Once you have done it, you can convert it to a sales order. Then, a delivery order will be automatically generated, with a product reserved in warehouse A and one in warehouse B. .. image:: media/ware4.png - :align: center + :align: center diff --git a/inventory/routes/costing.rst b/inventory/routes/costing.rst deleted file mode 100644 index c7327b5d0..000000000 --- a/inventory/routes/costing.rst +++ /dev/null @@ -1,8 +0,0 @@ -=============== -Product Costing -=============== - -.. toctree:: - :titlesonly: - - costing/landed_costs \ No newline at end of file diff --git a/inventory/routes/costing/landed_costs.rst b/inventory/routes/costing/landed_costs.rst deleted file mode 100644 index 1ced3fe7d..000000000 --- a/inventory/routes/costing/landed_costs.rst +++ /dev/null @@ -1,38 +0,0 @@ -============================================================================ -How to integrate additional costs in the cost of the product? (landed costs) -============================================================================ - -Overview -======== - -The landed cost feature in Odoo allows to include additional costs (shipment, -insurance, customs duties, etc.) into the cost of the product. - -.. note:: - Landed costs can only be applied to products with a FIFO costing method and - an automated inventory valuation (which requires the accounting application - to be installed). - -Configuration -============= - - -First, you need to activate the landed costs feature in -:menuselection:`Inventory --> Configuration --> Settings`. - -.. image:: media/landed_costs_v12_01.png - :align: center - -Add costs to products -====================== - -Go in :menuselection:`Inventory --> Operations --> Landed Costs` and click on the -**Create** button. You then have to select the transfers on which you want to -attribute additional costs and the costs lines you want to add up. Once it's -done, click on the **Compute** button to see how the costs lines will be split -accross your transfers lines. - -.. image:: media/landed_costs_v12_02.png - :align: center - -To confirm, click on the **Validate** button. diff --git a/inventory/routes/costing/media/landed_costs_v12_01.png b/inventory/routes/costing/media/landed_costs_v12_01.png deleted file mode 100644 index 63435df40..000000000 Binary files a/inventory/routes/costing/media/landed_costs_v12_01.png and /dev/null differ diff --git a/inventory/routes/costing/media/landed_costs_v12_02.png b/inventory/routes/costing/media/landed_costs_v12_02.png deleted file mode 100644 index b1932bc96..000000000 Binary files a/inventory/routes/costing/media/landed_costs_v12_02.png and /dev/null differ diff --git a/inventory/routes/strategies/putaway.rst b/inventory/routes/strategies/putaway.rst index 059f2b649..9456fa8b4 100644 --- a/inventory/routes/strategies/putaway.rst +++ b/inventory/routes/strategies/putaway.rst @@ -9,10 +9,11 @@ If, for example, a warehouse contains volatile substances, it is important to ma Configuration ============== -In the *Inventory* app, go to *Configuration > Settings* and activate the *Multi-Step Routes*. By doing so, the *Storage Locations* will be automatically activated. +In the *Inventory* app, go to :menuselection:`Configuration --> Settings` and activate the +*Multi-Step Routes*. By doing so, the *Storage Locations* will be automatically activated. .. image:: media/putaw1.png - :align: center + :align: center Setting up a Putaway Rule ========================== @@ -21,21 +22,24 @@ In some cases, like for a retail shop storing vegetables and fruits, we have to Let’s suppose there are one warehouse location *WH/Stock* and two sub-locations *WH/Stock/Vegatable* and *WH/Stock/Fruits*. -To manage those locations, we will create putaway rules. To do so, open the *Inventory* app and go to *Configuration > Putaway Rules*. Then, click on create and configure your first rule indicating the main location the product will enter before being redirected to the right location. +To manage those locations, we will create putaway rules. To do so, open the *Inventory* app and go +to :menuselection:`Configuration --> Putaway Rules`. Then, click on create and configure your first +rule indicating the main location the product will enter before being redirected to the right +location. .. note:: - The putaway rules can be defined either per product or per product category. + The putaway rules can be defined either per product or per product category. .. image:: media/putaw2.png - :align: center - + :align: center + Now, if I purchase apples and carrots to my supplier, they will be grouped in the same receipt but redirected to the right location automatically, thanks to putaway rules. This information is available from *Inventory Report*, under the reporting menu. .. image:: media/putaw3.png - :align: center + :align: center .. image:: media/putaw4.png - :align: center + :align: center .. image:: media/putaw5.png - :align: center + :align: center diff --git a/inventory/routes/strategies/removal.rst b/inventory/routes/strategies/removal.rst index b5a909df5..fa4d1cb26 100644 --- a/inventory/routes/strategies/removal.rst +++ b/inventory/routes/strategies/removal.rst @@ -189,5 +189,4 @@ removal dates. .. seealso:: - * :doc:`../../management/reporting/valuation_methods_continental` - * :doc:`../../management/reporting/valuation_methods_anglo_saxon` + * :doc:`../../management/reporting/inventory_valuation_config` diff --git a/inventory/shipping/setup/ups_credentials.rst b/inventory/shipping/setup/ups_credentials.rst index dd913e287..491faba3c 100644 --- a/inventory/shipping/setup/ups_credentials.rst +++ b/inventory/shipping/setup/ups_credentials.rst @@ -36,9 +36,7 @@ complete the registration process. If you already have a UPS account, you can add it to your online profile as follows: -1. Log in to the UPS.com site -(`http://www.ups.com `__) using your UPS.com User -ID and Password. +1. Log in to the `UPS.com website `_) using your UPS.com User ID and Password. 2. Click the **My UPS** tab. @@ -59,16 +57,11 @@ Get an Access Key After you have added your UPS account number to your user profile you can request an Access Key from UPS using the steps below: -1. Go to the **UPS Developer Kit** web page -`https://www.ups.com/upsdeveloperkit?loc=en\_US `__ - -2. Log into UPS.com with your user ID and password - -3. Click on the link **Request an access key**. - -4. Verify your contact information - -6. Click the **Request Access Key** button. +#. Go to the `UPS Developer Kit web page `_ +#. Log into UPS.com with your user ID and password +#. Click on the link **Request an access key**. +#. Verify your contact information +#. Click the **Request Access Key** button. The **Access Key** will be provided to you on the web page, and an email with the Access Key will be sent to the email address of diff --git a/iot/config/flash_sdcard.rst b/iot/config/flash_sdcard.rst index 86ac94b9c..d9bf1c152 100644 --- a/iot/config/flash_sdcard.rst +++ b/iot/config/flash_sdcard.rst @@ -9,7 +9,7 @@ Updating your SD Card with Etcher ================================= Go to Balena’s website and download -`Etcher `__, It’s a free and +`Etcher `__, It’s a free and open-source utility used for burning image files. Install and launch it. Now, download the latest image `here `__, and extract it from the zip file. Then, open *Etcher* and select the image. diff --git a/iot/config/iot_notfound.rst b/iot/config/iot_notfound.rst index 21dbe72a5..5978bd9e6 100644 --- a/iot/config/iot_notfound.rst +++ b/iot/config/iot_notfound.rst @@ -20,6 +20,5 @@ If your IoT Box image is from an earlier version, then you will have to reflash the SD card of your IoT Box to update the image (the latest image can be found `here `__). -You can find the documentation about SD card flashing here (`here `__). - - +.. seealso:: + - :doc:`flash_sdcard` diff --git a/iot/config/media/pos02.png b/iot/config/media/pos02.png index 37dabc3d5..abb964a6c 100644 Binary files a/iot/config/media/pos02.png and b/iot/config/media/pos02.png differ diff --git a/iot/config/pos.rst b/iot/config/pos.rst index ff439a597..18080e139 100644 --- a/iot/config/pos.rst +++ b/iot/config/pos.rst @@ -36,7 +36,7 @@ Set Up To connect hardware to the PoS, the first step is to connect an IoT Box to your database. For this, follow this -`documentation `__. +:doc:`documentation `. .. image:: media/pos02.png :align: center @@ -71,7 +71,7 @@ other hardware might work as well. connection is available on boot. Once it's done, you can connect the IoT Box to your PoS. For this, go in -Point of Sale > Configuration > PoS, tick the box "IoT Box" and select +:menuselection:`Point of Sale --> Configuration --> PoS`, tick the box "IoT Box" and select the IoT Box you want to connect with. Save the changes. Set up is done, you can launch a new PoS Session. diff --git a/iot/devices/camera.rst b/iot/devices/camera.rst index 5d8b92332..4235614a4 100644 --- a/iot/devices/camera.rst +++ b/iot/devices/camera.rst @@ -15,7 +15,7 @@ To connect the camera to the *IoT Box*, simply combine the two by cable. .. note:: - In some cases, a serial to USB adapter could be needed. + In some cases, a serial to USB adapter could be needed. If your camera is a `*supported one* `__, there is no need to diff --git a/iot/devices/footswitch.rst b/iot/devices/footswitch.rst index d80a86748..70e48b49a 100644 --- a/iot/devices/footswitch.rst +++ b/iot/devices/footswitch.rst @@ -16,7 +16,7 @@ Connecting the footswitch to the *IoT Box* is easy, you just have to combine the two by cable. .. note:: - In some cases, a serial to USB adapter may be needed. + In some cases, a serial to USB adapter may be needed. If your footswitch is a `supported one `__, there is no need to @@ -49,5 +49,5 @@ order matters! In the picture above, using the footswitch will, for example, automatically skip the current part of the process you work on. .. note:: - When you are on the work order screen, a status button indicates if you - are correctly connected to the footswitch. \ No newline at end of file + When you are on the work order screen, a status button indicates if you + are correctly connected to the footswitch. \ No newline at end of file diff --git a/manufacturing/management/bill_configuration.rst b/manufacturing/management/bill_configuration.rst index 20b82a128..ef6178136 100644 --- a/manufacturing/management/bill_configuration.rst +++ b/manufacturing/management/bill_configuration.rst @@ -22,9 +22,8 @@ other words, you choose to realize your manufacturing process in one step and do not track the steps the product goes through. Before creating your *BoM*, you have to create the product using the -*BoM* and, at least, one of the components. Go to the *Master Data* -menu > *Products* and create both the finished product and the -component. +*BoM* and, at least, one of the components. Go to the :menuselection:`Master Data menu --> Products` +and create both the finished product and the component. Once done, go to the *Bills of Materials* menu under *Master Data*. Now, create it. Choose the product from the dropdown menu and add your diff --git a/manufacturing/management/media/subcontract_02.png b/manufacturing/management/media/subcontract_02.png deleted file mode 100644 index 40441aad0..000000000 Binary files a/manufacturing/management/media/subcontract_02.png and /dev/null differ diff --git a/manufacturing/management/media/subcontract_06.png b/manufacturing/management/media/subcontract_06.png deleted file mode 100644 index 5f3fd32ea..000000000 Binary files a/manufacturing/management/media/subcontract_06.png and /dev/null differ diff --git a/manufacturing/management/media/subcontract_01.png b/manufacturing/management/media/subcontracting_01.png similarity index 100% rename from manufacturing/management/media/subcontract_01.png rename to manufacturing/management/media/subcontracting_01.png diff --git a/manufacturing/management/media/subcontract_03.png b/manufacturing/management/media/subcontracting_02.png similarity index 100% rename from manufacturing/management/media/subcontract_03.png rename to manufacturing/management/media/subcontracting_02.png diff --git a/manufacturing/management/media/subcontract_04.png b/manufacturing/management/media/subcontracting_03.png similarity index 100% rename from manufacturing/management/media/subcontract_04.png rename to manufacturing/management/media/subcontracting_03.png diff --git a/manufacturing/management/media/subcontract_05.png b/manufacturing/management/media/subcontracting_04.png similarity index 100% rename from manufacturing/management/media/subcontract_05.png rename to manufacturing/management/media/subcontracting_04.png diff --git a/manufacturing/management/media/subcontracting_05.png b/manufacturing/management/media/subcontracting_05.png new file mode 100644 index 000000000..ca9149df8 Binary files /dev/null and b/manufacturing/management/media/subcontracting_05.png differ diff --git a/manufacturing/management/media/subcontracting_06.png b/manufacturing/management/media/subcontracting_06.png new file mode 100644 index 000000000..ce1106a45 Binary files /dev/null and b/manufacturing/management/media/subcontracting_06.png differ diff --git a/manufacturing/management/media/subcontracting_07.png b/manufacturing/management/media/subcontracting_07.png new file mode 100644 index 000000000..453863fcf Binary files /dev/null and b/manufacturing/management/media/subcontracting_07.png differ diff --git a/manufacturing/management/media/subcontracting_08.png b/manufacturing/management/media/subcontracting_08.png new file mode 100644 index 000000000..daec4f6ac Binary files /dev/null and b/manufacturing/management/media/subcontracting_08.png differ diff --git a/manufacturing/management/media/subcontracting_09.png b/manufacturing/management/media/subcontracting_09.png new file mode 100644 index 000000000..a4d4c1cd9 Binary files /dev/null and b/manufacturing/management/media/subcontracting_09.png differ diff --git a/manufacturing/management/media/subcontract_07.png b/manufacturing/management/media/subcontracting_10.png similarity index 100% rename from manufacturing/management/media/subcontract_07.png rename to manufacturing/management/media/subcontracting_10.png diff --git a/manufacturing/management/media/subcontract_08.png b/manufacturing/management/media/subcontracting_11.png similarity index 100% rename from manufacturing/management/media/subcontract_08.png rename to manufacturing/management/media/subcontracting_11.png diff --git a/manufacturing/management/plan_work_orders.rst b/manufacturing/management/plan_work_orders.rst index d011bdd18..a8b2eee39 100644 --- a/manufacturing/management/plan_work_orders.rst +++ b/manufacturing/management/plan_work_orders.rst @@ -29,8 +29,8 @@ your product and add a *Planned Start Date*. :align: center .. note:: - The “Deadline Start” field is informative. It shows you until when you - can launch the manufacturing order to fulfill the initial demand. + The “Deadline Start” field is informative. It shows you until when you + can launch the manufacturing order to fulfill the initial demand. Mark your *Manufacturing Order* as todo and plan it. By going to the *Planning* menu, you can access to the scheduled orders. Here is the @@ -40,10 +40,10 @@ one we just created: :align: center .. note:: - If you plan two work orders at the same hour, the second one will be - scheduled after the first one if the jobs need to be done at the same - work center. The start date will, then, be automatically updated - considering the first free slot on the work center. + If you plan two work orders at the same hour, the second one will be + scheduled after the first one if the jobs need to be done at the same + work center. The start date will, then, be automatically updated + considering the first free slot on the work center. If you overrun the planned date and begin the job later, you will have a track of it in the *Time Tracking* tab of your work order. diff --git a/manufacturing/management/subcontracting.rst b/manufacturing/management/subcontracting.rst index 591fe192c..2555caa03 100644 --- a/manufacturing/management/subcontracting.rst +++ b/manufacturing/management/subcontracting.rst @@ -2,32 +2,32 @@ Subcontract the manufacturing ============================= -Some businesses subcontract the production of some finished products -through subcontractors. This can be easily managed through Odoo. +Some businesses subcontract the production of finished products through +subcontractors. This can be easily managed through Odoo. Configuration ============= -Go to the *Manufacturing app > Configuration > Settings* and tick the +Go to the :menuselection:`Manufacturing app --> Configuration --> Settings` and tick the box *Subcontracting*. -.. image:: media/subcontract_01.png +.. image:: media/subcontracting_01.png :align: center -You can now define subcontracted *Bill of Materials*. Therefore, you need to go to *Manufacturing > Master Data > Bill of Materials* and hit *Create*. In this *BoM*, list the components which will be used by the subcontractor to manufacture the subcontracted finished product. Specify that the *BoM* type is *Subcontracting*. +You can now define subcontracted *Bill of Materials*. Therefore, you need to go to +:menuselection:`Manufacturing --> Master Data --> Bill of Materials` and hit *Create*. In this +*BoM*, list the components which will be used by the subcontractor to manufacture the subcontracted +finished product. Specify that the *BoM* type is *Subcontracting* and define one or +several subcontractors who will provide you the product. -.. image:: media/subcontract_03.png +.. image:: media/subcontracting_02.png :align: center -You can also define subcontractors on the BoM. - -- If no subcontractor is set, the BoM can be used by any subcontractor - -- If some are set, the BoM can only be used for those subcontractors - -.. image:: media/subcontract_04.png +.. image:: media/subcontracting_03.png :align: center +And... the configuration part is already done! + Receive or buy a subcontracted product ====================================== @@ -44,7 +44,7 @@ unit price should be the cost you are paying to the subcontractor for the subcontracting (thus, it’s not necessarily the total cost of the subcontracted product). -.. image:: media/subcontract_05.png +.. image:: media/subcontracting_04.png :align: center The validation of the purchase order automatically creates the receipt. @@ -69,32 +69,55 @@ valued in your stock. For option B, you can simply create the receipt manually with a partner of type subcontractor defined on it. +Receive or buy a subcontracted product with tracked components +============================================================== + +In case the subcontracted product you receive from your subcontractor +contains tracked components, you will need to specify the *serial/lot +numbers* of the components in question for traceability. This operation +is included in the receipt of the subcontracted product. + +On the receipt, you see a *Record Components* button appearing when +necessary. If you click on it, a *Produce* wizard opens in which you +will have to enter the *serial/lot numbers* of the components, and the +finished product if it is also tracked, like in the below example. + +.. image:: media/subcontracting_05.png + :align: center + +.. image:: media/subcontracting_06.png + :align: center + +Once this information has been entered, you will see a new icon on the +receipt stock move, which will allow you to find back the components +which are part of the finished product. + +.. image:: media/subcontracting_07.png + :align: center + Resupply the subcontractor with the components ============================================== There are 3 ways to manage the resupply of your subcontractor with the components: -- **Manually**: You create a delivery order in which you set the - subcontractor as a partner and you choose the components to - deliver. +- **Manually**: You create a delivery order in which you set the subcontractor as a partner and you choose the components to deliver. -.. image:: media/subcontract_06.png +.. image:: media/subcontracting_08.png :align: center -- **With reordering rules**: You can define a *reordering rule* - on the *Subcontracting location* to ensure that they are always - enough components sent to your subcontractors. When the - reordering rule is triggered, a delivery order is created for the - product is automatically created. +.. note:: + You therefore need to activate *Multi-locations* in the inventory settings. -.. image:: media/subcontract_07.png +.. image:: media/subcontracting_09.png :align: center -- **On order**: You can also deliver the components to your - subcontractors each time you order a subcontracted product. For - this, you need to tick the route *Resupply Subcontractor on - Order* on the wanted components. +- **With reordering rules**: You can define a *reordering rule* on the *Subcontracting location* to ensure that they are always enough components sent to your subcontractors. When the reordering rule is triggered, a delivery order is created for the product is automatically created. -.. image:: media/subcontract_08.png +.. image:: media/subcontracting_10.png :align: center + +- **On order**: You can also deliver the components to your subcontractors each time you order a subcontracted product. For this, you need to tick the route *Resupply Subcontractor on Order* on the wanted components. + +.. image:: media/subcontracting_11.png + :align: center \ No newline at end of file diff --git a/manufacturing/management/use_mps.rst b/manufacturing/management/use_mps.rst index 0e3eb0ace..3fe1aaf89 100644 --- a/manufacturing/management/use_mps.rst +++ b/manufacturing/management/use_mps.rst @@ -8,8 +8,8 @@ production based on your demand forecast. Configuration ============= -Go to the *Manufacturing app > Configuration > Settings* and activate -the Master Production Schedule feature before hitting save. +Go to the :menuselection:`Manufacturing app --> Configuration --> Settings` and activate the Master +Production Schedule feature before hitting save. .. image:: media/use_mps_01.png :align: center @@ -17,7 +17,7 @@ the Master Production Schedule feature before hitting save. .. tip:: In the manufacturing settings, you can define the time range of your MPS (month/week/day) and the number of periods you want to display. -Now, go in *Planning > Master Production Schedule* and click on add a +Now, go in :menuselection:`Planning --> Master Production Schedule` and click on add a product. You can now define your safety stock target (= the stock you want to have on hand at the end of the period) and the minimum and maximum quantities to replenish. diff --git a/mobile/firebase.rst b/mobile/firebase.rst index 6b885e497..73bd3596b 100644 --- a/mobile/firebase.rst +++ b/mobile/firebase.rst @@ -10,5 +10,5 @@ Push Notifications As of Odoo 12.0, 13.0 or above, there is no more complex configuration to enable push notifications in the mobile app. -Simply go to *Settings* > *General Settings* > *Odoo Cloud Notification (OCN)* +Simply go to :menuselection:`Settings --> General Settings --> Odoo Cloud Notification (OCN)` and make sure that **Push Notifications** is checked. diff --git a/odoo_sh/advanced/frequent_technical_questions.rst b/odoo_sh/advanced/frequent_technical_questions.rst index 2436f225e..9b30cb40b 100644 --- a/odoo_sh/advanced/frequent_technical_questions.rst +++ b/odoo_sh/advanced/frequent_technical_questions.rst @@ -32,14 +32,17 @@ We advise that: cause side-effects if they are started more often than expected. -Can you install `pycups `_ or some similar library linked to `CUPS `_ ? --------------------------------------------------------------------------------------------------------------------------------- +Can you install ``pycups`` or some similar library linked to ``CUPS`` ? +----------------------------------------------------------------------- Several community apps for Odoo list ``pycups`` as required dependency. -- ``pycups`` is a set of Python bindings for the libcups library. They are meant to integrate your computer with a local printing server. -- CUPS is a printing server meant to be used for printers on the same local network as the Odoo server. +- `pycups `_ is a set of Python bindings for the libcups library. + They are meant to integrate your computer with a local printing server. +- `CUPS `_ is a printing server meant to be used for printers on the same + local network as the Odoo server. We consider adding new system packages as long as they are indeed used. -Regarding ``pycups``, you won't be able to configure a printer in the local network of your Odoo.sh server. +Regarding ``pycups``, you won't be able to configure a printer in the local network of your Odoo.sh +server. diff --git a/odoo_sh/advanced/upgrade_your_database.rst b/odoo_sh/advanced/upgrade_your_database.rst index cfdb4e6fe..9c51752c6 100644 --- a/odoo_sh/advanced/upgrade_your_database.rst +++ b/odoo_sh/advanced/upgrade_your_database.rst @@ -6,20 +6,22 @@ Upgrade your database .. _odoosh-advanced-upgrade_your_database: -1. Download and Upload your database ------------------------------------- +Download and Upload your database +================================= Download a dump of your database (from the :ref:`Builds view `), choose the exact copy and without filestore options. Upload the .sql.gz dump on https://upgrade.odoo.com/database/upload and select the Testing Purpose. If you have custom code, you can choose to have it upgraded by us, or do it yourself. Once it's processed, you'll get a dump of the database in return. -.. Warning:: +.. warning:: + Do *not* upload *backups* of your production database (found in the Backups tab of the production branch) as these + are incompatible with the Upgrade platform - they contain your complete sources, etc. that are not needed for the + upgrade. Make sure to download a **Dump** instead - either through the Backups tab using the *Download Dump* button + or through the Builds page by using the *Download Dump* entry of the contextual menu of your latest production build. - Do *not* upload *backups* of your production database (found in the Backups tab of the production branch) as these are incompatible with the Upgrade platform - they contain your complete sources, etc. that are not needed for the upgrade. Make sure to download a **Dump** instead - either through the Backups tab using the *Download Dump* button or through the Builds page by using the *Download Dump* entry of the contextual menu of your latest production build. - -2. Test your upgraded database ------------------------------- +Test your upgraded database +=========================== Create a staging branch that will run the upgraded database. Either make sure your production branch's code is compatible between the two Odoo versions and fork your production branch, or make a new staging branch containing @@ -31,8 +33,8 @@ change the version of Odoo's source code to the corresponding version for the bu Test the upgraded database and make sure everything runs as it's supposed to. -3. Replace your existing production database --------------------------------------------- +Replace your existing production database +========================================= Once you've tested everything and you're satisfied, start the process over to get an up-to-date upgraded dump: diff --git a/odoo_sh/getting_started/branches.rst b/odoo_sh/getting_started/branches.rst index 0b7e0e9fd..97138f784 100644 --- a/odoo_sh/getting_started/branches.rst +++ b/odoo_sh/getting_started/branches.rst @@ -28,7 +28,7 @@ You can change the stage of a branch by drag and dropping it on the stage sectio Production ---------- -This is the branch holding the code on which your production database run. +This is the branch holding the code on which your production database runs. There can be only one production branch. When you push a new commit in this branch, @@ -52,33 +52,32 @@ the database is roll-backed as it was before the update. You still have access to the log of the failed update, so you can troubleshoot it. The demo data is not loaded, as it is not meant to be used in a production database. -The unit tests are not performed, as it would increase the unavailabity time of the production database during the updates. +The unit tests are not performed, as it would increase the unavailability time of the production +database during the updates. Partners using trial projects should be aware their production branch, along with all the staging branches, will automatically be set back to the development stage after 30 days. Staging ------- -Staging branches are meant to test your new features using the production data. +Staging branches are meant to test your new features using the production data without compromising +the actual production database with test records. They will create databases that are neutralized +duplicates of the production database. -Pushing a new commit in one of these branches will either -* start a new server, using a duplicate of the production database and the new revision of the branch -* or update the previous database running on the branch, -depending on the push behaviour configured in the :ref:`branch's settings `. +The neutralization includes: -You can therefore test your latest features using the production data without compromising the actual -production database with test records. +* Disabling scheduled actions. If you want to test them, you can trigger their action manually or + re-enable them. Be aware that the platform will trigger them less often if no one is using the + database in order to save up resources. +* Disabling outgoing emails by intercepting them with a mailcatcher. An + :ref:`interface to view ` the emails sent by your + database is provided. That way, you do not have to worry about sending test emails to your contacts. +* Setting payment acquirers and shipping providers in test mode. +* Disabling IAP services -The outgoing emails are not sent: They are intercepted by the mailcatcher, -which provides an interface to preview the emails sent by your database. -That way, you do not have to worry about sending test emails to your contacts. - -Scheduled actions are disabled. If you want to test them, you have to enable them or trigger their action manually. -Be careful though: If these actions perform changes on third-party services (FTP servers, email servers, ...) -used by your production database as well, you might cause unwanted changes in your production. - -The latest database will be kept alive indefinitely, older ones may get garbage collected automatically. -If you make configuration changes or view changes in these branches, make sure to document them or write them directly +The latest database will be kept alive indefinitely, older ones from the same branch may get garbage collected +to make room for new ones. It will be valid for 3 months, after which you will be expected to rebuild the branch. +If you make configuration or view changes in these databases, make sure to document them or write them directly in the modules of the branch, using XML data files overriding the default configuration or views. The unit tests are not performed as, in Odoo, they currently rely on the demo data, which is not loaded in the @@ -89,18 +88,20 @@ Odoo.sh will then consider running the tests on staging databases. Development ----------- Development branches create new databases using the demo data to run the unit tests. -The modules installed and tested by default are the ones included in your branches. -You can change this list of modules to install in your projects settings. +The installed modules are the ones included in your branches. You can change this list of modules +to install in your :ref:`project Settings `. When you push a new commit in one of these branches, a new server is started, with a database created from scratch and the new revision of the branch. -The demo data is loaded, and the unit tests are performed. -This verifies your changes do not break any of the features tested by them. +The demo data is loaded, and the unit tests are performed by default. +This verifies your changes do not break any of the features tested by them. If you wish, you can +disable the tests in the :ref:`branch's settings `. -Similar to staging branches, the emails are not sent: They are intercepted by the mailcatcher. +Similar to staging branches, the emails are not sent but are intercepted by a mailcatcher and +scheduled actions are not triggered as often is the database is not in use. The databases created for development branches are meant to live around three days. -After that, they can be garbage collected automatically. +After that, they can be garbage collected to make room for new databases. .. _odoosh-gettingstarted-branches-mergingbranches: @@ -163,6 +164,8 @@ It can provide information about the ongoing operation on the database (installa or its result (tests feedback, successful backup import, ...). When an operation is successful, you can access the database thanks to the *connect* button. +.. _odoosh-gettingstarted-branches-tabs-mails: + Mails ----- This tab contains the mail catcher. It displays an overview of the emails sent by your database. @@ -212,7 +215,8 @@ Different logs are available: * install.log: The logs of the database installation. In a development branch, the logs of the tests are included. * pip.log: The logs of the Python dependencies installation. * odoo.log: The logs of the running server. -* update.log: The logs of the database updates. This is available only for the production database. +* update.log: The logs of the database updates. +* pg_long_queries.log: The logs of psql queries that take an unusual amount of time. If new lines are added in the logs, they will be displayed automatically. If you scroll to the bottom, the browser will scroll automatically each time a new line is added. @@ -259,30 +263,90 @@ Settings -------- Here you can find a couple of settings that only apply to the currently selected branch. -.. image:: ./media/interface-branches-settings.png +.. image:: ./media/interface-branches-settings.jpg :align: center -**Mute Branch** +**Behaviour upon new commit** -You have the possibility to mute a branch, so that new commits won't trigger builds on Odoo.sh. You can activate this -should you have branches that are used for other purposes than on Odoo.sh. By default, when creating a project from an -existing repository, all branches except the default branch are muted. +For development and staging branches, you can change the branch's behavior upon receiving a new +commit. By default, a development branch will create a new build and a staging branch will update +the previous build (see the :ref:`Production Stage `). This is especially useful +should the feature you're working on require a particular setup or configuration, to avoid having +to manually set it up again on every commit. If you choose new build for a staging branch, it will +make a fresh copy from the production build every time a commit is pushed. A branch that is put +back from staging to development will automatically be set to 'Do nothing'. -**Push Behavior** +**Test suite** -You can change the branch's behavior upon receiving a new commit. By default, it will create a new build, but you can -choose to have it update your previous build same as for your production branch (see the -:ref:`Production Stage `). This is especially useful should the feature you're working on require a -particular setup or configuration, to avoid having to manually set it up again on every commit. +For development branches, you can choose to enable or disable the test suite. It's enabled by default. **Odoo Version** For development branches only, you can change the version of Odoo, should you want to test upgraded code or develop features while your production database is in the process of being upgraded to a newer version. -The production branch has no settings. It can't be muted, will always update the existing production database and will -run on the project's version of Odoo. If you want to upgrade your production to a newer version please refer to the -:ref:`Upgrade section `. +In addition, for each version you have two options regarding the code update. + +* You can choose to benefit from the latest bug, security and performance fixes automatically. The + sources of your Odoo server will be updated weekly. This is the 'Latest' option. +* You can choose to pin the Odoo sources to a specific revision by selecting them from a list of + dates. Revisions will expire after 3 months. You will be notified by mail when the expiration + date approaches and if you don't take action afterwards, you will automatically be set to the + latest revision. + +**Custom domains** + +Here you can configure additional domains for the selected branch. It's possible to add other +*.odoo.com* domains or your own custom domains. For the latter you have to: + +* own or purchase the domain name, +* add the domain name in this list, +* in your registrar's domain name manager, + configure the domain name with a ``CNAME`` record set to your production database domain name. + +For instance, to associate *www.mycompany.com* to your database *mycompany.odoo.com*: + +* in Odoo.sh, add *www.mycompany.com* in the custom domains of your project settings, +* in your domain name manager (e.g. *godaddy.com*, *gandi.net*, *ovh.com*), + configure *www.mycompany.com* with a ``CNAME`` record with as value *mycompany.odoo.com*. + +Bare domains (e.g. *mycompany.com*) are not accepted: + +* they can only be configured using ``A`` records, +* ``A`` records only accept IP addresses as value, +* the IP address of your database can change, following an upgrade, a hardware failure or + your wish to host your database in another country or continent. + +Therefore, bare domains could suddenly no longer work because of this change of IP address. + +In addition, if you would like both *mycompany.com* and *www.mycompany.com* to work with your database, +having the first redirecting to the second is amongst the +`SEO best practices `_ +(See *Provide one version of a URL to reach a document*) +in order to have one dominant URL. You can therefore just configure *mycompany.com* to redirect to *www.mycompany.com*. +Most domain managers have the feature to configure this redirection. This is commonly called a web redirection. + +**HTTPS/SSL** + +If the redirection is correctly set up, the platform will automatically generate an SSL certificate +with `Let's Encrypt `_ within the hour and your domain will be +accessible through HTTPS. + +While it is currently not possible to configure your own SSL certificates on the Odoo.sh platform +we are considering the feature if there is enough demand. + + +**SPF and DKIM compliance** + +In case the domain of your users email addresses use SPF (Sender Policy Framework) or DKIM +(DomainKeys Identified Mail), don't forget to authorize Odoo as a sending host in your domain name +settings to increase the deliverability of your outgoing emails. +The configuration steps are explained in the :ref:`Discuss app documentation `. + +.. Warning:: + Forgetting to configure your SPF or DKIM to authorize Odoo as a sending host can lead to the + delivery of your emails as spam in your contacts inbox. + Shell commands ============== diff --git a/odoo_sh/getting_started/first_module.rst b/odoo_sh/getting_started/first_module.rst index 4f4b651e8..073486a0a 100644 --- a/odoo_sh/getting_started/first_module.rst +++ b/odoo_sh/getting_started/first_module.rst @@ -89,7 +89,8 @@ From the Odoo.sh editor, in a terminal: $ odoo-bin scaffold my_module ~/src/user/ -Or, from your computer, if you have an `installation of Odoo `_: +Or, from your computer, if you have an `installation of Odoo +`_: .. code-block:: bash diff --git a/odoo_sh/getting_started/media/interface-branches-settings.jpg b/odoo_sh/getting_started/media/interface-branches-settings.jpg new file mode 100644 index 000000000..948a508fa Binary files /dev/null and b/odoo_sh/getting_started/media/interface-branches-settings.jpg differ diff --git a/odoo_sh/getting_started/media/interface-branches-settings.png b/odoo_sh/getting_started/media/interface-branches-settings.png deleted file mode 100644 index 1c647ee46..000000000 Binary files a/odoo_sh/getting_started/media/interface-branches-settings.png and /dev/null differ diff --git a/odoo_sh/getting_started/media/interface-settings-customdomains.png b/odoo_sh/getting_started/media/interface-settings-customdomains.png deleted file mode 100644 index e0f3499b4..000000000 Binary files a/odoo_sh/getting_started/media/interface-settings-customdomains.png and /dev/null differ diff --git a/odoo_sh/getting_started/media/interface-settings-source-code.png b/odoo_sh/getting_started/media/interface-settings-source-code.png deleted file mode 100644 index a16405be9..000000000 Binary files a/odoo_sh/getting_started/media/interface-settings-source-code.png and /dev/null differ diff --git a/odoo_sh/getting_started/media/interface-settings-staging-branches.png b/odoo_sh/getting_started/media/interface-settings-staging-branches.png index ca18ba11c..378c8eefd 100644 Binary files a/odoo_sh/getting_started/media/interface-settings-staging-branches.png and b/odoo_sh/getting_started/media/interface-settings-staging-branches.png differ diff --git a/odoo_sh/getting_started/media/interface-settings-workers.png b/odoo_sh/getting_started/media/interface-settings-workers.png index f15fcf9df..c5cb00a70 100644 Binary files a/odoo_sh/getting_started/media/interface-settings-workers.png and b/odoo_sh/getting_started/media/interface-settings-workers.png differ diff --git a/odoo_sh/getting_started/settings.rst b/odoo_sh/getting_started/settings.rst index cf231824a..066146e46 100644 --- a/odoo_sh/getting_started/settings.rst +++ b/odoo_sh/getting_started/settings.rst @@ -7,7 +7,7 @@ Settings Overview ======== -The settings allows you to manage the configuration of your project. +The settings allow you to manage the configuration of your project. .. image:: ./media/interface-settings.png :align: center @@ -56,7 +56,7 @@ In addition, they cannot use the webshell nor have access to the server logs. +---------------------+-----------------+-----------+-----------+ | | Logs | X | X | +---------------------+-----------------+-----------+-----------+ -| | Shell | X | X | +| | Shell/SSH | X | X | +---------------------+-----------------+-----------+-----------+ | | Mails | X | X | +---------------------+-----------------+-----------+-----------+ @@ -68,7 +68,7 @@ In addition, they cannot use the webshell nor have access to the server logs. +---------------------+-----------------+-----------+-----------+ | | Logs | | X | +---------------------+-----------------+-----------+-----------+ -| | Shell | | X | +| | Shell/SSH | | X | +---------------------+-----------------+-----------+-----------+ | | Mails | | X | +---------------------+-----------------+-----------+-----------+ @@ -95,6 +95,8 @@ In addition, visitors have access to the logs, shell and mails of your developme Production and staging builds are excluded, visitors can only see their status. +.. _odoosh-gettingstarted-settings-modules-installation: + Modules installation ==================== @@ -110,64 +112,14 @@ Choose the modules to install automatically for your development builds. * *Install a list of modules* will install the modules specified in the input just below this option. The names are the technical name of the modules, and they must be comma-separated. -All installed modules will be tested. -The tests in the standard Odoo modules suite can take up to 1 hour. +If the tests are enabled, the standard Odoo modules suite can take up to 1 hour. This setting applies to development builds only. Staging builds duplicate the production build and the production build only installs base. Custom domains ============== -Configure your own domain name. - -.. image:: ./media/interface-settings-customdomains.png - :align: center - -If you would like to access your production database using your own domain name, you have to: - -* own or purchase the domain name, -* add the domain name in this list, -* in your registrar's domain name manager, - configure the domain name with a ``CNAME`` record set to your production database domain name. - -For instance, to associate *www.mycompany.com* to your database *mycompany.odoo.com*: - -* in Odoo.sh, add *www.mycompany.com* in the custom domains of your project settings, -* in your domain name manager (e.g. *godaddy.com*, *gandi.net*, *ovh.com*), - configure *www.mycompany.com* with a ``CNAME`` record with as value *mycompany.odoo.com*. - -Bare domains (e.g. *mycompany.com*) are not accepted: - -* they can only be configured using ``A`` records, -* ``A`` records only accept IP addresses as value, -* the IP address of your database can change, following an upgrade, a hardware failure or - your wish to host your database in another country or continent. - -Therefore, bare domains could suddenly no longer work because of this change of IP address. - -In addition, if you would like both *mycompany.com* and *www.mycompany.com* to work with your database, -having the first redirecting to the second is amongst the -`SEO best practices `_ -(See *Provide one version of a URL to reach a document*) -in order to have one dominant URL. You can therefore just configure *mycompany.com* to redirect to *www.mycompany.com*. -Most domain managers have the feature to configure this redirection. This is commonly called a web redirection. - -HTTPS/SSL ---------- - -If the redirection is correctly set up, the platform will automatically generate an SSL certificate with `Let's Encrypt `_ within the hour and your domain will be accessible through HTTPS. - -While it is currently not possible to configure your own SSL certificates on the Odoo.sh platform we are considering the feature. - -SPF and DKIM compliance ------------------------ -In case the domain of your users email address uses SPF (Sender Policy Framework) or DKIM (DomainKeys Identified Mail) -to increase the deliverability of your outgoing emails, -don't forget to authorize Odoo as a sending host in your domain name settings. -The configuration steps are explained in the :ref:`Discuss app documentation `. - -.. Warning:: - Forgetting to configure your SPF or DKIM to authorize Odoo as a sending host can lead to the delivery of your emails as spam in your contacts inbox. +To configure additional domains please refer to the corresponding branch's :ref:`settings tab `. .. _odoosh-gettingstarted-settings-submodules: @@ -185,12 +137,12 @@ as submodules in your branches to allow Odoo.sh to download them. .. image:: ./media/interface-settings-submodules.png :align: center -When a repository is private, this is not possible to publicly download its branches and revisions. +When a repository is private, it is not possible to publicly download its branches and revisions. For that reason, you need to configure a deploy key for Odoo.sh, so the remote Git server allows our platform to download the revisions of this private repository. -To configure the deploy key for a private repository, proceed as follow: +To configure the deploy key for a private repository, proceed as follows: * in the input, paste the SSH URL of your private sub-repository and click on *Add*, @@ -216,35 +168,34 @@ This section shows a small description of the storage size used by your project. .. image:: ./media/interface-settings-storage.png :align: center -If your production database exceeds 4 GB, you will automatically be billed on the subscription activating the project with the excess size. +Should your production database size grow to exceed what's provisioned in your subscription, it +will automatically be synchronized with it. Database Workers ================ -Additional database workers can be configured here. More workers help increase the load your production database is able to handle. +Additional database workers can be configured here. More workers help increase the load your +production database is able to handle. If you add more, it will automatically be synchronized +with your subscription. .. image:: ./media/interface-settings-workers.png :align: center .. Warning:: - Adding more workers will not magically solve all performance issues. It mainly allows the server to handle more connections at the same time. + Adding more workers will not magically solve all performance issues. It only allows the server + to handle more connections at the same time. If some operations are unusually slow, it's most + likely a problem with the code, if it's not due to your own customizations you can open a ticket + `here `_. Staging Branches ================ -Additional staging branches allow you to develop and test more features at the same time. +Additional staging branches allow you to develop and test more features at the same time. If you +add more, it will automatically be synchronized with your subscription. .. image:: ./media/interface-settings-staging-branches.png :align: center -Odoo Source Code -================ - -Lists the source code's revisions of your production database. Useful if you need to know if a recent bugfix has already been deployed or not. - -.. image:: ./media/interface-settings-source-code.png - :align: center - Activation ========== diff --git a/planning.rst b/planning.rst new file mode 100644 index 000000000..3372ddf04 --- /dev/null +++ b/planning.rst @@ -0,0 +1,11 @@ +:banner: banners/planning.jpg + +========= +Planning +========= + +.. toctree:: + :titlesonly: + + planning/duplicate_a_planning + planning/send_planned_shifts diff --git a/planning/duplicate_a_planning.rst b/planning/duplicate_a_planning.rst new file mode 100644 index 000000000..6139b164b --- /dev/null +++ b/planning/duplicate_a_planning.rst @@ -0,0 +1,62 @@ +============================================ +Create a schedule and make encoding easier +============================================ +Organize regular schedules or forecast projects in a long term basis. Create shifts to manage your +tasks, assign employees, and stay organized at a high level. + +Organize your team by roles +============================ +Go to :menuselection:`Configuration --> Roles --> Create`. +Optionally, go to the *Employees* application, select the respective employee, and under *Work +Information* select the *Default Planning Role*. + +.. image:: media/cs1.png + :align: center + :alt: Roles in Odoo Planning Application + +Make shifts recurrent +====================== +While creating a shift, select *Repeat* and configure as needed, saving you from the need +of re-planning it. + +.. image:: media/cs2.png + :align: center + :alt: Repeat shifts in Odoo Planning Application + + +.. note:: + Repeated shifts are generated for the next six months. A modification is possible in developer + mode, from *Settings*. + +.. tip:: + To duplicate a shift in the Gantt view, press CTRL + drag and drop. + + +Save shifts as templates +========================= +If creating a shift on the fly and knowing that you will use that template in the future, +click on *Save as a Template*. + +.. image:: media/cs3.png + :align: center + :alt: Save shift as a Template in Odoo Planning Application + + +.. tip:: + To create a template in advance, go to :menuselection:`Configuration --> Shifts Templates --> + Create`. + + +Duplicate a planning from the previous week +============================================ +When in the Gantt view, either under *Schedule by Employee, Role or Project*, instead of re-planning +shifts that have been planned before, simply click on *Copy Previous Week*. + +.. image:: media/cs4.png + :align: center + :alt: Shift recurrency in Odoo Planning Application + + +.. note:: + The integration with the *Time off* and *Employee* applications, show you grayed cells to the + days when the employee does not work and is on vacation time, for example. diff --git a/planning/media/cs1.png b/planning/media/cs1.png new file mode 100644 index 000000000..bb53549f1 Binary files /dev/null and b/planning/media/cs1.png differ diff --git a/planning/media/cs2.png b/planning/media/cs2.png new file mode 100644 index 000000000..bb4fefcd5 Binary files /dev/null and b/planning/media/cs2.png differ diff --git a/planning/media/cs3.png b/planning/media/cs3.png new file mode 100644 index 000000000..ee08f43e7 Binary files /dev/null and b/planning/media/cs3.png differ diff --git a/planning/media/cs4.png b/planning/media/cs4.png new file mode 100644 index 000000000..76631fc72 Binary files /dev/null and b/planning/media/cs4.png differ diff --git a/planning/media/sp1.png b/planning/media/sp1.png new file mode 100644 index 000000000..33c347240 Binary files /dev/null and b/planning/media/sp1.png differ diff --git a/planning/media/sp2.png b/planning/media/sp2.png new file mode 100644 index 000000000..fa7291f1a Binary files /dev/null and b/planning/media/sp2.png differ diff --git a/planning/media/sp3.png b/planning/media/sp3.png new file mode 100644 index 000000000..acbe6b575 Binary files /dev/null and b/planning/media/sp3.png differ diff --git a/planning/media/sp4.png b/planning/media/sp4.png new file mode 100644 index 000000000..0a77ed51d Binary files /dev/null and b/planning/media/sp4.png differ diff --git a/planning/send_planned_shifts.rst b/planning/send_planned_shifts.rst new file mode 100644 index 000000000..c33aa940b --- /dev/null +++ b/planning/send_planned_shifts.rst @@ -0,0 +1,45 @@ +============================================================ +Send planned shifts and give employees autonomy over shifts +============================================================ +If you are not on top of your tasks and shifts you might fall behind, loosing productivity. +Allowing your employees to have a say over shifts helps you to be on top of your workload, and +gives them flexibility. + +Publish and send the planned week by email +=========================================== +Once you have your shifts planned, click on *Send Schedule*. Select *Include Open shift* if +you would like the *Unassigned* shifts to be seen. + +.. image:: media/sp1.png + :align: center + :alt: Publish and Send planned shifts in Odoo Planning Application + +Choose if you just want to *Publish* or *Publish and Send*. If you *Publish and Send*, employees +will get an email that will redirect them to their planned tasks: + +.. image:: media/sp2.png + :alt: Publish and Send planned shifts in Odoo Planning Application + + +.. note:: + Employees will not be able to see shifts until they have been published. + + +Let employees unassign themselves from shifts +=============================================== +Go to *Configuration* and enable *Allow Unassignment*. +From now on, when an employee opens his tasks, he can indicate his unavailability clicking +on *I am unavailable*. The shift will be opened again, allowing someone else to take it. + +.. image:: media/sp3.png + :align: center + :alt: Allow Unassignment in Odoo Planning Application + + +.. image:: media/sp4.png + :align: center + :alt: Allow Unassignment in Odoo Planning Application + + +.. tip:: + Employees have portal access; users have access to the database. diff --git a/point_of_sale/advanced/multicashiers.rst b/point_of_sale/advanced/multicashiers.rst index 3b941313c..acb1258ec 100644 --- a/point_of_sale/advanced/multicashiers.rst +++ b/point_of_sale/advanced/multicashiers.rst @@ -10,7 +10,7 @@ There are three ways to switch cashiers in Odoo: by *selecting the cashier*, by *entering a PIN code* or by *scanning a barcode*. .. note:: - To manage multiple cashiers, you need several employees (at least two). + To manage multiple cashiers, you need several employees (at least two). Set up log in with employees ============================ diff --git a/point_of_sale/payment/ingenico.rst b/point_of_sale/payment/ingenico.rst index a7d6e318a..3dc383694 100644 --- a/point_of_sale/payment/ingenico.rst +++ b/point_of_sale/payment/ingenico.rst @@ -16,13 +16,12 @@ Connect a Payment Terminal Connecting an Ingenico Payment Terminal to Odoo is a feature that requires an IoT Box. For more information on how to connect an IoT Box -to your database, please refer to `this -documentation `__. +to your database, please refer to the :doc:`IoT documentation <../../iot/config/connect>`. Once the IoT Box is up and running, you’ll need to link your payment -terminal to your PoS. Open the Point of Sale app and go to *Configuration -> Point of Sale*. Select a PoS, tick the IoT Box Device option and select -your payment terminal. +terminal to your PoS. Open the *Point of Sale* app and go to +:menuselection:`Configuration --> Point of Sale`. Select a PoS, tick the IoT +Box Device option and select your payment terminal. .. image:: media/payment_terminal_01.png :align: center @@ -30,8 +29,8 @@ your payment terminal. Configure the Lane/5000 for Ingenico BENELUX -------------------------------------------- -Click on the F button of the terminal, then go in the *PoS Menu* > -settings menu and enter the settings password. +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 Box* (you can find it on the form view of your IoT Box). Then, enter @@ -50,9 +49,9 @@ Ingenico setting. .. image:: media/payment_terminal_03.png :align: center -Go back in *Point of Sale > Configuration > Point of Sale*, go in the -payments section and access your payment methods. Create a new payment -method for Ingenico, select the payment terminal option Ingenico, and +Go back in :menuselection:`Point of Sale --> Configuration --> Point of Sale`, +go in the payments section and access your payment methods. Create a new +payment method for Ingenico, select the payment terminal option Ingenico, and select your payment terminal device. .. image:: media/payment_terminal_04.png @@ -79,8 +78,8 @@ order in Odoo even if the connexion 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. + This option will only be available if you received an error message + telling you the connexion failed. Once your payment is processed, on the payment record, you’ll find the type of card that has been used and the transaction ID. diff --git a/point_of_sale/payment/six.rst b/point_of_sale/payment/six.rst index 493da0f2b..7d1fea95b 100644 --- a/point_of_sale/payment/six.rst +++ b/point_of_sale/payment/six.rst @@ -6,7 +6,7 @@ Connecting a SIX/Worldline payment terminal allows you to offer a fluid payment flow to your customers and ease the work of your cashiers. .. note:: - Please note SIX/Worldine is currently only available for UE customers. + Please note SIX/Worldine is currently only available for UE customers. Configuration ============= @@ -16,13 +16,13 @@ Connect a Payment Terminal Connecting a SIX/Worldline Payment Terminal to Odoo is a feature that requires an IoT Box. For more information on how to connect an IoT Box -to your database, please refer to `this documentation -`__. +to your database, please refer to the :doc:`IoT documentation +<../../iot/config/connect>`. Once the *IoT Box* is up and running, you’ll need to link it to your -PoS. Open the Point of Sale app and go to *Configuration > Point of -Sale*. Select a PoS, tick the IoT Box Device option and select your -payment terminal. +PoS. Open the Point of Sale app and go to :menuselection:`Configuration +--> Point of Sale`. Select a PoS, tick the IoT Box Device option and select +your payment terminal. .. image:: media/six_01.png :align: center @@ -40,8 +40,8 @@ takes +/- 1 min). :align: center .. tip:: - The terminal should only be connected to the network with the Ethernet. - Do not connect it to the IoT Box with a USB Cable. + The terminal should only be connected to the network with the Ethernet. + Do not connect it to the IoT Box with a USB Cable. Configure the Payment Method ---------------------------- @@ -52,10 +52,10 @@ setting. .. image:: media/six_04.png :align: center -Back in *Point of Sale > Configuration > Point of Sale*, go in the -payments section and access your payment methods. Create a new payment -method for SIX, select the payment terminal option SIX, and select your -payment terminal device. +Back in :menuselection:`Point of Sale --> Configuration --> Point of Sale`, +go in the payments section and access your payment methods. Create a new +payment method for SIX, select the payment terminal option SIX, and select +your payment terminal device. .. image:: media/six_05.png :align: center diff --git a/point_of_sale/payment/vantiv.rst b/point_of_sale/payment/vantiv.rst index a04958db8..c85753a48 100644 --- a/point_of_sale/payment/vantiv.rst +++ b/point_of_sale/payment/vantiv.rst @@ -6,8 +6,8 @@ Connecting a Vantiv payment terminal allows you to offer a fluid payment flow to your customers and ease the work of your cashiers. .. note:: - Please note MercuryPay only operates with US and Canadian banks, making - this procedure only suitable for North American businesses. + Please note MercuryPay only operates with US and Canadian banks, making + this procedure only suitable for North American businesses. Configuration ============= @@ -21,7 +21,7 @@ Vantiv setting. .. image:: media/vantiv_01.png :align: center -Back in *Point of Sale > Configuration > Point of Sale*, go in the +Back in :menuselection:`Point of Sale --> Configuration --> Point of Sale`, go in the payments section and access your payment methods. Create a new payment method for Vantiv, select the payment terminal option Vantiv, and create new Vantiv credentials. diff --git a/portal/my_odoo_portal.rst b/portal/my_odoo_portal.rst index 9fb5414d3..49797d93d 100644 --- a/portal/my_odoo_portal.rst +++ b/portal/my_odoo_portal.rst @@ -8,10 +8,10 @@ My Odoo Portal In this section of the portal, you will find all the communications between you and Odoo: documents such as quotations, sales orders, invoices and subscriptions. -.. note :: To access this section, you have to log with your username and password - to `Odoo `__ . If you are already logged in, just - click on your name on the top-right corner and select "My Account". - +.. note:: + To access this section, you have to log with your username and password to `Odoo + `_. If you are already logged in, just click on your name on the + top-right corner and select "My Account". .. image:: media/my_portal.png :align: center @@ -98,11 +98,11 @@ delete the payment method. .. image:: media/managepayment.png :align: center -.. warning :: At the date of the next invoice, if there is no payment - information provided or if your credit card has expired, the status of your - subscription will change to "To Renew". You will then have 7 days to - provide a valid method of payment. After this delay, the subscription will - be closed, and you will no longer be able to access the database. +.. warning:: + At the date of the next invoice, if there is no payment information provided or if your credit + card has expired, the status of your subscription will change to "To Renew". You will then have 7 + days to provide a valid method of payment. After this delay, the subscription will be closed, and + you will no longer be able to access the database. Success Packs ============= @@ -111,5 +111,5 @@ unique personalized assistance to help you customize your solution and optimize your workflows as part of your initial implementation. These hours never expire, allowing you to utilize them whenever you need support. -.. seealso :: - If you need information about how to manage your database see :ref:`db_online` +.. seealso:: + If you need information about how to manage your database see :ref:`db_online` diff --git a/project/configuration/visualization.rst b/project/configuration/visualization.rst index 5ff6b89dc..7802fad95 100644 --- a/project/configuration/visualization.rst +++ b/project/configuration/visualization.rst @@ -37,7 +37,7 @@ which one have the higher priorities. The Kanban view is the default view when accessing a project, but if you are on another view, you can go back to it any time by clicking the -kanban view logo in the upper right corner +Kanban view logo in the upper right corner .. image:: media/visualization03.png :align: center diff --git a/purchase/purchases/master/import.rst b/purchase/purchases/master/import.rst index 11ab9ac4c..dd34730e0 100644 --- a/purchase/purchases/master/import.rst +++ b/purchase/purchases/master/import.rst @@ -30,5 +30,5 @@ See below a template of the columns used. .. image:: media/import02.png :align: center -`Template -download `__ +:download:`Click here to download the template +<../../../_static/example_files/vendor_pricelists_template.csv>` diff --git a/purchase/purchases/rfq/create.rst b/purchase/purchases/rfq/create.rst index d85ae3262..81888c265 100644 --- a/purchase/purchases/rfq/create.rst +++ b/purchase/purchases/rfq/create.rst @@ -19,7 +19,7 @@ In the Purchases module, open :menuselection:`Purchase --> Requests for Quotatio and click on **Create**. .. image:: ./media/image04.png - :align: center + :align: center Select your supplier in the **Vendor** menu, or create it on-the-fly by clicking on **Create and Edit**. In the **Order Date** field, select @@ -43,13 +43,13 @@ for this supplier or enter a new one). .. image:: ./media/image08.png - :align: center + :align: center After having clicked on **Send**, you will notice that the RFQ's status will switch from **Draft** to **RFQ Sent**. .. image:: ./media/image06.png - :align: center + :align: center Once your supplier has replied with an offer, update the RfQ by clicking on **Edit** to fit the quotation (prices, taxes, expected delivery lead @@ -60,10 +60,10 @@ To proceed with the order, click on **Confirm Order** to send the order to the supplier. The RfQ's status will switch to **Purchase Order**. .. image:: ./media/image11.png - :align: center + :align: center The status of the RfQ will change to PURCHASE ORDER. Tabs in the upper right corner of the order will show 1 Shipment and 0 Invoice. .. image:: ./media/image10.png - :align: center + :align: center diff --git a/quality/checks/quality_mo.rst b/quality/checks/quality_mo.rst index 095974b99..e5b2cb7d9 100644 --- a/quality/checks/quality_mo.rst +++ b/quality/checks/quality_mo.rst @@ -16,7 +16,7 @@ Create the Quality Control Point -------------------------------- To create a quality control point, open the quality app and go to -*Control > Control Points*. There, hit create. Make sure to select +:menuselection:`Control --> Control Points`. There, hit create. Make sure to select *Manufacturing* as operation and choose the type of quality check you want to perform. @@ -53,7 +53,7 @@ Create the Quality Control Point -------------------------------- If you want to create a *Quality Control Point*, open the *Quality* -app and go to *Control > Control Points*. Then, click on create. Make +app and go to :menuselection:`Control --> Control Points`. Then, click on create. Make sure to select *Manufacturing* as operation and select the work order operation on which the quality check should be performed. diff --git a/quality/checks/quality_transfers.rst b/quality/checks/quality_transfers.rst index a32cccddd..421e4bd78 100644 --- a/quality/checks/quality_transfers.rst +++ b/quality/checks/quality_transfers.rst @@ -6,7 +6,7 @@ Create the Quality Control Point ================================ To create a *Quality Control Point*, open the *Quality* application. -Then, go to *Quality Control > Control Points > Create*. Now, you can +Then, go to :menuselection:`Quality Control --> Control Points --> Create`. Now, you can define the quality control point you want to apply to a specific product. Don’t forget to select a transfer operation type. diff --git a/quality/control/control_points.rst b/quality/control/control_points.rst index 7ca4f2f56..506fb2e34 100644 --- a/quality/control/control_points.rst +++ b/quality/control/control_points.rst @@ -6,8 +6,8 @@ Quality Control Points ====================== If it is the first *Quality Control Point* that you create, know that -you need to open the *Quality* app. Then, go to *Quality Control > -Control Points*. Once there, you have to define the product on which +you need to open the *Quality* app. Then, go to :menuselection:`Quality Control --> +Control Points`. Once there, you have to define the product on which the quality control will take place, as well as the operation at which it should take place. diff --git a/sales.rst b/sales.rst index a10607919..4ef902592 100644 --- a/sales.rst +++ b/sales.rst @@ -10,6 +10,6 @@ Sales sales/send_quotations sales/invoicing sales/products_prices - sales/sale_amazon - sales/sale_ebay + sales/amazon_connector + sales/ebay_connector sales/advanced \ No newline at end of file diff --git a/sales/amazon_connector.rst b/sales/amazon_connector.rst new file mode 100644 index 000000000..0307176db --- /dev/null +++ b/sales/amazon_connector.rst @@ -0,0 +1,10 @@ +================ +Amazon Connector +================ + +.. toctree:: + :titlesonly: + + amazon_connector/apply + amazon_connector/setup + amazon_connector/manage \ No newline at end of file diff --git a/sales/amazon_connector/apply.rst b/sales/amazon_connector/apply.rst new file mode 100644 index 000000000..d3b661048 --- /dev/null +++ b/sales/amazon_connector/apply.rst @@ -0,0 +1,143 @@ +================================ +Apply for Amazon MWS Access Keys +================================ + +.. _amazon/developer-form: + +Submit the Amazon MWS Developer Registration and Assessment Form +================================================================ + +In order to synchronize your Amazon orders with Odoo, Amazon MWS access keys are required. +They can be obtained by submitting the **Amazon MWS Developer Registration and Assessment form** to +register as a developer. Once recognized by Amazon as a developer (i.e. you make use of an +application connecting to MWS), you will be granted Amazon MWS access keys. + +First, visit the `Amazon Marketplace Web Service documentation +`_ and follow the +instructions to register as a developer. Take care to choose the form "I represent a seller +organization integrating with Amazon MWS for its own selling account only.". + +Fill out the *Developer Registration and Assessment form* as suggested below and provide your own +contact information in the **Developer contact information** section. In the **Business use +information** section, select the correct region of your seller account. For the other sections, +adapt your responses in accordance with your business case. + +Give a particular attention to **Merchant Fulfilled Shipping**. It should only be checked if you +ship your products yourself. You should uncheck it if you sell exclusively with the *Fulfillment by +Amazon* service. Please note that requesting this function is not recommended if you are hosted on +*Odoo Online* or *Odoo.sh* as the additional security requirements asked by Amazon may not be met by +Odoo. + +.. warning:: + Depending on several factors (your region, whether you checked the **Merchant Fulfilled + Shipping** function (i.e. you request access to Personally Identifiable Information of your + customers), etc.), Amazon may request you to fill out a second form before granting you MWS + access keys. As that form depends on the data protection policy of the region of your seller + account (e.g. GDPR in Europe), we cannot provide you with a pre-filled form. Instead, the answers + of questions related to Odoo are listed in the `Answer the Additional Form`_ section. + +.. tip:: + If you need assistance for your application for Amazon MWS access keys, `submit a support ticket + to Odoo `_. + +.. image:: media/dev_form.png + +Answer the Additional Form +========================== + +.. tip:: + If you did not receive any additional form after your :ref:`initial application for Amazon MWS + keys `, you may disregard this section. + +This section lists all questions asked by Amazon in additional forms. The answers are tailored for +*Odoo Online* and *Odoo.sh*. Wherever the answer does not depend on Odoo, you are requested to +provide it yourself at the place indicated by square brackets. + +.. warning:: + If you are *not* hosted on Odoo.com (*online*) or on Odoo.sh, you should adapt the answers + related to hosting according to your own infrastructure and data protection policy. + +- **Describe all functionalities in your application where Personally Identifiable Information (e.g. + customer name, street address, billing address) is required.** + + ► If you did not apply for the *Merchant Fulfilled Shipping* function: + Generation of customer invoices. + + ► If you applied for the *Merchant Fulfilled Shipping* function: + Generation of delivery orders and customer invoices. + +- **List all outside parties with whom your organization shares Amazon Information (e.g. information + exposed by Amazon through Amazon MWS, Seller Central, or Amazon's public-facing websites) and + describe how your organization shares this information.** + + We share Amazon Information with Odoo SA, our cloud service provider, for the exclusive purpose of + hosting our enterprise management system (including the Amazon MWS integration). See also + Odoo SA's Privacy Policy for details at https://www.odoo.com/privacy + + ► If you share Amazon Information with outside parties: + [Answer with the above text and add a description of your organization's policy regarding the + sharing of Amazon Information with outside parties] + +- **List all non-Amazon MWS sources where you retrieve Amazon Information.** + + Our enterprise software only relies on MWS to retrieve Amazon Information. + +- **Describe how your organization restricts public access to databases, file servers, and + desktop/developer endpoints.** + + We rely on Odoo S.A., our cloud service provider for our database security management. Their + Security Policy can be found at https://www.odoo.com/security + +- **Describe how your organization uniquely identifies employees and restricts access to Amazon + Information on a need-to-know basis.** + + ► If all your employees are properly assigned separate users and given only relevant access rights: + Access rights are provided to employees based on their role within the company and are + progressive, based on their responsibility. + + For instance, salespersons only have access to their own leads/quotes (and thus no access to + quotes generated through the Amazon API). A salesmanager has access to all quotes/leads for + reporting purposes (including quotes generated through the Amazon API). A quote will generate a + delivery order which will be accessible to a 'normal' user of the Inventory application for him + to be able to print the delivery label and pack the products. + + ► If your employees share users or if they are given more rights than needed: + [Answer with a description of your organization's policy for the assignation of users and access + rights to your employees] + +- **Describe how your organization prevents Amazon Information from being accessed from employee + personal devices.** + + Our enterprise software does not prevent employees from accessing the organization's data from + personal devices. Role-based restrictions and access rights still apply. + +- **Provide details on your organization's privacy and data handling policies (a link to your policy + is also acceptable).** + + [Answer with a description of your organization's privacy and data handling policies] + +- **Describe where your organization stores Amazon Information and provide details on how you + encrypt this information (e.g., algorithm).** + + We rely on Odoo S.A., our cloud service provider for our database security management. Their + Security Policy can be found at https://www.odoo.com/security + +- **Describe how your organization backups or archives Amazon Information and provide details on how + you encrypt this information (e.g., algorithm).** + + We rely on Odoo S.A., our cloud service provider for our database backups management. Their + Service Level Agreement can be found at https://www.odoo.com/cloud-sla + +- **Describe where your organization monitors and detects malicious activity in your + application(s).** + + We rely on Odoo S.A., our cloud service provider for our database security management. Their + Security Policy can be found at https://www.odoo.com/security + +- **Describe how your organization's incident response plan addresses database hacks, unauthorized + access, and data leaks (a link to your policy is also acceptable).** + + Our cloud service provider, Odoo S.A., will notify the customer in case of a data breach. + + [Add a description of your organization's incident response plan or a link to your incident + response policy.] diff --git a/sales/sale_amazon/manage.rst b/sales/amazon_connector/manage.rst similarity index 56% rename from sales/sale_amazon/manage.rst rename to sales/amazon_connector/manage.rst index 0f0b954ca..3d1349e03 100644 --- a/sales/sale_amazon/manage.rst +++ b/sales/amazon_connector/manage.rst @@ -9,26 +9,29 @@ Orders are automatically fetched from Amazon and synchronized in Odoo at regular The synchronization is based on the Amazon status: only orders whose status has changed since the last synchronization are fetched from Amazon. -.. note :: To force the synchronization of an order whose status has not changed since the last - synchronization, activate the **Developer mode**, navigate to your Amazon account and - modify the date under :menuselection:`Orders Follow-up --> Last Order Sync`. Pick a date - anterior to the last status change of the order that you wish to synchronize and save. +.. note:: + To force the synchronization of an order whose status has not changed since the last + synchronization, activate the **Developer mode**, navigate to your Amazon account and modify the + date under :menuselection:`Orders Follow-up --> Last Order Sync`. Pick a date anterior to the + last status change of the order that you wish to synchronize and save. For **FBA** (Fulfilled by Amazon), only **Shipped** and **Canceled** orders are fetched. For **FBM** (Fulfilled by Merchant), the same is done for **Unshipped** and **Canceled** orders. For each synchronized order, a sales order and a customer are created in Odoo if they are not yet registered. -.. note :: If you did not request access to Personally Identifiable Information of your customers - in the `Developer Registration and Assessment form `_, the - customers are created anonymously (the name, postal address and phone number are omitted) - and named **Amazon Customer**. +.. note:: + If you did not request access to Personally Identifiable Information of your customers in the + :ref:`Developer Registration and Assessment form `, the customers are + created anonymously (the name, postal address and phone number are omitted) and named + **Amazon Customer**. When an order is canceled in Amazon and was already synchronized in Odoo, the corresponding sales order is automatically canceled in Odoo. -.. tip :: To synchronize immediately the orders of your Amazon account, open that later's form in - **Developer mode** and click the button **SYNC ORDERS**. The same can be done with - deliveries by clicking the button **SYNC PICKINGS**. +.. tip:: + To synchronize immediately the orders of your Amazon account switch to **Developer mode**, head + to your Amazon account and click the button **SYNC ORDERS**. The same can be done with + deliveries by clicking the button **SYNC PICKINGS**. Manage deliveries in FBM ======================== @@ -49,17 +52,18 @@ in :menuselection:`Inventory --> Reporting --> Product Moves`. They pick up prod inventory location called **Amazon**. This location represents your stock in Amazon's warehouses and allows you to manage the stock of your products under the FBA program. -.. tip :: To follow your Amazon (FBA) stock in Odoo, you can make an inventory adjustment after - replenishing it. You can also trigger an automated replenishment from reordering rules - on the Amazon location. - -.. tip :: The Amazon location is configurable by Amazon account managed in Odoo. All accounts of - the same company use the same location by default. It is however possible to follow the - stock by marketplace. First, remove the marketplace for which you want to follow the stock - separately from the list of synchronized marketplaces. Then, create another registration - for this account and remove all marketplaces, except the one to isolate from the others. - Finally, assign another stock location to the second registration of your account. +.. tip:: + To follow your Amazon (FBA) stock in Odoo, you can make an inventory adjustment after + replenishing it. You can also trigger an automated replenishment from reordering rules on the + Amazon location. +.. tip:: + The Amazon location is configurable by Amazon account managed in Odoo. All accounts of the same + company use the same location by default. It is however possible to follow the stock by + marketplace. First, remove the marketplace for which you want to follow the stock separately from + the list of synchronized marketplaces. Then, create another registration for this account and + remove all marketplaces, except the one to isolate from the others. Finally, assign another stock + location to the second registration of your account. Issue invoices and register payments ==================================== @@ -68,8 +72,9 @@ You can issue invoices for Amazon orders in Odoo. Click **Create Invoice** in th so. You can also do it in batch from the list view of orders. Then, confirm and send the invoices to your customers. -.. tip :: To display only Amazon-related orders on the list view, you can filter orders based on the - sales team. +.. tip:: + To display only Amazon-related orders on the list view, you can filter orders based on the sales + team. As the customer has paid Amazon as an intermediary, you should register invoice payments in a payment journal dedicated to Amazon (e.g. Amazon Payments, with a dedicated intermediary account). @@ -87,8 +92,9 @@ team is shared between all of your company's accounts. If you wish, you can change the sales team on your account for another to perform a separate reporting for the sales of this account. -.. tip :: It is also possible to perform reporting on a per-marketplace basis in a similar fashion. - First, remove the marketplace you wish to track separately from the list of synchronized - marketplaces. Then, create another registration for this account and remove all - marketplaces, except the one to isolate from the others. Finally, assign another sales - team to one of the two registrations of your account. \ No newline at end of file +.. tip:: + It is also possible to perform reporting on a per-marketplace basis in a similar fashion. First, + remove the marketplace you wish to track separately from the list of synchronized marketplaces. + Then, create another registration for this account and remove all marketplaces, except the one to + isolate from the others. Finally, assign another sales team to one of the two registrations of + your account. \ No newline at end of file diff --git a/sales/sale_amazon/media/dev_form.png b/sales/amazon_connector/media/dev_form.png similarity index 100% rename from sales/sale_amazon/media/dev_form.png rename to sales/amazon_connector/media/dev_form.png diff --git a/sales/amazon_connector/setup.rst b/sales/amazon_connector/setup.rst new file mode 100644 index 000000000..d9d49e0a5 --- /dev/null +++ b/sales/amazon_connector/setup.rst @@ -0,0 +1,63 @@ +================================== +Configure Amazon Connector in Odoo +================================== + +Register your Amazon account in Odoo +==================================== + +To register your seller account in Odoo, navigate to :menuselection:`Sales --> Configuration +--> Settings --> Connectors --> Amazon Sync --> Amazon Accounts` and click on **CREATE**. + +The **Seller ID** can be found in Seller Central under the link **Your Merchant Token** on the +**Seller Account Information** page. The **Access Key** and the **Secret Key** can be found in +Developer Central (where the Developer Registration and Assessment form was located). + +Once the account is registered, the marketplaces available to this account are synchronized and +listed under the **Marketplaces** tab. If you wish, you can remove some items from the list of +synchronized marketplaces to disable their synchronization. + +Match database products in Amazon +================================= + +When an Amazon order is synchronized, up to three sales order items are created in Odoo for each +product sold on Amazon: one for the marketplace product, one for the shipping charges (if any) and +one for the gift wrapping charges (if any). + +.. _amazon/matching: + +The selection of a database product for a sales order item is done by matching its +**internal reference** with the **SKU** for marketplace items, the **shipping code** for delivery +charges, and the **gift wrapping** code for gift wrapping charges. + +For marketplace products, pairings are saved as **Amazon Offers** which are listed under the +**Offers** stat button on the account form. Offers are automatically created when the pairing is +established and are used for subsequent orders to lookup SKUs. If no offer with a matching SKU is +found, :ref:`the internal reference is used instead `. + +.. tip:: + It is possible to force the pairing of a marketplace item with a specific product by changing + either the product or the SKU of an offer. The offer can be manually created if it was not + automatically done yet. This is useful if you do not use the internal reference as the SKU or if + you sell the product under different conditions. + +If no database product with a matching internal reference is found for a given SKU or gift wrapping +code, a default database product **Amazon Sale** is used. The same is done with the default product +**Amazon Shipping** and the shipping code. + +.. note:: + To modify the default products, activate the **Developer mode** and navigate to + :menuselection:`Sales --> Configuration --> Settings --> Connectors --> Amazon Sync --> + Default Products`. + +Configure taxes of products +=========================== + +To allow for tax reporting of Amazon sales with Odoo, the taxes applied to the sales order items are +those set on the product or determined by the fiscal position. Make sure to have set the correct +taxes on your products in Odoo or to have it done by a fiscal position, to avoid discrepancies in +the subtotals between Seller Central and Odoo. + +.. note:: + As Amazon does not necessarily apply the same taxes as those configured in Odoo, it may happen + that order totals differ by a few cents from that on Seller Central. Those differences can be + resolved with a write-off when reconciling the payments in Odoo. \ No newline at end of file diff --git a/sales/ebay_connector.rst b/sales/ebay_connector.rst new file mode 100644 index 000000000..c06ed231c --- /dev/null +++ b/sales/ebay_connector.rst @@ -0,0 +1,9 @@ +============== +eBay Connector +============== + +.. toctree:: + :titlesonly: + + ebay_connector/setup + ebay_connector/manage \ No newline at end of file diff --git a/sales/ebay/manage.rst b/sales/ebay_connector/manage.rst similarity index 100% rename from sales/ebay/manage.rst rename to sales/ebay_connector/manage.rst diff --git a/sales/ebay/media/manage01.png b/sales/ebay_connector/media/manage01.png similarity index 100% rename from sales/ebay/media/manage01.png rename to sales/ebay_connector/media/manage01.png diff --git a/sales/ebay/media/manage02.png b/sales/ebay_connector/media/manage02.png similarity index 100% rename from sales/ebay/media/manage02.png rename to sales/ebay_connector/media/manage02.png diff --git a/sales/ebay/media/manage03.png b/sales/ebay_connector/media/manage03.png similarity index 100% rename from sales/ebay/media/manage03.png rename to sales/ebay_connector/media/manage03.png diff --git a/sales/ebay/media/setup01.png b/sales/ebay_connector/media/setup01.png similarity index 100% rename from sales/ebay/media/setup01.png rename to sales/ebay_connector/media/setup01.png diff --git a/sales/ebay/media/setup02.png b/sales/ebay_connector/media/setup02.png similarity index 100% rename from sales/ebay/media/setup02.png rename to sales/ebay_connector/media/setup02.png diff --git a/sales/ebay/setup.rst b/sales/ebay_connector/setup.rst similarity index 100% rename from sales/ebay/setup.rst rename to sales/ebay_connector/setup.rst diff --git a/sales/invoicing/invoicing_policy.rst b/sales/invoicing/invoicing_policy.rst index e1c3fedec..4493fbb64 100644 --- a/sales/invoicing/invoicing_policy.rst +++ b/sales/invoicing/invoicing_policy.rst @@ -45,5 +45,5 @@ is confirmed. If however you selected delivered quantities, you will first have to validate the delivery. Once the products are delivered, you can invoice your customer. Odoo -will automatically add the quantities to invoiced based on how many you +will automatically add the quantities to invoice based on how many you delivered if you did a partial delivery. diff --git a/sales/products_prices/products/variants.rst b/sales/products_prices/products/variants.rst index 068cf50a4..10691c059 100644 --- a/sales/products_prices/products/variants.rst +++ b/sales/products_prices/products/variants.rst @@ -219,9 +219,7 @@ the variant that will be added to the original price. When you have entered all the extra values, click on **Save**. -.. todo:: - - .. seealso:: - - * Accounting Memento: Details of Journal Entries - * Process Overview: From Billing to Payment Orders +.. seealso:: + - `Accounting Memento: Details of Journal Entries + <../../../accounting/overview/main_concepts/memento.html#journal-entries>`_ + - :doc:`../../../accounting/overview/process_overview/supplier_bill` diff --git a/sales/sale_amazon.rst b/sales/sale_amazon.rst deleted file mode 100644 index a56c48e18..000000000 --- a/sales/sale_amazon.rst +++ /dev/null @@ -1,9 +0,0 @@ -==================== -Amazon MWS Connector -==================== - -.. toctree:: - :titlesonly: - - sale_amazon/setup - sale_amazon/manage \ No newline at end of file diff --git a/sales/sale_amazon/setup.rst b/sales/sale_amazon/setup.rst deleted file mode 100644 index 3fab703a4..000000000 --- a/sales/sale_amazon/setup.rst +++ /dev/null @@ -1,87 +0,0 @@ -====================================== -Configure Amazon MWS Connector in Odoo -====================================== - -Get your Amazon MWS Credentials -=============================== - -In order to integrate Amazon with Odoo, a seller account on professional selling plan is required. - -.. Anchor should be one paragraph below but is placed here to fix wrongly adjusted display -.. _developer-form: - -Visit the `Amazon Marketplace Web Service documentation -`_ and follow the -instructions to register as a developer. - -Fill the Developer Registration and Assessment form as suggested below and provide your own contact -information in the **Developer contact information** section. For the other sections, take care to -adapt your responses accordingly to your business case. In particular, select the correct region of -your seller account and uncheck the **Merchant Fulfilled Shipping** function if you plan to sell -exclusively with the Fulfillment by Amazon service. - -.. warning :: If you select the **Merchant Fulfilled Shipping** function (i.e. you request access to - Personally Identifiable Information (PII) of your customers), Amazon may request you - to fill out a second form, depending on the data protection policy in the region of - your seller account (e.g. GDPR in Europe). - -.. image:: ./media/dev_form.png - - -Register your Amazon account in Odoo -==================================== - -To register your seller account in Odoo, navigate to :menuselection:`Sales --> Configuration ---> Settings --> Connectors --> Amazon Sync --> Amazon Accounts` and click on **CREATE**. - -The **Seller ID** can be found in Seller Central under the link **Your Merchant Token** on the -**Seller Account Information** page. The **Access Key** and the **Secret Key** can be found in -Developer Central (where the Developer Registration and Assessment form was located). - -Once the account is registered, the marketplaces available to this account are synchronized and -listed under the **Marketplaces** tab. If you wish, you can remove some from the list of -synchronized marketplaces to disable their synchronization. - -Match database products in Amazon orders -======================================== - -.. Anchor should be one paragraph below but is placed here to fix wrongly adjusted display -.. _matching: - -When an Amazon order is synchronized, up to three sales order items are created in Odoo for each -product sold on Amazon: one for the marketplace product, one for the shipping charges (if any) and -one for the gift wrapping charges (if any). - -The selection of a database product for a sales order item is done by matching its -**internal reference** with the **SKU** for marketplace items, the **shipping code** for delivery -charges, and the **gift wrapping** code for gift wrapping charges. - -For marketplace products, matchings are saved as **Amazon Offers** which are listed under the -**Offers** stat button on the account form. Offers are automatically created when the matching is -established and are used for subsequent orders to lookup SKUs. If no offer with a matching SKU is -found, :ref:`the internal reference is used instead `. - -.. tip :: It is possible to force the matching of a marketplace item with a specific product by - changing either the product or the SKU of an offer. The offer can be manually created if - it was not automatically done yet. This is useful if you do not use the internal - reference as the SKU or if you sell the product under different conditions. - -If no database product with a matching internal reference is found for a given SKU or gift wrapping -code, a default database product **Amazon Sale** is used. The same is done with the default product -**Amazon Shipping** and the shipping code. - -.. note :: To modify the default products, activate the **Developer mode** and navigate to - :menuselection:`Sales --> Configuration --> Settings --> Connectors --> Amazon Sync --> - Default Products`. - -Configure taxes of products -=========================== - -To allow for tax reporting of Amazon sales with Odoo, the taxes applied to the sales order items are -those set on the product or determined by the fiscal position. Make sure to have set the correct -taxes on your products in Odoo or to have it done by a fiscal position, to avoid discrepancies in -the subtotals between Seller Central and Odoo. - -.. note :: As Amazon does not necessarily apply the same taxes as those configured in Odoo, it may - happen that order totals differ by a few cents from that on Seller Central. Those - differences can be resolved with a write-off when reconciling the payments in Odoo. \ No newline at end of file diff --git a/sales/sale_ebay.rst b/sales/sale_ebay.rst deleted file mode 100644 index 65b021eff..000000000 --- a/sales/sale_ebay.rst +++ /dev/null @@ -1,9 +0,0 @@ -==== -eBay -==== - -.. toctree:: - :titlesonly: - - ebay/setup - ebay/manage \ No newline at end of file diff --git a/sales/send_quotations/deadline.rst b/sales/send_quotations/deadline.rst index 8e09f7403..d854250c6 100644 --- a/sales/send_quotations/deadline.rst +++ b/sales/send_quotations/deadline.rst @@ -19,9 +19,8 @@ Use deadline in templates ========================= You can also set a default deadline in a *Quotation Template*. Each -time that template is used in a quotation, that deadline is applied. You -can find more info about quotation templates `here -`_. +time that template is used in a quotation, that deadline is applied. See :doc:`quote_template` for +more information about quotation templates. .. image:: media/quotationsdeadline02.png :align: center diff --git a/sales/send_quotations/get_signature_to_validate.rst b/sales/send_quotations/get_signature_to_validate.rst index 10cd71922..3e1834c12 100644 --- a/sales/send_quotations/get_signature_to_validate.rst +++ b/sales/send_quotations/get_signature_to_validate.rst @@ -15,9 +15,9 @@ the *Online Signature & Payment* feature. .. image:: media/getsignaturetovalidate01.png :align: center -.. note:: - If you are using `quotation templates `_, - you can also pick a default setting for each template. +.. note:: + If you are using :doc:`quotation templates `, you can also pick a default setting + for each template. Validate an order with a signature ================================== diff --git a/sales/send_quotations/optional_items.rst b/sales/send_quotations/optional_items.rst index f9167de32..c56125d40 100644 --- a/sales/send_quotations/optional_items.rst +++ b/sales/send_quotations/optional_items.rst @@ -10,9 +10,7 @@ headset. Add suggested products to your quotation templates ================================================== -Suggested products can be set on *Quotation Templates*. - -.. TODO You can find documentation about it here https://docs.google.com/document/u/1/d/11UaYJ0k67dA2p-ExPAYqZkBNaRcpnItCyIdO6udgyOY/edit?usp=drive_web&ouid=104638657716670524342 +Suggested products can be set on *Quotation Templates*. See :doc:`quote_template`. Once on a template, you can see a *Suggested Products* tab where you can add related products or services. diff --git a/sales/send_quotations/quote_template.rst b/sales/send_quotations/quote_template.rst index 87ddf7ff6..acb319a60 100644 --- a/sales/send_quotations/quote_template.rst +++ b/sales/send_quotations/quote_template.rst @@ -30,9 +30,10 @@ expiration time for the quotation. On each template, you can also specify discounts if the option is activated in the *Sales* settings. The base price is set in the -product configuration and can be alterated by customer pricelists. +product configuration and can be changed by customer pricelists. -.. TODO (TO LINK DOC LATER WHEN DONE based on this https://www.odoo.com/documentation/user/13.0/sales/products_prices/prices/pricing.html +.. seealso:: + - :doc:`../products_prices/prices/pricing` Edit your template ================== @@ -43,21 +44,21 @@ services and products. When you click on *Edit Template* you will be brought to the quotation editor. .. image:: media/quote_template03.png - :align: center + :align: center .. image:: media/quote_template04.png - :align: center + :align: center This lets you edit the description content thanks to drag & drop of building blocks. To describe your products add a content block in the zone dedicated to each product. .. image:: media/quote_template05.png - :align: center + :align: center .. note:: - The description set for the products will be used in all - quotations templates containing those products. + The description set for the products will be used in all + quotations templates containing those products. Use a quotation template ======================== @@ -65,13 +66,13 @@ Use a quotation template When creating a quotation, you can select a template. .. image:: media/quote_template06.png - :align: center + :align: center Each product in that template will be added to your quotation. .. tip:: - You can select a template to be suggested by default in the - *Sales* settings. + You can select a template to be suggested by default in the + *Sales* settings. Confirm the quotation ===================== @@ -81,13 +82,13 @@ digital signature or online payment. You can select that in the template itself. .. image:: media/quote_template07.png - :align: center + :align: center Every quotation will now have this setting added to it. Of course you can still change it and make it specific for each quotation. -.. todo seealso -.. `*https://docs.google.com/document/d/1OkC9MVvuDvzz2b9gZjfzMPzep7qdbOyZZxE0ZZj2K7E/edit* `__.. -.. `*https://docs.google.com/document/d/1LZC5C8dZY2gvP6QHx2w5BlakIxgcHIP6GeEuBBfsRNc/edit* `__ +.. seealso:: + - :doc:`get_signature_to_validate` + - :doc:`get_paid_to_validate` diff --git a/sms_marketing/SMS_mkt_build_send-and_get_reports_from_a_SMS_mailing.rst b/sms_marketing/SMS_mkt_build_send-and_get_reports_from_a_SMS_mailing.rst index 5ef8f2ff0..c2a86cbc6 100644 --- a/sms_marketing/SMS_mkt_build_send-and_get_reports_from_a_SMS_mailing.rst +++ b/sms_marketing/SMS_mkt_build_send-and_get_reports_from_a_SMS_mailing.rst @@ -16,7 +16,7 @@ Go to *Apps*, search for *SMS Marketing* and click on *Install*. Build an SMS mailing ==================== -Go to *SMS Marketing > Create*. +Go to :menuselection:`SMS Marketing --> Create`. .. image:: ./media/sms_marketing1.png :align: center diff --git a/sms_marketing/SMS_mkt_contact_lists_and_blacklist.rst b/sms_marketing/SMS_mkt_contact_lists_and_blacklist.rst index ab3c56b88..7f429eb3c 100644 --- a/sms_marketing/SMS_mkt_contact_lists_and_blacklist.rst +++ b/sms_marketing/SMS_mkt_contact_lists_and_blacklist.rst @@ -6,7 +6,7 @@ Contact lists ================================== Creating my own list of contacts, or importing it, is useful when I want to create specific groups of people, such as the subscribers of my newsletter. It is also the best way to get started if I am coming from another system and already have built an audience. It makes the SMS distribution a lot easier. -Go to *Contacts lists > Contacts lists > Create*. +Go to :menuselection:`Contacts lists --> Contacts lists --> Create`. I’ll choose a name for my *Mailing list*, and activate the option *Public* if I would like to make the mailing list accessible to my recipients in the unsubscription page to allow them to update their subscription preferences. Once inside the list, I can again *Create* or *Import* contacts for that specific list. @@ -28,7 +28,7 @@ Example: my sales representative can easily find out which SMS mailing promotion Blacklist ================================== If I’m coming from another software and have a list of clients who have already asked to be blacklisted from my news, I can import those entries in my database. -For that, I’ll go to *Configuration > Phone Blacklist > Import*. +For that, I’ll go to :menuselection:`Configuration --> Phone Blacklist --> Import`. .. image:: ./media/sms_marketing11.png :align: center \ No newline at end of file diff --git a/sms_marketing/SMS_mkt_integrations_and_template.rst b/sms_marketing/SMS_mkt_integrations_and_template.rst index d982688b2..14a28ca6d 100644 --- a/sms_marketing/SMS_mkt_integrations_and_template.rst +++ b/sms_marketing/SMS_mkt_integrations_and_template.rst @@ -7,7 +7,8 @@ With the SMS Marketing app isn’t different! Organize Email Marketing and SMS campaigns =========================================== -First, make sure to have the necessary feature activated. Go to the *Email Marketing app > Configuration > Settings> activate the option Mailing Campaigns*. +First, make sure to have the necessary feature activated. Go to the :menuselection:`Email Marketing +app --> Configuration --> Settings --> activate the option Mailing Campaigns`. .. image:: ./media/sms_marketing12.png :align: center @@ -30,14 +31,17 @@ For that, I’ll go to the *Contacts* app, select the contact and click on the * .. image:: ./media/sms_marketing15.png :align: center -If I’d like to send a message in a batch here, I could go to *List View > select all the contacts > Action > Send SMS*. +If I’d like to send a message in a batch here, I could go to :menuselection:`List View --> select +all the contacts --> Action --> Send SMS`. .. image:: ./media/sms_marketing16.png :align: center Set up SMS Templates ================================== -To set up *SMS Templates*, I’ll go to the *Settings* app and activate the *developer mode*. Now, back to *Settings* app, I’ll go to *Technical > Phone/SMS section > SMS Templates* and create the content I need. +To set up *SMS Templates*, I’ll go to the *Settings* app and activate the *developer mode*. Now, +back to *Settings* app, I’ll go to :menuselection:`Technical --> Phone/SMS section --> +SMS Templates` and create the content I need. .. image:: ./media/sms_marketing17.png :align: center diff --git a/sms_marketing/fqapricing.rst b/sms_marketing/fqapricing.rst index 6f8d77a30..df005bc19 100644 --- a/sms_marketing/fqapricing.rst +++ b/sms_marketing/fqapricing.rst @@ -4,18 +4,24 @@ SMS Pricing and FAQ Pricing ================================== -SMS Text Messaging is an In-App Purchase (IAP) service which requires prepaid credits to work. The price of an SMS depends on the destination and the length of the message. With 1 credit, I can send up to 92 SMSs. +SMS Text Messaging is an In-App Purchase (IAP) service which requires prepaid credits to work. +The price of an SMS depends on the destination and the length of the message. With 1 credit, I can +send up to 92 SMSs. -**For more information, please consult our FAQ page**: `Odoo SMS - FAQ `_ +**For more information, please consult our FAQ page**: +`Odoo SMS - FAQ `_ -To buy credits I will go to *Settings > Buy Credits* (under *Send SMS*); or go to *Settings > View my Services* (under *Odoo IAP*). +To buy credits I will go to :menuselection:`Settings --> Buy Credits` (under *Send SMS*); or go to +:menuselection:`Settings --> View my Services` (under *Odoo IAP*). .. image:: media/fqa1.png :align: center .. image:: media/fqa2.png :align: center - -.. tip:: If you are on Odoo Online (SAAS) and have the Enterprise version, you benefit from free trial credits to test the feature. + +.. tip:: + If you are on Odoo Online (SAAS) and have the Enterprise version, you benefit from free trial + credits to test the feature. FAQ ================================== @@ -23,7 +29,8 @@ FAQ No, your credits won’t expire. -**Can I send an SMS to a phone number (which is not a mobile phone) because I see the icon in front of the field “phone”?** +**Can I send an SMS to a phone number (which is not a mobile phone) because I see the icon in front +of the field “phone”?** Only if that phone number supports SMS (e.g. SIP phones). @@ -37,11 +44,14 @@ No, it is not possible to reply to the SMS. **What happens if I send multiple SMS but I do not have enough credits to send them all?** -The whole transaction is counted as a single one, so no SMS will be sent until you have enough credits to send them all. +The whole transaction is counted as a single one, so no SMS will be sent until you have enough +credits to send them all. **Do I have a history of the sent SMSs?** -Yes, the SMS is logged as a note under the chatter of the corresponding record, and a complete history of SMS sent is available under Settings> Activate the developer mode > Technical > SMS. +Yes, the SMS is logged as a note under the chatter of the corresponding record, and a complete +history of SMS sent is available under :menuselection:`Settings --> Activate the developer mode --> +Technical --> SMS`. **Can I send as many SMSs I want at once?** @@ -49,9 +59,11 @@ Yes, if you have enough credits. **If I have a number that does not exist in the list of recipients, will I lose credits?** -Not if the phone number is in the wrong format (e.g. too many digits). Otherwise, if the SMS is sent to the wrong person or to a fake number, the credit will be lost. +Not if the phone number is in the wrong format (e.g. too many digits). Otherwise, if the SMS is sent +to the wrong person or to a fake number, the credit will be lost. -**What happens if I send my SMS to a paying number (e.g.: a contest to win a ticket for a festival)?** +**What happens if I send my SMS to a paying number (e.g.: a contest to win a ticket for a +festival)?** The SMS will not be delivered to that kind of number, so you won’t be charged. @@ -61,16 +73,20 @@ Only the ones that have an invalid format. **How does the GDPR regulation affect this service?** -Please find our Privacy Policy here: `Odoo IPA Purchase Privacy Policy `__ +Please find our Privacy Policy here: `Odoo IPA Purchase Privacy Policy +`__ **How many types of SMS exist and how many characters make 1 SMS?** There are 2 types of SMS message: -*Standard* (GSM-7): contains only characters from the GSM-7 set, which can be seen in the following picture. +*Standard* (GSM-7): contains only characters from the GSM-7 set, which can be seen in the following +picture. .. image:: media/fqa3.png :align: center *Unicode*: contains at least one character that is not in the previous table. -For Standard SMS the size limit is 160 characters, and for Unicode is 70. Above these limits, the content is divided into a multi-part message. The system will inform you in real-time about the number of SMS your message represents. +For Standard SMS the size limit is 160 characters, and for Unicode is 70. Above these limits, the +content is divided into a multi-part message. The system will inform you in real-time about the +number of SMS your message represents. diff --git a/social_marketing/social_marketing/social_marketing.rst b/social_marketing/social_marketing/social_marketing.rst index dd5f2634a..6a67af548 100644 --- a/social_marketing/social_marketing/social_marketing.rst +++ b/social_marketing/social_marketing/social_marketing.rst @@ -32,7 +32,7 @@ Kanban view as you like. - Engagement: Number of times people have engaged with your posts - Stories: Number of times people who have engaged with your channel - have created stories on their friend’s or follower’s feed (Shares, Retweet,..) + have created stories on their friend’s or follower’s feed (Shares, Retweet,..) You can access more information by clicking on the “Insights” link: this will lead you to statistics of the selected social medium. @@ -92,7 +92,7 @@ Configure your own Facebook and Twitter developer accounts By default, the Social application is already configured with a Facebook and Twitter developer accounts but you can use your own if necessary. -Activate the developer mode, go to Configuration > Settings and enter +Activate the developer mode, go to :menuselection:`Configuration --> Settings` and enter your own API keys. .. image:: media/social_marketing05.png diff --git a/support/supported_versions.rst b/support/supported_versions.rst index 7c384fdc3..f74ca310a 100644 --- a/support/supported_versions.rst +++ b/support/supported_versions.rst @@ -20,48 +20,57 @@ This matrix shows the support status of every version. **Major releases are in bold type.** -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| | Odoo Online | Odoo.sh | On-Premise | Release date | | -+====================+=============+=========+==============+================+==============================================+ -| **Odoo 13.0** | 🟢 | 🟢 | 🟢 | October 2019 | | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| Odoo 12.saas~3 | 🟢 | N/A | N/A | August 2019 | | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| **Odoo 12.0** | 🟢 | 🟢 | 🟢 | October 2018 | | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| Odoo 11.saas~3 | 🟢 | N/A | N/A | April 2018 | | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| **Odoo 11.0** | 🟢 | 🟢 | 🟢 | October 2017 | *End-of-support is planned for October 2020* | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| Odoo 10.saas~15 | 🟠 | N/A | N/A | March 2017 | | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| Odoo 10.saas~14 | 🟠 | N/A | N/A | January 2017 | | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| **Odoo 10.0** | 🟠 | 🟠 | 🔴 | October 2016 | | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| Odoo 9.saas~11 | 🟠 | N/A | N/A | May 2016 | | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| **Odoo 9.0** | 🟠 | N/A | 🔴 | October 2015 | | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| Odoo 8.saas~6 | 🟠 | N/A | N/A | February 2015 | | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ -| **Odoo 8.0** | 🟠 | N/A | 🔴 | September 2014 | | -+--------------------+-------------+---------+--------------+----------------+----------------------------------------------+ ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| | Odoo Online | Odoo.sh | On-Premise | Release date | | ++====================+=============+==========+==============+================+==============================================+ +| **Odoo 13.0** | |green| | |green| | |green| | October 2019 | | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| Odoo 12.saas~3 | |green| | N/A | N/A | August 2019 | | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| **Odoo 12.0** | |green| | |green| | |green| | October 2018 | | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| Odoo 11.saas~3 | |green| | N/A | N/A | April 2018 | | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| **Odoo 11.0** | |green| | |green| | |green| | October 2017 | *End-of-support is planned for October 2020* | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| Odoo 10.saas~15 | |orange| | N/A | N/A | March 2017 | | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| Odoo 10.saas~14 | |orange| | N/A | N/A | January 2017 | | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| **Odoo 10.0** | |orange| | |orange| | |red| | October 2016 | | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| Odoo 9.saas~11 | |orange| | N/A | N/A | May 2016 | | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| **Odoo 9.0** | |orange| | N/A | |red| | October 2015 | | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| Odoo 8.saas~6 | |orange| | N/A | N/A | February 2015 | | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ +| **Odoo 8.0** | |orange| | N/A | |red| | September 2014 | | ++--------------------+-------------+----------+--------------+----------------+----------------------------------------------+ .. note:: - 🟢 Supported version + |green| Supported version - 🔴 End-of-support + |red| End-of-support N/A Never released for this platform - 🟠 Some of our older customers may still run this version on our Odoo Online servers, we provide help only on blocking issues and advise you to upgrade. + |orange| Some of our older customers may still run this version on our Odoo Online servers, we provide help only on blocking issues and advise you to upgrade. 🏁 Future version, not released yet +.. |green| image:: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphNmMxNWY4YS00NjY3LTQ3MWEtOTJhMy05ZDdmN2NkM2M5YmEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDFGNDhDMjZGODREMTFFOUFCRkRBRDVFRERCQzYwOEEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDFGNDhDMjVGODREMTFFOUFCRkRBRDVFRERCQzYwOEEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpjM2E2MzlhMC00YzgzLTRlYjgtYTY5Zi1kMWQ2ODM0ODUxNGQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6YTZjMTVmOGEtNDY2Ny00NzFhLTkyYTMtOWQ3ZjdjZDNjOWJhIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+AIIG+AAAAqxJREFUeNq8lz9oFEEUxnfXFUQsDBIhnVhqYUSwMYVgo8QEO5GIIop/CkGCaGOpaIiVJJCIaQJaBCsPEaLYCVpYqU0qFURMoYly2MzM+nt7s3fD7O4lMbspvntv3gzzvffd7PwJp8xUkCRJYIxpWx9a603Yw2AQ/xB2N7YHhGCZ9hfsO/ACvAJNECitAqNNoJSSOdqQdixkGQpIt4Az4Dw4YBNoT2DH9Ngk+sEl8AnMgkeQ/vRJM0RFFVocAW8ZNI096JNqowsnpMq92DHwHv9U0ZiUuKTSm2CeAfsyMp9UJCyb1Mq5Syv9BP+BJO3KXFbxOLhHZ/Q/pAX/6VUqf4yN3bhPfANcd8lWQyqLqMh3kjlJfNId4xLLqr27VlJ/tSJvWfwi/jm/Ylm9kxXK267ci48T75PkMuLTBPdULG9uDNiBP5pWzM9mcKUmeXPJEDuL3xtDNAD6q5K3m+wWvWBQiIfd/3YlebP4auUtSfxYzM/Aeiv1N4ecvPmx+2O74dcrr/K2WaP7pOLtGyRvi7jFs1WIw/STqlNe06nW9oXyOf3u9rmsYXPoxLX9lFRpQn8je4hXsTkEKxXgKLAY2ZtDNZtDd3k7lwdtPghxY4PkdQ+feSF+DRbqltch/YN9FtmL2Uzd8jr2KfZrZDsfMvBbzfKmq9neboLITrKEHa1R3szeRpEFkxjO42whKT1H50RN8op9DsayzSryZLxGRXMVyyv2DcmNAC3j0oo9qaRjhMmnK5S3waTHsctptZAmJskRS6Xw6Mv4F8DiOuRtYm+BE2Apu1QKqdioy4Y/QwbybLlP/HtbXkfmEtJf6fNFXh9G3xEJU3kdUkE41BhqZa8K9upObKfcGsBROcTlPGWybfbR1qT9g/ZHJnxJWxbR5/T4swvJfxCK/0+AAQAmKbWesdxiOAAAAABJRU5ErkJggg== + :width: 15 + +.. |red| image:: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphNmMxNWY4YS00NjY3LTQ3MWEtOTJhMy05ZDdmN2NkM2M5YmEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDFGNDhDMkFGODREMTFFOUFCRkRBRDVFRERCQzYwOEEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDFGNDhDMjlGODREMTFFOUFCRkRBRDVFRERCQzYwOEEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpjM2E2MzlhMC00YzgzLTRlYjgtYTY5Zi1kMWQ2ODM0ODUxNGQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6YTZjMTVmOGEtNDY2Ny00NzFhLTkyYTMtOWQ3ZjdjZDNjOWJhIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8nyGFAAAAoxJREFUeNq8lz9oFEEUh/fGFUQsDBIhqcRSCyMHNloEbJRIsBOJKKL4pxBERBtLxYRYiSkU0wS0ECuPIESxE7SwUptUKoiYQqMSbHZm/N7uzN7csnceunvFd+/N3O7+9v12dmemYZrNyFobmSjKosvDqK1dRxynPUG+l3w7cQga8IP2R+JreArPYU1n56UkQe7bsYhZLypCnaIb4Dicot10N5BfwGQMuZsYg7PwHhbgPnwrinpUsbog3w+vOOgu7T1lorqcnTADb+Co7iZsy0WvwhIH7JJ2UaiHaGjnNnhIfltuumi7Mm3LvOgsTPOnMiVCfYqG7QvwAOKkh9VX4LJ2bd0eXH2LduEIzOVtY1zFmcA43MxF/7HSpHv/GfKTxYpl9M5VaG+3/lmqHUmCZ3yMzh0V29sJ9sIW8ktpxfysh/M12dvZjwZ9J8iHYy6+D9GxGu3Nqm23h2EiRnQyfLaV21v+38FYS8V1VersLcl3x+6DX6u9SeH6xBGpePOA7M2/kOQbRbhRt725oHtdoSGv08/K7SXmr1O5A7+Vm8Sr+Dj0fTyaK8qtHCr5OPzF3nCAvRXh1oDsDUf1kgi/gOUB2OvjL+IT5RZm8wOw18fHfC0/KXfiPfhcs73paEZ02s9O0rHqp6ua7I3cAuM6+bL1wu6uH5HfqcleEV0kn/FtVbjwRZ3dQJX2iuhL8inQ2q3jVeEk+WNK1tIV2tsiP2SyHUcqaoJnHNqbwDny07DyH/auIXqN/DCsFrdGqsfonadS2bbcSoz54u1NnNU9Kv0u2xfZfZDfAKNL9mON1uhomiQlzzPo2yqrBjggk7jMp8RNMsuklVn7lfiO+Iy4yMU/mE67o3DHInb/EWAA56Ap3OqLYGgAAAAASUVORK5CYII= + :width: 15 + +.. |orange| image:: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphNmMxNWY4YS00NjY3LTQ3MWEtOTJhMy05ZDdmN2NkM2M5YmEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTA0MTQ2QzdGODQ5MTFFOUFCRkRBRDVFRERCQzYwOEEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTA0MTQ2QzZGODQ5MTFFOUFCRkRBRDVFRERCQzYwOEEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpjM2E2MzlhMC00YzgzLTRlYjgtYTY5Zi1kMWQ2ODM0ODUxNGQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6YTZjMTVmOGEtNDY2Ny00NzFhLTkyYTMtOWQ3ZjdjZDNjOWJhIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+AQXwQQAAAtZJREFUeNq8lz1oFEEUx/cmKwSxMEiEdGKphZGAjSkCNoaI2IlEFFH8KAQJoo2digmxkqSImEaIRbAyiBDFTtDCythYqSCihSZKuObmjb/Zmf26ryzcruFe3nv7dua389+5mbmaXrsdtP8zfDARnOkLjIwRT2CHifcakQHiWiB6A/+F/F2g9QvyV+SbRnRATnsdmMhLlBtpRD7sCjXSD/QM/jwNRzD7AHzEdSRRhwPuIfQwdon8I9DHdP6I/JcRndzrHsbFqgv0iBHzFr9Aw0OtUGcmfgA/KjrfTzzDtffEp2JQVI/ucSNWHaA3ga7iDySQlpFql+scNJVX9B6gT4gfIHWf8ded3DlwAp0FOo1XnaGSQqUtNJEU4FVGuYSFgW4k96km6A2g1y2oPbRJ3i2giRpan8Tms/epDHQM6L3O0ELyZkcaNMl7EX8urikHNf1A50uU102iaCI1srVZakNOatfhaf7tK1neZCLFsxnoLuKpSGq+p9uoXqlI3qZFJLKzxIMh1VE6Gy5P3ixU8lD3YIPEEyGdHcdUKfJ2G2l83bUbt+DRnkdaFKpdO+KDoV/wq5VXWubHUAhkZ+XyxtB0gm0P/dZWrbxZqLte43us/5S0OBSF2vvrym/iZSwOxaCO9VNFJwcpaXEoAnW1D4pgpQi0Z3lTqM1X7Tt+TfLpP8gbQ//inyl/MFusXF4tcf6U+lflGz0k+VaxvNbXqU/bXPkRrFOYqlDeOL8TvVZjwam8y8RzFclr68/xM8afcJTROQmvMarlkuW19Tf4SWMv+KVZBZKTV2OT2EKJ8q7gjwHdyB42lN+cs500aHQZf8GuMD3Iu0n9Fv4E0PUsNBCD1P5kn5c36nSRzkeI72Pfk41Bbynvb7z9+WJ/fdw1dj1ugtr3XKsvTXSeSGm8Gz8O9KjdxO1+Sr7D7jJcsyP7Qcdr5C/xTCL92f3Yyx+VY6g92f4TYABoYgaZy0z5agAAAABJRU5ErkJggg== + :width: 15 + I run an older version of Odoo/OpenERP/TinyERP ============================================== diff --git a/support/user_doc.rst b/support/user_doc.rst index d983812e5..2cde4ae60 100644 --- a/support/user_doc.rst +++ b/support/user_doc.rst @@ -14,36 +14,43 @@ First of all... Edit an existing page ===================== -0. As our documentation is maintained on GitHub, you'll need a free `GitHub account `_. -1. Pick a page in our `user documentation `_. **Please take care of choosing the right version of Odoo.** -2. Click on **Edit on Github** in the left menu. +#. As our documentation is maintained on GitHub, you'll need a free `GitHub account + `_. +#. Pick a page in our :doc:`user documentation <../index>`. + **Please take care of selecting the right version of Odoo.** +#. Click on **Edit on Github** in the left menu. .. image:: ./media/edit_on_github.png :align: center :alt: Click on "Edit on Github". -3. If this is the first time you edit our documentation, click on **Fork repository**, else you won't see this step. -4. Use Github's editor to add your text. Text is tagged with a simple syntax called `RST `_. Don't worry, it's not so hard to learn 🤓... See the following section of this document for a quick overview of RST commands. +#. If this is the first time you edit our documentation, click on **Fork repository**, otherwise + you won't see this step. +#. Use Github's editor to add your text. Text is tagged with a simple syntax called `RST + `_. Don't worry, it's not so hard to learn 🤓... + See the following section of this document for a quick overview of RST commands. .. image:: ./media/add_text.png :align: center :alt: Use Github's editor to add your text. -5. Click on **Preview changes** to review your contribution in a human-readable format. +#. Click on **Preview changes** to review your contribution in a human-readable format. .. image:: ./media/preview_changes.png :align: center :alt: Click on "Preview changes" to review your contribution. -6. In the **Propose file change** section, add a short title to your contribution. The title should summarize your changes. You may use the second box to add an extended description if your contribution requires a longer explanation. +#. In the **Propose file change** section, add a short title to your contribution. + The title should summarize your changes. You may use the second box to add an extended + description if your contribution requires a longer explanation. .. image:: ./media/propose_changes.png :align: center :alt: Add a title and submit your contribution. -7. Submit your contribution by clicking on **Propose file change**. -8. Click on **Create pull request**. -9. Wait for an Odoo maintainer to add your contribution. Thank you for your help! +#. Submit your contribution by clicking on **Propose file change**. +#. Click on **Create pull request**. +#. Wait for an Odoo maintainer to add your contribution. Thank you for your help! .. warning:: There is no automatic port of your edit to another version of the documentation. @@ -54,6 +61,8 @@ Edit an existing page RST Cheat Sheet --------------- +.. TODO merge with our internal tutorial : https://docs.google.com/document/d/19QkK9zDpoHJ57QtBgAs0sjInfO8zR_3mfCIr-CxS85Y/ + Here is a summary of the markup elements you may use while editing our documentation. +------------------------------+--------------------------+---------------------------------------+ @@ -67,13 +76,13 @@ Here is a summary of the markup elements you may use while editing our documenta | | | | | Text in **bold** letters | | | +------------------------------+--------------------------+---------------------------------------+ -| .. code-block:: rst | 1. Numbered | Must be surrounded by white lines. | +| .. code-block:: rst | 1. Numbered | - Must be surrounded by white lines. | | | 2. Bullet | | | 1. Numbered | 3. List | | | 2. Bullet | | | | 3. List | | | +------------------------------+--------------------------+---------------------------------------+ -| .. code-block:: rst | - Numbered | Must be surrounded by white lines. | +| .. code-block:: rst | - Numbered | - Must be surrounded by white lines. | | | - Bullet | | | - Bullet | - List | | | - Point | | | @@ -87,7 +96,8 @@ Here is a summary of the markup elements you may use while editing our documenta .. note:: - There are many more commands available, see `comprehensive documentation `_ of RST. + There are many more commands available, see `comprehensive documentation + `_ of RST. Add images to your documents @@ -120,14 +130,13 @@ Add images to your documents .. Add a page about a new topic .. ============================ -.. TODO - +.. TODO publish our internal tutorial : https://docs.google.com/document/d/1EP32VFjN08piZoGn1BXT6ZOVb5AKUTieeeuK10nxZz8/ Technical Details for Nerds =========================== -Advanced users may, of course, fork and clone `the GitHub repository `_. +Advanced users may, of course, fork and clone the `GitHub repository `_. Then submit a pull request with the canonical Git/GitHub workflow. See our `README `_ file about building @@ -141,9 +150,3 @@ Documentation that targets developers of Odoo apps is maintained alongside `the .. note:: User documentation might contain technicalities yet, when they are related to configuration and everyday use of Odoo. - - - -.. |date| date:: - -*Last revision of this page:* |date| diff --git a/support/where_can_i_get_support.rst b/support/where_can_i_get_support.rst index 056c26145..7d6c3abed 100644 --- a/support/where_can_i_get_support.rst +++ b/support/where_can_i_get_support.rst @@ -9,12 +9,14 @@ Where to find help? Odoo Enterprise =============== -Users who have a valid Odoo Enterprise subscription may always contact our support teams through our `support form `_, no matter the hosting type you chose (Odoo Online, Odoo.sh or on your own server). +Users who have a valid Odoo Enterprise subscription may always contact our support teams through our +`support form `_, no matter the hosting type you chose (Odoo Online, +Odoo.sh or on your own server). Please include in your request: -- your subscription number, -- if your database is hosted by Odoo (Odoo Online or Odoo.sh), please also send the URL of your database. +- your subscription number +- the URL of your database if your database is hosted by Odoo (Odoo Online or Odoo.sh) Our agents will get back to you as soon as possible. @@ -28,9 +30,5 @@ Here are some resources that might help you: - Our `documentation pages `_. - Ask your question on the `community forum `_. -- `Buy Odoo Enterprise `_ to get the support and bugfix services. - - -.. |date| date:: - -*Last revision of this page:* |date| +- `Buy Odoo Enterprise `_ to get the + support and bugfix services. diff --git a/website/optimize/google_analytics.rst b/website/optimize/google_analytics.rst index 5051bf29e..5f12b485a 100644 --- a/website/optimize/google_analytics.rst +++ b/website/optimize/google_analytics.rst @@ -24,7 +24,8 @@ To follow your website's traffic with Google Analytics: .. image:: media/google_analytics_settings.png :align: center -To make your first steps in Google Analytics, refer to `Google Documentation. `__ +To make your first steps in Google Analytics, refer to `Google Documentation +`_. .. seealso:: diff --git a/website/optimize/seo.rst b/website/optimize/seo.rst index 9c9ef40a7..f306c0246 100644 --- a/website/optimize/seo.rst +++ b/website/optimize/seo.rst @@ -61,15 +61,15 @@ modules to help you build your website content: - **Odoo Slides**: publish all your Powerpoint or PDF presentations. Their content is automatically indexed on the web page. Example: - `https://www.odoo.com/slides/public-channel-1 `__ + `odoo.com/slides/public-channel-1 `_ - **Odoo Forum**: let your community create contents for you. Example: - `https://odoo.com/forum/1 `__ + `odoo.com/forum/1 `_ (accounts for 30% of Odoo.com landing pages) - **Odoo Mailing List Archive**: publish mailing list archives on your website. Example: - `https://www.odoo.com/groups/community-59 `__ + `odoo.com/groups/community-59 `_ (1000 pages created per month) .. note:: @@ -130,7 +130,7 @@ Test Your Website You can compare how your website rank, in terms of SEO, against Odoo using WooRank free services: -`https://www.woorank.com `__ +`woorank.com `_ URLs Handling ============= @@ -548,7 +548,7 @@ Browser Caching Javascript, images and CSS resources have an URL that changes dynamically when their content change. As an example, all CSS files are loaded through this URL: -`http://localhost:8069/web/content/457-0da1d9d/web.assets\_common.0.css `__. +`localhost:8069/web/content/457-0da1d9d/web.assets\_common.0.css `__. The ``457-0da1d9d`` part of this URL will change if you modify the CSS of your website. @@ -563,7 +563,10 @@ In addition to being fast, Odoo is also more scalable than traditional CMS and eCommerce (Drupal, Wordpress, Magento, Prestashop). The following link provides an analysis of the major open source CMS and eCommerce compared to Odoo when it comes to high query volumes: -`*https://www.odoo.com/slides/slide/197* `__ +`https://www.odoo.com/slides/slide/197 +`_ + +.. todo:: fix above link Here is the slide that summarizes the scalability of Odoo Website & eCommerce. diff --git a/website/publish/domain_name.rst b/website/publish/domain_name.rst index 37d18c04e..8f000d9e0 100644 --- a/website/publish/domain_name.rst +++ b/website/publish/domain_name.rst @@ -89,6 +89,9 @@ Until recently, Odoo users needed to use a third-party CDN service provider such It is not required anymore: Odoo generates the certificate for you automatically, using integration with `Let's Encrypt Certificate Authority and ACME protocol `__. In order to get this, simply add your domain name in your customer portal (a separate certificate is generated for each domain name specified). +.. warning:: + **Please note that the certificate generation may take up to 24h.** + If you already use CloudFlare or a similar service, you can keep using it or simply change for Odoo. The choice is yours. My website is indexed twice by Google diff --git a/website/publish/multi_website.rst b/website/publish/multi_website.rst index e2361b484..70b97feda 100644 --- a/website/publish/multi_website.rst +++ b/website/publish/multi_website.rst @@ -45,14 +45,14 @@ website. Follow the purple drops; they will help you in the first steps. .. note:: - If you run Odoo Online, don’t forget to redirect any new domain name to your Odoo database (CNAME) and to authorize it Odoo-side. - `Read `__ + If you run Odoo Online, don’t forget to redirect any new domain name to your Odoo database + (``CNAME``) and to authorize it Odoo-side. See :doc:`domain_name`. Create the menu =============== The new website has a default menu with all the installed applications. -To edit it, click *Pages > Edit Menu*. Moving forward you only edit +To edit it, click :menuselection:`Pages --> Edit Menu`. Moving forward you only edit the menu of the current website. Switch from one website to another @@ -68,7 +68,9 @@ requested to sign in. :align: center .. note:: - When switching, you are redirected to the same domain path on the other website (e.g.,/shop/myproduct). If this URL is not used, you will be redirected to a 404 page but suggested to create a new page from there. + When switching, you are redirected to the same domain path on the other website + (e.g., ``/shop/myproduct``). If this URL is not used, you will be redirected to a 404 page but + prompted to create a new page from there. Add features ============ @@ -111,16 +113,17 @@ Manage domain names As said earlier, your websites can either share the same domain name or use a specific one. If you share it and want to adapt the content per region, set country groups in the setting of each website. Visitors will -be redirected to the right website using Geo IP. +be redirected to the right website using GeoIP. .. image:: media/multi_website18.png :align: center .. note:: Geo IP is installed by default in Odoo Online. If you run Odoo - on-premise, don’t forget to install *Geoip* library. + on-premise, don’t forget to install *GeoIP* library. -`Read the full documenation about domain names here `__, +.. seealso:: + - :doc:`domain_name` Customize the visitor experience ================================ @@ -251,7 +254,7 @@ To manage specific prices by websites, you can activate *Multiple Sales Prices per Product* in Website settings. Then, go to :menuselection:`Website --> Products --> Pricelists` to create additional -pricelists. Read `Pricelists Documentation `__, +pricelists. See :doc:`../../ecommerce/maximizing_revenue/pricing`. If you need help. Select a website to make a pricelist only available on this website. diff --git a/website/publish/translate.rst b/website/publish/translate.rst index aa01cec95..fbb0da60e 100644 --- a/website/publish/translate.rst +++ b/website/publish/translate.rst @@ -45,8 +45,8 @@ To translate the content of the website, click on **Translate** (here There, if you have installed the Gengo Translator, You will see that next to the **Translate** button you also have a button **Translate automatically**. Once you click on that button, you will be asked some -information on your account. If you don't have an account yet, go to -`*https://gengo.com/auth/form/login/* `__ +information on your account. If you don't have an account yet, follow +`this link `_ in order to create one. You need to ask for a public key and a private key.