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