An employee salary advance, travel advance or loan, disbursed from a bank or cash account and then recovered through payroll in installments, keyed on Resource. Disbursing it debits the Employee Loan or Employee Advance control and credits the bank account, raises a Resource-keyed receivable open item, copies the principal into Outstanding Amount, stamps the disbursement date and moves Status from Requested to Active. Every subsequent payroll calculation then recovers the smaller of Installment Amount and Outstanding Amount from any Active loan where both are positive, writing a deduction line against the control account, a LoanAdvanceRecovery audit row, a reduced outstanding balance and a reduced open item, and flipping Status to Closed at zero.
Fields
| Field | Label | Type | Required | What it does |
AdvanceType | Advance Type | PickList | | Decides which control account the disbursement hits, through a single exact comparison: only the literal Loan selects the Employee Loan control and every other value falls through to Employee Advance. The seeded list works against that, offering Personal Loan, Home Loan, Vehicle Loan and Education Loan which all post to the advance control, plus duplicate SalaryAdvance and Salary Advance entries. Values: Salary Advance, Travel Advance, Loan, Salary Advance, Personal Loan, Vehicle Loan, Education Loan, Home Loan. |
BranchId | Branch | Lookup → Branch | | |
ControlGLAccountId | Control GL Account | Lookup → GLAccount | | The Employee Loan or Employee Advance control account that disbursement debits and every payroll recovery credits. Leaving it empty is normal: disbursement resolves it from the partner account's control accounts by advance type and writes the resolved account back, refusing to post if none is configured. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
DisbursementDate | Disbursement Date | Date | | Stamped by the disbursement action with the journal date it used; empty means the money has not gone out. It is not the date recovery begins - recovery starts with the next payroll run once the loan is Active. |
EndPayrollPeriodId | End Payroll Period | Lookup → PayrollPeriod | | Intended to bound the recovery schedule, but the payroll calculation does not read it. Recovery continues in every run while the loan is Active with a positive balance and installment, and stops only when the balance reaches zero. |
GLAccountId | GL Account | Lookup → GLAccount | | The default bank or cash account credited when the disbursement action is run without an explicit account argument. It is not the loan's control account, which is held separately in Control GL Account. |
GLId | GL | Lookup → Journal | | The disbursement journal, and the already-disbursed guard: a loan that already has a value here refuses to disburse again rather than paying the money out twice. |
Id | Id | Guid | Yes | |
InstallmentAmount | Installment Amount | Currency | | |
InterestRate | Interest Rate | Currency | | Stored but never used - no first-party code computes interest on an employee loan. Recovery simply takes the flat installment amount until the principal is repaid, so a rate entered here changes nothing about what is deducted. |
Label | Label | Text | | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text, unique | Yes | |
OpenTransactionId | Open Transaction | Lookup → OpenTransaction | | The Resource-keyed receivable open item created at disbursement, which carries the recoverable balance for ageing and reconciliation. Payroll recovery reduces its open amount in step with the loan and marks it Settled once nothing is left. |
OutstandingAmount | Outstanding Amount | Currency | | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PartnerAccountId | Partner Account | Lookup → Account | | |
PrincipalAmount | Principal Amount | Currency | | The amount disbursed, and the value copied into Outstanding Amount when the advance is posted. It must be greater than zero or disbursement is refused, and editing it after disbursement does not adjust the outstanding balance or the open item. |
RecordTypeId | Record Type | Guid, hidden | | |
ResourceId | Resource | Lookup → Resource | | |
StartPayrollPeriodId | Start Payroll Period | Lookup → PayrollPeriod | | Intended to mark the period recovery should begin in, but the payroll calculation does not read it. Recovery starts in the very next run after Status becomes Active, regardless of the period recorded here. |
Status | Status | PickList | | Values: Active, Closed. |
UIProps | UI Props | Text | | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
BulkDelete | Delete | Delete | Delete the selected records. |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Delete this LoanAdvance. |
DeleteRecord | Delete | Delete | Delete |
Edit | Edit | Edit | Edit this LoanAdvance. |
EditInLine | Edit | EditInline | Edit |
EditRecord | Edit | Edit | Edit |
New | New | New | Create a LoanAdvance. |
PostLoanAdvance | Disburse | ServerAction (PostLoanAdvance) | Actually pays the money out and starts the recovery: it posts a payroll journal debiting the Employee Loan or Employee Advance control and crediting the bank or cash account given in the arguments (falling back to the loan's GL Account), raises a Resource-keyed receivable open item for the principal, sets Outstanding Amount to the principal, stamps the disbursement date and moves Status to Active so the next payroll run begins deducting installments. It refuses when the loan is already disbursed, has no Resource, has a principal of zero or less, or when no Employee Loan or Employee Advance control account is configured for the partner account. |
View | View | View | View this LoanAdvance. |
Lookup filters
| Filter | Lookup field | Notes |
| BranchFilter | BranchId | |
| PartnerAccountFilter | PartnerAccountId | |