forked from erp-dev/erp
feat: added printing module
This commit is contained in:
73
printing/models.py
Normal file
73
printing/models.py
Normal file
@@ -0,0 +1,73 @@
|
||||
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 = '印染款式明细'
|
||||
Reference in New Issue
Block a user