89 lines
3.1 KiB
Python
89 lines
3.1 KiB
Python
# backend/procurement/constants.py
|
||
"""
|
||
Константы для модуля закупок и инвентаря.
|
||
"""
|
||
|
||
from django.db import models
|
||
|
||
|
||
class ProcurementStatus(models.TextChoices):
|
||
"""Статусы заявки на закупку."""
|
||
|
||
DRAFT = "draft", "Черновик"
|
||
WAITING = "waiting", "Ожидает"
|
||
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 ProcurementFulfillmentStatus(models.TextChoices):
|
||
"""Рабочий статус исполнения заявки по позициям."""
|
||
|
||
PENDING = "pending", "Ожидает обработки"
|
||
PARTIALLY_ORDERED = "partially_ordered", "Заказано частично"
|
||
ORDERED = "ordered", "Заказано"
|
||
PARTIALLY_RECEIVED = "partially_received", "Прибыл частично"
|
||
COMPLETED = "completed", "Выполнено"
|
||
ISSUES = "issues", "Выполнено с проблемами"
|
||
|
||
|
||
class ProcurementItemExecutionStatus(models.TextChoices):
|
||
"""Рабочий статус отдельной позиции заявки."""
|
||
|
||
PENDING = "pending", "Не выполнено"
|
||
ORDERED = "ordered", "Заказано"
|
||
REJECTED = "rejected", "Отказано"
|
||
RECEIVED = "received", "Получено"
|
||
COMPLETED_WITH_ISSUE = "completed_with_issue", "Выполнено с замечанием"
|
||
EDITED = "edited", "Отредактировано"
|
||
DEFECTIVE = "defective", "Брак / перезаказ"
|
||
|
||
|
||
def get_default_approval_step_name(
|
||
priority: int, resolver_type: str | None = None
|
||
) -> str:
|
||
if resolver_type == "department_head":
|
||
return "Руководитель отдела"
|
||
return f"Этап {priority}"
|
||
|
||
|
||
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", "Чистка"
|