Compare commits
25 Commits
master-sta
...
16.0-websi
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f875b0e413 |
[ADD] website: address autocomplete configuration
Task-3618264 |
||
|
|
2edce38648 | [I18N] Update translation terms from Transifex | ||
|
|
d615bc0f6d |
[IMP] sales: updated entire invoicing based on milestones doc
closes odoo/documentation#5574 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
18aad6d5f2 |
[FIX] barcode: fix default delay number
closes odoo/documentation#6951 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
f3f44fe5f2 |
[FIX] deploy: set Content-Security-Policy on static
The Content-Security-Policy[^1] http header was only set on the response generated by controllers but it was missing from the `/<module>/static/` route. It is not strictly necessary to set that header on the responses comming from that routes as it is not possible to add new static files or edit existing ones via the interface (not even as admin). Only the developers and system administrator can access those files. It is also worth mentionning that using the Odoo internal web server to deliver static files is suboptimal. Outside of a dev environment, those files will typically be delivered via a web server[^2] and sysadmins should configure their web server to set the CSP header on static images. [^1]: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP [^2]: https://www.odoo.com/documentation/master/administration/install/deploy.html#serving-static-files-and-attachments closes odoo/documentation#5485 Related: odoo/odoo#131700 Signed-off-by: Julien Castiaux (juc) <juc@odoo.com> |
||
|
|
09c42c5896 |
[FIX] deploy: nginx forwarded-host with tcp port
Install nginx using the nginx configuration found in the documentation
and changes the `listen` port to 8080. Start Odoo in `--proxy-mode`.
listen 8080;
server_name mycompany.odoo.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
location / {
proxy_pass http://127.0.0.1:8069;
}
Inside your browser, access "http://mycompany.odoo.com:8080" you are
wrongly redirected to "http://mycompany.odoo.com:80".
Odoo uses the `X-Forwarded-Host` http header value to generate new URls,
in this configuration `$host` only contains the domain (=hostname using
the urllib terminology) instead of the domain+port (=netloc). The
variable that contains both the domain and the port is actually
`$http_host`.
closes odoo/documentation#6932
Closes: odoo/odoo#64643
X-original-commit:
|
||
|
|
6cf4d56153 |
[IMP] sales: updated Amazon Connector setup doc for 16
closes odoo/documentation#6288 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> Co-authored-by: dalaOdoo <dala@odoo.com> Co-authored-by: Demesmaeker <edm@odoo.com> Co-authored-by: meng-odoo <meng@odoo.com> Co-authored-by: brse-odoo <brse@odoo.com> Co-authored-by: StraubCreative <zst@odoo.com> |
||
|
|
a7c3f818da |
[IMP] accounting: updated chart of accounts page
Updated the chart of accounts page. Forward to master.
16.3 -> Change "ellipsis" menu button
17 -> Change "Setup" to "View"
taskid-3609365
closes odoo/documentation#6910
X-original-commit:
|
||
|
|
cb87e208bf |
[ADD] Payroll: adding detailed payslips doc
closes odoo/documentation#6924
X-original-commit:
|
||
|
|
053fb768e6 |
[FIX] accounting: cheat sheet reconcile
Before this commit, when doing the reconciliation of the table present in the cheat sheet, the second reconciliation was wrong because the "Invoice 1" should be reconciled with the twos partials payment. This Pr correct that by changing the find parameter to target the partials also. closes odoo/documentation#6896 Task: 3633468 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
|
|
a28339b44b |
[IMP] accounting/l10n_mx: additional context
closes odoo/documentation#6888
X-original-commit:
|
||
|
|
ba95cb33d5 | [I18N] Update translation terms from Transifex | ||
|
|
59791c252b |
[REF] Inventory: Restructure Inventory scope
closes odoo/documentation#5700 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
4e85ef01e8 |
[IMP] sales: updated returns doc for v16
closes odoo/documentation#6258 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
bbbb00e752 |
[IMP] sales: updated pro-forma invoice doc for 16
closes odoo/documentation#5553 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
9fc9c2f52d |
[IMP] sales: updated down payment doc for 16
closes odoo/documentation#5523 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
e6a6b9b453 |
[IMP] sales: online signature confirmation doc
closes odoo/documentation#5437 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
e1bed7ee7c |
[IMP] sales: update get signature to validate for 16
closes odoo/documentation#5434 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
22d41dc2f3 |
[IMP] sales: updated optional_products for 16
closes odoo/documentation#5409 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
1e2a29338e |
[IMP] sales: updated time_materials for v16
closes odoo/documentation#5083 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
039dba0780 |
[IMP] sales: fully updated currencies doc
closes odoo/documentation#4534 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
a4a9335dd1 |
[IMP] sales: reinvoice expenses to customers
closes odoo/documentation#5590 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
ff2cabf621 |
[IMP] subscriptions: products fix misleading info
closes odoo/documentation#5560 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
af7c7afa34 |
[IMP] sales: update orders and variants for 16
closes odoo/documentation#5456 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
e5d77ee285 |
[FIX] administration/install: wkhtmltopdf 0.12.6
Official packages for wkhtmltopdf 0.12.5 are no more released since the release of wkhtmltopdf 0.12.6 in 2020. Debian 10 "Buster" and Ubuntu 20.04 "Focal" were the last system for which 0.12.5 was built[^1]. Installing 0.12.5 on a Ubuntu 22.04 "Jammy" (using the Focal package) fails for outdated dependencies. Official packages for wkhtmltopdf 0.12.6 are published on another repository[^2] than 0.12.5 used to, it includes packages for 0.12.6 for both Debian 11 "Bullseye" and Ubuntu 22.04 "Jammy". Version 0.12.6.1-r3 is compatible out-of-the-box with Odoo and has been used by runbot to test all 16.x, 17.x and master branches for the past month. This work makes it official that [wkhtmltopdf 0.12.6.1-r3] must be used for Odoo 16.0 and onward. [^1]: https://github.com/wkhtmltopdf/wkhtmltopdf/releases/tag/0.12.5 [^2]: https://github.com/wkhtmltopdf/packaging/releases [wkhtmltopdf 0.12.6.1-r3]: https://github.com/wkhtmltopdf/packaging/releases/tag/0.12.6.1-3 closes odoo/documentation#6751 Signed-off-by: Julien Castiaux (juc) <juc@odoo.com> |
|
|
@@ -330,7 +330,7 @@ in ``/etc/nginx/sites-enabled/odoo.conf`` set:
|
|||
proxy_pass http://odoochat;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $connection_upgrade;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
|
|
@@ -339,7 +339,7 @@ in ``/etc/nginx/sites-enabled/odoo.conf`` set:
|
|||
# Redirect requests to odoo backend server
|
||||
location / {
|
||||
# Add Headers for odoo proxy mode
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
|
|
@@ -439,51 +439,71 @@ Odoo static files are located in each module's :file:`static/` folder, so static
|
|||
by intercepting all requests to :samp:`/{MODULE}/static/{FILE}`, and looking up the right module
|
||||
(and file) in the various addons paths.
|
||||
|
||||
.. example::
|
||||
Say Odoo has been installed via the **debian packages** for Community and Enterprise and the
|
||||
:option:`--addons-path <odoo-bin --addons-path>` is ``'/usr/lib/python3/dist-packages/odoo/addons'``.
|
||||
It is recommended to set the ``Content-Security-Policy: default-src 'none'`` header on all images
|
||||
delivered by the web server. It is not strictly necessary as users cannot modify/inject content
|
||||
inside of modules' :file:`static/` folder and existing images are final (they do not fetch new
|
||||
resources by themselves). However, it is good practice.
|
||||
|
||||
Using the above NGINX (https) configuration, the following location block should be added to
|
||||
serve static files via NGINX.
|
||||
Using the above NGINX (https) configuration, the following ``map`` and ``location`` blocks should be
|
||||
added to serve static files via NGINX.
|
||||
|
||||
.. code-block:: nginx
|
||||
.. code-block:: nginx
|
||||
|
||||
location @odoo {
|
||||
# copy-paste the content of the / location block
|
||||
}
|
||||
map $sent_http_content_type $content_type_csp {
|
||||
default "";
|
||||
~image/ "default-src 'none'";
|
||||
}
|
||||
|
||||
# Serve static files right away
|
||||
location ~ ^/[^/]+/static/.+$ {
|
||||
root /usr/lib/python3/dist-packages/odoo/addons;
|
||||
try_files $uri @odoo;
|
||||
expires 24h;
|
||||
}
|
||||
server {
|
||||
# the rest of the configuration
|
||||
|
||||
location @odoo {
|
||||
# copy-paste the content of the / location block
|
||||
}
|
||||
|
||||
# Serve static files right away
|
||||
location ~ ^/[^/]+/static/.+$ {
|
||||
# root and try_files both depend on your addons paths
|
||||
root ...;
|
||||
try_files ... @odoo;
|
||||
expires 24h;
|
||||
add_header Content-Security-Policy $content_type_csp;
|
||||
}
|
||||
}
|
||||
|
||||
The actual ``root`` and ``try_files`` directives are dependant on your installation, specifically on
|
||||
your :option:`--addons-path <odoo-bin --addons-path>`.
|
||||
|
||||
.. example::
|
||||
Say Odoo has been installed via the **source**. The two git repositories for Community and
|
||||
Enterprise have been cloned in :file:`/opt/odoo/community` and :file:`/opt/odoo/enterprise`
|
||||
respectively and the :option:`--addons-path <odoo-bin --addons-path>` is
|
||||
``'/opt/odoo/community/odoo/addons,/opt/odoo/community/addons,/opt/odoo/enterprise'``.
|
||||
|
||||
Using the above NGINX (https) configuration, the following location block should be added to
|
||||
serve static files via NGINX.
|
||||
.. tabs::
|
||||
|
||||
.. code-block:: nginx
|
||||
.. group-tab:: Debian package
|
||||
|
||||
location @odoo {
|
||||
# copy-paste the content of the / location block
|
||||
}
|
||||
Say Odoo has been installed via the **debian packages** for Community and Enterprise, and
|
||||
that the :option:`--addons-path <odoo-bin --addons-path>` is
|
||||
``'/usr/lib/python3/dist-packages/odoo/addons'``.
|
||||
|
||||
# Serve static files right away
|
||||
location ~ ^/[^/]+/static/.+$ {
|
||||
root /opt/odoo;
|
||||
try_files /community/odoo/addons$uri /community/addons$uri /enterprise$uri @odoo;
|
||||
expires 24h;
|
||||
}
|
||||
The ``root`` and ``try_files`` should be:
|
||||
|
||||
.. warning::
|
||||
The actual NGINX configuration you need is highly dependent on your own installation. The two
|
||||
above snippets only highlight two possible configurations and may not be used as-is.
|
||||
.. code-block:: nginx
|
||||
|
||||
root /usr/lib/python3/dist-packages/odoo/addons;
|
||||
try_files $uri @odoo;
|
||||
|
||||
.. group-tab:: Git sources
|
||||
|
||||
Say Odoo has been installed via the **sources**, that both the Community and Enterprise git
|
||||
repositories were cloned in :file:`/opt/odoo/community` and :file:`/opt/odoo/enterprise`
|
||||
respectively, and that the :option:`--addons-path <odoo-bin --addons-path>` is
|
||||
``'/opt/odoo/community/odoo/addons,/opt/odoo/community/addons,/opt/odoo/enterprise'``.
|
||||
|
||||
The ``root`` and ``try_files`` should be:
|
||||
|
||||
.. code-block:: nginx
|
||||
|
||||
root /opt/odoo;
|
||||
try_files /community/odoo/addons$uri /community/addons$uri /enterprise$uri @odoo;
|
||||
|
||||
Serving attachments
|
||||
-------------------
|
||||
|
|
|
|||
|
|
@@ -54,10 +54,10 @@ Odoo needs a `PostgreSQL <https://www.postgresql.org/>`_ server to run properly.
|
|||
$ sudo systemctl start postgresql
|
||||
|
||||
.. warning::
|
||||
`wkhtmltopdf` is not installed through **pip** and must be installed manually in `version 0.12.5
|
||||
<https://github.com/wkhtmltopdf/wkhtmltopdf/releases/tag/0.12.5>`_ for it to support headers and
|
||||
footers. Check out the `wkhtmltopdf wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_ for
|
||||
more details on the various versions.
|
||||
`wkhtmltopdf` is not installed through **pip** and must be installed manually in `version 0.12.6
|
||||
<https://github.com/wkhtmltopdf/packaging/releases/tag/0.12.6.1-3>`_ for it to support headers
|
||||
and footers. Check out the `wkhtmltopdf wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_
|
||||
for more details on the various versions.
|
||||
|
||||
Repository
|
||||
----------
|
||||
|
|
|
|||
|
|
@@ -409,10 +409,10 @@ Dependencies
|
|||
$ sudo npm install -g rtlcss
|
||||
|
||||
.. warning::
|
||||
`wkhtmltopdf` is not installed through **pip** and must be installed manually in `version 0.12.5
|
||||
<https://github.com/wkhtmltopdf/wkhtmltopdf/releases/tag/0.12.5>`_ for it to support headers and
|
||||
footers. Check out the `wkhtmltopdf wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_ for
|
||||
more details on the various versions.
|
||||
`wkhtmltopdf` is not installed through **pip** and must be installed manually in `version 0.12.6
|
||||
<https://github.com/wkhtmltopdf/packaging/releases/tag/0.12.6.1-3>`_ for it to support headers
|
||||
and footers. Check out the `wkhtmltopdf wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_
|
||||
for more details on the various versions.
|
||||
|
||||
.. _install/source/running_odoo:
|
||||
|
||||
|
|
|
|||
|
|
@@ -203,8 +203,7 @@ available methods are standard price, average price, :abbr:`LIFO (Last-In, First
|
|||
:abbr:`FIFO (First-In, First-Out).`
|
||||
|
||||
.. seealso::
|
||||
:doc:`View the impact of the valuation methods on transactions
|
||||
<../inventory_and_mrp/inventory/management/reporting/inventory_valuation_config>`
|
||||
:doc:`../inventory_and_mrp/inventory/warehouses_storage/inventory_valuation/inventory_valuation_config`
|
||||
|
||||
Retained earnings
|
||||
=================
|
||||
|
|
|
|||
|
|
@@ -3,7 +3,6 @@ Average price on returned goods
|
|||
===============================
|
||||
|
||||
.. |AVCO| replace:: :abbr:`AVCO (Average Cost Valuation)`
|
||||
|
||||
.. _inventory/avg_cost/definition:
|
||||
|
||||
*Average cost valuation* (AVCO) is an inventory valuation method that evaluates cost based on the
|
||||
|
|
|
|||
|
|
@@ -3,48 +3,37 @@ Chart of accounts
|
|||
=================
|
||||
|
||||
The **chart of accounts (COA)** is the list of all the accounts used to record financial
|
||||
transactions in the general ledger of an organization.
|
||||
transactions in the general ledger of an organization. The chart of accounts can be found under
|
||||
:menuselection:`Accounting-->Configuration-->Chart of Accounts`.
|
||||
|
||||
The accounts are usually listed in the order of appearance in the financial reports. Most of the
|
||||
time, they are listed as follows :
|
||||
When browsing your chart of accounts, you can sort the accounts by :guilabel:`Code`,
|
||||
:guilabel:`Account Name`, or :guilabel:`Type`, but other options are available in the drop-down menu
|
||||
:guilabel:`(⋮)`.
|
||||
|
||||
- Balance Sheet accounts:
|
||||
|
||||
- Assets
|
||||
- Liabilities
|
||||
- Equity
|
||||
|
||||
- Profit & Loss:
|
||||
|
||||
- Income
|
||||
- Expense
|
||||
|
||||
When browsing your chart of accounts, you can filter the accounts by number, in the left column, and
|
||||
also group them by :guilabel:`Account Type`.
|
||||
|
||||
.. image:: chart_of_accounts/chart-of-accounts.png
|
||||
:align: center
|
||||
.. image:: chart_of_accounts/chart-of-accounts-sort.png
|
||||
:alt: Group the accounts by type in Odoo Accounting
|
||||
|
||||
Configuration of an account
|
||||
===========================
|
||||
|
||||
The country you select at the creation of your database (or additional company on your database)
|
||||
determines which **fiscal localization package** is installed by default. This package includes a
|
||||
standard chart of accounts already configured according to the country's regulations. You can use
|
||||
it directly or set it according to your company's needs.
|
||||
The country you select during the creation of your database (or additional company in your database)
|
||||
determines which :doc:`fiscal localization package <../../fiscal_localizations>` is installed by
|
||||
default. This package includes a standard chart of accounts already configured according to the
|
||||
country's regulations. You can use it directly or set it according to your company's needs.
|
||||
|
||||
To create a new account, go to :menuselection:`Accounting-->Configuration-->Chart of Accounts`,
|
||||
click :guilabel:`Create`, and fill in (at the minimum) the required fields
|
||||
(:guilabel:`Code, Account Name, Type`).
|
||||
|
||||
.. warning::
|
||||
It is not possible to modify the **fiscal localization** of a company once a journal entry has
|
||||
been posted.
|
||||
|
||||
To create a new account, go to :menuselection:`Accounting --> Configuration --> Chart of Accounts`,
|
||||
click on :guilabel:`Create`, and fill out the form.
|
||||
|
||||
Code and name
|
||||
-------------
|
||||
|
||||
Each account is identified by its **code** and **name**, which also indicates the account's purpose.
|
||||
Each account is identified by its :guilabel:`Code` and :guilabel:`Name`, which also indicate the
|
||||
account's purpose.
|
||||
|
||||
.. _chart-of-account/type:
|
||||
|
||||
|
|
@@ -59,7 +48,7 @@ Correctly configuring the **account type** is critical as it serves multiple pur
|
|||
- Generate opening entries
|
||||
|
||||
To configure an account type, open the :guilabel:`Type` field's drop-down selector and select the
|
||||
right type among the following list:
|
||||
corresponding type from the following list:
|
||||
|
||||
+---------------+--------------+-------------------------+
|
||||
| Report | Category | Account Types |
|
||||
|
|
@@ -104,29 +93,31 @@ right type among the following list:
|
|||
Assets, deferred expenses, and deferred revenues automation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Some **account types** display a new field **to automate** the creation of :ref:`assets
|
||||
<assets-automation>` entries, :ref:`deferred expenses <deferred-expenses-automation>` entries,
|
||||
and :ref:`deferred revenues <deferred-revenues-automation>` entries.
|
||||
Some **account types** can **automate** the creation of :ref:`assets <assets-automation>` entries,
|
||||
:ref:`deferred expenses <deferred-expenses-automation>` entries, and
|
||||
:ref:`deferred revenues <deferred-revenues-automation>` entries. To **automate** entries, click
|
||||
:guilabel:`Setup` on an account line and go to the :guilabel:`Automation` tab.
|
||||
|
||||
You have three choices for the :guilabel:`Automation` field:
|
||||
You have three choices for the :guilabel:`Automation` tab:
|
||||
|
||||
#. :guilabel:`No`: this is the default value. Nothing happens.
|
||||
#. :guilabel:`Create in draft`: whenever a transaction is posted on the account, a draft entry is
|
||||
created, but not validated. You must first fill out the corresponding form.
|
||||
#. :guilabel:`Create and validate`: you must also select a **model**. Whenever a transaction is
|
||||
posted on the account, an entry is created and immediately validated.
|
||||
created but not validated. You must first fill out the corresponding form.
|
||||
#. :guilabel:`Create and validate`: you must also select a :guilabel:`Deferred Expense Model`.
|
||||
Whenever a transaction is posted on the account, an entry is created and immediately validated.
|
||||
|
||||
Default taxes
|
||||
-------------
|
||||
|
||||
Select a **default tax** that will be applied when this account is chosen for a product sale or
|
||||
purchase.
|
||||
In the :guilabel:`Setup` menu of an account, select a **default tax** to be applied when this
|
||||
account is chosen for a product sale or purchase.
|
||||
|
||||
Tags
|
||||
----
|
||||
|
||||
Some accounting reports require **tags** to be set on the relevant accounts. By default, you can
|
||||
choose among the tags that are used by the *Cash Flow Statement*.
|
||||
Some accounting reports require **tags** to be set on the relevant accounts. To add a tag, under
|
||||
:guilabel:`Setup`, click the :guilabel:`Tags` field and select an existing tag or :guilabel:`Create`
|
||||
a new one.
|
||||
|
||||
Account groups
|
||||
--------------
|
||||
|
|
@@ -134,31 +125,29 @@ Account groups
|
|||
**Account groups** are useful to list multiple accounts as *sub-accounts* of a bigger account and
|
||||
thus consolidate reports such as the **Trial Balance**. By default, groups are handled automatically
|
||||
based on the code of the group. For example, a new account `131200` is going to be part of the group
|
||||
`131000`.
|
||||
`131000`. You can attribute a specific group to an account in the :guilabel:`Group` field under
|
||||
:guilabel:`Setup`.
|
||||
|
||||
Create account groups manually
|
||||
------------------------------
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. note::
|
||||
Regular users should not need to create account groups manually. The following section is only
|
||||
intended for rare and advanced use cases.
|
||||
|
||||
To create a new account group, :ref:`developer mode <developer-mode>` and head to
|
||||
:menuselection:`Accounting app --> Configuration --> Account Groups`. Here, create a new group and
|
||||
enter the :guilabel:`name, code prefix, and company` to which that group account should be
|
||||
available. Note that you must enter the same code prefix in both :guilabel:`From` and :guilabel:`to`
|
||||
fields.
|
||||
To create a new account group, activate :ref:`developer mode <developer-mode>` and head to
|
||||
:menuselection:`Accounting app-->Configuration-->Account Groups`. Here, create a new group and enter
|
||||
the :guilabel:`name, code prefix, and company` to which that group account should be available. Note
|
||||
that you must enter the same code prefix in both :guilabel:`From` and :guilabel:`to` fields.
|
||||
|
||||
.. image:: chart_of_accounts/account-groups.png
|
||||
:align: center
|
||||
:alt: Account groups creation.
|
||||
|
||||
To display your **Trial Balance** report with your account groups, go to :menuselection:`Accounting
|
||||
app-->Reporting-->Trial Balance`, then open the :guilabel:`Options` menu and select
|
||||
:guilabel:`Hierarchy and Subtotals`.
|
||||
To display your **Trial Balance** report with your account groups, go to
|
||||
:menuselection:`Accounting-->Reporting-->Trial Balance`, then open the :guilabel:`Options` menu and
|
||||
select :guilabel:`Hierarchy and Subtotals`.
|
||||
|
||||
.. image:: chart_of_accounts/trial-balance.png
|
||||
:align: center
|
||||
.. image:: chart_of_accounts/chart-of-accounts-groups.png
|
||||
:alt: Account Groups in the Trial Balance in Odoo Accounting
|
||||
|
||||
Allow reconciliation
|
||||
|
|
@@ -171,15 +160,18 @@ For example, an invoice paid with a credit card can be marked as :guilabel:`paid
|
|||
its payment. Therefore, the account used to record credit card payments needs to be configured as
|
||||
**allowing reconciliation**.
|
||||
|
||||
To do so, check the :guilabel:`Allow Reconciliation` box in the account's settings, and save.
|
||||
To do so, check the :guilabel:`Allow Reconciliation` box in the account's settings, and
|
||||
:guilabel:`Save`; or enable the button from the chart of accounts view.
|
||||
|
||||
.. image:: chart_of_accounts/chart-of-accounts-reconciliation.png
|
||||
:alt: Allow reconciliation for accounts in Odoo Accounting
|
||||
|
||||
Deprecated
|
||||
----------
|
||||
|
||||
It is not possible to delete an account once a transaction has been recorded on it. You can make
|
||||
them unusable by using the **Deprecated** feature.
|
||||
|
||||
To do so, check the :guilabel:`Deprecated` box in the account's settings, and save.
|
||||
them unusable by using the **Deprecated** feature: check the :guilabel:`Deprecated` box in the
|
||||
account's settings, and :guilabel:`Save`.
|
||||
|
||||
.. seealso::
|
||||
* :doc:`cheat_sheet`
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
|
@@ -40,9 +40,8 @@ drop-down menu (most products will be set to :guilabel:`Units`).
|
|||
The *Sales* app is where specification on the units of measure are created and edited (e.g.
|
||||
units, miles, nights, etc.). Go to :menuselection:`Sales app --> Configuration --> Settings` and
|
||||
ensure `Units of Measure` is enabled in the `Product Catalog` section. Click on the
|
||||
:guilabel:`Units of Measure` internal link to view, create, and edit the units of measure. Refer
|
||||
to :doc:`this document </applications/inventory_and_mrp/inventory/management/products/uom>` to
|
||||
learn more about units of measure and how to configure them.
|
||||
:guilabel:`Units of Measure` internal link to :doc:`view, create, and edit the units of measure
|
||||
<../inventory_and_mrp/inventory/product_management/product_replenishment/uom>`.
|
||||
|
||||
.. image:: expenses/new-expense-product.png
|
||||
:align: center
|
||||
|
|
|
|||
|
|
@@ -175,7 +175,7 @@ Make sure your products are correctly configured so your e-invoices are valid:
|
|||
|
||||
- :guilabel:`Product Type`: storable products, consumables, or services.
|
||||
- :guilabel:`Unit of Measure`: if you also use Odoo Inventory and have enabled :doc:`Units of
|
||||
Measure </applications/inventory_and_mrp/inventory/management/products/uom>`.
|
||||
Measure <../../inventory_and_mrp/inventory/product_management/product_replenishment/uom>`.
|
||||
- :guilabel:`Barcode`: **GS1** or **EGS** barcode
|
||||
- :guilabel:`ETA Item code` (under the :menuselection:`Accounting` tab): if the barcode doesn't
|
||||
match your ETA item code.
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 85 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 10 KiB |
|
|
@@ -368,5 +368,6 @@ Resume
|
|||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
payroll/work_entries
|
||||
payroll/contracts
|
||||
payroll/payslips
|
||||
payroll/work_entries
|
||||
|
|
|
|||
386
content/applications/hr/payroll/payslips.rst
Normal file
|
|
@@ -0,0 +1,386 @@
|
|||
========
|
||||
Payslips
|
||||
========
|
||||
|
||||
Payslips are created either by the employees themselves or their managers, and are approved by
|
||||
authorized employees (typically managers). Then, once payslips are approved, employees are issued
|
||||
payslips and are paid either by check or direct deposit, depending on how their employee profile is
|
||||
configured.
|
||||
|
||||
The :guilabel:`Payslips` drop-down header of the :menuselection:`Payroll` application consists of
|
||||
three sections: :guilabel:`To Pay`, :guilabel:`All Payslips`, and :guilabel:`Batches`.
|
||||
|
||||
These three sections provide all the tools needed to create payslips for employees, including
|
||||
individual payslips, a batch of payslips, or commission payslips.
|
||||
|
||||
.. image:: payslips/payslips.png
|
||||
:align: center
|
||||
:alt: Payslips menu selection in Payroll.
|
||||
|
||||
To pay
|
||||
======
|
||||
|
||||
Click on :menuselection:`Payroll app --> Payslips --> To Pay` to see the payslips that need to be
|
||||
paid. On this page, Odoo displays the payslips that have not been generated yet, and can be created
|
||||
from this dashboard.
|
||||
|
||||
.. image:: payslips/all-pay-slips.png
|
||||
:align: center
|
||||
:alt: View all payslips that need to be paid on the Payslips To Pay page.
|
||||
|
||||
Each payslip will list the :guilabel:`Reference` number for the individual payslip, the
|
||||
:guilabel:`Employee` name, :guilabel:`Batch Name`, the :guilabel:`From` and :guilabel:`To` date
|
||||
range, the :guilabel:`Company`, the :guilabel:`Basic Wage`, :guilabel:`Net Wage`, and the
|
||||
:guilabel:`Status` of the payslip.
|
||||
|
||||
Clicking on an individual payslip entry will show the details for the individual payslip.
|
||||
|
||||
.. _payroll/new-payslip:
|
||||
|
||||
Create new payslip
|
||||
------------------
|
||||
|
||||
A new payslip can be created from the :guilabel:`Payslips To Pay` page (:menuselection:`Payroll app
|
||||
--> Payslips --> To Pay`) or the :guilabel:`Employee Payslips` page (:menuselection:`Payroll app
|
||||
--> Payslips --> All Payslips`), by clicking the :guilabel:`Create` button in the top-left corner.
|
||||
|
||||
Clicking :guilabel:`Create` reveals a blank payslip form, wherein the necessary payslip information
|
||||
can be entered.
|
||||
|
||||
Required fields
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
On the blank payslip form, a number of fields are required to be filled in with the necessary
|
||||
information. These required fields are represented by **bold** lines.
|
||||
|
||||
.. image:: payslips/new-payslip.png
|
||||
:align: center
|
||||
:alt: The necessary fields for a new payslip.
|
||||
|
||||
- :guilabel:`Employee`: Type in the name of an employee, or select the desired employee from the
|
||||
drop-down list. Upon selecting an employee, several other fields on the payslip form may
|
||||
auto-populate. Typically, after making a selection in the :guilabel:`Employee` field, Odoo
|
||||
auto-populates the :guilabel:`Contract`, :guilabel:`Structure`, and :guilabel:`Payslip Name`
|
||||
fields, but **only** if that information is already on that employee's form in the *Employees*
|
||||
app.
|
||||
- :guilabel:`Period`: Click the default date to reveal a pop-up calendar. On this calendar, use the
|
||||
:guilabel:`< (less-than)` and :guilabel:`> (greater than)` icons to select the desired month, and
|
||||
click on the desired day to select that specific date as the start date for the payslip. Repeat
|
||||
this process to add an end date for the payslip in the field below.
|
||||
- :guilabel:`Contract`: Using the drop-down menu, select the desired contract for the employee. Only
|
||||
the available corresponding contracts for the selected employee appear as options.
|
||||
- :guilabel:`Structure`: Using the drop-down menu, select the salary structure type. Only the
|
||||
available corresponding structures for the selected contract for that specific employee appear as
|
||||
options.
|
||||
- :guilabel:`Payslip Name`: In the blank field, type in the name for the payslip. The name should be
|
||||
short and descriptive, such as `April 2023`.
|
||||
- :guilabel:`Company`: In the :guilabel:`Accounting Information` tab, select the company the payslip
|
||||
applies to from the :guilabel:`Company` drop-down menu.
|
||||
- :guilabel:`Salary Journal`: In the :guilabel:`Accounting Information` tab, enter the salary
|
||||
journal in which the payment will be reflected, and found in the *Accounting* application.
|
||||
|
||||
.. image:: payslips/new-payslip-tab.png
|
||||
:align: center
|
||||
:alt: The necessary fields for a new payslip in the Accounting Information tab.
|
||||
|
||||
.. important::
|
||||
It is recommended to check with the accounting department to ensure every entry that affects the
|
||||
*Accounting* application is correct.
|
||||
|
||||
Optional fields
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- :guilabel:`Reference`: Any note or reference message for the new entry can be entered here.
|
||||
- :guilabel:`Company Car`: If applicable, select the company car from the drop-down.
|
||||
- :guilabel:`Worked Days`: In the :guilabel:`Worked Days \& Inputs` tab, the entries under
|
||||
:guilabel:`Worked Days` (including the :guilabel:`Type`, :guilabel:`Description`,
|
||||
:guilabel:`Number of Days`, :guilabel:`Number of Hours`, and :guilabel:`Amount`) are automatically
|
||||
filled in, based on what was entered for the :guilabel:`Period`, :guilabel:`Contract`, and
|
||||
:guilabel:`Structure` fields of the payslip form.
|
||||
- :guilabel:`Salary Computation`: The :guilabel:`Salary Computation` tab is automatically filled in
|
||||
after the :guilabel:`Compute Sheet` button is clicked. Doing so displays all the wages,
|
||||
deductions, taxes, etc. for the entry.
|
||||
- :guilabel:`Batch Name`: Located in the :guilabel:`Accounting Information` tab, select the payslip
|
||||
batch this new payslip should be added to from the drop-down menu.
|
||||
- :guilabel:`Date Account`: Located in the :guilabel:`Accounting Information` tab, enter the date on
|
||||
which the payslip should be posted, by clicking on the drop-down menu, and navigating to the
|
||||
correct month and year using the :guilabel:`< > (less-than/greater-than)` icons in the calendar
|
||||
pop-up window. Then, click on the desired date.
|
||||
- :guilabel:`Salary Journal`: This field, located in the :guilabel:`Accounting Information` tab,
|
||||
represents the journal that the payslip will be logged in, and is automatically selected when the
|
||||
:guilabel:`Contract` and :guilabel:`Structure` are entered in the payslip form.
|
||||
- :guilabel:`Accounting Entry`: This field, located in the :guilabel:`Accounting Information` tab,
|
||||
is automatically filled in once the payslip is confirmed.
|
||||
|
||||
Save and process new payslip
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
When all the necessary information on the payslip is entered, click :guilabel:`Save` to save the
|
||||
data, or click :guilabel:`Discard` to delete the entry.
|
||||
|
||||
.. note::
|
||||
Saving the entry is not required in order to compute the sheet, although it is considered best
|
||||
practice to do so. The :guilabel:`Compute Sheet` button can be clicked without first saving the
|
||||
payslip. Doing so will save the entry *and* compute the sheet.
|
||||
|
||||
Click the :guilabel:`Compute Sheet` button to register all the
|
||||
information, and have the :guilabel:`Salary Computation` tab populated. If any modifications need to
|
||||
be made, click the :guilabel:`Edit` button, make the desired changes, then click the
|
||||
:guilabel:`Recompute Worked Days` button to have the changes reflected in the :guilabel:`Worked
|
||||
Days` and :guilabel:`Salary Computation` tabs.
|
||||
|
||||
To print the payslip, click the :guilabel:`Print` button. To cancel the payslip, click the
|
||||
:guilabel:`Cancel Payslip` button.
|
||||
|
||||
Once everything on the payslip form is correct, click the :guilabel:`Create Draft Entry` button to
|
||||
create the payslip. The chatter is automatically updated to show the email sent to the employee,
|
||||
along with a PDF copy of the payslip.
|
||||
|
||||
.. image:: payslips/payslip-chatter.png
|
||||
:align: center
|
||||
:alt: The new payslip is emailed to the employee and the email appears in the chatter.
|
||||
|
||||
Next, the payment must be sent to the employee. To do this, click the :guilabel:`Make Payment`
|
||||
button. Doing so reveals a pop-up form, in which the desired :guilabel:`Bank Journal` that the
|
||||
payment should be made against must be selected from a drop-down menu. Then, click the
|
||||
:guilabel:`Confirm` button to confirm the journal, and return to the payslip.
|
||||
|
||||
.. image:: payslips/make-payment.png
|
||||
:align: center
|
||||
:alt: Click Make Payment to send the payment to the employee.
|
||||
|
||||
If a payment needs to be cancelled or refunded, click the corresponding :guilabel:`Refund` or
|
||||
:guilabel:`Cancel Payslip` button, located at the top of the payslip form.
|
||||
|
||||
.. important::
|
||||
In order for a payslip to be paid, the employee *must* have a bank account entered in their
|
||||
contact information. If there is no bank information, a payslip cannot be paid, and an error will
|
||||
appear when the :guilabel:`Make Payment` button is clicked. Banking information can be found in
|
||||
the :guilabel:`Private Information` tab on the employee's card. Edit the employee card, and add
|
||||
banking information, if it is missing.
|
||||
|
||||
.. image:: payslips/banking.png
|
||||
:align: center
|
||||
:alt: Banking information can be entered in an employee's card.
|
||||
|
||||
All payslips
|
||||
============
|
||||
|
||||
To view all payslips regardless of status, go to :menuselection:`Payroll app --> Payslips --> All
|
||||
Payslips`. Here, all payslips are organized by batch (in a default list view).
|
||||
|
||||
Click on the :guilabel:`▶ (arrow)` next to the individual batch name to view all the payslips in
|
||||
that particular batch, along with all the payslip details. The number of payslips in the batch is
|
||||
written in parenthesis after the batch name. The :guilabel:`Status` for each individual payslip
|
||||
appears on the far-right side, indicating if it is in :guilabel:`Draft Mode`, :guilabel:`Waiting`,
|
||||
or if it is :guilabel:`Done`.
|
||||
|
||||
.. note::
|
||||
- :guilabel:`Draft` indicates the payslip is created, and there is still time to make edits,
|
||||
since the amounts are not calculated.
|
||||
- `Waiting` indicates the payslip has been calculated and the salary details can be found in the
|
||||
*Salary Computation* tab.
|
||||
- `Done` indicates the payslip is calculated and ready to be paid.
|
||||
|
||||
.. image:: payslips/all-payslips.png
|
||||
:align: center
|
||||
:alt: View all payslips organized by batches. Click on the arrow to expand each batch.
|
||||
|
||||
Click on an individual payslip to view the details for that payslip on a separate page. Using the
|
||||
breadcrumb menu, click :guilabel:`Employee Payslips` to go back to the list view of all payslips.
|
||||
|
||||
A new payslip can be created from the :guilabel:`Employee Payslips` page, by clicking the
|
||||
:guilabel:`Create` button in the upper-left corner. Doing so reveals a separate blank payslip form
|
||||
page. On that blank payslip form page, enter all the necessary information, as described in the
|
||||
:ref:`Create a new payslip <payroll/new-payslip>` section.
|
||||
|
||||
To print PDF versions of payslips from the :guilabel:`Payslips to Pay` or :guilabel:`Employee
|
||||
Payslips` pages, first select the desired payslips by clicking on the individual checkbox next to
|
||||
each payslip to be printed. Or, click the box next to :guilabel:`Reference`, which selects all
|
||||
visible payslips on the page. Then, click the :guilabel:`Print` button to print the payslips.
|
||||
|
||||
.. image:: payslips/print.png
|
||||
:align: center
|
||||
:alt: Click on the Print smart button to print payslips to a PDF.
|
||||
|
||||
Payslips can also be exported to an Excel spreadsheet. When exporting, all payslips are exported
|
||||
regardless of whether some are selected or not. Click on the :guilabel:`Export All` button (download
|
||||
icon) to export all payslips to an Excel spreadsheet.
|
||||
|
||||
.. image:: payslips/export.png
|
||||
:align: center
|
||||
:alt: Click on the Export All smart button to export all payslips to an Excel payslip.
|
||||
|
||||
.. note::
|
||||
Both *To Pay* and *All Payslips* display all the detailed information for each payslip.
|
||||
|
||||
Batches
|
||||
=======
|
||||
|
||||
To view payslips in batches, navigate to :menuselection:`Payroll app --> Payslips --> Batches` to
|
||||
display all the payslip batches that have been created. These payslip batches are displayed in a
|
||||
list view, by default.
|
||||
|
||||
Each batch displays the :guilabel:`Name`, :guilabel:`Date From` and :guilabel:`Date To` dates,
|
||||
whether it was a :guilabel:`Credit note`, its :guilabel:`Status`, and the :guilabel:`Company`.
|
||||
|
||||
.. image:: payslips/batches.png
|
||||
:align: center
|
||||
:alt: View displaying all batches created.
|
||||
|
||||
Click on an individual batch to view the details for that batch on a separate page. On this batch
|
||||
detail page, modifications can be made. To make any modifications to a batch, click the
|
||||
:guilabel:`Edit` button. Then, proceed to make any necessary changes.
|
||||
|
||||
When all desired changes have been made, click either :guilabel:`Save` to save the changes, or
|
||||
:guilabel:`Discard` to revert back to the original data.
|
||||
|
||||
After modifications have been saved, click the :guilabel:`Generate Payslips` button to reveal a
|
||||
:guilabel:`Generate Payslips` pop-up form, in which payslips affected by the changes can be created
|
||||
or modified.
|
||||
|
||||
All payslips associated with the batch are displayed in the employees section of the
|
||||
:guilabel:`Generate Payslips` pop-up. To filter the results by either the :guilabel:`Salary
|
||||
Structure` and/or the :guilabel:`Department`, select a salary structure and/or department from the
|
||||
respective drop-down menus.
|
||||
|
||||
Only employees that match the selected :guilabel:`Salary Structure` and/or :guilabel:`Department`
|
||||
appear in the employees list. Click the :guilabel:`Generate` button at the bottom of the
|
||||
:guilabel:`Generate Payslips` pop-up window to generate the modified payslips, and close the pop-up
|
||||
window.
|
||||
|
||||
.. image:: payslips/generate-payslips-batch.png
|
||||
:align: center
|
||||
:alt: Generate payslips from the edited batch.
|
||||
|
||||
Back on the batch details page, click the :guilabel:`Create Draft Entry` smart button to create a
|
||||
draft of the payslips.
|
||||
|
||||
.. image:: payslips/draft-from-batch.png
|
||||
:align: center
|
||||
:alt: Generate payslips from the edited batch.
|
||||
|
||||
Once the draft payslips are created, the button changes to say :guilabel:`Make Payment`. Click the
|
||||
:guilabel:`Make Payment` button. A pop-up window appears, in which the bank journal information must
|
||||
be entered. Select the :guilabel:`Bank Journal` from the drop-down list, and click
|
||||
:guilabel:`Confirm` to process the payslips, and pay the employees.
|
||||
|
||||
On the batch detail page, the number of payslips in the batch is accessible via the
|
||||
:guilabel:`Payslips` smart button, located in the top-right corner. Individual payslips for the
|
||||
batch can be viewed by clicking the :guilabel:`Payslips` smart button in the top-right corner.
|
||||
|
||||
Use the breadcrumb menu to navigate back to the individual batch detail page, or back to the list of
|
||||
all batches.
|
||||
|
||||
.. image:: payslips/payslip-batches.png
|
||||
:align: center
|
||||
:alt: Click the Payslips smart button to view the individual payslips in the batch.
|
||||
|
||||
Create a new batch
|
||||
------------------
|
||||
|
||||
To create a new batch of payslips from the :guilabel:`Payslips Batches` page
|
||||
(:menuselection:`Payroll app --> Payslips --> Batches`), click the :guilabel:`Create` button in the
|
||||
upper-left corner. Doing so reveals a blank payslip batch form on a separate page.
|
||||
|
||||
On the new payslip batch form, enter the :guilabel:`Name` for the batch, and select the date range
|
||||
to which the batch applies, by clicking the :guilabel:`▼ (drop-down arrow)` icon in the
|
||||
:guilabel:`Period` fields, which reveals a calendar pop-up window. From this calendar pop-up window,
|
||||
navigate to the correct month, and click on the corresponding day for both the start and end dates.
|
||||
|
||||
.. image:: payslips/new-batch-details.png
|
||||
:align: center
|
||||
:alt: Enter the details for the new batch.
|
||||
|
||||
If the batch is a credit note, check the box next to :guilabel:`Credit Note`. Then, in the
|
||||
:guilabel:`Generation Date` field, select the date the payslips should be generated from a calendar
|
||||
pop-up window. This generated date is reflected in the accounting journal entries.
|
||||
|
||||
Lastly, in the :guilabel:`Company` field, select the company these payslips are written against.
|
||||
|
||||
When all the information on the payslip batch form is correct, click the :guilabel:`Save` button to
|
||||
save the information. To delete the entry, click the :guilabel:`Discard` button.
|
||||
|
||||
To create the payslips for the newly-created batch, click the :guilabel:`Generate Payslips` button
|
||||
at the top of the form.
|
||||
|
||||
When clicked, a pop-up window appears showing all the payslips that will be created. To remove any
|
||||
individual payslips, click the black :guilabel:`✖ (x mark)` icon at the far right of the payslip
|
||||
line.
|
||||
|
||||
If a specific :guilabel:`Salary Structure` or :guilabel:`Department` needs to be specified for the
|
||||
batch, select them from the corresponding drop-down menus.
|
||||
|
||||
Click the :guilabel:`Generate` button at the bottom of the pop-up window to create the payslips for
|
||||
the batch.
|
||||
|
||||
.. image:: payslips/generate-payslips.png
|
||||
:align: center
|
||||
:alt: Generate payslips for the new batch.
|
||||
|
||||
.. note::
|
||||
On the :guilabel:`Generate Payslips` pop-up window, selecting a :guilabel:`Department` and/or
|
||||
:guilabel:`Salary Structure` only displays payslips that apply to those specifically-selected
|
||||
parameters.
|
||||
|
||||
If there are any errors or issues preventing the payslips from being generated, an error message
|
||||
appears in the top-right section. This error box disappears on its own after several seconds, or the
|
||||
:guilabel:`✖ (x mark)` icon can be clicked to close the alert.
|
||||
|
||||
To remedy the issue, make any necessary modifications (e.g. removing any payslip lines that cannot
|
||||
be processed), then click the :guilabel:`Generate` button again.
|
||||
|
||||
Once the payslips have been successfully generated, the screen returns to the payslip batch form.
|
||||
|
||||
From here, click the :guilabel:`Generate Draft Entry` button to change the payslips' status from
|
||||
:guilabel:`Draft` to :guilabel:`Done`.
|
||||
|
||||
Once payslips have been generated, click the :guilabel:`Make Payment` button to process the
|
||||
payments. Doing so reveals a pop-up window, in which the proper banking information must be entered.
|
||||
In this pop-up window, select the appropriate :guilabel:`Bank Journal` from the drop-down menu, and
|
||||
enter the appropriate file name.
|
||||
|
||||
When done, click the :guilabel:`Confirm` button to confirm the information, or click
|
||||
:guilabel:`Cancel` to discard.
|
||||
|
||||
Generate commission payslips
|
||||
----------------------------
|
||||
|
||||
Commission payslips can be generated directly from the :guilabel:`Payslips Batches` page
|
||||
(:menuselection:`Payroll app --> Payslips --> Batches`). To generate commission payslips from this
|
||||
page, click on the desired batch (or batches) to create commissions payslips for, then click the
|
||||
:guilabel:`Generate Commission Payslips` button.
|
||||
|
||||
Doing so reveals a :guilabel:`Generate Commission Payslip` pop-up window, in which the necessary
|
||||
information **must** be filled out.
|
||||
|
||||
.. image:: payslips/commission-details.png
|
||||
:align: center
|
||||
:alt: Enter the commission details.
|
||||
|
||||
On this pop-up window, click on the drop-down menus, located beside the :guilabel:`Period` field, to
|
||||
reveal calendar pop-up windows. On these calendar pop-up windows, select the desired period for
|
||||
which the payslips are being generated. Using the :guilabel:`< (left)` and :guilabel:`> (right)`
|
||||
arrows, navigate to the correct month, and click on the date to select it.
|
||||
|
||||
In the :guilabel:`Department` field, select the desired department from the drop-down menu.
|
||||
|
||||
When a department is selected, the employees listed for that department appear in the
|
||||
:guilabel:`Employee` section.
|
||||
|
||||
Under the :guilabel:`Employee` section, enter the :guilabel:`Commission Amount` for each employee in
|
||||
the appropriate column. To remove an employee, click the :guilabel:`🗑️ (trash)` icon to remove the
|
||||
line.
|
||||
|
||||
Add a new entry by clicking :guilabel:`Add a Line`, and entering the :guilabel:`Employee` and the
|
||||
appropriate :guilabel:`Commission Amount`.
|
||||
|
||||
Click the :guilabel:`Upload Your File` button to add a file, if necessary. Any file type is
|
||||
accepted.
|
||||
|
||||
Using the drop-down menu beside the :guilabel:`Commission Type` field, select either
|
||||
:guilabel:`Classic Commission` or :guilabel:`Warrant`. :guilabel:`Classic` is the most typical of
|
||||
commission, while :guilabel:`Warrant` is primarily used for Belgium companies.
|
||||
|
||||
Once all the commissions are properly entered, click the :guilabel:`Generate Payslips` button to
|
||||
create the commission payslips.
|
||||
BIN
content/applications/hr/payroll/payslips/all-pay-slips.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
content/applications/hr/payroll/payslips/all-payslips.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
content/applications/hr/payroll/payslips/banking.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
content/applications/hr/payroll/payslips/batches.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
content/applications/hr/payroll/payslips/commission-details.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
content/applications/hr/payroll/payslips/draft-from-batch.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
content/applications/hr/payroll/payslips/export.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 29 KiB |
BIN
content/applications/hr/payroll/payslips/generate-payslips.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
content/applications/hr/payroll/payslips/make-payment.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
content/applications/hr/payroll/payslips/new-batch-details.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
content/applications/hr/payroll/payslips/new-payslip-tab.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
content/applications/hr/payroll/payslips/new-payslip.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
content/applications/hr/payroll/payslips/payslip-batches.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
content/applications/hr/payroll/payslips/payslip-chatter.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
content/applications/hr/payroll/payslips/payslips.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
content/applications/hr/payroll/payslips/print.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
|
@@ -59,7 +59,7 @@ desired language in the scanner's user manual.
|
|||
Automatic carriage return
|
||||
-------------------------
|
||||
|
||||
Odoo has a default 50-millisecond delay between scans to prevent accidental double scanning. To
|
||||
Odoo has a default 100-millisecond delay between scans to prevent accidental double scanning. To
|
||||
synchronize with the barcode scanner, set it to include a *carriage return* (:dfn:`character like
|
||||
the "Enter" key on a keyboard`) after each scan. Odoo interprets the carriage return as the end of
|
||||
the barcode input; so Odoo accepts the scan, and waits for the next one.
|
||||
|
|
|
|||
|
|
@@ -16,6 +16,6 @@ users to easily manage lead times, automate replenishment, configure advanced ro
|
|||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
inventory/management
|
||||
inventory/shipping
|
||||
inventory/routes
|
||||
inventory/product_management
|
||||
inventory/warehouses_storage
|
||||
inventory/shipping_receiving
|
||||
|
|
|
|||
|
|
@@ -1,18 +0,0 @@
|
|||
:nosearch:
|
||||
|
||||
====================
|
||||
Warehouse management
|
||||
====================
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
management/products
|
||||
management/warehouses
|
||||
management/inventory_adjustments
|
||||
management/shipments_deliveries
|
||||
management/misc
|
||||
management/planning
|
||||
management/lots_serial_numbers
|
||||
management/reporting
|
||||
|
|
@@ -1,11 +0,0 @@
|
|||
:nosearch:
|
||||
|
||||
=====================
|
||||
Inventory adjustments
|
||||
=====================
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
inventory_adjustments/count_products
|
||||
inventory_adjustments/cycle_counts
|
||||
|
|
@@ -1,14 +0,0 @@
|
|||
:nosearch:
|
||||
|
||||
=======================
|
||||
Lots and Serial Numbers
|
||||
=======================
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
lots_serial_numbers/differences
|
||||
lots_serial_numbers/serial_numbers
|
||||
lots_serial_numbers/lots
|
||||
lots_serial_numbers/expiration_dates
|
||||
|
|
@@ -1,14 +0,0 @@
|
|||
:nosearch:
|
||||
|
||||
========================
|
||||
Miscellaneous Operations
|
||||
========================
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
misc/owned_stock
|
||||
misc/batch_transfers
|
||||
misc/wave_transfers
|
||||
misc/cluster_picking
|
||||
|
|
@@ -1,11 +0,0 @@
|
|||
:nosearch:
|
||||
|
||||
========
|
||||
Planning
|
||||
========
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
planning/scheduled_dates
|
||||
|
|
@@ -1,16 +0,0 @@
|
|||
:nosearch:
|
||||
|
||||
========
|
||||
Products
|
||||
========
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
products/mto
|
||||
products/uom
|
||||
products/usage
|
||||
products/strategies
|
||||
products/reordering_rules
|
||||
products/scrap_inventory
|
||||
|
|
@@ -1,13 +0,0 @@
|
|||
:nosearch:
|
||||
|
||||
=================
|
||||
Valuation Methods
|
||||
=================
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
reporting/inventory_valuation_config
|
||||
reporting/using_inventory_valuation
|
||||
reporting/integrating_landed_costs
|
||||
|
|
@@ -1,15 +0,0 @@
|
|||
:nosearch:
|
||||
|
||||
==========
|
||||
Warehouses
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
warehouses/resupply_warehouses
|
||||
warehouses/warehouse_replenishment_transfer
|
||||
warehouses/warehouses_locations
|
||||
warehouses/create_a_second_warehouse
|
||||
warehouses/use_locations
|
||||
|
|
@@ -0,0 +1,11 @@
|
|||
:nosearch:
|
||||
|
||||
==================
|
||||
Product management
|
||||
==================
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
product_management/product_replenishment
|
||||
product_management/product_tracking
|
||||
|
|
@@ -0,0 +1,14 @@
|
|||
:nosearch:
|
||||
|
||||
=====================
|
||||
Product replenishment
|
||||
=====================
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
product_replenishment/strategies
|
||||
product_replenishment/mto
|
||||
product_replenishment/reordering_rules
|
||||
product_replenishment/uom
|
||||
product_replenishment/scrap_inventory
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |