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

Tools · Accounting · Tally

Cash Payment Compliance Review

Read-only Tally review for cash payments above the configured limit, same-day party aggregation and possible split-payment patterns. The accounting planner below uses only actual source payment dates supplied by the user; it never invents or changes dates.

Back to Tally
{% if saved %}
Cash payment rule settings saved.
{% endif %} {% if command_error %}
{{ command_error }}
{% endif %}

Tax Payment Compliance Review

Rule Settings

{% if review %}
{% 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 %}

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 %}
{% endblock %}