[IMP] Payroll: Updating Jordan Payroll Localization
closes odoo/documentation#14963 Signed-off-by: Lara Martini (larm) <larm@odoo.com>
@@ -2,13 +2,15 @@
|
|||||||
Jordan
|
Jordan
|
||||||
======
|
======
|
||||||
|
|
||||||
The Jordan **Payroll** localization package offers a comprehensive solution for managing payroll in
|
The Jordan **Payroll** localization offers a comprehensive solution for managing payroll in
|
||||||
compliance with Jordanian labor laws. It supports income tax calculations using progressive tax
|
compliance with Jordanian labor laws. It supports income tax calculations using progressive tax
|
||||||
brackets, social security contributions from both employees and employers and basic salary
|
brackets, social security contributions from both employees and employers and basic salary
|
||||||
calculations, including allowances such as housing and transportation.
|
calculations, including allowances such as housing and transportation.
|
||||||
|
|
||||||
Configuration
|
.. _payroll/jordan_apps:
|
||||||
=============
|
|
||||||
|
Apps & modules
|
||||||
|
==============
|
||||||
|
|
||||||
:ref:`Install <general/install>` the following modules to get all the features of the Jordan
|
:ref:`Install <general/install>` the following modules to get all the features of the Jordan
|
||||||
**Payroll** localization:
|
**Payroll** localization:
|
||||||
@@ -18,114 +20,495 @@ Configuration
|
|||||||
|
|
||||||
* - Name
|
* - Name
|
||||||
- Technical name
|
- Technical name
|
||||||
|
- Dependencies
|
||||||
- Description
|
- Description
|
||||||
* - :guilabel:`Jordan - Payroll`
|
* - :guilabel:`Jordan - Payroll`
|
||||||
- `l10n_jo_hr_payroll`
|
- `l10n_jo_hr_payroll`
|
||||||
- Payroll module supporting basic calculation, tax income brackets, and national contribution
|
- - hr_payroll
|
||||||
tax and social security
|
- hr_payroll_holidays
|
||||||
|
- Includes all salary rules, leave logic, and compensation rules compliant with Jordan Labor
|
||||||
|
Law.
|
||||||
* - :guilabel:`Jordan - Payroll with Accounting`
|
* - :guilabel:`Jordan - Payroll with Accounting`
|
||||||
- `l10n_jo_hr_payroll_account`
|
- `l10n_jo_hr_payroll_account`
|
||||||
- Bridge module between **Payroll** and **Accounting**
|
- - hr_payroll_account
|
||||||
|
- l10n_jo
|
||||||
|
- l10n_jo_hr_payroll
|
||||||
|
- Links payroll and accounting by creating journal entries to record payroll in the company's
|
||||||
|
books.
|
||||||
|
|
||||||
|
Before configuring the Jordan localization, refer to the general :doc:`payroll <../../payroll>`
|
||||||
|
documentation, which includes the basic information for all localizations, as well as all universal
|
||||||
|
settings and fields.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
:doc:`Jordan fiscal localization documentation <../../../finance/fiscal_localizations/jordan>`
|
:doc:`Jordan fiscal localization documentation <../../../finance/fiscal_localizations/jordan>`
|
||||||
|
|
||||||
Basic calculations
|
General configurations
|
||||||
==================
|
|
||||||
|
|
||||||
The Jordan **Payroll** localization package in Odoo provides foundational payroll management tools
|
|
||||||
that are compliant with Jordan's labor laws and regulations. Key features include:
|
|
||||||
|
|
||||||
- **Basic salary calculations**: Odoo supports the computation of employee salaries based on
|
|
||||||
predefined salary structures, ensuring accurate payroll processing.
|
|
||||||
- **Social security contributions**: It handles social security deductions for employees and
|
|
||||||
employer contributions, aligning with local regulations.
|
|
||||||
- **Taxation support**: The system is configured to handle income tax calculations in Jordan,
|
|
||||||
including deductions based on progressive tax brackets as required by Jordanian labor and tax
|
|
||||||
laws.
|
|
||||||
- **Custom allowances and deductions**: The localization supports additional allowances, deductions,
|
|
||||||
or overtime as part of payroll computation.
|
|
||||||
|
|
||||||
These features ensure businesses can manage payroll effectively and comply with Jordanian-specific
|
|
||||||
legal requirements. For enhanced functionality, businesses may leverage Odoo's flexibility to
|
|
||||||
customize payroll workflows.
|
|
||||||
|
|
||||||
Social security
|
|
||||||
===============
|
|
||||||
|
|
||||||
The Jordan **Payroll** localization package in Odoo simplifies social security management by
|
|
||||||
automating calculations for both employees and employers. Contributions are based on a percentage of
|
|
||||||
the employee's basic salary, with a maximum insurable wage cap in line with Jordanian Social
|
|
||||||
Security Corporation (SSC) regulations.
|
|
||||||
|
|
||||||
Employee contributions
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
Odoo calculates the employee's social security deduction as 7.5% of their basic salary, up to the
|
|
||||||
insurable wage cap of 3,000 JOD. If the employee's salary exceeds this cap, the deduction is based
|
|
||||||
on the capped amount. This ensures compliance with :abbr:`SSC (Jordanian Social Security
|
|
||||||
Corporation)` requirements and reflects accurately on the employee's payslip.
|
|
||||||
|
|
||||||
Employer contributions
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
For employers, Odoo computes social security contributions as 14.25% of the employee's basic salary,
|
|
||||||
also capped at 3,000 JOD. Like the employee contributions, if the salary exceeds this cap, the
|
|
||||||
employer's contribution is calculated based on the capped amount. These contributions include
|
|
||||||
pensions, workplace injury insurance, and other mandated benefits.
|
|
||||||
|
|
||||||
Key features
|
|
||||||
------------
|
|
||||||
|
|
||||||
- **Capped contributions**: The system ensures that both employee and employer contributions are
|
|
||||||
aligned with the SSC-mandated insurance cap.
|
|
||||||
- **Automated calculations**: Contributions are automatically calculated and included in payroll,
|
|
||||||
reducing errors and administrative work.
|
|
||||||
- **Compliance with regulations**: Odoo's configuration ensures full compliance with Jordanian
|
|
||||||
social security laws, reflecting the correct rates and caps for both sides.
|
|
||||||
|
|
||||||
Income tax calculation
|
|
||||||
======================
|
======================
|
||||||
|
|
||||||
The Jordan **Payroll** localization package automates income tax calculations using progressive tax
|
First, the company must be configured. Navigate to :menuselection:`Settings app --> Users &
|
||||||
brackets, ensuring compliance with Jordanian labor laws. The system applies income tax rates based
|
Companies --> Companies`. From the list, select the desired company, and configure the following
|
||||||
on the employee's annual gross income, with higher brackets subject to increased percentages. The
|
fields:
|
||||||
calculations are divided into six brackets, and the appropriate tax is deducted monthly.
|
|
||||||
|
- :guilabel:`Company Name`: Enter the business name in this field.
|
||||||
|
- :guilabel:`Address`: Complete the full address, including the :guilabel:`City`, :guilabel:`Zip
|
||||||
|
Code`, and :guilabel:`Country` fields.
|
||||||
|
|
||||||
|
.. Note::
|
||||||
|
Jordan does not use the :guilabel:`State` field, this remains blank. The :guilabel:`Zip Code`
|
||||||
|
refers to the Jordanian `Postal Code`.
|
||||||
|
|
||||||
|
- :guilabel:`Tax ID`: Enter the company's tax identification number.
|
||||||
|
- :guilabel:`Company ID` : Enter the business's registry number.
|
||||||
|
- :guilabel:`Currency`: By default, :abbr:`JOD (Jordanian Dollars)` is selected. If not, select
|
||||||
|
:guilabel:`JOD` from the drop-down menu.
|
||||||
|
|
||||||
|
Employees
|
||||||
|
=========
|
||||||
|
|
||||||
|
Every employee being paid must have their employee profiles configured for the Jordan payroll
|
||||||
|
localization. Additional fields are present after configuring the database for Jordan.
|
||||||
|
|
||||||
|
To update an employee form, open the :menuselection:`Employees` app and click on the desired
|
||||||
|
employee record. On the employee form, configure the required fields in the related tabs.
|
||||||
|
|
||||||
|
Work tab
|
||||||
|
--------
|
||||||
|
|
||||||
|
Enter the :guilabel:`Work Address` for the employee in the :guilabel:`Location` section of the
|
||||||
|
:guilabel:`Work` tab.
|
||||||
|
|
||||||
|
Personal tab
|
||||||
|
------------
|
||||||
|
|
||||||
|
Ensure the employee has a minimum of one :ref:`trusted bank account <employees/private-contact>`
|
||||||
|
listed in the :guilabel:`Bank Accounts` field in the :guilabel:`Private Contact` section.
|
||||||
|
|
||||||
|
These accounts are used to pay the employee. Payroll **cannot** be processed for employees without a
|
||||||
|
*trusted* :ref:`bank account <employees/private-contact>`. If no trusted bank account is set, a
|
||||||
|
warning appears on the **Payroll** dashboard and an error occurs when attempting to run payroll.
|
||||||
|
|
||||||
|
If the employee is **not** a resident of Jordan, tick the :guilabel:`Non-resident` box. This
|
||||||
|
indicates the employee is *not* eligible for personal exemptions.
|
||||||
|
|
||||||
|
Under the :guilabel:`Family` section, ensure the :guilabel:`Has Dependants` box is ticked if the
|
||||||
|
employee has any dependants, such as a spouse, children, or parents. This ensures they receive an
|
||||||
|
additional exemption on their taxable salary.
|
||||||
|
|
||||||
|
By default, the :guilabel:`Is Eligible for EOS` checkbox is ticked, in the :guilabel:`Personal
|
||||||
|
Information` section, indicating the employee is eligible for end of service benefits. If the
|
||||||
|
employee is **not** eligible, ensure the box is unchecked.
|
||||||
|
|
||||||
|
Additionally, if the employee is blind, tick the :guilabel:`Is Blind` checkbox. This ensures the
|
||||||
|
employee's entire salary is tax-exempt.
|
||||||
|
|
||||||
|
Payroll tab
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Contract overview section
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
This section holds information that drives salary calculations. Ensure the following fields are
|
||||||
|
configured:
|
||||||
|
|
||||||
|
- :guilabel:`Contract`: Ensure the contract dates are populated. The contract start date populates
|
||||||
|
the first field, and if the contract has a set end date, that is populated in the second field.
|
||||||
|
- :guilabel:`Wage Type`: Select how the employee is paid.
|
||||||
|
|
||||||
|
- Select :guilabel:`Fixed Wage` for salaried employees who receive the same amount each pay
|
||||||
|
period.
|
||||||
|
- Select :guilabel:`Hourly Wage` for employees paid based on hours worked.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
Set a default :guilabel:`Wage Type` in the salary :ref:`Structure Type
|
||||||
|
<payroll/structure-types>` to configure employees in bulk. If needed, the default can be
|
||||||
|
overridden on individual employee records if exceptions are needed.
|
||||||
|
|
||||||
|
- :guilabel:`Wage`: Enter the monthly wage in this field, in :abbr:`JOD (Jordanian Dollars)`.
|
||||||
|
- :guilabel:`Employee Type`: Select what kind of employee the contract is for, such as
|
||||||
|
:guilabel:`Employee` or :guilabel:`Freelance`.
|
||||||
|
- :guilabel:`Contract Type`: Determines how the employee is paid and classified, such as
|
||||||
|
:guilabel:`Permanent`, :guilabel:`Temporary`, :guilabel:`Seasonal`.
|
||||||
|
- :guilabel:`Pay Category`: Select :guilabel:`Jordan: Employee` for this field. This defines when
|
||||||
|
the employee is paid, their default working schedule, and the work entry type it applies to.
|
||||||
|
|
||||||
|
.. image:: jordan/jo-payroll-overview.png
|
||||||
|
:alt: The contract overview section of the employee form of the payroll tab.
|
||||||
|
|
||||||
|
Schedule section
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
- :guilabel:`Work Entry Source`: Defines how :doc:`work entries <../work_entries>` are generated for
|
||||||
|
payroll during the specified pay period. The options are:
|
||||||
|
|
||||||
|
- :guilabel:`Working Schedule`: Based on the employee's assigned :ref:`working schedule
|
||||||
|
<payroll/working-times>` (e.g., 40 hours per week).
|
||||||
|
- :guilabel:`Attendances`: Based on :doc:`approved checked-in hours
|
||||||
|
<../../attendances/management>` in the **Attendances** app.
|
||||||
|
- :guilabel:`Planning`: Based on :ref:`scheduled shifts <planning/shifts>` in the **Planning**
|
||||||
|
app.
|
||||||
|
|
||||||
|
- :guilabel:`Extra Hours`: Tick the checkbox to allow the **Attendances** app to add any extra work
|
||||||
|
entries logged by the employee.
|
||||||
|
- :guilabel:`Working Hours`: Using the drop-down menu, select :guilabel:`Jordan Working Schedule`,
|
||||||
|
which consists of a Sunday - Thursday, 40-hour work week.
|
||||||
|
|
||||||
|
Allowances section
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The following sections of benefits are considered common ones offered by Jordanian employers. This
|
||||||
|
information needs to be populated with the information selected by the employee.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The benefits listed in this section are considered the ones most commonly offered by companies.
|
||||||
|
If other employee benefits exist that require regular paycheck deductions, they can be added as
|
||||||
|
*inputs*.
|
||||||
|
|
||||||
|
Enter the monthly allowance amount for :guilabel:`Housing`, :guilabel:`Transportation`, and
|
||||||
|
:guilabel:`Other` allowances.
|
||||||
|
|
||||||
|
If the employee is tax exempt, enter the annual amount that is not subject to taxes in the
|
||||||
|
:guilabel:`Tax Exemption` field.
|
||||||
|
|
||||||
|
If the employee's salary is based on commission, tick the :guilabel:`Is Commission based` checkbox.
|
||||||
|
|
||||||
|
Annual leave provision section
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Every year, employees receive days off. Enter the number of days in the :guilabel:`Number of Leave
|
||||||
|
days` field. The default value is 14.
|
||||||
|
|
||||||
|
Social Insurance
|
||||||
|
================
|
||||||
|
|
||||||
|
Social insurance rules calculate the contribution amounts that are to be paid by the employer and
|
||||||
|
employee to the :abbr:`Social Security Corporation (SSC)`. This is only available for Jordanian
|
||||||
|
employees.
|
||||||
|
|
||||||
|
The employer contributes 14.25% of the employee's salary to the :abbr:`Social Security Corporation
|
||||||
|
(SSC)`, while the employee contributes 7.5% of their salary, which is deducted from their payslip.
|
||||||
|
|
||||||
|
For both employer and employee contributions, the base amount on which they are calculated is bound
|
||||||
|
by a cap that gets updated every year.
|
||||||
|
|
||||||
|
Leaves
|
||||||
|
======
|
||||||
|
|
||||||
|
The following leave types are available to employees working in Jordan:
|
||||||
|
|
||||||
|
- :guilabel:`Annual leave`: Employee's are eligible for 21 days of annual leave, and if the employee
|
||||||
|
requires more days, they have to be requested from HR managers accordingly.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
Since the annual leave is fully paid, it is not connected to a salary rule, but it will appear on
|
||||||
|
the worked days on the payslip form and on the PDF printout.
|
||||||
|
|
||||||
|
- :guilabel:`Sick leave`: Employee's working in Jordan are entitled to 14 days of paid sick leave
|
||||||
|
per year, with the possibility of an additional 14 days if hospitalized. No deductions are applied
|
||||||
|
to the employee in those cases.
|
||||||
|
|
||||||
|
- :guilabel:`Other leave types`: These leave types are fully paid and do not affect the final
|
||||||
|
payslip, but are tracked for reporting purposes:
|
||||||
|
|
||||||
|
- :guilabel:`Maternity leave`
|
||||||
|
- :guilabel:`Paternity Leave`
|
||||||
|
- :guilabel:`Pilgrimage Leave`
|
||||||
|
- :guilabel:`Study leave`
|
||||||
|
|
||||||
|
Income Tax
|
||||||
|
==========
|
||||||
|
|
||||||
|
In Jordan, employees are subject to a progressive income tax system, where tax rates increase with
|
||||||
|
higher annual income brackets.
|
||||||
|
|
||||||
Tax brackets
|
Tax brackets
|
||||||
------------
|
------------
|
||||||
|
|
||||||
- **5% bracket**: Applicable to annual gross income up to 5,000 JOD. Odoo calculates 5% of the
|
Depending on the annual income of the employee, the following rates apply:
|
||||||
income within this range. If the gross income is below 5,000 JOD, the entire amount is taxed at
|
|
||||||
5%.
|
|
||||||
- **10% bracket**: Applicable to annual gross income between 5,001 and 10,000 JOD. Only the portion
|
|
||||||
of income exceeding 5,000 JOD is taxed at 10%. For example, if the gross income is 7,000 JOD, only
|
|
||||||
2,000 JOD is taxed at 10%.
|
|
||||||
- **15% bracket**: Applicable to annual gross income between 10,001 and 15,000 JOD. The portion of
|
|
||||||
income exceeding 10,000 JOD up to 15,000 JOD is taxed at 15%. For instance, if the gross income is
|
|
||||||
12,000 JOD, only 2,000 JOD is taxed at 15%.
|
|
||||||
- **20% bracket**: Applicable to annual gross income between 15,001 and 20,000 JOD. Income within
|
|
||||||
this range is taxed at 20%, with deductions automatically adjusted by Odoo.
|
|
||||||
- **25% bracket**: Applicable to annual gross income between 20,001 and 1,000,000 JOD. Income beyond
|
|
||||||
20,000 JOD up to 1,000,000 JOD is taxed at 25%. For higher incomes, Odoo ensures accurate
|
|
||||||
calculations by applying the cap of this range.
|
|
||||||
- **30% bracket**: Applicable to annual gross income exceeding 1,000,000 JOD. Any income above this
|
|
||||||
amount is taxed at 30%, with the system ensuring accurate monthly deductions for high-income
|
|
||||||
earners.
|
|
||||||
|
|
||||||
Automated process
|
.. list-table::
|
||||||
-----------------
|
:header-rows: 1
|
||||||
|
:stub-columns: 0
|
||||||
|
|
||||||
Odoo determines the appropriate tax bracket for each employee based on their gross annual income and
|
* - Taxable Bracket
|
||||||
applies the corresponding rates. These deductions are prorated and deducted monthly, simplifying
|
- Range
|
||||||
payroll management and ensuring compliance.
|
* - 5%
|
||||||
|
- 0-5,000
|
||||||
|
* - 10%
|
||||||
|
- 5,001 - 10,000
|
||||||
|
* - 15%
|
||||||
|
- 10,001 - 15,000
|
||||||
|
* - 20%
|
||||||
|
- 15,001 - 20,000
|
||||||
|
* - 25%
|
||||||
|
- 20,001 - 1,000,000
|
||||||
|
* - 30%
|
||||||
|
- More than 1,000,000
|
||||||
|
|
||||||
Key features
|
.. note::
|
||||||
|
Tax brackets are applied progressively. This means each portion of an employee's income is taxed
|
||||||
|
at its respective rate within each bracket, rather than their entire income being taxed at the
|
||||||
|
rate of the highest bracket they fall into.
|
||||||
|
|
||||||
|
Exemptions
|
||||||
|
----------
|
||||||
|
|
||||||
|
Several factors contribute to exempting part of an employee's gross income, including:
|
||||||
|
|
||||||
|
- **Jordanian residency**: Residents are entitled to a yearly exemption of 12,000 JOD.
|
||||||
|
- **Blindness**: Individuals who are blind are **fully** exempt from income tax.
|
||||||
|
- **Dependents**: An additional 12,000 JOD exemption per year for employees with dependents.
|
||||||
|
|
||||||
|
Overtime
|
||||||
|
========
|
||||||
|
|
||||||
|
Employees are entitled to additional pay for overtime worked, depending on when the overtime hours
|
||||||
|
are worked:
|
||||||
|
|
||||||
|
- On working days: Overtime is paid at 1.25 times the regular hourly wage.
|
||||||
|
- On rest days: Overtime is compensated at 1.5 times the regular hourly wage.
|
||||||
|
|
||||||
|
These percentages are recorded in the input parameters model.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The number of overtime hours is registered as other inputs directly on payslips.
|
||||||
|
|
||||||
|
Provisions
|
||||||
|
==========
|
||||||
|
|
||||||
|
Provisions are the amounts computed by the employer to account for the payments made to the employee
|
||||||
|
for :abbr:`end-of-service (EOS)` benefits or annual leaves. It is computed on a monthly basis.
|
||||||
|
|
||||||
|
- **End of service benefit provision**: This is computed by dividing the monthly gross salary by 12
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
\frac{\text{Basic} + \text{Allowances}}{12}
|
||||||
|
|
||||||
|
- **Annual leave provision**: This is computed by dividing the gross salary by 30 to get the daily
|
||||||
|
salary, then multiplying that by the number of leave days, and dividing the result by 12.
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
\left(\frac{\text{Basic} + \text{Allowances}}{30}\right)
|
||||||
|
\times
|
||||||
|
\left(\frac{\text{Number of Leave Days}}{12}\right)
|
||||||
|
|
||||||
|
End of Service
|
||||||
|
==============
|
||||||
|
|
||||||
|
At the end of the employee's service, if they are eligible for end-of-service benefits, they should
|
||||||
|
receive the following two benefits:
|
||||||
|
|
||||||
|
- **Unused leaves compensation**: The Annual Leave Balance is shown on the employee's record. It is
|
||||||
|
based on the annual leave type defined in the **Payroll** app settings and is calculated as the
|
||||||
|
total remaining allocations for that specific leave type assigned to the employee.
|
||||||
|
|
||||||
|
The balance represents the total remaining leave allocated to the employee but does not reflect
|
||||||
|
the portion of leave days the employee has earned up to the current month.
|
||||||
|
|
||||||
|
When calculating the benefit value, the deserved leave balance is determined based on the portion
|
||||||
|
of the year worked. The benefit value is then calculated by multiplying this deserved balance by
|
||||||
|
the employee's daily rate.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
If an employee is entitled to 14 leave days per year and has worked for 6 months, they deserve
|
||||||
|
7 leave days so far. If their daily rate is 50 JOD, the benefit value is: 7 days × 50 JOD = 350
|
||||||
|
JOD
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
The flow mentioned above requires the allocation for the annual leave to be given fully upfront
|
||||||
|
in the beginning of the year for that employee
|
||||||
|
|
||||||
|
- **End of Service Benefit**: The calculation begins by determining the total number of days the
|
||||||
|
employee has worked at the company, starting from their joining date up to their last working day.
|
||||||
|
|
||||||
|
The total service duration is calculated out of a 365-day year.
|
||||||
|
|
||||||
|
The resulting period in years is then multiplied by the employee's gross salary, which includes
|
||||||
|
the basic salary and the allowances defined in the payroll tab on the employee record.
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
(\text{Basic} + \text{Allowances}) \times \left(\frac{\text{Number of Days}}{365}\right)
|
||||||
|
|
||||||
|
Payroll configuration
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Several sections within the **Payroll** app installs a Salary Structure, Structure Type, Rules, and
|
||||||
|
Parameters specific to Jordan.
|
||||||
|
|
||||||
|
Salary structures & structure types
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
When the **l10n_jo_hr_payroll** module is :ref:`installed <payroll/jordan_apps>`, a new
|
||||||
|
:guilabel:`Salary Structure` gets installed, :guilabel:`Jordan: Monthly Pay`. This structure
|
||||||
|
includes one :guilabel:`Structure Type`, :guilabel:`Jordan: Employee`.
|
||||||
|
|
||||||
|
The :guilabel:`Salary Structure` contains all the individual :ref:`salary rules
|
||||||
|
<payroll/jordan_apps>` that informs the **Payroll** app how to calculate employee payslips.
|
||||||
|
|
||||||
|
.. image:: jordan/jo-structure-types.png
|
||||||
|
:alt: The United States salary structure in the salary structures list.
|
||||||
|
|
||||||
|
.. _payroll/jordan_rules:
|
||||||
|
|
||||||
|
Salary rules
|
||||||
------------
|
------------
|
||||||
|
|
||||||
- **Progressive tax system**: Calculates taxes for each income range individually, ensuring fairness
|
To view the salary rules that inform the salary structure what to do, navigate to
|
||||||
and accuracy.
|
:menuselection:`Payroll app --> Configuration --> Structures` and expand the :guilabel:`Jordan:
|
||||||
- **Automated deductions**: Ensures a smooth payroll workflows with accurate and timely monthly tax
|
Employee` entry to reveal the :guilabel:`Jordan: Monthly Pay` structure type. Click
|
||||||
deductions.
|
:guilabel:`Jordan: Monthly Pay` to view the detailed salary rules.
|
||||||
- **Alignment with Jordanian regulations**: Fully complies with Jordanian tax laws, minimizing
|
|
||||||
manual intervention and errors.
|
.. image:: jordan/jo-rules-top-half.png
|
||||||
|
:alt: The top portion of the US salary rules.
|
||||||
|
|
||||||
|
Each rule defines how pay is calculated, taking into account factors such as allowances, deductions,
|
||||||
|
and taxes.
|
||||||
|
|
||||||
|
Rule parameters
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Some calculations require specific rates associated with them, or wage caps. *Rules Parameters* are
|
||||||
|
capable of listing a value, either a percentage or a fixed amount, to reference in the salary rules.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
The percentage rate for employee Social Security deductions is set in the `Jordan Social Security
|
||||||
|
Employee Deduction Rate %` parameter.
|
||||||
|
|
||||||
|
Most rules pull information stored in the parameters module to get the rate of the rule (a
|
||||||
|
percentage) and the cap (a dollar amount).
|
||||||
|
|
||||||
|
To view rule parameters, navigate to :menuselection:`Payroll app --> Configuration --> Rule
|
||||||
|
Parameters`. Here, all rule parameters are displayed with their linked :guilabel:`Salary Rules`,
|
||||||
|
which can be accessed. Review the parameters associated with a rule by looking for the
|
||||||
|
:guilabel:`Name` of the rule, and make any edits as needed.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
Odoo adds updated rule parameters for the current calendar year. It is **not** recommended to
|
||||||
|
edit rule parameters **unless a national parameter has changed**, and is different from the rule
|
||||||
|
parameters created by Odoo. Check with all national regulations *before* making any changes to
|
||||||
|
rule parameters.
|
||||||
|
|
||||||
|
Run Jordan payroll
|
||||||
|
==================
|
||||||
|
|
||||||
|
Before running payroll, the payroll officer must validate employee :doc:`work entries
|
||||||
|
<../work_entries>` to confirm pay accuracy and catch errors. This includes checking that all time
|
||||||
|
off is approved and any overtime is appropriate.
|
||||||
|
|
||||||
|
Work entries sync based on the employee's :doc:`contract <../contracts>` configuration. Odoo pulls
|
||||||
|
from the assigned working schedule, attendance records, planning schedule, and approved time off.
|
||||||
|
|
||||||
|
Any :ref:`discrepencies or conflicts <payroll/conflicts>` must be resolved, then the work entries
|
||||||
|
can be :ref:`regenerated <payroll/regenerate-work-entries>`.
|
||||||
|
|
||||||
|
Once everything is correct, draft payslips can be :ref:`created individually <payroll/process>` or
|
||||||
|
in :doc:`batches <../batches>`, referred to in the **Payroll** app as *Pay Runs*.
|
||||||
|
|
||||||
|
.. image:: jordan/jo-work-entries.png
|
||||||
|
:alt: The work entries for a pay run, with some time off entered in the work entries.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
To cut down on the payroll officer's time, it is typical to process payslips in batches, either
|
||||||
|
by wage type (fixed salary vs hourly), pay schedule (weekly, bi-weekly, monthly, etc.),
|
||||||
|
department (direct cost vs. administration), or any other grouping that best suits the company.
|
||||||
|
|
||||||
|
The process of running payroll includes different actions that need to be executed to ensure that
|
||||||
|
the amount withheld from payroll taxes is correct, the amount that the employee receives as their
|
||||||
|
net salary is correct, and the computation of hours worked reflects the employee's actual hours
|
||||||
|
worked, among others.
|
||||||
|
|
||||||
|
When running a payroll batch, check that the period, company, and employees included are correct
|
||||||
|
*before* starting to analyze or validate the data.
|
||||||
|
|
||||||
|
Once the payslips are drafted, review them for accuracy. Check the :guilabel:`Worked Days & Inputs`
|
||||||
|
tab, and ensure the listed worked time is correct, as well as any other inputs. Add any missing
|
||||||
|
inputs, such as commissions, tips, reimbursements, that are missing.
|
||||||
|
|
||||||
|
Next, check the various totals (gross pay, employee taxes, benefits, employer taxes, net salaries),
|
||||||
|
then click :guilabel:`Compute Sheet` to update the salary calculations, if there were edits. If
|
||||||
|
everything is correct, click :guilabel:`Validate`.
|
||||||
|
|
||||||
|
.. image:: jordan/jo-check-payslips.png
|
||||||
|
:alt: The worked days tab of a payslip.
|
||||||
|
|
||||||
|
Accounting check
|
||||||
|
----------------
|
||||||
|
|
||||||
|
The accounting process when running payroll has two components: :ref:`creating journal entries
|
||||||
|
<payroll/jo-journal>`, and :ref:`registering payments <payroll/jo-register>`.
|
||||||
|
|
||||||
|
.. _payroll/jo-journal:
|
||||||
|
|
||||||
|
Journal entry creation
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
After payslips are confirmed and validated, journal entries are posted either individually, or in a
|
||||||
|
batch. The journal entry is created first as a draft.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
It must be decided if journal entries are done individually or in batches *before* running
|
||||||
|
payroll.
|
||||||
|
|
||||||
|
.. image:: jordan/jo-draft.png
|
||||||
|
:alt: All payslips in a draft state.
|
||||||
|
|
||||||
|
Thirteen accounts from the Jordan :abbr:`CoA (Chart of Accounts)` are included with the Jordan
|
||||||
|
payroll localization:
|
||||||
|
|
||||||
|
- `500301 Basic Salary`: Tracks the basic wages paid to employees.
|
||||||
|
- `500302 Housing Allowance`: Captures housing allowance payments provided to employees.
|
||||||
|
- `500303 Transportation Allowance`: Captures transportation allowance payments to employees.
|
||||||
|
- `500308 Staff Other Allowances`: Covers employee allowances that do not fit any other available
|
||||||
|
categories.
|
||||||
|
- `500310 Salary Deductions`: Reflects deductions applied to employee salaries (e.g., advances,
|
||||||
|
fines, statutory deductions).
|
||||||
|
- `500305 Leave Salary`: Records salaries actually paid to employees while on paid leave.
|
||||||
|
- `201022 Social Security Payable`: Holds both employee and employer amounts payable for social
|
||||||
|
insurance contributions.
|
||||||
|
- `200502 Leave Days Provision`: Accrues the cost of paid leave; the balance is reduced when leave
|
||||||
|
is taken, and any leave not taken may be paid out when the employee leaves the company.
|
||||||
|
- `200503 End of Service Provision`: Accumulates the end-of-service benefit monthly, so the amount
|
||||||
|
can be paid (partially or fully) when the employee leaves, per service length and reason.
|
||||||
|
- `200101 Payables`: Shows amounts payable to employees as salaries (unpaid salary liability at
|
||||||
|
period end).
|
||||||
|
- `500202 End of Service Indemnity`: Captures company expenses set aside to fund end-of-service
|
||||||
|
benefits (expense-side counterpart to the provision).
|
||||||
|
- `200307 Employee Income Tax`: Accumulates the income tax amount withheld from the employee's
|
||||||
|
salary.
|
||||||
|
- `500311 Social Security Expenses`: Captures The total expense amount from payments to the social
|
||||||
|
insurance authority.
|
||||||
|
|
||||||
|
.. note:: The :abbr:`CoA (Chart of Accounts)` configuration is done by default when installing the
|
||||||
|
Jordan payroll localization. The account codes and names can be edited to suit the company's
|
||||||
|
needs.
|
||||||
|
|
||||||
|
If everything seems correct on the journal entry draft, post the journal entries.
|
||||||
|
|
||||||
|
.. image:: jordan/jo-done.png
|
||||||
|
:alt: Journal entries posted.
|
||||||
|
|
||||||
|
.. _payroll/jo-register:
|
||||||
|
|
||||||
|
Register Payments
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
After the :ref:`journal entries <payroll/journal>` are validated, Odoo can generate payments.
|
||||||
|
|
||||||
|
Payments can be :guilabel:`Grouped by Partner` if there is a partner associated with a salary rule.
|
||||||
|
|
||||||
|
.. image:: jordan/jo-paid.png
|
||||||
|
:alt: Payslips with a status of paid.
|
||||||
|
|
||||||
|
Close Payroll
|
||||||
|
-------------
|
||||||
|
|
||||||
|
If there are no errors, payroll is completed for the pay period.
|
||||||
|
|
||||||
|
Reports
|
||||||
|
=======
|
||||||
|
|
||||||
|
No additional payroll reports unique to the Jordan payroll localization exist. All reports are the
|
||||||
|
standard preconfigured reports included with the **Payroll** app.
|
||||||
|
|||||||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 9.7 KiB |