from numpy import product from apps.system.models import CommonAModel from django.db import models from django.contrib.auth.models import AbstractUser from django.db.models.base import Model import django.utils.timezone as timezone from django.db.models.query import QuerySet from utils.model import SoftModel, BaseModel from simple_history.models import HistoricalRecords from apps.mtm.models import Material class Customer(CommonAModel): """ 客户信息 """ name = models.CharField('客户名称', max_length=50, unique=True) address = models.CharField('详细地址', max_length=20, blank=True, null=True) contact = models.CharField('联系人', max_length=20) contact_phone = models.CharField('联系电话', max_length=11, unique=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 Contact(CommonAModel): """ 合同信息 """ name = models.CharField('合同名称', max_length=100) number = models.CharField('合同编号', max_length=100, unique=True) amount = models.IntegerField('合同金额', default=0) customer = models.ForeignKey(Customer, verbose_name='关联客户', on_delete=models.CASCADE, related_name='contact_customer') # contactuser = models.CharField('合同签订人', max_length=100, unique=True, blank=True, null=True) sign_date = models.DateField('签订日期') 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 Order(CommonAModel): """ 订单信息 """ number = models.CharField('订单编号', max_length=100) customer = models.ForeignKey(Customer, verbose_name='客户', on_delete=models.CASCADE) contact = models.ForeignKey(Contact, verbose_name='所属合同', null=True, blank=True, on_delete=models.SET_NULL) product = models.ForeignKey(Material, verbose_name='所需产品', on_delete=models.CASCADE) count = models.IntegerField('所需数量', default=0) delivery_date = models.DateField('交货日期') class Meta: verbose_name = '订单信息' verbose_name_plural = verbose_name def __str__(self): return self.name