Add financial year selector to Cash Payment Review

This commit is contained in:
A R R R Associates
2026-09-09 14:54:16 +05:30
parent e3f012d302
commit 7f372330a5
2 changed files with 93 additions and 12 deletions
@@ -33,7 +33,7 @@
{% endif %}
</div>
<form method="get" action="/tools/accounting/cash-payments" class="mt-4 grid gap-4 md:grid-cols-2 xl:grid-cols-4">
<form id="cashPaymentReviewForm" method="get" action="/tools/accounting/cash-payments" class="mt-4 grid gap-4 md:grid-cols-2 xl:grid-cols-5">
<div>
<label class="text-xs font-semibold uppercase text-slate-500">Client</label>
<select name="client_id" class="mt-1 w-full rounded-xl border-slate-300 text-sm" required onchange="this.form.submit()">
@@ -41,8 +41,16 @@
{% for client in clients %}<option value="{{ client.id }}" {% if selected_client and selected_client.id == client.id %}selected{% endif %}>{{ client.client_name }}</option>{% endfor %}
</select>
</div>
<div><label class="text-xs font-semibold uppercase text-slate-500">From</label><input type="date" name="date_from" value="{{ date_from }}" class="mt-1 w-full rounded-xl border-slate-300 text-sm" required></div>
<div><label class="text-xs font-semibold uppercase text-slate-500">To</label><input type="date" name="date_to" value="{{ date_to }}" class="mt-1 w-full rounded-xl border-slate-300 text-sm" required></div>
<div>
<label class="text-xs font-semibold uppercase text-slate-500">Financial Year</label>
<select id="cashPaymentFinancialYear" name="financial_year" class="mt-1 w-full rounded-xl border-slate-300 text-sm" required>
{% for fy in financial_year_options %}
<option value="{{ fy }}" {% if fy == review_financial_year %}selected{% endif %}>FY {{ fy }}</option>
{% endfor %}
</select>
</div>
<div><label class="text-xs font-semibold uppercase text-slate-500">From</label><input id="cashPaymentDateFrom" type="date" name="date_from" value="{{ date_from }}" class="mt-1 w-full rounded-xl border-slate-300 text-sm" required></div>
<div><label class="text-xs font-semibold uppercase text-slate-500">To</label><input id="cashPaymentDateTo" type="date" name="date_to" value="{{ date_to }}" class="mt-1 w-full rounded-xl border-slate-300 text-sm" required></div>
<div class="flex items-end">
<button type="submit" name="analyze" value="1" class="w-full rounded-xl bg-brand-600 px-4 py-2 text-sm font-semibold text-white disabled:cursor-not-allowed disabled:opacity-50" {% if not selected_client or not mirror.ready %}disabled{% endif %}>Review Cash Payments</button>
</div>
@@ -79,7 +87,7 @@
<div class="rounded-2xl bg-white p-5 shadow-soft">
<h2 class="text-lg font-semibold text-slate-900">Rule Settings</h2>
<form method="post" action="/tools/accounting/cash-payments/settings" class="mt-4 space-y-3">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}"><input type="hidden" name="client_id" value="{{ selected_client.id if selected_client else '' }}">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}"><input type="hidden" name="client_id" value="{{ selected_client.id if selected_client else '' }}"><input type="hidden" name="financial_year" value="{{ review_financial_year }}">
<div><label class="text-xs font-semibold uppercase text-slate-500">Cash payment limit</label><input type="number" min="1" step="0.01" name="cash_limit" value="{{ '%.2f'|format(setting.cash_limit) }}" class="mt-1 w-full rounded-xl border-slate-300 text-sm" required></div>
<div><label class="text-xs font-semibold uppercase text-slate-500">Effective from</label><input type="date" name="effective_from" value="{{ setting.effective_from.isoformat() }}" class="mt-1 w-full rounded-xl border-slate-300 text-sm" required></div>
<div><label class="text-xs font-semibold uppercase text-slate-500">Split review window (days)</label><input type="number" min="1" max="31" name="split_window_days" value="{{ setting.split_window_days }}" class="mt-1 w-full rounded-xl border-slate-300 text-sm" required></div>
@@ -148,4 +156,25 @@
</section>
{% endif %}
</div>
{% if page_mode != 'allocation' %}
<script>
(function () {
const fy = document.getElementById('cashPaymentFinancialYear');
const from = document.getElementById('cashPaymentDateFrom');
const to = document.getElementById('cashPaymentDateTo');
const form = document.getElementById('cashPaymentReviewForm');
if (!fy || !from || !to || !form) return;
fy.addEventListener('change', function () {
const m = /^([0-9]{4})-([0-9]{2})$/.exec(fy.value || '');
if (!m) return;
const y = Number(m[1]);
from.value = String(y).padStart(4, '0') + '-04-01';
to.value = String(y + 1).padStart(4, '0') + '-03-31';
form.submit();
});
})();
</script>
{% endif %}
{% endblock %}