Feature: единое отображение чисел с разделителями разрядов (фильтр ws_num)

Made-with: Cursor
This commit is contained in:
2026-02-26 15:01:08 +00:00
parent 8fcecb558d
commit 770bbbb467
9 changed files with 87 additions and 17 deletions

View File

@@ -1,4 +1,5 @@
{% extends "base.html" %}
{% load document_filters %}
{% block title %}Расходы денежных средств — ERP WaterSurf{% endblock %}
{% block content %}
<div class="ws-card">
@@ -24,7 +25,7 @@
<td>{{ obj.date }}</td>
<td>{{ obj.number }}</td>
<td>{{ obj.sender }}</td>
<td class="ws-num">{{ obj.amount }}</td>
<td class="ws-num">{{ obj.amount|ws_num:2 }}</td>
<td>{{ obj.supplier_order|default:"—" }}</td>
<td class="ws-actions">
<a href="{% url 'documents:cash_expense_edit' obj.pk %}" class="ws-link">Изменить</a>

View File

@@ -1,4 +1,5 @@
{% extends "base.html" %}
{% load document_filters %}
{% block title %}Поступления денежных средств — ERP WaterSurf{% endblock %}
{% block content %}
<div class="ws-card">
@@ -24,7 +25,7 @@
<td>{{ obj.date }}</td>
<td>{{ obj.number }}</td>
<td>{{ obj.recipient }}</td>
<td class="ws-num">{{ obj.amount }}</td>
<td class="ws-num">{{ obj.amount|ws_num:2 }}</td>
<td>{{ obj.customer_order|default:"—" }}</td>
<td class="ws-actions">
<a href="{% url 'documents:cash_inflow_edit' obj.pk %}" class="ws-link">Изменить</a>

View File

@@ -1,4 +1,5 @@
{% extends "base.html" %}
{% load document_filters %}
{% block title %}Перемещения денежных средств — ERP WaterSurf{% endblock %}
{% block content %}
<div class="ws-card">
@@ -25,7 +26,7 @@
<td>{{ obj.number }}</td>
<td>{{ obj.sender }}</td>
<td>{{ obj.recipient }}</td>
<td class="ws-num">{{ obj.amount }}</td>
<td class="ws-num">{{ obj.amount|ws_num:2 }}</td>
<td class="ws-actions">
<a href="{% url 'documents:cash_transfer_edit' obj.pk %}" class="ws-link">Изменить</a>
<span class="ws-text-muted"> · </span>

View File

