Feature: общая сумма заказа и автор только для отображения в формах заказов

Made-with: Cursor
This commit is contained in:
2026-02-26 16:17:24 +00:00
parent 824d5512c7
commit a183121721
6 changed files with 61 additions and 11 deletions

View File

@@ -36,9 +36,8 @@
{% if form.client.errors %}<small class="ws-text-danger">{{ form.client.errors.0 }}</small>{% endif %}
</div>
<div class="ws-form-group">
<label for="{{ form.author.id_for_label }}">{{ form.author.label }}</label>
{{ form.author }}
{% if form.author.errors %}<small class="ws-text-danger">{{ form.author.errors.0 }}</small>{% endif %}
<label>Автор</label>
<span class="ws-readonly">{{ author_display|default:"—" }}</span>
</div>
</div>
<div class="ws-form-section">
@@ -78,6 +77,7 @@
</tbody>
</table>
</div>
<p class="ws-order-total-row"><strong>Общая сумма заказа:</strong> <span id="order-total-sum" class="ws-num"></span></p>
<div class="ws-btn-group" style="margin-top: 0.75rem;">
<button type="button" class="btn btn-ws-secondary" id="add-order-row">+ Добавить строку</button>
</div>
@@ -126,6 +126,17 @@
var el = row.querySelector('.row-amount');
if (el) el.textContent = formatNum(price * qty);
});
var totalEl = document.getElementById('order-total-sum');
if (totalEl) {
var sum = 0;
document.querySelectorAll('#order-items .item-row').forEach(function(row) {
var priceInput = row.querySelector('input[name$="-price"]');
var qty = parseQty(row.querySelector('input[name$="-quantity"]')?.value);
var price = parseNum(priceInput?.value);
sum += price * qty;
});
totalEl.textContent = formatNum(sum);
}
}
form.addEventListener('input', updateRowAmounts);