Initial commit

This commit is contained in:
2026-07-14 01:16:33 +03:00
commit 92f04e0e8a
29 changed files with 2454 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
{% extends "base.html" %}
{% block title %}Контрагенты — Контроль ЭДО{% endblock %}
{% block content %}
<div class="page-header">
<h2>Контрагенты</h2>
<p>Список для фильтрации импорта — название должно совпадать с Excel</p>
</div>
<section class="panel">
<div class="panel-header">
<div class="panel-icon panel-icon-purple"></div>
<div class="panel-title">
<h3>Добавить контрагентов</h3>
<p>Один контрагент — одна строка. Можно вставить список целиком.</p>
</div>
</div>
<form method="post" class="bulk-form">
<input type="hidden" name="action" value="bulk_add">
<textarea name="names" rows="6" placeholder="ООО «Ромашка»&#10;ИП Иванов&#10;АО «Строй»" class="bulk-textarea"></textarea>
<div class="bulk-actions">
<button type="submit" class="btn btn-primary">Добавить список</button>
</div>
</form>
<div class="panel-divider"></div>
<form method="post" class="add-form">
<input type="hidden" name="action" value="add">
<input type="text" name="name" placeholder="Или одно название…">
<button type="submit" class="btn btn-ghost">Добавить одного</button>
</form>
</section>
<section class="panel">
<div class="section-label">
Контрагенты
<span class="count-badge">{{ contractors|length }}</span>
</div>
{% if contractors %}
<div class="contractor-grid">
{% for contractor_id, name, active in contractors %}
<div class="contractor-card {% if not active %}contractor-inactive{% endif %}">
<div class="contractor-info">
<div class="contractor-avatar">{{ name[:2] }}</div>
<div class="contractor-meta">
<span class="contractor-name">{{ name }}</span>
{% if active %}
<span class="status status-ok">Активен</span>
{% else %}
<span class="status status-neutral">Неактивен</span>
{% endif %}
</div>
</div>
<div class="contractor-actions">
{% if active %}
<form method="post" class="inline-form">
<input type="hidden" name="action" value="deactivate">
<input type="hidden" name="contractor_id" value="{{ contractor_id }}">
<button type="submit" class="btn btn-sm">Деактивировать</button>
</form>
{% else %}
<form method="post" class="inline-form">
<input type="hidden" name="action" value="activate">
<input type="hidden" name="contractor_id" value="{{ contractor_id }}">
<button type="submit" class="btn btn-primary btn-sm">Активировать</button>
</form>
{% endif %}
<form method="post" class="inline-form" onsubmit="return confirm('Удалить контрагента «{{ name }}»?');">
<input type="hidden" name="action" value="delete">
<input type="hidden" name="contractor_id" value="{{ contractor_id }}">
<button type="submit" class="btn btn-danger btn-sm">Удалить</button>
</form>
</div>
</div>
{% endfor %}
</div>
{% else %}
<div class="empty-state">
<div class="empty-icon">👥</div>
<p>Список пуст</p>
<p class="empty-hint">Добавьте контрагентов перед импортом документов</p>
</div>
{% endif %}
</section>
{% endblock %}