급여

In Odoo, salaries are calculated and determined by five factors: salary structure types, salary structures, rules, rule parameters, and other input types. Together, these determine how each employee’s pay is calculated.

Each structure type contains one or more structures within it. Each structure contains a set of rules, and every rule uses parameters to define how specific amounts are calculated. Additional inputs, (such as bonuses or deductions) can also be included to adjust the final salary.

When payslips are calculated, Odoo calculates the employee’s worked time from their work entries, then applies the relevant structure, rules, and parameters from the employee’s assigned structure type to determine their total pay.

구조 유형

In Odoo, a structure type groups related salary structures. When a contract specifies a structure type, only the structures within that type are used to calculate the employee’s pay. Each structure type houses individual structures within them, each containing a set of rules for processing a timesheet entry.

Structure types define key aspects of payroll configuration, including how often employees are paid, their working hours, the default salary structure, and whether wages are fixed (salary-based) or variable (hourly-based).

Example

A structure type called Employee contains two different structures within it: a Regular Pay structure which includes all the separate rules for processing regular pay, and an End of Year Bonus structure, which includes the rules only for the end of year bonus. Both belong to the same Employee structure type.

View existing structure types by navigating to Payroll app ‣ Configuration ‣ Structure Types.

Two default structure types are preconfigured in Odoo: Employee and Worker.

Typically, Employee is used for salaried employees, which is why the Default Wage Type is a Fixed Wage, and Worker is typically used for employees paid by the hour, so the wage type is Hourly Wage.

참고

If using a country-specific payroll localizations, it is recommended to use the structure in the corresponding country localization document.

현재 사용할 수 있도록 환경설정이 완료된 전체 구조 유형입니다.

새 구조 유형

If the default structure types do not meet the company’s needs, go to Payroll app ‣ Configuration ‣ Structure Types and click New to create a custom structure type.

경고

When creating a new salary structure type, ensure all local and national laws are accounted for. Confirm with the accounting department when configuring payroll structures, to ensure all requirements are met.

다음 내용을 필드에 입력합니다:

  • Structure Type: Enter the name for the new structure type, such as Employee or Worker.

  • Country: Select the country that the new structure type applies to from the drop-down menu.

  • 임금 유형: 구조에 맞는 임금 유형을 선택합니다.

    • Fixed Wage: For salaried employees who receive the same wage every pay period.

    • Hourly Wage: For employees paid based on hours worked during a pay period.

  • Default Scheduled Pay: Select the typical pay schedule for the new structure type from the drop-down menu. This indicates how often this specific type of structure is paid out.

  • Default Working Hours: Select the default working hours for the new structure type from the drop-down menu. All available working hours for the currently selected company appear in the drop-down menu. The default working hours are the Standard 40 hours/week option. If the needed working hours do not appear in the list, a new set of default working hours can be created.

  • Regular Pay Structure: Type in the name for the regular pay structure. It is used as the default option when generating payslips.

  • Default Work Entry Type: Select the default work entry type which is used to create all work entries for the employee.

새 구조 유형을 생성할 때 작성해야 하는 새로운 구조 유형 양식

새 기본 근무 시간

