forked from erp-dev/erp
74 lines
3.3 KiB
Python
74 lines
3.3 KiB
Python
from django.db import models
|
|
from flower.common import ModelBase
|
|
from basic_info import models as basic_models
|
|
|
|
|
|
class PrintingOrder(ModelBase):
|
|
"""PrintingOrder model representing a printing order."""
|
|
customer = models.ForeignKey(
|
|
basic_models.Customer,
|
|
on_delete=models.PROTECT,
|
|
related_name='printing_orders',
|
|
verbose_name='客户',
|
|
)
|
|
fabric = models.CharField(max_length=100, verbose_name='面料')
|
|
width = models.CharField(max_length=100, verbose_name='幅宽')
|
|
is_urgent = models.BooleanField(default=False, verbose_name='紧急')
|
|
area = models.CharField(max_length=100, null=True, blank=True, verbose_name='地区')
|
|
address = models.CharField(max_length=200, null=True, blank=True, verbose_name='地址')
|
|
fabric_source = models.CharField(max_length=100, null=True, blank=True, verbose_name='布料来源')
|
|
is_fabric_received = models.BooleanField(default=False, verbose_name='布料是否已收')
|
|
craft = models.CharField(max_length=100, null=True, blank=True, verbose_name='工艺')
|
|
description = models.TextField(blank=True, null=True, verbose_name='订单描述')
|
|
outgoing_date = models.DateField(null=True, blank=True, verbose_name='出货日期')
|
|
curve = models.CharField(max_length=100, blank=True, null=True, verbose_name='曲线')
|
|
new_curve = models.CharField(max_length=100, blank=True, null=True, verbose_name='新加曲线')
|
|
position = models.TextField(blank=True, null=True, verbose_name='位置')
|
|
printing_warn = models.TextField(blank=True, null=True, verbose_name='打印注意事项')
|
|
rolling_warn = models.TextField(blank=True, null=True, verbose_name='滚筒注意事项')
|
|
production_warn = models.TextField(blank=True, null=True, verbose_name='生产注意事项')
|
|
is_invalid = models.BooleanField(default=False, verbose_name='是否作废')
|
|
|
|
def __str__(self):
|
|
return self.human_id
|
|
|
|
class Meta:
|
|
verbose_name = '印染订单'
|
|
verbose_name_plural = '印染订单'
|
|
permissions = [
|
|
('can_invalidate_printingorder', '可以作废印染订单'),
|
|
('can_activate_printingorder', '可以恢复印染订单'),
|
|
]
|
|
|
|
@property
|
|
def human_id(self) -> str:
|
|
return f"{self.created_at.year}{self.created_at.month:02d}{self.created_at.day:02d}{self.id:06d}"
|
|
|
|
|
|
class PrintingJob(ModelBase):
|
|
"""PrintingJob model representing a printing job associated with an order."""
|
|
printing_order = models.ForeignKey(
|
|
PrintingOrder,
|
|
on_delete=models.CASCADE,
|
|
related_name='printing_jobs',
|
|
verbose_name='主订单',
|
|
)
|
|
product = models.ForeignKey(
|
|
basic_models.Product,
|
|
on_delete=models.PROTECT,
|
|
related_name='printing_jobs',
|
|
verbose_name='产品',
|
|
)
|
|
quantity = models.PositiveIntegerField(verbose_name='数量')
|
|
unit = models.CharField(max_length=50, verbose_name='单位')
|
|
size = models.CharField(max_length=100, verbose_name='一段尺寸')
|
|
pieces = models.PositiveIntegerField(verbose_name='件数')
|
|
description = models.TextField(blank=True, verbose_name='备注')
|
|
|
|
def __str__(self):
|
|
return self.printing_order.human_id
|
|
|
|
class Meta:
|
|
verbose_name = '印染款式明细'
|
|
verbose_name_plural = '印染款式明细'
|