40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
from django.db import models
|
||
|
||
# Create your models here.
|
||
from django.db import models
|
||
from django.utils import timezone
|
||
|
||
class Machine(models.Model):
|
||
name = models.CharField("Станок", max_length=100) # Лентопил, Труборез, Лазер
|
||
def __str__(self): return self.name
|
||
class Meta:
|
||
verbose_name = "Станок"; verbose_name_plural = "Станки"
|
||
|
||
class Item(models.Model):
|
||
STATUS_CHOICES = [
|
||
('new', 'В задании'),
|
||
('work', 'В работе'),
|
||
('done', 'Выполнено'),
|
||
]
|
||
|
||
date = models.DateField("Дата", default=timezone.now)
|
||
machine = models.ForeignKey(Machine, on_delete=models.PROTECT, verbose_name="Станок")
|
||
deal = models.CharField("№ Сделки", max_length=100) # Твои "Переходники" или заказы
|
||
drawing_name = models.CharField("Чертеж / Деталь", max_length=255)
|
||
|
||
# Характеристики из твоих файлов
|
||
material = models.CharField("Материал", max_length=255) # Труба 180х32, MS 12.00mm и т.д.
|
||
dim_value = models.FloatField("Размер (мм)", help_text="Длина реза или толщина листа")
|
||
|
||
quantity_plan = models.PositiveIntegerField("План, шт")
|
||
quantity_fact = models.PositiveIntegerField("Факт, шт", default=0)
|
||
|
||
priority = models.PositiveIntegerField("Приоритет", default=10)
|
||
status = models.CharField("Статус", max_length=10, choices=STATUS_CHOICES, default='new')
|
||
|
||
class Meta:
|
||
verbose_name = "Позиция"; verbose_name_plural = "Сменное задание"
|
||
ordering = ['-date', 'priority']
|
||
|
||
def __str__(self):
|
||
return f"{self.drawing_name} ({self.deal})" |