48 lines
1.9 KiB
Python
48 lines
1.9 KiB
Python
from django.db import models
|
|
from django.db.models.base import Model
|
|
import django.utils.timezone as timezone
|
|
from django.db.models.query import QuerySet
|
|
from apps.system.models import CommonAModel, CommonBModel, Organization, User, Dict, File
|
|
from utils.model import SoftModel, BaseModel
|
|
from simple_history.models import HistoricalRecords
|
|
from apps.mtm.models import Material
|
|
|
|
|
|
class Vendor(CommonAModel):
|
|
"""
|
|
供应商信息
|
|
"""
|
|
|
|
name = models.CharField('供应商名称', max_length=50, unique=True)
|
|
contact = models.CharField('联系人', max_length=20)
|
|
contact_phone = models.CharField('联系电话', max_length=11, unique=True)
|
|
address = models.CharField('地址', max_length=200, null=True, blank=True)
|
|
description = models.CharField('描述', max_length=200, blank=True, null=True)
|
|
class Meta:
|
|
verbose_name = '供应商信息'
|
|
verbose_name_plural = verbose_name
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
class PuOrder(CommonAModel):
|
|
"""
|
|
采购订单信息
|
|
"""
|
|
number = models.CharField('订单编号', max_length=100, unique=True)
|
|
vendor = models.ForeignKey(Vendor, verbose_name='供应商', on_delete=models.CASCADE)
|
|
is_audited = models.BooleanField('是否审核', default=False)
|
|
class Meta:
|
|
verbose_name = '采购订单'
|
|
verbose_name_plural = verbose_name
|
|
|
|
class PuOrderItem(BaseModel):
|
|
"""
|
|
采购具体项目
|
|
"""
|
|
material = models.ForeignKey(Material, verbose_name='采购材料', on_delete=models.CASCADE)
|
|
count = models.PositiveIntegerField('所需数量', default=0)
|
|
delivered_count = models.PositiveIntegerField('已到货数量', default=0)
|
|
delivery_date = models.DateField('截止到货日期')
|
|
pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单',
|
|
on_delete=models.CASCADE, null=True, blank=True, related_name='item_pu_order') |