hberp/hb_server/apps/pum/models.py

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')