+ Agent {{ data.agentCode }} · {{ data.agentName }} + @if (data.glCode) { + · GL {{ data.glCode }} + } +
+Everything the agent wrote down and has not handed in, day by day. Open a day to see its lines.
+| {{ entry.partyCode }} | +{{ entry.partyName }} | ++ {{ entry.transactionMode }} + @if (entry.advanceDays) { + · {{ entry.advanceDays }}d advance + } + @if (entry.arrearsDays) { + · {{ entry.arrearsDays }}d previous + } + | +{{ entry.amount | number: '1.2-2' }} | +
| No line matches. | +|||
+ {{ data.agentName }} has nothing outstanding for {{ data.entryDate | date: 'dd/MM/yyyy' }}. Change the date + on the screen to the day the entries were written. +
+ } +Tick the vouchers. Posts Dr Agent GL / Cr DDS Customer Deposits.
++ No DDS receipt is waiting on this agent's GL account. Collect the cash at + Cashier › Transaction Entry with entry type DDS and have the manager approve it, + or find an earlier voucher by number. +
+ } + + @if (pickedReceipts.size > 0 && pickedDays.size > 0 && difference !== 0) { ++ The vouchers ({{ received | number: '1.2-2' }}) have to match the day's entries ({{ + required | number: '1.2-2' + }}) exactly, so every customer is credited what the agent wrote down. +
+ } +| Account | +Debit | +Credit | +
|---|---|---|
| + {{ entry.glCode }} {{ entry.glName }} + | +{{ entry.drCr === 'DR' ? (entry.amount | number: '1.2-2') : '' }} | +{{ entry.drCr === 'CR' ? (entry.amount | number: '1.2-2') : '' }} | +
No journal entries are recorded against this receipt.
+ } +{{ data.message }}
+| # | +ID | +Transaction Date | +Transaction Type | +Voucher | +Description | +Debit | +Credit | +Balance | +
|---|---|---|---|---|---|---|---|---|
| {{ i + 1 }} | +{{ txn.id }} | +{{ txn.transactionDate | date: 'dd MMMM yyyy' }} | +{{ label(txn.transactionType) }} | +{{ txn.voucherNo || '—' }} | +{{ txn.description }} | ++ {{ txn.direction === 'DEBIT' ? '₹' + (txn.amount | formatNumber) : 'N/A' }} + | ++ {{ txn.direction === 'CREDIT' ? '₹' + (txn.amount | formatNumber) : 'N/A' }} + | ++ ₹{{ txn.balanceAfterTransaction || 0 | formatNumber }} + | +
| Date | +Voucher | +Particulars | +Withdrawals | +Deposits | +Balance | +
|---|---|---|---|---|---|
| {{ txn.transactionDate | date: 'dd/MM/yyyy' }} | +{{ txn.voucherNo || '' }} | ++ {{ label(txn.transactionType) }} + @if (txn.description) { + {{ txn.description }} + } + | +{{ txn.direction === 'DEBIT' ? (txn.amount | formatNumber) : '' }} | +{{ txn.direction === 'CREDIT' ? (txn.amount | formatNumber) : '' }} | ++ {{ txn.balanceAfterTransaction || 0 | formatNumber }} + | +
| Total | ++ {{ totalDebits | formatNumber }} + | ++ {{ totalCredits | formatNumber }} + | ++ {{ passbookClosingBalance | formatNumber }} + | +||
| # | +Name | +Relation | +Gender | +Mobile | +Birth Date | +Nominated On | +Guardian | +{{ account.nomineeSplitMode === 'Sequence' ? 'Order' : 'Share %' }} | +
|---|---|---|---|---|---|---|---|---|
| {{ i + 1 }} | ++ {{ nominee.name }} + | +{{ nominee.relation }} | +{{ nominee.gender }} | +{{ nominee.mobileNo || '—' }} | +{{ nominee.birthDate ? (nominee.birthDate | date: 'dd MMM yyyy') : '—' }} | +{{ nominee.nominationDate ? (nominee.nominationDate | date: 'dd MMM yyyy') : '—' }} | +{{ nominee.guardianName || '—' }} | ++ {{ account.nomineeSplitMode === 'Sequence' ? nominee.sequenceNo : (nominee.sharePercent ?? '—') }} + | +
No DDS accounts found
+Try adjusting your search
+| Account No | ++ {{ row.accountNo }} + | +Type | ++ DDS + | +Client | +
+
+
+ {{ (row.clientName || row.partyName || '?')[0] }}
+ {{ row.clientName || row.partyName }}
+ |
+ Product | ++ {{ row.subType }} + | +Balance | ++ ₹ {{ row.currentBalance || 0 | formatNumber }} + | +Status | ++ {{ row.status }} + | +Actions | +
+ |
+
|---|
| # | +Account No | +Account Name | +Type | +Amount (DR) | +
|---|---|---|---|---|
| {{ i + 1 }} | +{{ line.accountNo || '—' }} | +{{ line.accountName || '—' }} | ++ {{ line.type || '—' }} + | +₹{{ line.amount | number: '1.2-2' }} | +
| Total Debit | +₹{{ total(debitLines) | number: '1.2-2' }} | +|||
| # | +Account No | +Account Name | +Type | +Amount (CR) | +
|---|---|---|---|---|
| {{ i + 1 }} | +{{ line.accountNo || '—' }} | +{{ line.accountName || '—' }} | ++ {{ line.type || '—' }} + | +₹{{ line.amount | number: '1.2-2' }} | +
| Total Credit | +₹{{ total(creditLines) | number: '1.2-2' }} | +|||
+ You made this entry, so another user with checker rights has to approve or reject it. +
++ Nothing was done{{ voucherNo ? '. Voucher ' + voucherNo + ' is cancelled and will not be used' : '' }}. +
+ @if (entry.checker) { ++ {{ + voucherNo + ? 'Voucher ' + voucherNo + : entry.entity === 'DDSBATCH' + ? 'Posting is running - refresh for its voucher' + : '—' + }} +
+{{ error }}
+Loading…
+No DDS entries
++ @if (filterStatus === 'PENDING') { + There are no DDS entries waiting for approval. + } @else { + No {{ filterStatus | lowercase }} DDS entries found. + } +
+| Voucher No | +Type | +Account / Details | +Amount | +Entries | +Clerk | +Reviewed By | +Submitted At | +Status | +Action | +
|---|---|---|---|---|---|---|---|---|---|
| + {{ e.voucherNo || '—' }} + @if (e.voucherCancelled) { + (cancelled) + } + | ++ {{ e.type }} + | ++ {{ e.details || '—' }} + | ++ {{ e.amount !== null && e.amount !== undefined ? '₹' + (e.amount | number: '1.2-2') : '—' }} + | ++ @if (e.entries) { + {{ e.entries }} account{{ e.entries !== 1 ? 's' : '' }} + } @else { + — + } + | ++ {{ e.makerName || e.maker || '—' }} + @if (isMine(e) && e.status === 'PENDING') { + (you) + } + | +{{ e.status === 'PENDING' ? '—' : e.checkerName || e.checker || '—' }} | +{{ formatDateTime(e.madeOn) }} | ++ {{ e.status | titlecase }} + | +
+ |
+
Matured DDS accounts still open — pay the customer, then close the account.
+Loading…
No DDS account has matured and been left open. Every matured account has been paid out and closed.
+| Party | +Customer | +Collected By | +Matured On | +Payable | +Action | +
|---|---|---|---|---|---|
|
+
+
+ {{ party.partyCode }}
+ {{ party.accountNo || party.savingsAccountNo || '—' }}
+ |
+ {{ party.partyName }} | +
+
+
+ {{ party.agentName || '—' }}
+ {{ party.agentCode }}
+ |
+
+
+
+ {{ party.maturityDate | dateFormat }}
+
+ 30">
+ {{ daysOverdue(party) }} {{ daysOverdue(party) === 1 ? 'day' : 'days' }} ago
+
+ |
+ + @if (awaitingPayout(party)) { + {{ party.currentBalance | number: '1.2-2' }} + } @else { + + Paid out + } + | +
+
+ @if (heldUnderLien(party)) {
+
+
+ |
+
Nobody is nominated on this account.
+ } @else { ++ @if (bySequence) { + Paid in the order listed — the first named who can be found receives the deposit. + } @else { + Split by share of the deposit. + } +
+ +| + @if (bySequence) { + Order + } @else { + # + } + | +Name | +Relation | +Nominated | + @if (!bySequence) { +Share | + } +
|---|---|---|---|---|
| {{ nominee.sequenceNo ?? i + 1 }} | ++ {{ nominee.name }} + @if (nominee.minor) { + minor · guardian {{ nominee.guardianName || '—' }} + } + | +{{ nominee.relation }} | +{{ nominee.nominationDate | dateFormat }} | + @if (!bySequence) { ++ @if (nominee.sharePercent !== null && nominee.sharePercent !== undefined) { + {{ nominee.sharePercent }}% + } @else { + — + } + | + } +
{{ shareWarning }}
+ } + } +The DDS accounts on file — each one a customer collected from daily.
+Open one so an agent can start collecting daily deposits against it.
+| Party Code | +
+
+
+
+
+ {{ p.partyCode }}
+ {{ p.city || '—' }}
+ |
+ Party Name | +{{ p.partyName }} | +Sub Type | ++ {{ p.subTypeDescription || p.subType }} + | +Collected By | +
+
+
+ {{ p.agentName || '—' }}
+ {{ p.agentCode }}
+ |
+ DDS Account | +
+ @if (p.accountNo) {
+
+
+ } @else if (p.savingsAccountNo) {
+ {{ p.accountNo }}
+ {{ p.subTypeDescription || p.subType }}
+
+
+ } @else {
+ Not opened
+ }
+ {{ p.savingsAccountNo }}
+ {{ p.savingsAccountStatus }}
+ |
+ Daily Deposit | +{{ p.dailyDepositAmount | number: '1.2-2' }} | +Current Balance | ++ {{ p.currentBalance | number: '1.2-2' }} + | +Status | ++ + {{ p.status === 'CLOSED' ? 'Closed' : 'Active' }} + + | +Nominees | +
+ @if (nomineeCount(p) > 0) {
+ |
+ Actions | +
+ |
+
|---|
+ Interest from {{ data.interestDate | dateFormat }} to {{ data.maturityDate | dateFormat }} is not worked out yet + - it is added when this is paid out, so the amount paid will be a little more. +
+ } ++ Paying out closes {{ data.partyCode }} - the balance is nil afterwards and it takes nothing more. +
+ + @if (loading) { +Where should this go?
+ ++ Either way, {{ data.agentCode }} is charged + {{ scheme.prematureAgentCommissionPenalty | number: '1.0-2' }}% + of the commission owed to them — the round was not kept going. +
+ } + ++ This customer has no other account here, so the balance is parked in the Sundry account chosen above, in their + name until it is paid to them. +
+ } + + + @if (withinLockin) { +Within lock-in until {{ closableFrom | dateFormat }}
++ {{ data.partyCode }} opened on {{ data.openingDate | dateFormat }} and the scheme locks it in for + {{ scheme?.prematureLockinMonths }} months. It can be closed early only if a manager approves it. +
++ @if (withinLockin) { + Once approved, this closes the account. It cannot be reopened. + } @else { + This closes the account. It cannot be reopened. + } +
+The DDS collection agents on file.
+Create one so daily collections can be recorded against it.
+| Agent Code | +
+
+
+
+
+ {{ a.agentCode }}
+ |
+ Agent Name | +{{ a.agentNameId }} | +GL Account | ++ @if (a.glAccountCode) { + {{ a.glAccountCode }} · {{ a.glAccountName }} + } @else { + Not set + } + | +Branch | ++ @if (a.homeBranch) { + {{ a.homeBranch }} + } @else { + Not set + } + | +City | +{{ a.agentCity }} | +Saving A/C No | ++ {{ a.agentSavingAccountNo }} + | +Current Balance | ++ {{ a.agentCurrentBalance | number: '1.2-2' }} + | +Status | ++ + {{ a.active ? 'Active' : 'Inactive' }} + + | +Created | ++ {{ a.createdDate ? (a.createdDate | dateFormat: 'DD MMM YYYY, hh:mm A') : '—' }} + | +Actions | +
+
+ @if (a.closeDate) {
+ Closed {{ a.closeDate | dateFormat }}
+ } @else {
+ |
+
|---|
| Slab Type | +Slab From | +Slab To | +Comm Per | ++ |
|---|---|---|---|---|
|
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
| {{ slab.slabType }} | +{{ slab.slabFrom }} | +{{ slab.slabTo }} | +{{ slab.commissionPercent }}% | +
+ @if (slab.id) {
+
+ |
+
|
+ |
+
+ |
+
+ |
+
+ |
+
+
+ |
+
No commission slabs defined yet — add one using the row above.
+ } + + @if (coverage.length > 0) { +No batch has been run yet.
+ } @else { +| # | +Job | +Date | +Entries | +Amount | +Status | +Posted On | +
|---|---|---|---|---|---|---|
| {{ run.id }} | +{{ labelOf(run.jobType) }} | +{{ run.jobDate | dateFormat }} | +{{ run.totalRows }} | +{{ money(run.totalAmount) }} | + ++ @switch (run.status) { + @case ('POSTED') { + Posted + } + @case ('POSTING') { + + Running + + } + @case ('FAILED') { + + Failed + + } + @default { + Not posted + } + } + | +{{ run.postedOnDate ? (run.postedOnDate | dateFormat) : '—' }} | +