diff --git a/templates/admin/fees.html b/templates/admin/fees.html
index bd21cbf..df31fbe 100755
--- a/templates/admin/fees.html
+++ b/templates/admin/fees.html
@@ -497,14 +497,30 @@
+ data-company-id="{{ cf.company.id }}"
+ data-company-name="{{ cf.company.name }}"
+ data-year="{{ year }}"
+ data-month="{{ m }}"
+ data-fee-id="{{ fee.id }}"
+ data-amount="{{ fee.amount|int }}"
+ data-expected="{{ expected }}"
+ data-is-paid="{{ 'true' if fee.status == 'paid' else 'false' }}"
+ data-amount-paid="{{ fee.amount_paid|int if fee.amount_paid else 0 }}">
{{ m }}{% if fee.status == 'partial' %}{{ fee.amount_paid|int }}{% endif %}{% if underpaid %}!{% endif %}
{% else %}
+ data-company-id="{{ cf.company.id }}"
+ data-company-name="{{ cf.company.name }}"
+ data-year="{{ year }}"
+ data-month="{{ m }}"
+ data-fee-id=""
+ data-amount="{{ expected }}"
+ data-expected="{{ expected }}"
+ data-is-paid="false"
+ data-amount-paid="0">
{{ m }}
{% endif %}
@@ -770,6 +786,28 @@ async function generateFees() {
document.getElementById('paymentModal').classList.remove('active');
}
+ // Event delegation — wszystkie klikalne kwadraciki miesięcy w widoku rocznym
+ document.addEventListener('DOMContentLoaded', function() {
+ document.querySelectorAll('.month-cell.clickable').forEach(function(cell) {
+ cell.addEventListener('click', function(ev) {
+ ev.preventDefault();
+ var d = cell.dataset;
+ var feeId = d.feeId ? parseInt(d.feeId) : null;
+ openPaymentModalSmart(
+ parseInt(d.companyId),
+ d.companyName,
+ parseInt(d.year),
+ parseInt(d.month),
+ feeId,
+ parseFloat(d.amount),
+ parseFloat(d.expected),
+ d.isPaid === 'true',
+ parseFloat(d.amountPaid || 0)
+ );
+ });
+ });
+ });
+
document.getElementById('paymentForm').addEventListener('submit', async function(e) {
e.preventDefault();