Partial Payslip Payment - Pay Salaries in Installments
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 118.81
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Payroll (hr_payroll) • Expenses (hr_expense) • Employees (hr) • Discuss (mail) • Employee Contracts (hr_contract) |
| Lines of code | 197 |
| Technical Name |
payslip_patch_payment_partial |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Payroll (hr_payroll) • Expenses (hr_expense) • Employees (hr) • Discuss (mail) • Employee Contracts (hr_contract) |
| Lines of code | 197 |
| Technical Name |
payslip_patch_payment_partial |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
Partial Payslip Payment - Pay Salaries in Installments
Pay employee salaries partially or selectively from a payslip batch. Perfect for advance payments, partial settlements, cash flow management, or handling complex payroll scenarios where employees need partial payments before month-end.
In standard Odoo Payroll, you can only pay the entire net amount of a payslip at once - no partial payments, no selective payments across employees.
This creates significant challenges for real-world payroll scenarios:
- No way to process salary advances or advance payments before month-end
- Cannot pay partial salaries when cash flow is tight
- No option to pay selected employees while delaying others
- Cannot track partial payments or remaining balances
- No visibility into how much has been paid vs remaining due per employee
- Payroll batches show only "Paid" or "Not Paid" - no partial status
- Manual workarounds using journal entries are error-prone and time-consuming
This module adds a "Generate Payment (Partial)" button to payslip batches. Open a wizard where you can select which employees to pay and enter partial payment amounts. The system creates journal entries for each payment, tracks running totals of paid amounts, and updates payslip states to Partial or Paid accordingly. Perfect for salary advances, cash flow management, or selective payroll runs.
- Selective Employee Payment: Choose exactly which employees to pay from a batch
- Partial Amount Payment: Pay any amount up to the remaining balance
- Remaining Balance Tracking: Automatically tracks how much has been paid vs remaining due
- Payslip State Management: New Partial state for partially paid payslips
- Batch State Propagation: Batch automatically updates to Partial or Paid based on payslip states
- Automatic Journal Entry Creation: Creates proper accounting entries for each payment
- Payment Date Control: Specify payment date for each batch
- NET Account Validation: Validates that NET salary rule has a credit account configured
- Payment Amount Validation: Prevents overpayment beyond remaining balance
- Statusbar Integration: Partial state appears in payslip and batch statusbars
1. Create Payslip Batch with Done Payslips
Create a payslip batch, generate payslips, and confirm them to "Done" state.
2. Click "Generate Payment (Partial)"
Click the new button in the batch header to open the selective payment wizard.
3. Select Employees & Enter Payment Amounts
Choose which employees to pay and enter partial payment amounts (up to remaining balance).
4. After Payment - Partial State & Remaining Balance
Payslips show "Partial" state with remaining balance; batch shows "Partially Paid".
Installation & Configuration
- Install the Module: Install through Odoo Apps or manually copy to addons path
- Dependencies: Requires
hr_payrollandaccountmodules - Restart Server & Update: Restart Odoo and update the app list
- No Additional Configuration: Module works immediately after installation
- Verify NET Account: Ensure your payroll structure's NET rule has a Credit Account configured
- Test: Create payslip batch -> Confirm payslips -> Click "Generate Payment (Partial)" -> Pay selected employees partially
Step 1: Create and Confirm Payslip Batch
Go to Payroll -> Payslip Batches. Create a new batch, add employees, and generate payslips. Compute, confirm, and validate all payslips to the "Done" state.
Step 2: Open Selective Payment Wizard
Open the payslip batch form. In the header, click the new "Generate Payment (Partial)" button (only visible when batch state is Close or Partially Paid).
Step 3: Configure Payment Settings
In the wizard, configure:
- Payment Journal: Select the bank or cash journal for payments
- Payment Date: Set the date for the accounting entries
Step 4: Select Employees and Enter Payment Amounts
In the "Payment Lines" tab, each payslip shows:
- Select: Checkbox to include this employee in payment
- Due Amount: Total net salary due
- Already Paid: Amount already paid (from previous partial payments)
- Remaining: Amount still due
- Payment Amount: Enter the amount to pay this time (cannot exceed remaining)
Check the employees you want to pay and enter the desired payment amounts.
Step 5: Confirm Payment
Click "Confirm Payment". The system:
- Creates a journal entry for each selected payslip
- Updates the payslip's total_paid_amount
- Sets payslip state to Partial (if partially paid) or Paid (if fully paid)
- Updates batch state to Partially Paid or Paid
- Records the payment date on fully paid payslips
Pro Tip - Salary Advances Made Easy
Use this module to process salary advances mid-month. When an employee requests an advance, open the current month's payslip batch, select only that employee, and enter the advance amount. The system creates the payment journal entry, tracks the advance, and the remaining balance stays marked for final month-end payment. Perfect for companies that offer salary advances or have monthly payroll with mid-month partial payments.
Important - NET Account Configuration
Before using this module, ensure your payroll structure's NET rule has a Credit Account configured. Go to Payroll -> Configuration -> Salary Rules -> Find "NET" rule -> Set "Credit Account" to the liability account for employee salaries (e.g., "Salaries Payable"). Without this, the payment journal entry cannot be created.
Salary Advances
Process mid-month salary advances - pay a portion early, track remaining balance for month-end.
Cash Flow Management
Pay selected employees when cash is available, delay others until later date.
Commission-Based Pay
Pay base salary on time, pay commissions later when earned - partial tracking maintains accuracy.
Expatriate Payroll
Pay local currency portion locally, home currency portion separately - partial payments enable split.
Garnishment Management
Deduct court-ordered garnishments from salary, pay remaining amount to employee.
Separation Payments
Pay final settlement in installments - track each partial payment against total due.
Need Assistance or Have a Feature Request?
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module