기본 근무시간을 새로 생성하려면 새 구조 유형 양식에 있는 기본 근무 시간 필드에 새로운 근무 시간의 이름을 입력합니다. 만들기 및 편집 을 클릭합니다. 기본 근무 시간 양식이 나타납니다. 기본 근무 시간 양식에는 섹션이 두 개 있으며, 일반 정보 섹션과 함께 개별 근무 시간을 요일 및 시간별로 표시하는 탭이 있습니다. 양식을 작성한 후에는 저장 및 닫기 를 클릭합니다.

  • Name: Type in the name for the new default working hours. This should be descriptive and clear to understand, such as Standard 20 Hours/Week.

  • Flexible Hours: Check the checkbox to let employees adjust their start and end times while maintaining the same total daily hours.

  • Company Full Time: Enter the number of hours per week an employee needs to work to be considered a full-time employee. Typically, this is approximately 40 hours, and this number affects what types of benefits an employee can receive, based on their employment status (full-time vs part-time).

  • Average Hour Per Day: Auto-populated based on the working hours in the Working Hours tab. This entry affects resource planning by determining how many resources can be used per workday.

  • 근무 시간 비율: 이 비율은 회사 정규직 입력 항목과 근무 시간 탭에서 환경설정되어 있는 근무 시간에 따라 자동으로 생성됩니다. 여기에서 비율값은 ‘0.00%’에서 ‘100%’ 사이의 숫자여야 하므로 백분율이 ‘100%’를 초과할 경우, 근무 시간이나 회사 정규직 에 입력되어 있는 근무 시간을 조정해야 합니다.

  • Company: Select the company that can use these new default working hours from the drop-down menu. Leave this field blank if the hours are available for all companies.

  • Timezone: Select the time zone to be used for the new default working hours from the drop-down menu.

  • Working Hours Tab: This tab is where each day’s specific working hours are listed. When a new default working hour form is created, the Working Hours tab is pre-populated with a default 40-hour week, with each day divided into three timed sections.

    Each day includes morning (8:00–12:00), lunch (12:00–13:00), and afternoon (13:00–17:00) periods, configured using the 24-hour time format.

    To adjust any of these hours, click the field and modify the time using the drop-down menus, or type the desired time directly.

    참고

    근무 시간은 회사마다 다르며 회사 간에 공유할 수 없습니다.

    근무 시간이 매주 일정하지 않고 격주 단위로 근무하는 경우에는 새 기본 근무 시간 양식의 상단에 있는 2주 달력으로 전환 버튼을 클릭합니다. 그러면 근무 시간 탭이 2주 간의 작업 시간이 표시되도록 변경되며 조정도 할 수 있습니다.

구조

Salary structures are the different situations in which an employee could be paid within a specific structure, and are specifically defined by various rules.

The number of structures a company needs for each structure type depends on how many different ways employees are paid, and how their pay is calculated. A common example of an additional structure is a Bonus.

To view all the various structures for each structure type, go to Payroll app ‣ Configuration ‣ Structures.

구조 유형 에는 해당 구조와 관련된 다양한 구조가 표시되어 있습니다. 각 구조별로 구조를 정의하는 일련의 규칙을 두고 있습니다.

사용할 수 있는 전체 급여 구조

Click on a structure to view its Salary Rules. These rules define how the payslip will be computed for the employee.

참고

After installing a payroll localization, relevant structures are installed and appear in this list.

모든 급여 규칙이 구체적으로 표시되어 있는 정규 급여에 대한 급여 구조 세부 정보

급여 규칙

Each structure has a set of salary rules used to compute the various amounts considered in the pay. These rules are configured by the localization and affect the computation of the salaries.

경고

Modification or creation of rules should only be done when necessary.

To view all the rules, go to Payroll app ‣ Configuration ‣ Rules. Click on a structure (such as Regular Pay) to view all the rules.

Add a new rule

To make a new rule, click New and a blank Salary Rules form loads. Enter the following information in the top half of the form:

  • Rule Name: Enter a name for the rule. This is the name displayed in the payslip.

  • Code: Enter a code to be used for the new rule. This is case sensitive and is used as the rule ID. This field is required.

  • Category: Using the drop-down menu, select the category the rule applies to, or enter a new category. The category is used to group rules and access their total sum.

  • Salary Structure: Using the drop-down menu, select the salary structure the rule applies to, or enter a new one. This field is required.

  • Sequence: Enter a number indicating when the rule is calculated, in the sequence of all other rules. Rules are processed one after another based on their sequence number. Rules with a lower sequence number are calculated first, and their results can be used by rules with a higher sequence number. This field is required.

  • Appears on Payslip: Check the checkbox to have the rule visible on the employee payslip PDF.

  • Contributes to Employer Cost: Check the checkbox to include the rule when computing the employer cost of a payslip.

일반 탭

Fill out the following sections of the General tab. These configurations determine when and how the rule is calculated.

