diff --git a/content/applications/hr/payroll/payslips.rst b/content/applications/hr/payroll/payslips.rst index 022aa91947..f2b87da1f8 100644 --- a/content/applications/hr/payroll/payslips.rst +++ b/content/applications/hr/payroll/payslips.rst @@ -2,222 +2,172 @@ Payslips ======== -*Payslips* are generated by payroll officers through the :menuselection:`Payroll` application. - -The :guilabel:`Payslips` drop-down header of the :menuselection:`Payroll` application consists of -three sections: :guilabel:`To Pay`, :guilabel:`All Payslips`, and :guilabel:`Batches`. - -These three sections provide all the tools needed to create payslips for employees, including -individual payslips, a batch of payslips, or commission payslips. - -.. image:: payslips/payslips.png - :align: center - :alt: Payslips menu selection in Payroll. - -.. _payroll/to-pay: - -To pay -====== - -Click on :menuselection:`Payroll app --> Payslips --> To Pay` to see the payslips that need to be -paid. - -.. image:: payslips/all-pay-slips.png - :align: center - :alt: View all payslips that need to be paid on the Payslips To Pay page. - -Each payslip 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. - -Click on an individual payslip entry to view the details for that individual payslip. +*Payslips* are individual records of payment, containing all the details of how the pay was +calculated (hours, deductions, other inputs, etc.), and generated by payroll officers through the +**Payroll** application. Payslips can be created and processed individually, or multiple payslips +can be processed at one time, in a single batch. .. _payroll/new-payslip: -Create a new payslip --------------------- +Create a payslip +================ A new payslip can be created from either the :ref:`Payslips To Pay ` page or the :ref:`Employee Payslips ` page. -Create a new payslip by clicking the :guilabel:`New` button in the top-left corner. - -A blank payslip form is loaded, where the necessary payslip information can be entered. +Navigate to :menuselection:`Payroll app --> Payslips`, and click either :guilabel:`To Pay` or +:guilabel:`All Payslips`. Click the :guilabel:`New` button in the top-left corner, and a blank +payslip form loads. 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**. +- :guilabel:`Employee`: Using the drop-down menu, select the employee in this field. This field is + **required** Once a selection is made, other fields may auto-populate according to the employee + record. .. 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 + 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:`Contract`: The current contract for the selected employee populates this field. This + field is **required**. + + .. important:: + All employees are required to have a contract in order to generate payslips. Additionally, + *only one* contract can be in the running stage for each employee, therefore the current + contract populates this field, and it is **not** recommended to make changes to this field. + +- :guilabel:`Batch`: Using the drop-down menu, select the payslip batch this new payslip should be + added to, if applicable. +- :guilabel:`Structure`: The structure linked to the employee's contract auto-populates this field + by default. If desired, use the drop-down menu to select a different structure. +- :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 + pop-up calendar. Navigate to the desired month, and 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 top fields for a new payslip all filled out for a February payslip. .. note:: 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. + already on that employee's form in the **Employees** app. .. 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. + accounting department to ensure every entry that affects the **Accounting** application is + correct. + +.. image:: payslips/new-payslip.png + :alt: The top fields for a new payslip all filled out for a February payslip. .. _payroll/worked-days-inputs: Worked days & inputs tab -************************ +~~~~~~~~~~~~~~~~~~~~~~~~ + +The :guilabel:`Worked Days & Inputs` tab details the number of days and hours the employee worked +during the specified :guilabel:`Period` of time on the top portion of the payslip form, and is +calculated based on the selected :guilabel:`Contract` and :guilabel:`Structure` fields. -- :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. +The :guilabel:`Worked Days` section is automatically populated and lists all the individual +attendance records for the time period, including both worked time and any time off taken. - Click :guilabel:`Add a line` to create an entry in the :guilabel:`Other Inputs` section. +Each individual entry lists the :guilabel:`Type`, :guilabel:`Description`, :guilabel:`Number of +Days`, :guilabel:`Number of Hours`, and the total :guilabel:`Amount`. - 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. +Additional records cannot be created for the :guilabel:`Worked Days & Inputs` as it is +auto-populated according to the employee's attendance records or working schedule on their +:ref:`employee record `. + +The :guilabel:`Other Inputs` section is where additional inputs are listed, such as deductions, +reimbursements, and expenses. + +Each individual item lists the :guilabel:`Type`, :guilabel:`Description`, and :guilabel:`Count`. To +add a new input, click :guilabel:`Add a line`, and using the drop-down menu, select the +:guilabel:`Type`. Next, enter a brief :guilabel:`Description`, and last, enter the +:guilabel:`Count`. .. 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. +The :guilabel:`Salary Computation` tab is where all the individual salary rules are listed and +calculated, including everything from the employee's salary, to all the deductions and allowances, +such as taxes, expenses, benefit contributions, and any other items associated with the installed +:doc:`payroll localization `. -.. image:: payslips/salary-comp-tab.png - :align: center - :alt: The fields filled out in the salary computation tab. +When the payslip is first created, this tab remains blank. Click the :guilabel:`Compute Sheet` +button in the upper-left corner, and the :guilabel:`Salary Computation` tab is populated. -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. +.. important:: + It is **not** possible to make edits to this tab, as the calculations are based on other entries + on the payslip. -.. image:: payslips/other-info-tab.png - :align: center - :alt: The fields filled out in the other info tab. +.. tip:: + The :guilabel:`Compute Sheet` button does not disappear from view after it is clicked, so the + payslip can be recalculated at any point prior to :ref:`processing it `. -Process the new payslip -~~~~~~~~~~~~~~~~~~~~~~~ + If any changes need to be made to the :ref:`Worked Days & Inputs ` + tab, click the :guilabel:`Compute Sheet` button to recalculate the 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. +.. image:: payslips/salary-comp-tab.png + :alt: The fields filled out in the salary computation tab. -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. +Other info tab +~~~~~~~~~~~~~~ -Once everything on the payslip form is correct, click the :guilabel:`Create Draft Entry` button to -create the payslip. +The :guilabel:`Other Info` tab houses information that is required, but not associated with any +inputs or calculations, as the other tabs do. -Then, a confirmation pop-up window appears, asking :guilabel:`Are you sure you want to proceed?`. -Click :guilabel:`OK` to confirm. +The :guilabel:`Payslip Name` is auto-populated according to the employee name and the time period +the payslip is for. Make any desired edits to the name in this field. This field is **required**. -.. note:: - The database may need to be refreshed for the payslip and email to appear. +The :guilabel:`Company` field is also automatically populated according to the employee's record, +and cannot be modified. -To print the payslip, click the :guilabel:`Print` button. To cancel the payslip, click the -:guilabel:`Cancel` button. +The end date selected in the :guilabel:`Period` field in the top half of the form populates both the +:guilabel:`Close Date` and :guilabel:`Date Account` fields, by default. The :guilabel:`Close Date` +is the date the payment is issued to the employee, while the :guilabel:`Date Account` is the end +date the payslip covers. Modify the dates, if needed. -.. image:: payslips/payslip-chatter.png - :align: center - :alt: The new payslip is emailed to the employee and the email appears in the chatter. +The :guilabel:`Salary Journal` field is populated by default, and **cannot** be edited. This is the +accounting journal the paycheck is logged in. -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. +If there are any additional notes or information needed for the payslip, add them to the +:guilabel:`Add an Internal Note...` field. -.. 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 - 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/other-info-tab.png + :alt: The fields filled out in the other info tab. - .. image:: payslips/banking.png - :align: center - :alt: Banking information can be entered in an employee's card. +.. _payroll/process: -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 `. +Process a payslip +================= -If a payment needs to be cancelled or refunded, click the corresponding :guilabel:`Cancel` or -:guilabel:`Refund` button, located at the top-left of the screen. +When all the necessary information on the payslip is entered, the payslip can be processed. First, a +:ref:`draft of the journal entry ` is created, followed by a :ref:`payment +report `, and finally, the employee is :ref:`paid `. .. 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. + 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. + :alt: The dashboard view of the Payroll app, with the warnings box visible. 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. @@ -226,233 +176,200 @@ If a payment needs to be cancelled or refunded, click the corresponding :guilabe occur. Errors appear in a pop-up window, and provide details for the error, and how to resolve them. -.. _payroll/all-payslips: - -All payslips -============ - -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. +.. _payroll/draft-entry: -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. +Create draft entry +------------------ -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: +Once everything on the payslip form is correct, click the :guilabel:`Create Draft Entry` button to +create the payslip. A :guilabel:`Confirmation` pop-up window appears, asking :guilabel:`Are you sure +you want to proceed?` Click :guilabel:`OK` to confirm. -- :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. +Once the payslip draft is created, the status changes to :guilabel:`Done`, a :icon:`fa-usd` +:guilabel:`Journal Entry (Draft)` smart button appears at the top, and additional buttons appear in +the top-left corner. -.. image:: payslips/all-payslips.png - :align: center - :alt: View all payslips organized by batches. Click on the arrow to expand each batch. +.. note:: + After creating a draft entry, Odoo considers the payslip as confirmed. -Click on an individual payslip to view the details for that payslip on a separate page. Using the -breadcrumb menu, click :guilabel:`Employee Payslips` to go back to the list view of all payslips. +Click the :icon:`fa-usd` :guilabel:`Journal Entry (Draft)` smart button to view the detailed +accounting journal entry. Click :guilabel:`Post` to post the entry. Using the breadcrumb menu, +return to the payslip. -A new payslip can be created from the :guilabel:`Employee Payslips` page, by clicking the -: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 new payslips ` section. +After the journal entry is posted, the smart button at the top changes to :icon:`fa-usd` +:guilabel:`Journal Entry (Posted)` -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. +.. note:: + Employees cannot be :ref:`paid ` until the journal entry is posted. -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. +.. _payroll/payment-report: -.. image:: payslips/export.png - :align: center - :alt: Click on the Export All smart button to export all payslips to an Excel payslip. +Create payment report +--------------------- -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`. +Once the payslip status has changed to :guilabel:`Done`, a payment report must be created. A payment +report is a document that contains all the necessary information to transfer the employee's earnings +from the company's bank account to theirs. These are submitted by the payroll department to the +appropriate institution. -.. image:: payslips/export-select.png - :align: center - :alt: The individual list of employee ayslips with three selected to be exported. +Click the :guilabel:`Create Payment Report` and a pop-up window loads. Using the drop-down menu, +select the :guilabel:`Export Format` for the payment report. The two default options available are +:guilabel:`NACHA`, and :guilabel:`CSV`. :guilabel:`NACHA` stands for the :abbr:`National Automated +Clearing House Association (NACHA)`, and this selection creates a compatible ACH file which is sent +to the company's bank. .. note:: - Both *To Pay* and *All Payslips* display all the detailed information for each payslip. - -Batches -======= + Other options may be available depending on the :doc:`payroll localization + ` installed in the database. -To view payslips in batches, navigate to :menuselection:`Payroll app --> Payslips --> Batches` to -display all the payslip batches that have been created. These payslip batches are displayed in a -list view, by default. + If :guilabel:`CSV` is selected, all other fields are hidden from view. -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`. +Next, select the desired :guilabel:`Bank Journal` the paycheck is logged to. Last, using the +calendar selector, set the date the paycheck is issued in the :guilabel:`Effective Date` field. -.. image:: payslips/batches.png - :align: center - :alt: View displaying all batches created. +Once the pop-up window is configured, click the :guilabel:`Generate` button, and the file appears on +the payslip form, in a new :guilabel:`Payment Report` field. -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:`New` button in the -top-left corner. Doing so reveals a blank payslip batch form on a separate page. +.. _payroll/pay-employee: -On the new payslip batch form, enter the :guilabel:`Batch Name`. +Pay employee +------------ -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. +Next, the payment must be sent to the employee. To do this, click the :guilabel:`Pay` button in the +upper-left corner. Doing so reveals a :guilabel:`Pay` pop-up form. -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. +All the necessary information is pre-populated on the form according to the payslip configuration, +but modifications can be made, if necessary, to any of the fields *except* the :guilabel:`Amount`. +This is populated according to the payslip calculations, and **cannot** be modified. -.. image:: payslips/new-batch-details.png - :align: center - :alt: Enter the details for the new batch. +- :guilabel:`Journal`: The accounting journal the payslip is logged to. +- :guilabel:`Payment Method`: Using the drop-down menu, select how the employee is being paid. The + default options are: -.. _payroll/batch-process: + - :guilabel:`Manual Payment`: Select this if paying the employee in a method *other* than A + :guilabel:`Check` or :guilabel:`NACHA`. + - :guilabel:`Check`: Select this when issuing a check directly to the employee. + - :guilabel:`NACHA`: Select this if using the :abbr:`National Automated Clearing House Association + (NACHA)` to transfer the payment to the employee, via direct deposit. -Process a batch ---------------- +- :guilabel:`Group Payments`: If the employee has multiple payslips for the same time period (for + example, payroll, reimbursement, and commission checks), tick the checkbox to group all payments + into one payment. +- :guilabel:`Payment Date`: Using the calendar selector, select the date the employee is to be paid. -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: +Once the pop-up :guilabel:`Pay` form is complete, click the :guilabel:`Create Payments` button, and +the payment is processed. -- :guilabel:`New` status: batches without any payslips added to them have a status of - :guilabel:`New`. The following button options appear for these batches: +After the payment is processed, and there is confirmation that the checks have been issued, or the +funds have been directly deposited to the employee's bank account, click the :guilabel:`Mark as +paid` button to mark the payslip as paid. - .. image:: payslips/batch-new.png - :align: center - :alt: A batch with a status of new, with the available buttons highlighted. +.. image:: payslips/pay.png + :alt: Banking information can be entered in an employee's card. - - :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. - - 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`. +.. important:: + In order for a payslip to be paid, the employee **must** have a bank account entered in the + :ref:`private information tab ` of their employee record, *and* the bank + account must be marked as :guilabel:`Trusted`. - - :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. + If there is no bank information, or if the bank is not listed as :guilabel:`Trusted`, payslips + cannot be paid, and an error appears when the :guilabel:`Pay` button is clicked. Edit the + employee record, and add banking information, or trust the bank account, as needed. - 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. +Refund a payslip +================ - 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`. +When refunding a payment, the refund is achieved by creating a payslip for the negative amount of +the original payslip. -- :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: +.. example:: + An employee is paid $5,000.00 USD in a paycheck, in error. When refunding the payslip, a new + payslip is created in the amount of $-5,000.00. - .. image:: payslips/batch-confirmed.png - :align: center - :alt: A batch with a status of confirmed, with the available buttons highlighted. +If a payment needs to be refunded, navigate to the individual payslip being refunded, and click the +:guilabel:`Refund` button, located at the top-left of the screen. The :guilabel:`Refund Payslip` +dashboard loads, with all refund payslips appearing in a list view. - - :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. +.. note:: + Since refunds are uncommon, typically only the one payslip being refunded appears in the list. -- :guilabel:`Done` status: batches with confirmed payslips in them have a status of - :guilabel:`Done`. The following button options appear for these batches: +By default, the refund payslip has a status of :guilabel:`Waiting`. This refund payslip is processed +:ref:`in the same way a regular payslip is processed `. - .. image:: payslips/batch-done.png - :align: center - :alt: A batch with a status of done, with the available buttons highlighted. +Print a payslip +=============== - - :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. +To print a payslip, click the :guilabel:`Print` button in the upper-left corner of the individual +payslip record. A PDF file is downloaded, and the payslip appears in the chatter, and the file is +attached to the payslip record. - 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. +.. image:: payslips/payslip-chatter.png + :alt: The new payslip is emailed to the employee and the email appears in the chatter. - 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. +.. _payroll/all-payslips: -- :guilabel:`Paid` status: batches that have been completed have a status of :guilabel:`Paid`. No - other button options appear for this status. +View all payslips +================= - .. image:: payslips/batch-paid-2.png - :align: center - :alt: A batch with a status of paid, with the available buttons highlighted. +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. -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. +Click the :guilabel:`▶ (right arrow)` next to an individual batch name to expand the list, and view +all the payslips in that particular batch, along with all the payslip details. -Use the breadcrumb menu to navigate back to the individual batch detail page, or back to the list of -all batches. +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: -Generate warrant payslips -------------------------- +- :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. -Commissions are paid to employees in Odoo using *warrant payslips*. +.. image:: payslips/all-payslips.png + :alt: View all payslips organized by batches. Click on the arrow to expand each batch. -Warrant payslips can be generated directly from the :guilabel:`Payslips Batches` page -(:menuselection:`Payroll app --> Payslips --> Batches`). +Click on an individual payslip to view the details for that payslip on a separate page. Using the +breadcrumb menu, click :guilabel:`Employee Payslips` to go back to the list view of all payslips. -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. +A new payslip can be created from the :guilabel:`Employee Payslips` page, by clicking the +: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 payslip ` section. -Doing so reveals a :guilabel:`Generate Warrant Payslips` pop-up window, in which the necessary -information **must** be filled out. +Payslips can also be exported to an Excel spreadsheet. To export **all** payslips, click on the +:icon:`fa-cog` :guilabel:`(gear)` icon at the end of the words :guilabel:`Employee Payslips` in the +top-left corner. This reveals a drop-down menu. Click :icon:`fa-upload` :guilabel:`Export All` to +export all payslips to a spreadsheet. -.. image:: payslips/commission-details.png - :align: center - :alt: Enter the commission details. +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 :icon:`fa-cog` :guilabel:`Actions` icon in the top-center of the page, and click +:icon:`fa-upload` :guilabel:`Export`. -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)` -arrow icons, navigate to the correct month, and click on the date to select it. +.. note:: + Both *To Pay* and *All Payslips* display all the detailed information for each payslip. -In the :guilabel:`Department` field, select the desired department from the drop-down menu. +.. _payroll/to-pay: -When a department is selected, the employees listed for that department appear in the -:guilabel:`Employee` section. +View payslips to pay +==================== -Under the :guilabel:`Employee` section, enter the :guilabel:`Commission Amount` for each employee in -the far-right column. To remove an employee, click the :guilabel:`🗑️ (trash)` icon to remove the -line. +To only view the payslips awaiting to be processed, navigate to :menuselection:`Payroll app --> +Payslips --> To Pay`. -Add a new entry by clicking :guilabel:`Add a Line`, and entering the :guilabel:`Employee` and the -appropriate :guilabel:`Commission Amount`. +.. image:: payslips/all-pay-slips.png + :alt: View all payslips that need to be paid on the Payslips To Pay page. -Click the :guilabel:`Upload your file` button to add a file, if necessary. Any file type is -accepted. +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. -Once all the commissions are properly entered, click the :guilabel:`Generate Payslips` button to -create the warrant payslips in a batch. +Click on an individual payslip entry to view the details for that individual payslip. -:ref:`Process the batch ` in the same way as a typical batch to complete the -payment process. +Process the payslips :ref:`in the same way a regular payslip is processed `, or in +a batch. diff --git a/content/applications/hr/payroll/payslips/all-pay-slips.png b/content/applications/hr/payroll/payslips/all-pay-slips.png index 1f99b48fec..44e84a0876 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 14ea996560..ad2f1734e9 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 deleted file mode 100644 index bc37ea68ac..0000000000 Binary files a/content/applications/hr/payroll/payslips/banking.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/batch-confirmed.png b/content/applications/hr/payroll/payslips/batch-confirmed.png deleted file mode 100644 index 7a8daad898..0000000000 Binary files a/content/applications/hr/payroll/payslips/batch-confirmed.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/batch-done.png b/content/applications/hr/payroll/payslips/batch-done.png deleted file mode 100644 index c7d94a61c5..0000000000 Binary files a/content/applications/hr/payroll/payslips/batch-done.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/batch-new.png b/content/applications/hr/payroll/payslips/batch-new.png deleted file mode 100644 index cb8d43290c..0000000000 Binary files a/content/applications/hr/payroll/payslips/batch-new.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/batch-paid-2.png b/content/applications/hr/payroll/payslips/batch-paid-2.png deleted file mode 100644 index eab1dd909c..0000000000 Binary files a/content/applications/hr/payroll/payslips/batch-paid-2.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/batches.png b/content/applications/hr/payroll/payslips/batches.png deleted file mode 100644 index 214647637d..0000000000 Binary files a/content/applications/hr/payroll/payslips/batches.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/commission-details.png b/content/applications/hr/payroll/payslips/commission-details.png deleted file mode 100644 index 366a674893..0000000000 Binary files a/content/applications/hr/payroll/payslips/commission-details.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 deleted file mode 100644 index ea96233629..0000000000 Binary files a/content/applications/hr/payroll/payslips/export-select.png and /dev/null differ diff --git a/content/applications/hr/payroll/payslips/export.png b/content/applications/hr/payroll/payslips/export.png deleted file mode 100644 index 50121bcd18..0000000000 Binary files a/content/applications/hr/payroll/payslips/export.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 deleted file mode 100644 index b5bff78e24..0000000000 Binary files a/content/applications/hr/payroll/payslips/new-batch-details.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 496c1a46ef..7f8cd4d278 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 index 0069818989..4ab1b6adb7 100644 Binary files a/content/applications/hr/payroll/payslips/other-info-tab.png and b/content/applications/hr/payroll/payslips/other-info-tab.png differ diff --git a/content/applications/hr/payroll/payslips/pay.png b/content/applications/hr/payroll/payslips/pay.png new file mode 100644 index 0000000000..48b90dce7a Binary files /dev/null and b/content/applications/hr/payroll/payslips/pay.png differ diff --git a/content/applications/hr/payroll/payslips/payslip-chatter.png b/content/applications/hr/payroll/payslips/payslip-chatter.png index a4b9d4a431..12e9f69d58 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 deleted file mode 100644 index 25b9dc894d..0000000000 Binary files a/content/applications/hr/payroll/payslips/payslips.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 index bf53868c97..db47e2d4ad 100644 Binary files a/content/applications/hr/payroll/payslips/salary-comp-tab.png 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 index 7012a2e7c9..dd7ab50b05 100644 Binary files a/content/applications/hr/payroll/payslips/warnings.png 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 index 7c5b463c29..be88835b16 100644 Binary files a/content/applications/hr/payroll/payslips/worked-days-tab.png and b/content/applications/hr/payroll/payslips/worked-days-tab.png differ