{% extends "ui/templates/base/layout.html" %} {% block content %}

Tools · Accounting · Tally

{{ 'Cash Payment Entry Allocation' if page_mode == 'allocation' else 'Cash Payment Compliance Review' }}

{% if page_mode == 'allocation' %}

Prepare and validate cash payment entry allocation using only actual source payment dates. The tool checks totals, the configured daily limit and the permitted source-date window; it never invents or changes dates.

{% else %}

Read-only Tally review for cash payments above the configured limit, same-day party aggregation and possible split-payment patterns.

{% endif %}
Back to Tally
{% if saved %}
Cash payment rule settings saved.
{% endif %} {% if command_error %}
{{ command_error }}
{% endif %} {% if page_mode != 'allocation' %}

Cash Payment Compliance Review

Safe-paced mode reads Tally in monthly batches with a short pause between requests to reduce load on TallyPrime.

Rule Settings

{% if review %}
{% if review.safe_paced_mode %}
Completed in adaptive safe-paced mode using {{ review.tally_request_batches or 0 }} successful voucher batch(es) across {{ review.tally_request_count or 0 }} Tally request(s), with {{ review.tally_retry_count or 0 }} retry/retries and {{ review.tally_fallback_batches or 0 }} adaptive fallback(s). The agent pauses approximately {{ review.tally_pause_ms or 0 }} ms between Tally calls.
{% endif %}
{% for label, value in [('Vouchers reviewed', review.summary.vouchers_reviewed), ('Cash payments', review.summary.cash_payment_vouchers), ('Single-voucher exceptions', review.summary.single_voucher_exceptions), ('Same-day exceptions', review.summary.same_day_exceptions), ('Possible split patterns', review.summary.possible_split_patterns)] %}
{{ label }}
{{ value }}
{% endfor %}

Above-limit / same-day aggregate exceptions

{% for row in review.exceptions %}{% else %}{% endfor %}
DateParty / ledgerAmountReasonVoucher(s)
{{ row.date }}{{ row.party }}₹{{ '%.2f'|format(row.amount) }}{{ row.reason }}{{ row.voucher_numbers|join(', ') }}
No above-limit exception found for the selected period.

Possible split-payment patterns — review only

These rows are indicators for auditor review; they do not by themselves determine tax treatment.

{% for row in review.possible_split_payments %}{% else %}{% endfor %}
Party / ledgerPeriodTotalDaily amounts
{{ row.party }}{{ row.date_from }} → {{ row.date_to }}₹{{ '%.2f'|format(row.total_amount) }}{% for item in row.days %}{{ item.date }}: ₹{{ '%.2f'|format(item.amount) }}{% if not loop.last %}
{% endif %}{% endfor %}
No near-limit multi-day pattern found.
{% endif %} {% endif %} {% if page_mode == 'allocation' %}

Cash Payment Entry Allocation — Actual Source Dates

Use this when the source records establish that one accounting amount was actually paid on multiple dates. Enter the real dates and amounts. The tool validates totals, daily limits and the configured date window; it does not fabricate dates or automatically rewrite Tally vouchers.

{% if allocation_plan %}
{{ 'Ready for accounting review' if allocation_plan.status == 'ready' else 'Manual review required' }}
{% if allocation_plan.errors %}
    {% for item in allocation_plan.errors %}
  • {{ item }}
  • {% endfor %}
{% endif %}
Expected total: ₹{{ '%.2f'|format(allocation_plan.expected_total or 0) }} · Source total: ₹{{ '%.2f'|format(allocation_plan.supplied_total or 0) }} · Date span: {{ allocation_plan.span_days or 0 }} day(s) / {{ allocation_plan.max_allocation_days or setting.max_allocation_days }} allowed.
{% if allocation_plan.entries %}{% for row in allocation_plan.entries %}{% endfor %}
Actual DateProposed Entry Amount
{{ row.date }}₹{{ '%.2f'|format(row.amount) }}
{% endif %}

{{ allocation_plan.note or 'No accounting dates are generated automatically.' }}

{% endif %}
{% endif %}
{% endblock %}