Inventory.models.entry 源代码

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

from Procurement.models import BiddingSheet
from Inventory import (ENTRYSTATUS_CHOICES, ENTRYSTATUS_CHOICES_PUCAHSER,
                       BOUGHTIN_COMPONENT_CHOICES, STEEL_TYPES)


class AbstractEntry(models.Model):
    uid = models.CharField(verbose_name='编号', max_length=20, unique=True)
    bidding_sheet = models.OneToOneField(BiddingSheet, verbose_name='标单',
                                         on_delete=models.CASCADE)
    # TODO: Auto relate source
    source = models.CharField(verbose_name='货物来源', max_length=20)
    create_dt = models.DateTimeField(verbose_name='入库时间',
                                     auto_now_add=True)
    purchaser = models.ForeignKey(User, verbose_name='采购员',
                                  related_name='%(class)s_purchaser',
                                  blank=True, null=True,
                                  on_delete=models.SET_NULL)
    inspector = models.ForeignKey(User, verbose_name='检验员',
                                  related_name='%(class)s_inspector',
                                  blank=True, null=True,
                                  on_delete=models.SET_NULL)
    keeper = models.ForeignKey(User, verbose_name='库管员',
                               related_name='%(class)s_keeper',
                               blank=True, null=True,
                               on_delete=models.SET_NULL)
    status = models.IntegerField(verbose_name='入库单状态',
                                 choices=ENTRYSTATUS_CHOICES,
                                 default=ENTRYSTATUS_CHOICES_PUCAHSER)
    remark = models.CharField(verbose_name='备注', max_length=100,
                              blank=True, default='')

    class Meta:
        abstract = True

    def __str__(self):
        return self.uid


[文档]class WeldingMaterialEntry(AbstractEntry): """ 焊材入库单 """ class Meta: verbose_name = '焊材入库单' verbose_name_plural = '焊材入库单'
[文档]class SteelMaterialEntry(AbstractEntry): """ 钢材入库单 """ # TODO: Maybe move this to Detail would be more reasonable steel_type = models.IntegerField(verbose_name='材料类型', choices=STEEL_TYPES) class Meta: verbose_name = '钢材入库单' verbose_name_plural = '钢材入库单'
[文档]class AuxiliaryMaterialEntry(AbstractEntry): """ 辅材入库单 """ class Meta: verbose_name = '辅材入库单' verbose_name_plural = '辅材入库单'
[文档]class BoughtInComponentEntry(AbstractEntry): """ 外购件入库单 """ category = models.IntegerField(verbose_name='外购件类型', choices=BOUGHTIN_COMPONENT_CHOICES) class Meta: verbose_name = '外购件入库单' verbose_name_plural = '外购件入库单'