From 35931b493d9735eae4c874acd0ce95639f6e7d87 Mon Sep 17 00:00:00 2001 From: "Lara Martini (larm)" Date: Mon, 13 May 2024 17:56:50 +0000 Subject: [PATCH] [IMP] Payroll: add necessary contract modules closes odoo/documentation#9595 X-original-commit: 9a0e87e8619a8c781a1691863bbfb7d69358a80a Signed-off-by: Samuel Lieber (sali) Signed-off-by: Lara Martini (larm) --- content/applications/hr/payroll/contracts.rst | 330 +++++++++--------- .../hr/payroll/contracts/external-link.png | Bin 0 -> 11855 bytes .../hr/payroll/contracts/simulation.png | Bin 0 -> 14063 bytes 3 files changed, 165 insertions(+), 165 deletions(-) create mode 100644 content/applications/hr/payroll/contracts/external-link.png create mode 100644 content/applications/hr/payroll/contracts/simulation.png diff --git a/content/applications/hr/payroll/contracts.rst b/content/applications/hr/payroll/contracts.rst index 06b5c36c2..a19c93b74 100644 --- a/content/applications/hr/payroll/contracts.rst +++ b/content/applications/hr/payroll/contracts.rst @@ -2,9 +2,9 @@ Contracts ========= -Every employee in Odoo is required to have a contract to be paid. A contract outlines the terms of -an employee's job position, compensation, working hours, and any other details specific to their -role. +Every employee in Odoo is required to have a contract in order to be paid. A contract outlines the +terms of an employee's position, their compensation, working hours, and any other details about +their position. .. important:: Contract documents (PDFs) are uploaded and organized using the *Documents* application, and are @@ -12,13 +12,10 @@ role. contracts. Please refer to the :doc:`../../productivity/documents` and :doc:`../../productivity/sign` documentation. -To view the employee contracts, go to :menuselection:`Payroll app --> Contracts --> Contracts` from -the top menu. All employee contracts are displayed in a default list view, grouped into four -categories: :guilabel:`New`, :guilabel:`Running`, :guilabel:`Expired`, and :guilabel:`Cancelled`. - -The default view has all categories collapsed. The number of contracts in each category is displayed -next to the category name (example: `Running (20)`). To view the list of contracts under any -category, click on the category, and the list expands downward, showing all contracts beneath it. +To view the employee contracts, go to the :menuselection:`Payroll app --> Contracts --> Contracts` +from the top menu. All employee contracts, and their current contract status, are displayed in a +Kanban view, by default. The Kanban view displays running contracts, contracts that require action, +expired contracts, and cancelled contracts. .. image:: contracts/contracts-overview.png :align: center @@ -30,12 +27,12 @@ category, click on the category, and the list expands downward, showing all cont .. _payroll/new-contract: -Create new contracts -==================== +In order for an employee to be paid, an active contract is required. If a new contract is needed, +click the :guilabel:`Create` button on the :guilabel:`Contracts` dashboard. A contract form appears +where the information can be entered. Required fields are underlined in bold. -For an employee to be paid, an active contract is required. When a new contract is needed, click the -:guilabel:`New` button on the :guilabel:`Contracts` dashboard. A contract form appears where the -information can be entered. +New contract form +----------------- .. _payroll/gen-info: @@ -91,29 +88,41 @@ General information section :alt: New contract form to be filled in when creating a new contract, with required fields outlined in red. - The general information section filled out, with the required fields highlighted in red. +- :guilabel:`Contact Reference`: type in the name or title for the contract, such as `John Smith + Contract`. This field is **required**. +- :guilabel:`Employee`: name of the employee the contract applies to. +- :guilabel:`Contract Start Date`: the date the contract starts. Choose a date by clicking on the + drop-down menu, navigating to the correct month and year by using the :icon:`fa-chevron-left` + :icon:`fa-chevron-right` :guilabel:`(arrow)` icons, then clicking on the desired date. This field + is **required**. +- :guilabel:`Contract End Date`: the date the contract ends. Choose a date by clicking on the + drop-down menu, navigating to the correct month and year by using the :icon:`fa-chevron-left` + :icon:`fa-chevron-right` :guilabel:`(arrow)` icons, then clicking on the desired date. This field + is **required**. +- :guilabel:`Salary Structure Type`: select one of the salary structure types from the drop-down + menu. The default salary structure types are :guilabel:`Employee` or :guilabel:`Worker`. A new + salary structure type can be created by typing the name in the field. This field is **required**. +- :guilabel:`Working Schedule`: select one of the working schedules from the drop-down menu. This + field is **required**. +- :guilabel:`Department`: the department the contract applies to. +- :guilabel:`Job Position`: the specific job position the contract applies to. +- :guilabel:`Wage on Payroll`: the amount to be paid to the employee each month. +- :guilabel:`Contract Type`: choose from :guilabel:`CDI`, :guilabel:`CDD`, or :guilabel:`PFI` from + the drop-down menu. -Salary Information tab ----------------------- + - :guilabel:`CDI` is an open-ended contract with only a start date, but no end date. + - :guilabel:`CDD` is a contract with both a start date and an end date. + - :guilabel:`PFI` is a Belgian-specific contract used when hiring employees that need training, + and covers the training period specifically. -This section is where the specific salary details are defined. This section is country-specific, so -depending on where the company is located, these fields may vary. +- :guilabel:`HR Responsible`: if there is a specific person in HR that is responsible for the + contract, select the person from the drop-down menu. This field is required. -The following fields are universal and apply to all localizations: - -- :guilabel:`Wage Type`: select either :guilabel:`Fixed Wage` or :guilabel:`Hourly Wage` from the - drop-down menu. -- :guilabel:`Schedule Pay`: select how often the employee is paid using the drop-down menu. Options - are :guilabel:`Annually`, :guilabel:`Semi-annually`, :guilabel:`Quarterly`, - :guilabel:`Bi-monthly`, :guilabel:`Monthly`, :guilabel:`Semi-monthly`, :guilabel:`Bi-weekly`, - :guilabel:`Weekly`, or :guilabel:`Daily`. -- :guilabel:`Wage`: enter the employee's gross wage. The metric for the :guilabel:`Wage` is based on - what is selected for the :guilabel:`Schedule Pay`. - - .. example:: - If :guilabel:`Annually` is selected for the :guilabel:`Schedule Pay`, then the :guilabel:`Wage` - field appears in a `$0.00/year` format. If the :guilabel:`Schedule Pay` is set to - :guilabel:`Bi-weekly`, then the :guilabel:`Wage` field appears in a `$0.00/two weeks` format. +.. tip:: + The :guilabel:`Working Schedule` drop-down menu displays all the working times for the selected + :guilabel:`Company`. To modify or add to this list, go to :menuselection:`Payroll app --> + Configuration --> Working Times`, and either :guilabel:`Create` a new working time, or click on + an existing working time, then edit it by clicking :guilabel:`Edit`. - :guilabel:`Yearly Cost (Real)`: this field automatically updates after the :guilabel:`Schedule Pay` and :guilabel:`Wage` fields are entered. This amount is the total yearly cost for the @@ -132,8 +141,19 @@ The following fields are universal and apply to all localizations: Contract Details tab -------------------- -The contract details section allows for the addition and editing of a contract, and the ability to -send the contract to the employee for approval and signatures. +The :guilabel:`Contract Details` tab allows for the addition and editing of a contract, along with +specifying which template to use when a new contract is created. These fields **must** be populated +in order to create a new contract. + +.. important:: + To access the various contract template fields in the :guilabel:`Contract Details` tab, the + *Salary Configurator* (`hr_contract_salary`) module **must** be :ref:`installed + `. + + When the *Salary Configurator* module is installed, the *Salary Configurator - Holidays* and + *Salary Configurator - Payroll* modules install, as well. + + Once the modules are installed, the database reverts to the main dashboard. - :guilabel:`Contract Template`: select a pre-existing contract template from the drop-down menu. Contract templates are typically created through the configuration menu, and stored in the @@ -193,16 +213,23 @@ Notes section :align: center :alt: Contract details in optional tabs for a new contract. -Personal Documents tab ----------------------- +- :guilabel:`Analytic Account`: this field allows a link between the contract and a specific + analytic account for accounting purposes. +- :guilabel:`Contract Template`: select a pre-existing contract template from the drop-down menu. + Contract templates are typically created through the *Recruitment* application. +- :guilabel:`New Contract Document Template`: select a contract from the drop-down menu to be + modified for this new employee contract. +- :guilabel:`Contract Update Document Template`: select a contract from the drop-down menu, if the + employee has an existing contract that requires updating. +- :guilabel:`Notes`: the notes field is a text field where any notes for the employee contract can + be entered for future reference. -Once an :guilabel:`Employee` is selected in the :ref:`General Information section -`, the :guilabel:`Personal Documents` tab appears. +Modify a contract template +~~~~~~~~~~~~~~~~~~~~~~~~~~ -If any documents are needed to keep on file, add them in the :guilabel:`Personal Documents` tab. -Depending on what other applications are installed, and what kind of benefits are enabled (and -offered) to the employee, the various options to add a file varies. The :guilabel:`Image` option -always appears, and is available by default. +Click the :icon:`fa-external-link` :guilabel:`(external Link)` icon at the end of either the +:guilabel:`New Contract Document Template` or :guilabel:`Contract Update Document Template` to open +the corresponding contract template, and proceed to make any desired changes. Click the :guilabel:`Upload your file` button next to the corresponding document, navigate to the file, then click :guilabel:`Open` to select the document and add it to the tab. @@ -212,162 +239,135 @@ Modifying contract templates Contracts templates can be modified at any point when changes are needed. -To modify a contract template, refer to the :ref:`contract templates ` -section of the main payroll documentation. +- :guilabel:`Tags`: select any tags associated with the contract. +- :guilabel:`Signed Document Workspace`: this is where the signatures are stored. Choose a + pre-configured workspace, or create a new one. To create a new :guilabel:`Signed Document + Workspace`, type in the name of the workspace, then click either :guilabel:`Create` to add the new + workspace, or :guilabel:`Create and Edit` to add the workspace and modify the workspace details. +- :guilabel:`Signed Document Tags`: select or create any tags that are only associated with the + signed contract, as opposed to the original unsigned contract. +- :guilabel:`Redirect Link`: enter a redirect link for the employee to access the contract. A + redirect link takes the user from one URL to another. In this case, it takes them to the + newly-updated contract specifically written for them. +- :guilabel:`Who can Sign`: select either :guilabel:`All Users` or :guilabel:`On Invitation`. -Salary attachments -================== + - :guilabel:`All Users`: any user in the organization can sign the contract. + - :guilabel:`On Invitation`: only users selected in this field can sign the contract. -Any automatic deductions or allocations for an employee, such as child support payments and wage -garnishments, are referred to as a *salary attachment*. Navigate to :menuselection:`Payroll app --> -Contracts --> Salary Attachments` to view a list of all the currently configured salary attachments. +- :guilabel:`Invited Users`: select the person (or people) that can sign the document. +- :guilabel:`Document`: the attached document can be replaced by clicking the :icon:`fa-pencil` + :guilabel:`(pencil)` icon. A pop-up window appears, so another document can be selected for + upload. The file **must** be a PDF. To remove the document, click the :icon:`fa-trash-o` + :guilabel:`(trash can)` icon. -Each salary attachment appears with all its relevant details displayed. The :guilabel:`Status` for -each attachment is color-coded in the far right column. +Once the edits are complete, click the :guilabel:`Save` button. All the information for the selected +contract template populates the fields in the :guilabel:`Salary Information` tab. Any additional +tabs, such as :guilabel:`Personal Documents`, appears if applicable. -Currently running salary attachments have a :guilabel:`Status` of :guilabel:`Running`, and appear in -green. Salary attachments that have been paid in-full, and are no longer active, have a -:guilabel:`Status` of :guilabel:`Completed`, and appear in blue. Cancelled salary attachments have a -:guilabel:`Status` of :guilabel:`Cancelled`, and appear in red. +Salary information +------------------ -.. image:: contracts/attachments.png +.. image:: contracts/salary-info.png :align: center - :alt: A list view of all the salary attachments with their status displayed. + :alt: Optional tabs for a new contract. -New salary attachment ---------------------- +This section is where the specific salary details are defined. This section is country-specific, so +these fields vary, depending on where the company is located. -To create a new salary attachment from the :guilabel:`Salary Attachment` page, click -:guilabel:`New`, and a blank salary attachment form loads. Enter the following information on the -form: +Enter the amount in the various fields, or tick a checkbox to apply a benefit. Some options that can +be entered here include :guilabel:`Group Insurance Sacrifice Rate` and :guilabel:`Canteen Cost`, for +example. -- :guilabel:`Employees`: add any employees the salary attachment applies to using the drop-down - menu. +Some fields may be automatically filled in as other fields are entered. For example, the +:guilabel:`Yearly Cost (Real)` and :guilabel:`Monthly Cost (Real)` updates once the :guilabel:`Wage` +is populated. - .. tip:: - Multiple employees can be added, if the salary attachment details are identical. After all - employees are added, a :guilabel:`Create Individual Attachments` button appears at the top of - the form. +Personal documents +------------------ - After the form is completed, click the :guilabel:`Create Individual Attachments` button to - create separate salary attachments for each of the employees listed in this field. +This tab **only** appears after an :guilabel:`Employee` is selected, and houses any documents that +are linked to the employee on their employee record. Documents cannot be added to this tab, this tab +**only** shows documents that are already uploaded and associated with the employee. - .. image:: contracts/individual-attachments.png - :align: center - :alt: The Create Individual Attachments button that appears after multiple employees are - added to the Employees field. +The available documents in this tab can be downloaded. Click the :icon:`fa-download` +:guilabel:`(download)` icon next to the document to download it. - This is a time-saving tip, so that separate salary attachments do not need to be created - individually. They can be created in a batch using this method. +Save and send the contract +-------------------------- -- :guilabel:`Description`: enter a description for the specific type of salary attachment. -- :guilabel:`Type`: select the :ref:`type of salary attachment ` - from the drop-down menu. The options listed come from the salary attachment types configured in - the configuration menu. -- :guilabel:`Start Date`: enter the date the salary attachment begins. The first of the current - month populates this field, by default. Click on the date, and a calendar appears. Navigate to the - desired month and year, using the :guilabel:`< > (arrow)` icons, and click on the date to select - it. -- :guilabel:`Document`: if any documents are needed for the salary attachment, click the - :guilabel:`Upload your file` button, and a file explorer appears. Navigate to the file, and click - :guilabel:`Open` to select them, and attach them to the form. -- :guilabel:`Monthly Amount`: enter the amount to be taken out of the paycheck each month for this - salary attachment. -- :guilabel:`Estimated End Date`: this field only appears after the :guilabel:`Monthly Amount` field - is populated, and if the :guilabel:`Type` is **not** set to :guilabel:`Child Support`. This date - is when the salary attachment is predicted to end, and is automatically calculated once both, the - :guilabel:`Monthly Amount` and :guilabel:`Total Amount`, fields are populated. This is calculated - based on how much is required to be paid, and how much is paid towards that amount each month. If - either the :guilabel:`Monthly Amount` or :guilabel:`Total Amount` changes, this field - automatically updates. It is **not** possible to modify this field. -- :guilabel:`Total Amount`: enter the total amount to be paid in this field. If :guilabel:`Child - Support` is selected for the :guilabel:`Type`, this field does **not** appear. +Once a contract has been created and/or modified, save the contract by clicking the :guilabel:`Save` +button. Next, the contract must be sent to the employee to be signed. -.. image:: contracts/garnishment.png - :align: center - :alt: Enter a new line for each type of garnishment. - -.. important:: - When the total amount has been paid for the salary attachment, navigate to the individual salary - attachment, and click the :guilabel:`Mark as Completed` button at the top of the form. This - changes the status to :guilabel:`Completed`, and the garnishments are no longer taken out of the - employee's paychecks. - -Offers -====== - -Once a contract has been created or modified, the contract **must** be sent to the employee to be -accepted and signed. - -Send an offer -------------- - -Open an individual contract by navigating to :menuselection:`Payroll app --> Contracts -> -Contracts`, and click on a contract to open the contract form. Click on the :guilabel:`Generate -Offer` button at the top of the page, and a :guilabel:`Generate Simulation Link` pop-up form -appears. +Click on one of the following buttons to send the contract to the employee: .. image:: contracts/send-contract.png :align: center :alt: Send the contract to the employee via one of the buttons. -The :guilabel:`Generate Simulation Link` pop-up form contains all the information pulled from the -contract, including the :guilabel:`Contract Template`, :guilabel:`Job Position`, :guilabel:`Job -Title`, :guilabel:`Department`, :guilabel:`Contract Start Date`, :guilabel:`Default Vehicle`, -:guilabel:`Contract Type`, and :guilabel:`Yearly Cost`. +- :guilabel:`Generate Simulation Link`: this option is **only** for Belgian companies. Clicking this + opens a pop-up window that contains the basic information from the contract, as well as a link for + the contract when using the salary configurator. Click :guilabel:`Send` to send an email to the + employee, so they can sign the contract. At the bottom of the pop-up form is a :guilabel:`Link Expiration Date`. This is the timeframe that the contract offer is valid for. By default, this field is pre-populated with `30 days`, but it can be modified. -Click the :guilabel:`Send By Email` button, and a :guilabel:`Send Offer Email` template pop-up -window appears. Make any modifications to the email, and attach any additional documents needed, -then click :guilabel:`Send` to send the offer. + .. note:: + In order to send a contract using the :guilabel:`Generate Simulation Link`, there **must** be a + signature field in the contract PDF being sent to the employee, so they can sign it. -.. image:: contracts/send-offer.png - :align: center - :alt: The email template pop-up to send an offer. +- :guilabel:`Signature Request`: clicking this reveals a pop-up window, where an email can be typed + to the employee. Select the document (such as a contract, NDA, or Homeworking Policy) from the + drop-down menu, and fill out the email section. Click :guilabel:`Send` when the email is ready to + be sent. .. note:: To send a contract using the :guilabel:`Generate Simulation Link`, there **must** be a signature field in the contract PDF being sent to the employee, so they can sign it. -Accept an offer ---------------- +Salary attachments +------------------ -Once the offer email is received, the offer can be accepted, and the contract can be signed. +Any automatic deductions or allocations for an employee, such as child support payments and wage +garnishments, are referred to as a *salary attachment*. This section is where all of these +deductions or allocations are set. -In the offer email, click the :guilabel:`Configure your package` button, and the offer loads in a -new tab. Enter the requested information on the form. Next, click the :guilabel:`Review Contract & -Sign` button to begin the signing process. +To add a new deduction, first navigate to :menuselection:`Payroll app --> Contracts --> Salary +Attachments`. Next, click :guilabel:`Create`, and a new salary attachment form loads. -Click the :guilabel:`CLICK TO START` button at the top-left of the contract. Follow the prompts to -complete the signature request. The contract auto-populates with the information entered on the -:guilabel:`Configure your package` page. When done, click the :guilabel:`Validate & Send Completed -Document` button at the bottom of the contract. - -After the document is signed by the (potential) employee, management signs the contract next. The -manager's signature is completed directly in the *Sign* application. - -.. image:: contracts/sign-contract.png +.. image:: contracts/garnishment.png :align: center - :alt: The contract offer, ready to sign with the Click to Start button highlighted. + :alt: The salary attachment form with everything filled in for Ronnie Hart's child support. -.. note:: - Depending on the localization settings, there may be the option to customize the offer in the - :guilabel:`Configure your package` tab. +Fill out the following fields on the form: -View offers ------------ +- :guilabel:`Employee`: using the drop-down menu, select the employee the salary attachment applies + to. +- :guilabel:`Description`: enter a short description for the salary attachment, such as `Child + Support` or `529 Contribution`. +- :guilabel:`Type`: using the drop-down menu, select the type of salary attachment being created. + Choose from: -To view the current offers, navigate to :menuselection:`Payroll app --> Contracts --> Offers`. This -presents all offers in a list view, grouped by status, and displays the number of offers in each -status category. The statuses are: :guilabel:`Fully Signed`, :guilabel:`Partially Signed`, -:guilabel:`In Progress`, and :guilabel:`Expired`. + - :guilabel:`Attachment of Salary`: any payments taken out towards something that is *not* child + support. Typically any garnishments, such as lawsuit payments, payments toward taxes owed, etc. + - :guilabel:`Assignment of Salary`: any deduction that is not required, but voluntary, such as a + pre-tax allocation to a college savings account. + - :guilabel:`Child Support`: any payments taken out specifically for child support. -To view the offers with a specific status, click on the status to expand the list. If a specific -status has no offers, the status is not visible in the list. - -.. image:: contracts/offers.png - :align: center - :alt: The offers in a list view, grouped by status. +- :guilabel:`Start Date`: the date the salary attachment starts. Choose a date by clicking on the + drop-down menu, navigating to the correct month and year by using the :icon:`fa-chevron-left` + :icon:`fa-chevron-right` :guilabel:`(arrow)` icons, then clicking on the desired date. This field + is **required**. +- :guilabel:`Estimated End Date`: this field automatically populates after both the + :guilabel:`Monthly Amount` and :guilabel:`Total Amount` fields are populated. This field is + **not** modifiable. +- :guilabel:`Document`: attach any documents relevant to the salary attachment. Click the + :guilabel:`Upload Your File` button, navigate to the desired document in the file explorer, then + click :guilabel:`Open` to select the document, and attach it to the form. To change the attached + document, click the :icon:`fa-pencil` :guilabel:`(pencil)` icon, and select a different document. + To remove a document, click the :icon:`fa-trash-o` :guilabel:`(trash can)` icon. +- :guilabel:`Monthly Amount`: enter the amount to be taken out of the employee's paycheck every + month for this specific salary attachment. +- :guilabel:`Total Amount`: enter the total amount that the employee pays for the salary attachment + to be completed. diff --git a/content/applications/hr/payroll/contracts/external-link.png b/content/applications/hr/payroll/contracts/external-link.png new file mode 100644 index 0000000000000000000000000000000000000000..577cae4a6bbdab469dccbb50e93531068d671b8f GIT binary patch literal 11855 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/contracts/simulation.png b/content/applications/hr/payroll/contracts/simulation.png new file mode 100644 index 0000000000000000000000000000000000000000..2e78a99f5593352d2fec665c4d63500d7fb4ca7d GIT binary patch literal 14063 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 Nq(3T1l#3bq{C_E15gPyi literal 0 HcmV?d00001