models.py
3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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="采购负责人")