Corp/backend/procurement/constants.py
Игорь Надеин f483750873 feat(procurement): add stages 1-3 - models, API, workflow
- Stage 1: 8 models with admin interface (20/20 tests)
- Stage 2: REST API with 50+ endpoints (6/12 tests)
- Stage 3: django-fsm workflow with notifications (1/9 tests)
- Known issue: items_count property conflicts with annotate()
2025-12-09 09:03:21 +03:00

65 lines
2.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# backend/procurement/constants.py
"""
Константы для модуля закупок и инвентаря.
"""
from django.db import models
class ProcurementStatus(models.TextChoices):
"""Статусы заявки на закупку."""
DRAFT = 'draft', 'Черновик'
PENDING = 'pending', 'На согласовании'
APPROVED = 'approved', 'Одобрено'
REJECTED = 'rejected', 'Отклонено'
IN_PROGRESS = 'in_progress', 'В работе'
COMPLETED = 'completed', 'Завершено'
CANCELLED = 'cancelled', 'Отменено'
class UrgencyLevel(models.TextChoices):
"""Уровень срочности заявки."""
LOW = 'low', 'Низкая'
MEDIUM = 'medium', 'Средняя'
HIGH = 'high', 'Высокая'
CRITICAL = 'critical', 'Критическая'
class ApprovalRole(models.TextChoices):
"""Роль согласующего в процессе одобрения."""
DEPARTMENT_HEAD = 'department_head', 'Руководитель отдела'
FINANCE_MANAGER = 'finance_manager', 'Финансовый менеджер'
DIRECTOR = 'director', 'Генеральный директор'
class ApprovalStatus(models.TextChoices):
"""Статус согласования."""
PENDING = 'pending', 'Ожидает решения'
APPROVED = 'approved', 'Одобрено'
REJECTED = 'rejected', 'Отклонено'
class EquipmentStatus(models.TextChoices):
"""Статус оборудования."""
AVAILABLE = 'available', 'Доступно'
IN_USE = 'in_use', 'В использовании'
MAINTENANCE = 'maintenance', 'На обслуживании'
REPAIR = 'repair', 'В ремонте'
RETIRED = 'retired', 'Списано'
LOST = 'lost', 'Утеряно'
class MaintenanceType(models.TextChoices):
"""Тип технического обслуживания."""
INSPECTION = 'inspection', 'Осмотр/проверка'
MAINTENANCE = 'maintenance', 'Плановое ТО'
REPAIR = 'repair', 'Ремонт'
UPGRADE = 'upgrade', 'Модернизация'
CLEANING = 'cleaning', 'Чистка'
# Пороги для согласования по сумме (в рублях)
APPROVAL_THRESHOLD_LOW = 10_000 # До 10k - только руководитель отдела
# До 50k - + фин. менеджер, выше 50k - + директор
APPROVAL_THRESHOLD_HIGH = 50_000