@@ -1,4 +1,5 @@
{% extends "base.html" %}
{% load document_filters %}
{% block title %}Заказ {{ object.number }} — ERP WaterSurf{% endblock %}
{% block content %}
<div class="ws-card">
@@ -16,7 +17,7 @@
<p class="mb-1"><strong>Организация:</strong> {{ object.organization }}</p>
<p class="mb-1"><strong>Клиент:</strong> {{ object.client }}</p>
<p class="mb-1"><strong>Вид заказа:</strong> {{ object.order_kind }}</p>
<p class="mb-1"><strong>Стоимость заказа:</strong> {{ object.total_amount|floatformat:2 }}</p>
<p class="mb-1"><strong>Стоимость заказа:</strong> {{ object.total_amount|ws_num:2 }}</p>
</div>
<div class="ws-form-section" style="margin-top: 1.5rem;">
@@ -25,31 +26,31 @@
<tbody>
<tr>
<td>Поступило от клиента (всего поступлений по заказу)</td>
<td class="ws-num">{{ economics.total_inflows|floatformat:2 }}</td>
<td class="ws-num">{{ economics.total_inflows|ws_num:2 }}</td>
</tr>
<tr>
<td>Расходы: оплата поставщикам (по заказам поставщику по этому заказу)</td>
<td class="ws-num">{{ economics.expenses_via_supplier|floatformat:2 }}</td>
<td class="ws-num">{{ economics.expenses_via_supplier|ws_num:2 }}</td>
</tr>
<tr>
<td>Расходы: прочие по заказу (логистика и т.п.)</td>
<td class="ws-num">{{ economics.expenses_direct|floatformat:2 }}</td>
<td class="ws-num">{{ economics.expenses_direct|ws_num:2 }}</td>
</tr>
<tr>
<td><strong>Всего расходов</strong></td>
<td class="ws-num"><strong>{{ economics.total_expenses|floatformat:2 }}</strong></td>
<td class="ws-num"><strong>{{ economics.total_expenses|ws_num:2 }}</strong></td>
</tr>
<tr>
<td><strong>Маржа (поступления расходы)</strong></td>
<td class="ws-num"><strong>{{ economics.margin|floatformat:2 }}</strong></td>
<td class="ws-num"><strong>{{ economics.margin|ws_num:2 }}</strong></td>
</tr>
<tr>
<td>Маржинальность (маржа / поступления)</td>
<td class="ws-num">{% if economics.margin_pct is not None %}{{ economics.margin_pct|floatformat:1 }}%{% else %}—{% endif %}</td>
<td class="ws-num">{% if economics.margin_pct is not None %}{{ economics.margin_pct|ws_num:1 }}%{% else %}—{% endif %}</td>
</tr>
<tr>
<td>Рентабельность (маржа / расходы)</td>
<td class="ws-num">{% if economics.profitability_pct is not None %}{{ economics.profitability_pct|floatformat:1 }}%{% else %}—{% endif %}</td>
<td class="ws-num">{% if economics.profitability_pct is not None %}{{ economics.profitability_pct|ws_num:1 }}%{% else %}—{% endif %}</td>
</tr>
</tbody>
</table>
@@ -75,7 +76,7 @@
<td>{{ inv.date }}</td>
<td>{{ inv.number }}</td>
<td>{{ inv.recipient }}</td>
<td class="ws-num">{{ inv.amount|floatformat:2 }}</td>
<td class="ws-num">{{ inv.amount|ws_num:2 }}</td>
<td><a href="{% url 'documents:cash_inflow_edit' inv.pk %}" class="ws-link">Изменить</a></td>
</tr>
{% endfor %}
@@ -108,7 +109,7 @@
<td>{{ so.date }}</td>
<td>{{ so.number }}</td>
<td>{{ so.supplier }}</td>
<td class="ws-num">{{ so.total_amount|floatformat:2 }}</td>
<td class="ws-num">{{ so.total_amount|ws_num:2 }}</td>
<td><a href="{% url 'documents:supplier_order_edit' so.pk %}" class="ws-link">Изменить</a></td>
</tr>
{% endfor %}
@@ -141,7 +142,7 @@
<td>{{ ex.date }}</td>
<td>{{ ex.number }}</td>
<td>{{ ex.sender }}</td>
<td class="ws-num">{{ ex.amount|floatformat:2 }}</td>
<td class="ws-num">{{ ex.amount|ws_num:2 }}</td>
<td><a href="{% url 'documents:cash_expense_edit' ex.pk %}" class="ws-link">Изменить</a></td>
</tr>
{% endfor %}

View File

@@ -1,4 +1,5 @@
{% extends "base.html" %}
{% load document_filters %}
{% block title %}Заказы клиентов — ERP WaterSurf{% endblock %}
{% block content %}
<div class="ws-card">
@@ -27,7 +28,7 @@
<td>{{ obj.order_kind }}</td>
<td>{{ obj.organization }}</td>
<td>{{ obj.client }}</td>
<td class="ws-num">{{ obj.total_amount }}</td>
<td class="ws-num">{{ obj.total_amount|ws_num:2 }}</td>
<td class="ws-actions">
<a href="{% url 'documents:customer_order_edit' obj.pk %}" class="ws-link">Изменить</a>
<span class="ws-text-muted"> · </span>

View File

@@ -1,4 +1,5 @@
{% extends "base.html" %}
{% load document_filters %}
{% block title %}Заказы поставщику — ERP WaterSurf{% endblock %}
{% block content %}
<div class="ws-card">
@@ -26,8 +27,8 @@
<td>{{ obj.number }}</td>
<td>{{ obj.organization }}</td>
<td>{{ obj.supplier }}</td>
<td class="ws-num">{{ obj.total_in_currency }}</td>
<td class="ws-num">{{ obj.total_amount }}</td>
<td class="ws-num">{{ obj.total_in_currency|ws_num:2 }}</td>
<td class="ws-num">{{ obj.total_amount|ws_num:2 }}</td>
<td class="ws-actions">
<a href="{% url 'documents:supplier_order_edit' obj.pk %}" class="ws-link">Изменить</a>
<span class="ws-text-muted"> · </span>