조건
  • Condition Based on: Using the drop-down menu, select if the rule is calculated and displayed as a line in the payslip form view. Choose from one of the following options:

    • Always True: The rule is always calculated. No other configurations are needed for this section.

    • Salary Input: This introduces a dynamic benefit to the structure. This appears as a field in the Payroll tab of the Employee form, the Inputs tab of the payslip, or both. The value of this field is added to the amount of the rule. If selected, the following additional fields appear and must be configured:

      • Input on: Specify where this field should appear and which object it should belong to, the Employee, the Payslip, or both. If both are selected, the value on the payslip automatically defaults to the value from the employee record, but it can be overwritten directly on the payslip for a specific payroll run.

      • Section: This groups several inputs into one expandable section on the form view. Only one option is available by default, Inputs.

      • Unit: Click the corresponding radio button to determine how the benefit is displayed. The available options are:

        • Monetary: A number with currency.

        • Quantity: A number.

        • Percentage: A number with a % sign.

        • Checkbox: Indicates boolean values.

      • Input Description: Enter a short explanation of when the input is applicable.

      • Default Value: Enter the default value, either a monetary amount, quantity, or percentage. This is determined by what is selected for the Unit. If necessary, add a Suffix in the field to the right of this value, such as per km.

        참고

        If Checkbox is selected for the Unit, this field changes to Selected by Default. Click the checkbox to have the rule active by default.

      • Depends On: Select another rule that has a salary input, and use its value to determine whether this rule should be hidden.

    • Other Input: Select this to check if a payslip line exists with the same type. When selected, a Condition Other Input field appears. Using the drop-down menu, select the type of input the rule is based on, such as Deduction, Reimbursement, etc.

    • Python Expression: Select this to have the rule calculated using a Python script. The script is evaluated using the local dictionary. The right side lists the Available variables and the Output:

      • Available variables:

        • payslip: The hr.payslip object.

        • employee: The hr.employee object.

        • version: The hr.version object.

        • result_rules: A dictionary containing the rules amounts, quantities, rates and totals (previously computed).

        • categories: A dictionary containing the computed salary rule categories (the sum of the amount of all the rules belonging to that category):

          • total: rule total

          • amount: rule amount

          • quantity: rule quantity

          • rate: rule rate

          • ytd: rule year to date value

        • worked_days: A dictionary containing the computed worked days, where each key is a work entry type code, and each value is a worked_days object. This object contains many variables, with the most important ones being:

          • number_of_days: The number of days registered in the payslip duration with this work entry type.

          • number_of_hours: The number of hours registered in the payslip duration with this work entry type.

          • is_paid: Whether or not this work entry type is added as an unpaid work entry on this payslip structure.

        • inputs: A dictionary containing the computed inputs where key is the other input type code and value is the sum of the payslip input lines with the same code.

      • Output:

        • result: The boolean is True if the rule should be calculated, or False if otherwise.

  • Domain: Select this option to apply the rule only if it matches the configured Applicability Domain. Configure the Applicability Domain that appears beneath this option when selected.

계산

This section determines the final value of the rule, which consists of the base amount, the quantity, and the rate. The total of the rule is total = amount * quantity * (rate/100).

중요

This field does not appear if the Condition Based on field is set to Salary Input.

