Procurement.models.other 源代码

from django.db import models
from django.contrib.auth.models import User

from Core.utils import DynamicHashPath
from Procurement import (BIDDING_SHEET_STATUS_CHOICES, INVENTORY_TYPE,
                         INVENTORY_TYPE_NOTSET)


[文档]class ArrivalInspection(models.Model): """ 到货检验 """ material = models.OneToOneField('ProcurementMaterial', verbose_name='材料') material_confirm = models.BooleanField(verbose_name='实物确认', default=False) soft_confirm = models.BooleanField(verbose_name='软件确认', default=False) inspection_confirm = models.BooleanField(verbose_name='检验通过', default=False) passed = models.BooleanField(verbose_name='是否通过', default=False) class Meta: verbose_name = '到货检验' verbose_name_plural = '到货检验' def __str__(self): return str(self.material)
[文档]class ProcessFollowingInfo(models.Model): """ 过程跟踪记录 """ bidding_sheet = models.ForeignKey('BiddingSheet', verbose_name='标单', on_delete=models.CASCADE) following_date = models.DateField(verbose_name='跟踪日期') following_method = models.CharField(verbose_name='跟踪方式', max_length=20) following_feedback = models.CharField(verbose_name='跟踪反馈', max_length=200) path = models.FileField(verbose_name='路径', upload_to=DynamicHashPath('ProcessFollowingInfo')) executor = models.ForeignKey(User, verbose_name='执行人', on_delete=models.CASCADE) inform_process = models.BooleanField(verbose_name='是否通知工艺', default=False) class Meta: verbose_name = '过程跟踪记录' verbose_name_plural = '过程跟踪记录' def __str__(self): return self.bidding_sheet.uid
# TODO: Rename this model
[文档]class StatusChange(models.Model): """ 状态更改记录 """ bidding_sheet = models.ForeignKey('BiddingSheet', verbose_name='标单', on_delete=models.CASCADE) original_status = models.IntegerField(verbose_name='标单状态', unique=True, choices=BIDDING_SHEET_STATUS_CHOICES) new_status = models.IntegerField(verbose_name='标单状态', unique=True, choices=BIDDING_SHEET_STATUS_CHOICES) change_user = models.ForeignKey(User, verbose_name='更改用户', on_delete=models.CASCADE) change_time = models.DateTimeField(verbose_name='更改时间', auto_now_add=True) normal_change = models.BooleanField(verbose_name='是否正常更改', default=True) reason = models.CharField(verbose_name='回溯原因', max_length=200, blank=True, default='') class Meta: verbose_name = '状态更改记录' verbose_name_plural = '状态更改记录' def __str__(self): return '{}({} -> {})'.format(self.bidding_sheet, self.get_original_status_display(), self.get_new_status_display())
[文档]class Quotation(models.Model): """ 报价单 """ inventory_type = models.IntegerField(verbose_name='明细类型', choices=INVENTORY_TYPE, default=INVENTORY_TYPE_NOTSET) name_spec = models.CharField(verbose_name='规格及名称', max_length=50, blank=True, null=True) material_mark = models.CharField(verbose_name='材质或牌号', max_length=50, blank=True, null=True) unit_price = models.CharField(verbose_name='单价', max_length=50, blank=True, null=True) unit = models.CharField(verbose_name='单位', max_length=50, blank=True, null=True) supplier = models.ForeignKey('Supplier', verbose_name='供应商', on_delete=models.CASCADE) class Meta: verbose_name = '报价单' verbose_name_plural = '报价单' def __str__(self): return '{}-{}:{}({})'.format(self.name_spec, self.material_mark, self.supplier, self.unit_price)