Запрет редактирования приходов после создания складской партии

- Добавлено свойство can_edit в модель Incoming
- Добавлена проверка в IncomingUpdateView для запрета редактирования обработанных приходов
- Скрыта кнопка редактирования в списке приходов для обработанных записей
- Добавлено предупреждение в форму редактирования

Это предотвращает проблемы с целостностью данных при FIFO-списаниях, когда партия уже может быть использована в продажах.
This commit is contained in:
2025-12-25 23:01:12 +03:00
parent bc13750d16
commit 131d078ac4
4 changed files with 35 additions and 4 deletions

View File

@@ -23,6 +23,13 @@
</div>
<div class="card-body">
{% if form.instance.pk and not form.instance.can_edit %}
<div class="alert alert-warning" role="alert">
<i class="bi bi-exclamation-triangle"></i>
<strong>Внимание!</strong> Этот приход товара уже обработан (для него создана складская партия).
Редактирование недоступно, так как партия может быть использована в продажах.
</div>
{% endif %}
<form method="post" class="form">
{% csrf_token %}

View File

@@ -60,9 +60,15 @@
</td>
<td>{{ incoming.created_at|date:"d.m.Y H:i" }}</td>
<td class="text-end">
<a href="{% url 'inventory:incoming-update' incoming.pk %}" class="btn btn-sm btn-outline-primary">
<i class="bi bi-pencil"></i>
</a>
{% if incoming.can_edit %}
<a href="{% url 'inventory:incoming-update' incoming.pk %}" class="btn btn-sm btn-outline-primary" title="Редактировать приход">
<i class="bi bi-pencil"></i>
</a>
{% else %}
<span class="btn btn-sm btn-outline-secondary disabled" title="Редактирование недоступно: приход уже обработан">
<i class="bi bi-pencil"></i>
</span>
{% endif %}
<a href="{% url 'inventory:incoming-delete' incoming.pk %}" class="btn btn-sm btn-outline-danger">
<i class="bi bi-trash"></i>
</a>