models.py 3.4 KB
from django.db import models


from usercenter.models import User


class Auditor(models.Model):
	user = models.ForeignKey(
		User,
		on_delete=models.CASCADE,
		related_name="sku_aud",
		verbose_name="审批人员")
	order = models.PositiveSmallIntegerField(default=0, null=True, blank=True, verbose_name="排序")

	def __str__(self):
		return self.user.username

	class Meta:
		ordering = ('order', )


class SKU(models.Model):
	NEW_CHOICES = (
		("是", "新品"),
		("否", "非新品")
	)
	supplier = models.CharField(max_length=255, default="", verbose_name="供应商")
	sku = models.CharField(max_length=100, default="", verbose_name="SKU")
	model = models.CharField(max_length=100, default="", verbose_name="型号")
	title = models.CharField(max_length=100, default="", verbose_name="SKU名称")
	is_new = models.CharField(max_length=10, choices=NEW_CHOICES, verbose_name="是否新品")
	qty = models.CharField(max_length=100, default="", verbose_name="需求单数量")
	price_with_tax = models.DecimalField(max_digits=12, decimal_places=4, default=0, verbose_name="含税单价")
	amount_with_tax = models.DecimalField(max_digits=12, decimal_places=4, default=0, verbose_name="含税总金额")
	sell_day = models.PositiveIntegerField(default=0, null=True, verbose_name="可售天数")
	qty_within_30 = models.PositiveIntegerField(default=0, null=True, verbose_name="30天销量")
	inventory = models.PositiveIntegerField(default=0, null=True, verbose_name="库存")
	coming_inventory = models.PositiveIntegerField(default=0, null=True, verbose_name="采购在途")
	gross_profit_rate = models.FloatField(default=0, null=True, verbose_name="毛利率")
	return_rate = models.FloatField(default=0, null=True, verbose_name="客退率")
	memo = models.CharField(default="", max_length=255, null=True, verbose_name="备注", blank=True)
	create_time = models.DateTimeField(auto_now_add=True)
	purchaser = models.CharField(max_length=255, verbose_name="采购名字")


class Flow(models.Model):
	"""  提交发起的流程"""
	starter = models.ForeignKey(User, on_delete=models.DO_NOTHING, verbose_name="发起人")
	is_done = models.BooleanField(default=False, verbose_name="是否已结束")
	create_time = models.DateTimeField(auto_now_add=True)


class FlowSKU(models.Model):
	""" 流程中的SKU """
	sku = models.ForeignKey(SKU, on_delete=models.CASCADE, verbose_name="流程中的的SKU", related_name="flow_sku")
	flow = models.ForeignKey(Flow, on_delete=models.CASCADE, verbose_name="对应的流程", related_name="sku_flow")
	is_pass = models.BooleanField(null=True, verbose_name="是否通过,默认为否")


class Result(models.Model):
	ACCEPT_CHOICES = (
		('accept', '通过'),
		('reject', '否决')
	)

	auditor = models.ForeignKey(Auditor, on_delete=models.CASCADE, related_name="result_auditor", verbose_name="审核人员")
	flow = models.ForeignKey(Flow, on_delete=models.CASCADE, related_name="result_flow", verbose_name="审核项目")
	is_accept = models.CharField(max_length=10, null=True, choices=ACCEPT_CHOICES, verbose_name="审核项目")
	memo = models.CharField(max_length=300, blank=True, default="", verbose_name="审核结果陈述")
	create_time = models.DateTimeField(auto_now_add=True)

	class Meta:
		ordering = ('pk', )


class Leader(models.Model):
	""" 采购负责人"""
	user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="sku_leader", verbose_name="采购负责人")