diff --git a/content/applications/hr/employees/new_employee.rst b/content/applications/hr/employees/new_employee.rst index 1550c5cf0..c3c4ad6e8 100644 --- a/content/applications/hr/employees/new_employee.rst +++ b/content/applications/hr/employees/new_employee.rst @@ -1,6 +1,6 @@ -==================== -Create new employees -==================== +============= +New employees +============= When a new employee is hired, the first step is to create a new employee record. This record is a centralized place where all important information about the employee is stored, including @@ -347,15 +347,43 @@ information for the new employee: the :guilabel:`Default Role` fields. If the :guilabel:`Default Role` is selected as a role, it is automatically added to the list of :guilabel:`Roles`. - .. important:: - The :guilabel:`Planning` section affects the *Planning* application and **only** appears if the - *Planning* application is installed. +.. important:: + The users that appear in the drop-down menu for the :guilabel:`Approvers` section **must** have + *Administrator* rights set for the corresponding human resources role. - If an employee has assigned :guilabel:`Roles`, they are **only** assigned to shifts for these - roles. + To check who has these rights, go to :menuselection:`Settings app --> Users --> → Manage Users`. + Click on an employee, and check the :guilabel:`Human Resources` section of the :guilabel:`Access + Rights` tab. - If this field is blank, they are assigned shifts, regardless of the role. The - :guilabel:`Default Role` has precedence over the other roles when assigning shifts. + - In order for the user to appear as an approver for :guilabel:`Expenses`, they **must** have + either :guilabel:`Team Approver`, :guilabel:`All Approver`, or :guilabel:`Administrator` set + for the :guilabel:`Expenses` role. + - In order for the user to appear as an approver for :guilabel:`Time Off`, they **must** have + either :guilabel:`Officer` or :guilabel:`Administrator` set for the :guilabel:`Time Off` role. + - In order for the user to appear as an approver for :guilabel:`Timesheets`, they **must** have + either :guilabel:`Manager`, :guilabel:`Officer`, or :guilabel:`Administrator` set for the + :guilabel:`Payroll` role. + +.. note:: + :guilabel:`Working Hours` are related to a company's working times, and an employee **cannot** + have working hours that are outside of a company's working times. + + Each individual working time is company-specific. So, for multi-company databases, each company + **must** have its own working hours set. + + If an employee's working hours are not configured as a working time for the company, new working + times can be added, or existing working times can be modified. + + To add or modify a working time, go to the :menuselection:`Payroll app --> Configuration --> + Working Schedules`. Then, either add a new working time by clicking :guilabel:`New`, or edit an + existing one by selecting a :guilabel:`Working Time` from the list to modify it. + + Refer to the :ref:`Working schedules ` section of the payroll + documentation for specific details on creating and editing working schedules. + + After the new working time is created, or an existing one is modified, the :guilabel:`Working + Hours` can be set on the employee form. In the :guilabel:`Schedule` section of the + :guilabel:`Work Information` tab, select the employee's working hours using the drop-down menu. .. _employees/private-info: diff --git a/content/applications/hr/payroll/payslips.rst b/content/applications/hr/payroll/payslips.rst index 0f3c2fe0c..3a4a6e582 100644 --- a/content/applications/hr/payroll/payslips.rst +++ b/content/applications/hr/payroll/payslips.rst @@ -2,7 +2,7 @@ Payslips ======== -Payslips are created either by the employees themselves or their managers, and are approved by +*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. @@ -17,6 +17,8 @@ individual payslips, a batch of payslips, or commission payslips. :align: center :alt: Payslips menu selection in Payroll. +.. _payroll/to-pay: + To pay ====== @@ -28,159 +30,233 @@ from this dashboard. :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. +Each payslip lists the :guilabel:`Reference` number for the individual payslip, the +:guilabel:`Employee` name, the :guilabel:`Batch Name`, the :guilabel:`Company`, the :guilabel:`Basic +Wage`, :guilabel:`Gross 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. +Click on an individual payslip entry to view the details for that individual payslip. .. _payroll/new-payslip: -Create new payslip ------------------- +Create a 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. +A new payslip can be created from either the :ref:`Payslips To Pay ` page or the +:ref:`Employee Payslips ` page. -Clicking :guilabel:`Create` reveals a blank payslip form, wherein the necessary payslip information -can be entered. +Create a new payslip by clicking the :guilabel:`New` button in the top-left corner. -Required fields -~~~~~~~~~~~~~~~ +A blank payslip form is loaded, where the necessary payslip information can be entered. -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. +Payslip form +~~~~~~~~~~~~ + +On the blank payslip form, several fields are required. Most of the required fields auto-populate +after an employee is selected. + +Fill out the following information on the payslip form: + +- :guilabel:`Employee`: type in the name of an employee, or select the desired employee from the + drop-down list in this field. This field is **required**. + + .. note:: + It is recommended to **only** create payslips for employees that are already in the database. + If there is no current employee record (and therefore no employee contract) it is recommended + to create the new employee in the *Employees* application **before** creating payslips for that + employee. Refer to the :doc:`new employee <../employees/new_employee>` documentation for + instructions on how to add an employee. + +- :guilabel:`Period`: the first day to the last day of the *current* month auto-populates the + :guilabel:`Period` fields by default. The dates can be changed, if desired. + + To change the start date, click on the first date in the :guilabel:`Period` field to reveal a + pop-up calendar. On this calendar, use the :guilabel:`< (less-than)` and :guilabel:`> + (greater-than)` icons to select the desired month. Then, click on the desired day to select that + specific date. + + Repeat this process to modify the end date for the payslip. These fields are **required**. +- :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. This field is + **required**. +- :guilabel:`Batch`: using the drop-down menu in this field, select the batch of payslips this new + payslip should be added to. +- :guilabel:`Structure`: using the drop-down menu, select the salary structure type. Only the + corresponding structures associated with the selected contract for the employee appear as options. + + If no employee and/or no contract is selected yet, all available :guilabel:`Structures` appear in + the list. Once an employee and/or contract is selected, any unavailable :guilabel:`Structures` set + for that employee and/or contract do not appear. This field is **required**. .. 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. + :alt: The top fields for a new payslip all filled out for a February payslip. .. 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. + Typically, after making a selection in the :guilabel:`Employee` field, Odoo auto-populates all + other required fields (besides the :guilabel:`Period` field), but **only** if that information is + already on that employee's form in the *Employees* app. -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. +.. important:: + If modifications to auto-populated fields are made, it is recommended to check with the + accounting department to ensure every entry that affects the *Accounting* application is correct. -To print the payslip, click the :guilabel:`Print` button. To cancel the payslip, click the -:guilabel:`Cancel Payslip` button. +Worked days & inputs tab +************************ + +- :guilabel:`Worked Days`: 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:`Other Inputs`: additional inputs affecting the payslip can be entered in this section, + such as deductions, reimbursements, and expenses. + + Click :guilabel:`Add a line` to create an entry in the :guilabel:`Other Inputs` section. + + Using the drop-down menu in the :guilabel:`Type` column, select a :guilabel:`Type` for the input. + Next, enter a :guilabel:`Description`, if desired. Lastly, enter the amount in the + :guilabel:`Count` field. + +.. image:: payslips/worked-days-tab.png + :align: center + :alt: The fields filled out in the worked days and inputs tab. + +Salary computation tab +********************** + +- :guilabel:`Salary Computation`: the :guilabel:`Salary Computation` tab is automatically filled in + after the :guilabel:`Compute Sheet` button is clicked. Doing so displays the wages, deductions, + taxes, etc. for the entry. +- :guilabel:`Has Negative Net To Report`: click the checkbox if the employee has a negative net + amount for this payslip. This **only** appears if the employee's payslip has a negative balance. + +.. image:: payslips/salary-comp-tab.png + :align: center + :alt: The fields filled out in the salary computation tab. + +Other info tab +************** + +- :guilabel:`Payslip Name`: type in a name for the payslip in this field. The name should be short + and descriptive, such as `(Employee Name) April 2023`. This field is **required**. +- :guilabel:`Company`: select the company the payslip applies to using the drop-down menu in this + field. This field is **required**. +- :guilabel:`Close Date`: enter the date that the payment is made to the employee in this field. + + Click in the field to reveal a calendar pop-up window. Using the :guilabel:`< > + (less-than/greater-than)` icons, navigate to the desired month and year. + + Then, click on the desired date to select it. +- :guilabel:`Date Account`: enter the date on which the payslip should be posted in this field. +- :guilabel:`Salary Journal`: this field auto-populates after selecting an existing + :guilabel:`Employee`. This field **cannot** be edited, as it is linked to the *Accounting* + application. This field is **required**. +- :guilabel:`Accounting Entry`: if applicable, this field is automatically populated once the + payslip is confirmed. This field **cannot** be modified. +- :guilabel:`Add an Internal Note...`: any note or reference message for the new entry can be typed + in this field. + +.. image:: payslips/other-info-tab.png + :align: center + :alt: The fields filled out in the other info tab. + +Process the new payslip +~~~~~~~~~~~~~~~~~~~~~~~ + +When all the necessary information on the payslip is entered, click the :guilabel:`Compute Sheet` +button. Upon doing so, all the information on the payslip is saved, and the :guilabel:`Salary +Computation` tab auto-populates, based on the information on the employee's contract or attendance +records. + +If any modifications need to be made, first click the :guilabel:`Cancel` button, then click the +:guilabel:`Set to Draft` button. Make any desired changes, then click the :guilabel:`Compute Sheet` +button once again, and the changes are reflected in the :guilabel:`Worked Days` and +:guilabel:`Salary Computation` tabs. 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. +create the payslip. + +Then, a confirmation pop-up window appears, asking :guilabel:`Are you sure you want to proceed?`. +Click :guilabel:`OK` to confirm. + +The chatter is automatically updated to show the email sent to the employee, along with a PDF copy +of the payslip. + +.. note:: + The database may need to be refreshed for the payslip and email to appear. + +To print the payslip, click the :guilabel:`Print` button. To cancel the payslip, click the +:guilabel:`Cancel` button. .. 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` +Next, the payment must be sent to the employee. To do this, click the :guilabel:`Register 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. + contact information. If there is no bank information, a payslip cannot be paid, and an error + appears when the :guilabel:`Make Payment` button is clicked. Banking information can be found in + the :ref:`Private Information ` tab on the employee's card in the + *Employees* app. 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. +Odoo automatically checks bank account information. If there is an error with the employee's listed +bank account, an error appears in a pop-up window, stating, *The employee bank account is +untrusted.* If this error appears, update the employee's bank account information on their +:ref:`Employee Form `. + +If a payment needs to be canceled or refunded, click the corresponding :guilabel:`Cancel` or +:guilabel:`Refund` button, located at the top-left of the screen. + +.. tip:: + Before processing payslips, it is best practice to check the *Warnings* section of the *Payroll* + app dashboard. Here, all possible issues concerning payroll appear. + + To view the warnings, navigate to :menuselection:`Payroll app --> Dashboard`. The warnings appear + in the top-left corner of the dashboard. + + .. image:: payslips/warnings.png + :align: center + :alt: The dashboard view of the Payroll app, with the warnings box highlighted. + + Warnings are grouped by type, such as `Employees Without Running Contracts` or `Employees Without + Bank account Number`. Click on a warning to view all entries associated with that specific issue. + + If the warnings are not resolved, at any point in the payslip processing process, an error may + occur. Errors appear in a pop-up window, and provide details for the error, and how to resolve + them. + + Payslips **cannot** be completed if there are any warnings or issues associated with the payslip. + +.. _payroll/all-payslips: + 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). +To view all payslips, regardless of status, go to :menuselection:`Payroll app --> Payslips --> All +Payslips`. The :guilabel:`Employee Payslips` page loads, displaying all payslips, organized by +batch, in a default nested 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`. +Click on the :guilabel:`▶ (right arrow)` next to an individual batch name to view all the payslips +in that particular batch, along with all the payslip details. -.. 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. +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 one of the +following status options: + +- :guilabel:`Draft`: the payslip is created, and there is still time to make edits, since the + amounts are not calculated. +- :guilabel:`Waiting`: the payslip has been calculated, and the salary details can be found in the + *Salary Computation* tab. +- :guilabel:`Done`: the payslip is calculated and ready to be paid. +- :guilabel:`Paid`: the employee has been paid. .. image:: payslips/all-payslips.png :align: center @@ -190,27 +266,35 @@ Click on an individual payslip to view the details for that payslip on a separat 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 +:guilabel:`New` 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 ` section. +:ref:`Create new payslips ` 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. +To print PDF versions of payslips from the *Payslips to Pay* or :guilabel:`Employee Payslips` pages, +first select the desired payslips by clicking on the individual checkbox to the left of each payslip +to be printed. Or, click the box to the left of the :guilabel:`Reference` column title, 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. +Payslips can also be exported to an Excel spreadsheet. To export **all** payslips, click on the +:guilabel:`⚙️ (gear)` icon at the end of the words :guilabel:`Employee Payslips` in the top-left +corner. This reveals a drop-down menu. Click :guilabel:`Export All` to export all payslips to a +spreadsheet. .. image:: payslips/export.png :align: center :alt: Click on the Export All smart button to export all payslips to an Excel payslip. +To export only select payslips, first select the payslips to be exported from the list. Then, click +the checkbox to the left of each individual payslip to select it. As payslips are selected, a smart +button appears in the top-center of the page, indicating the number of selected payslips. Then, +click the :guilabel:`⚙️ (gear) Actions` icon in the top-center of the page, and click +:guilabel:`Export`. + +.. image:: payslips/export-select.png + :align: center + :alt: The individual list of employee ayslips with three selected to be exported. + .. note:: Both *To Pay* and *All Payslips* display all the detailed information for each payslip. @@ -221,147 +305,145 @@ To view payslips in batches, navigate to :menuselection:`Payroll app --> Payslip 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`. +Each batch displays the :guilabel:`Name`, :guilabel:`Date From` and :guilabel:`Date To` dates, its +:guilabel:`Status`, the number of payslips in the batch (:guilabel:`Payslips Count`), 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. +(:menuselection:`Payroll app --> Payslips --> Batches`), click the :guilabel:`New` button in the +top-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. +On the new payslip batch form, enter the :guilabel:`Batch Name`. + +Next, select the date range to which the batch applies. Click into one of the :guilabel:`Period` +fields, and a calendar pop-up window appears. From this calendar pop-up window, navigate to the +correct month, and click on the corresponding day for both the start and end dates of the batch. + +The current company populates the :guilabel:`Company` field. If operating in a multi-company +environment, it is **not** possible to modify the :guilabel:`Company` from the form. The batch +**must** be created while in the database for the desired company. .. 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. +.. _payroll/batch-process: -Lastly, in the :guilabel:`Company` field, select the company these payslips are written against. +Process a batch +--------------- -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. +Click on an individual batch to view the details for that batch on a separate page. On this batch +detail page, different options (buttons) appear at the top, depending on the status of the batch: -To create the payslips for the newly-created batch, click the :guilabel:`Generate Payslips` button -at the top of the form. +- :guilabel:`New` status: batches without any payslips added to them have a status of + :guilabel:`New`. The following button options appear for these batches: -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. + .. image:: payslips/batch-new.png + :align: center + :alt: A batch with a status of new, with the available buttons highlighted. -If a specific :guilabel:`Salary Structure` or :guilabel:`Department` needs to be specified for the -batch, select them from the corresponding drop-down menus. + - :guilabel:`Add Payslips`: click the :guilabel:`Add Payslips` button to add payslips to the + batch, and an :guilabel:`Add Payslips` pop-up window appears. Only payslips that can be added + to the batch (payslips not currently part of a batch) appear on the list. -Click the :guilabel:`Generate` button at the bottom of the pop-up window to create the payslips for -the batch. + Select the desired payslips by clicking the checkbox to the left of each payslip name, then + click the :guilabel:`Select` button to add them to the batch. Once payslips are selected and + added to the batch, the status changes to :guilabel:`Confirmed`. -.. image:: payslips/generate-payslips.png - :align: center - :alt: Generate payslips for the new batch. + - :guilabel:`Generate Payslips`: after payslips have been added to the batch, click the + :guilabel:`Generate Payslips` button to process the payslips and create individual payslips in + the database. -.. 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. + A :guilabel:`Generate Payslips` pop-up window appears. If only a specific :guilabel:`Salary + Structure` and/or specific :guilabel:`Department` is desired to make payslips for, select them + from the corresponding drop-down menus. If no selections are made, then all payslips listed in + the pop-up window are processed as usual. -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. + Click the :guilabel:`Generate` button to create the payslips. The :guilabel:`Generate Payslips` + button changes to a :guilabel:`Create Draft Entry` button, and the status changes to + :guilabel:`Confirmed`. -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. +- :guilabel:`Confirmed` status: batches that have been created and have payslips in them, but the + payslips have *not* been processed, have a status of :guilabel:`Confirmed`. The following two + button options appear for these batches: -Once the payslips have been successfully generated, the screen returns to the payslip batch form. + .. image:: payslips/batch-confirmed.png + :align: center + :alt: A batch with a status of confirmed, with the available buttons highlighted. -From here, click the :guilabel:`Generate Draft Entry` button to change the payslips' status from -:guilabel:`Draft` to :guilabel:`Done`. + - :guilabel:`Create Draft Entry`: click the :guilabel:`Create Draft Entry` button to confirm the + individual payslips (and the batch), and create a draft of the payslips. The batch now has a + status of :guilabel:`Done`. + - :guilabel:`Set to Draft`: if at any point the batch needs to be reverted back to a status of + :guilabel:`New`, click the :guilabel:`Set to Draft` button. This action does **not** remove any + payslips that have already been added to the batch. -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. +- :guilabel:`Done` status: batches with confirmed payslips in them have a status of + :guilabel:`Done`. The following button options appear for these batches: -When done, click the :guilabel:`Confirm` button to confirm the information, or click -:guilabel:`Cancel` to discard. + .. image:: payslips/batch-done.png + :align: center + :alt: A batch with a status of done, with the available buttons highlighted. -Generate commission payslips ----------------------------- + - :guilabel:`Create Payment Report`: click the :guilabel:`Create Payment Report` button, and a + :guilabel:`Select a bank journal` pop-up window appears. Select the correct bank journal from + the drop-down menu. -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. + The batch name appears in the :guilabel:`File name` field, but this can be modified, if desired. + Finally, click :guilabel:`Confirm` to process the payslips, and pay the employees. + - :guilabel:`Mark as paid`: after the payments have been created via the :guilabel:`Create Payment + Report` button, the payslips need to be marked as paid in the database. -Doing so reveals a :guilabel:`Generate Commission Payslip` pop-up window, in which the necessary + Click the :guilabel:`Mark as paid` button, and the status of the batch changes to + :guilabel:`Paid`. + - :guilabel:`Set to Draft`: if at any point the batch needs to be reverted back to a status of + :guilabel:`New`, click the :guilabel:`Set to Draft` button. This action does **not** remove any + payslips that have already been added to the batch. + +- :guilabel:`Paid` status: batches that have been completed have a status of :guilabel:`Paid`. No + other button options appear for this status. + + .. image:: payslips/batch-paid-2.png + :align: center + :alt: A batch with a status of paid, with the available buttons highlighted. + +On the batch detail page, the individual payslips in the batch are accessible, via the +:guilabel:`Payslips` smart button, located above the batch information, in the center. Click the +:guilabel:`Payslips` smart button to view a list of all the individual payslips. + +Use the breadcrumb menu to navigate back to the individual batch detail page, or back to the list of +all batches. + +Generate warrant payslips +------------------------- + +Commissions are paid to employees in Odoo using *warrant payslips*. + +Warrant payslips can be generated directly from the :guilabel:`Payslips Batches` page +(:menuselection:`Payroll app --> Payslips --> Batches`). + +First, select the desired batches by clicking the box to the left of each batch for which commission +payslips should be created. Next, click the :guilabel:`Generate Warrant Payslips` button at the top +of the page. + +Doing so reveals a :guilabel:`Generate Warrant Payslips` 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 +In 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. +arrow icons, 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. @@ -369,18 +451,17 @@ When a department is selected, the employees listed for that department appear i :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 +the far-right 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 +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. +create the warrant payslips in a batch. + +:ref:`Process the batch ` in the same way as a typical batch to complete the +payment process. diff --git a/content/applications/hr/payroll/payslips/all-pay-slips.png b/content/applications/hr/payroll/payslips/all-pay-slips.png index 37edc975c..1f99b48fe 100644 Binary files a/content/applications/hr/payroll/payslips/all-pay-slips.png and b/content/applications/hr/payroll/payslips/all-pay-slips.png differ diff --git a/content/applications/hr/payroll/payslips/all-payslips.png b/content/applications/hr/payroll/payslips/all-payslips.png index 14228a928..14ea99656 100644 Binary files a/content/applications/hr/payroll/payslips/all-payslips.png and b/content/applications/hr/payroll/payslips/all-payslips.png differ diff --git a/content/applications/hr/payroll/payslips/banking.png b/content/applications/hr/payroll/payslips/banking.png index f536edaa8..bc37ea68a 100644 Binary files a/content/applications/hr/payroll/payslips/banking.png and b/content/applications/hr/payroll/payslips/banking.png differ diff --git a/content/applications/hr/payroll/payslips/batch-confirmed.png b/content/applications/hr/payroll/payslips/batch-confirmed.png new file mode 100644 index 000000000..7a8daad89 Binary files /dev/null and b/content/applications/hr/payroll/payslips/batch-confirmed.png differ diff --git a/content/applications/hr/payroll/payslips/batch-done.png b/content/applications/hr/payroll/payslips/batch-done.png new file mode 100644 index 000000000..c7d94a61c Binary files /dev/null and b/content/applications/hr/payroll/payslips/batch-done.png differ diff --git a/content/applications/hr/payroll/payslips/batch-new.png b/content/applications/hr/payroll/payslips/batch-new.png new file mode 100644 index 000000000..cb8d43290 Binary files /dev/null and b/content/applications/hr/payroll/payslips/batch-new.png differ diff --git a/content/applications/hr/payroll/payslips/batch-paid-2.png b/content/applications/hr/payroll/payslips/batch-paid-2.png new file mode 100644 index 000000000..eab1dd909 Binary files /dev/null and b/content/applications/hr/payroll/payslips/batch-paid-2.png differ diff --git a/content/applications/hr/payroll/payslips/batches.png b/content/applications/hr/payroll/payslips/batches.png index 96eace142..214647637 100644 Binary files a/content/applications/hr/payroll/payslips/batches.png and b/content/applications/hr/payroll/payslips/batches.png differ diff --git a/content/applications/hr/payroll/payslips/commission-details.png b/content/applications/hr/payroll/payslips/commission-details.png index bb9f3617e..366a67489 100644 Binary files a/content/applications/hr/payroll/payslips/commission-details.png and b/content/applications/hr/payroll/payslips/commission-details.png differ diff --git a/content/applications/hr/payroll/payslips/draft-from-batch.png b/content/applications/hr/payroll/payslips/draft-from-batch.png deleted file mode 100644 index 07bc8bf16..000000000 Binary files a/content/applications/hr/payroll/payslips/draft-from-batch.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/export-select.png b/content/applications/hr/payroll/payslips/export-select.png new file mode 100644 index 000000000..ea9623362 Binary files /dev/null and b/content/applications/hr/payroll/payslips/export-select.png differ diff --git a/content/applications/hr/payroll/payslips/export.png b/content/applications/hr/payroll/payslips/export.png index f9cc900fe..50121bcd1 100644 Binary files a/content/applications/hr/payroll/payslips/export.png and b/content/applications/hr/payroll/payslips/export.png differ diff --git a/content/applications/hr/payroll/payslips/generate-payslips-batch.png b/content/applications/hr/payroll/payslips/generate-payslips-batch.png deleted file mode 100644 index ed177ffd1..000000000 Binary files a/content/applications/hr/payroll/payslips/generate-payslips-batch.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/generate-payslips.png b/content/applications/hr/payroll/payslips/generate-payslips.png deleted file mode 100644 index 84c7afed7..000000000 Binary files a/content/applications/hr/payroll/payslips/generate-payslips.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/make-payment.png b/content/applications/hr/payroll/payslips/make-payment.png deleted file mode 100644 index 47d9d188a..000000000 Binary files a/content/applications/hr/payroll/payslips/make-payment.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/new-batch-details.png b/content/applications/hr/payroll/payslips/new-batch-details.png index 412e62188..b5bff78e2 100644 Binary files a/content/applications/hr/payroll/payslips/new-batch-details.png and b/content/applications/hr/payroll/payslips/new-batch-details.png differ diff --git a/content/applications/hr/payroll/payslips/new-payslip-tab.png b/content/applications/hr/payroll/payslips/new-payslip-tab.png deleted file mode 100644 index d9b093692..000000000 Binary files a/content/applications/hr/payroll/payslips/new-payslip-tab.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/new-payslip.png b/content/applications/hr/payroll/payslips/new-payslip.png index 3de8977de..496c1a46e 100644 Binary files a/content/applications/hr/payroll/payslips/new-payslip.png and b/content/applications/hr/payroll/payslips/new-payslip.png differ diff --git a/content/applications/hr/payroll/payslips/other-info-tab.png b/content/applications/hr/payroll/payslips/other-info-tab.png new file mode 100644 index 000000000..006981898 Binary files /dev/null and b/content/applications/hr/payroll/payslips/other-info-tab.png differ diff --git a/content/applications/hr/payroll/payslips/payslip-batches.png b/content/applications/hr/payroll/payslips/payslip-batches.png deleted file mode 100644 index a9c0a90bd..000000000 Binary files a/content/applications/hr/payroll/payslips/payslip-batches.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/payslip-chatter.png b/content/applications/hr/payroll/payslips/payslip-chatter.png index 973f668f6..a4b9d4a43 100644 Binary files a/content/applications/hr/payroll/payslips/payslip-chatter.png and b/content/applications/hr/payroll/payslips/payslip-chatter.png differ diff --git a/content/applications/hr/payroll/payslips/payslips.png b/content/applications/hr/payroll/payslips/payslips.png index d416f04de..25b9dc894 100644 Binary files a/content/applications/hr/payroll/payslips/payslips.png and b/content/applications/hr/payroll/payslips/payslips.png differ diff --git a/content/applications/hr/payroll/payslips/print.png b/content/applications/hr/payroll/payslips/print.png deleted file mode 100644 index f6fd95ef2..000000000 Binary files a/content/applications/hr/payroll/payslips/print.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/salary-comp-tab.png b/content/applications/hr/payroll/payslips/salary-comp-tab.png new file mode 100644 index 000000000..bf53868c9 Binary files /dev/null and b/content/applications/hr/payroll/payslips/salary-comp-tab.png differ diff --git a/content/applications/hr/payroll/payslips/warnings.png b/content/applications/hr/payroll/payslips/warnings.png new file mode 100644 index 000000000..7012a2e7c Binary files /dev/null and b/content/applications/hr/payroll/payslips/warnings.png differ diff --git a/content/applications/hr/payroll/payslips/worked-days-tab.png b/content/applications/hr/payroll/payslips/worked-days-tab.png new file mode 100644 index 000000000..7c5b463c2 Binary files /dev/null and b/content/applications/hr/payroll/payslips/worked-days-tab.png differ