Using the drop-down menu, select one of the following options for the Amount Type field:

  • Percentage (%): Defines the values for the total calculation. When selected, configure the following fields:

    • Percentage based on: A Python expression is evaluated using the localdict, and its value is assigned to the rule amount.

    • Quantity: A Python expression is evaluated using the localdict, and its value is assigned to the rule quantity.

    • Percentage (%): A decimal number assigned to the rule rate.

  • Fixed Amount: The amount and quantity is defined, with a rate of 100%.

    • Quantity: A Python expression is evaluated using the localdict, and its value is assigned to the rule quantity.

    • Fixed Amount: Enter a decimal number which is assigned to the rule amount.

  • Other Input: Select this to fetch the rule amount from the payslip input lines that have the same other input type with rate of 100% and quantity of 1.0. When selected, an Amount Other Input field appears beneath it. Using the drop-down menu, select the type of input it is, such as Deduction, Tips, or Expenses.

  • Python Code: This is the more complex version of the Percentage (%) option, where a whole Python script is written then evaluated using the localdict. This includes a list of Available variables and an Output list.

    • Available variables:

      • payslip: hr.payslip object

      • employee: hr.employee object

      • version: hr.version object

      • result_rules: A dict containing the rules amounts, quantities, rates and totals (previously computed), where the key is the rule code, and the value is dict with the following keys:

        • total: rule total

        • amount: rule amount

        • quantity: rule quantity

        • rate: rule rate

        • ytd: rule year to date value

      • categories: A dict containing the computed salary rule categories (sum of amount of all rules belonging to that category) where key is the category code and value is the sum of the rules total values.

      • worked_days: A dict containing the computed worked days where key is the work entry type code and value is the worked_days object contain many variables, but most important ones are:

        • number_of_days: The number of days registered in the payslip duration with this work entry type.

        • number_of_hours: The number of hours registered in the payslip duration with this work entry type.

        • is_paid: Dictates whether or not this work entry type is added as unpaid work entry on this payslip structure.

      • inputs: A dict containing the computed inputs Where key* is the other input type code and value is the sum of the payslip input lines with the same code.

    • Output:

      • result: float, base amount of the rule

      • result_rate: float, which defaults to 100.0 (%)

      • result_qty: float, quantity, which defaults to 1

      • result_name: string, name of the line. This defaults to the name field of the salary rule (useful if the name depends or should depend on something computed in the rule).

회사 기여분

Using the drop-down menu, select the eventual third party involved in the salary payment to the employees.

Display tab

This section determines the appearance of the rule on the payslip PDF available to the employee, and defines the rule aesthetics.

First, select a Color for the rule using the color picker. Next, check the Title checkbox to only display the salary rule’s title and description, and hide any numerical values.

Check the Indented, Space Above, Bold, Underline, and Italic checkboxes to activate the options.

Finally, enter a Description for the rule, which is displayed below the rule name.

회계 탭

This section determines how the rule affects the various accounting journals and how the Net salary is calculated for employees. Configure the following fields in this section:

  • Debit Account: Using the drop-down menu, select the debit account for the rule.

  • Credit Account: Using the drop-down menu, select the credit account for the rule.

  • Split on names: Enable this option to split the accounting entries for this rule according to the payslip line name. Splitting the entries provides more visibility for deductions and reimbursements, or for salary adjustments.

  • Excluded from Net: Check this checkbox to exclude the rule’s calculations from the net salary rule in journal entries. A specific debit and credit account should be set to independently classify it.

  • Set employee on account line: Check this checkbox to have the employee’s name visible on the journal items.

중요

This tab is only available if the Accounting app is installed.

규칙 매개변수

Rule parameters inform Odoo how to calculate each line of a payslip. To view the configured rule parameters, navigate to Payroll app ‣ Configuration ‣ Rule Parameters.

All rule parameters are displayed. Click on an individual rule parameter to view the details.

Each rule parameter displays the name of the rule, the code, when the rule is active, and the parameter value.

Example

The rule parameters for overtime pay inform Odoo that employees receive time and a half when working over 40 hours.

기타 입력 유형

When creating payslips, it is sometimes necessary to add other entries for specific circumstances, like tips, commissions, expenses, or deductions. These other inputs can be found by navigating to Payroll app ‣ Configuration ‣ Other Input Types.

급여명세서에 새 항목을 생성할 때 선택하는 급여 관련된 기타 입력 유형 목록

If a new input type is needed that does not appear on the list, click the New button to create a new input type. Enter the Description, the Code, and select which structure it applies to in the Availability in Structure field.

Check the Available in attachments checkbox if the input should be a salary attachment.

중요

코드 를 급여 규칙에 사용하여 급여명세서를 계산합니다. 구조 사용 가능 항목에 입력된 내용이 없다는 것은, 특정한 구조에만 국한되지 않고 모든 급여명세서에 새로운 입력 유형을 사용할 수 있다는 것을 나타냅니다.

내용이 입력되어 있는 새로운 입력 유형 양식