|
|
|
@ -0,0 +1,144 @@
|
|
|
|
|
from django.db import models
|
|
|
|
|
from django.utils import timezone
|
|
|
|
|
|
|
|
|
|
from ERP_5.utils.base_model import BaseModel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# BOM表中的物料模型类
|
|
|
|
|
class BomMaterialModel(BaseModel):
|
|
|
|
|
# 冗余字段
|
|
|
|
|
goods_code = models.CharField('货品编号,不让用户填写', max_length=28)
|
|
|
|
|
name = models.CharField(max_length=20, verbose_name='货品名称')
|
|
|
|
|
specification = models.CharField('货品规格', max_length=50, null=True, blank=True)
|
|
|
|
|
model_number = models.CharField('型号', max_length=50, null=True, blank=True)
|
|
|
|
|
units_name = models.CharField('单位名字', max_length=50, null=True, blank=True)
|
|
|
|
|
units = models.ForeignKey('goods_info.UnitsModel', on_delete=models.SET_NULL, null=True, blank=True)
|
|
|
|
|
|
|
|
|
|
remark = models.CharField('备注', max_length=512, blank=True, null=True)
|
|
|
|
|
purchase_price = models.DecimalField('采购价', max_digits=10, decimal_places=2, blank=True, default=0)
|
|
|
|
|
count = models.DecimalField('数量,最多精确到小数点后两位', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
money = models.DecimalField('费用,最多精确到小数点后两位', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
|
|
|
|
|
goods = models.ForeignKey('goods_info.GoodsModel', null=True, on_delete=models.SET_NULL,
|
|
|
|
|
verbose_name='货品')
|
|
|
|
|
|
|
|
|
|
parent_goods = models.ForeignKey('goods_info.GoodsModel', blank=True, related_name='material_list', null=True,
|
|
|
|
|
on_delete=models.SET_NULL, verbose_name='当前的物料清单属于哪个货品')
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
db_table = 't_bom_material'
|
|
|
|
|
verbose_name = '生产物料表'
|
|
|
|
|
verbose_name_plural = verbose_name
|
|
|
|
|
ordering = ['id']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# BOM表中 的生产工序模型类
|
|
|
|
|
class BomProcessModel(BaseModel):
|
|
|
|
|
process_order = models.IntegerField('执行顺序')
|
|
|
|
|
name = models.CharField('工序名称', max_length=50)
|
|
|
|
|
leader_name = models.CharField('负责人的名字', max_length=20)
|
|
|
|
|
leader_user = models.ForeignKey('erp_system.UserModel', related_name='leader1_in_list', null=True, blank=True,
|
|
|
|
|
on_delete=models.SET_NULL, verbose_name='负责人员')
|
|
|
|
|
money = models.DecimalField('工价,最多精确到小数点后两位', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
remark = models.CharField('备注', max_length=512, blank=True, null=True)
|
|
|
|
|
parent_goods = models.ForeignKey('goods_info.GoodsModel', blank=True, related_name='process_list', null=True,
|
|
|
|
|
on_delete=models.SET_NULL, verbose_name='当前的生产工序属于哪个货品')
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
db_table = 't_bom_process'
|
|
|
|
|
verbose_name = '生产工序表'
|
|
|
|
|
verbose_name_plural = verbose_name
|
|
|
|
|
ordering = ['process_order']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 生产任务模型类
|
|
|
|
|
class ProductTaskModel(BaseModel):
|
|
|
|
|
invoices_date = models.DateTimeField('单据日期', blank=True, null=True, default=timezone.now)
|
|
|
|
|
number_code = models.CharField('编号或者条码', max_length=28, unique=True)
|
|
|
|
|
# 冗余字段
|
|
|
|
|
name = models.CharField(max_length=20, verbose_name='货品名称')
|
|
|
|
|
specification = models.CharField('货品规格', max_length=50, null=True, blank=True)
|
|
|
|
|
model_number = models.CharField('型号', max_length=50, null=True, blank=True)
|
|
|
|
|
goods_number_code = models.CharField('生产的货品编号或者批号', max_length=28)
|
|
|
|
|
units_name = models.CharField('货品的单位', max_length=28, null=True, blank=True)
|
|
|
|
|
sale_number = models.DecimalField('订单数量', default=1, max_digits=10, decimal_places=2)
|
|
|
|
|
p_number = models.DecimalField('生产数量', default=1, max_digits=10, decimal_places=2)
|
|
|
|
|
finish_date = models.DateField('实际完工日期', null=True, blank=True)
|
|
|
|
|
plan_finish_date = models.DateField('计划完工日期')
|
|
|
|
|
goods = models.ForeignKey('goods_info.GoodsModel', null=True, blank=True, on_delete=models.SET_NULL,
|
|
|
|
|
verbose_name='货品')
|
|
|
|
|
|
|
|
|
|
sale_number_code = models.CharField('销售单的编号或者批号', max_length=28, null=True, blank=True)
|
|
|
|
|
sale = models.ForeignKey('sale_info.SaleModel', null=True, blank=True, on_delete=models.SET_NULL,
|
|
|
|
|
verbose_name='销售单')
|
|
|
|
|
status = models.CharField('状态,0:未审核,1:加工中,2:完工', max_length=1,
|
|
|
|
|
default='0')
|
|
|
|
|
|
|
|
|
|
check_number = models.DecimalField('验收合格数量', default=0, max_digits=10, decimal_places=2)
|
|
|
|
|
storage_number = models.DecimalField('已入库数量', default=0, max_digits=10, decimal_places=2)
|
|
|
|
|
cost_money = models.DecimalField('合计成本', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
remark = models.CharField('备注', max_length=512, blank=True, null=True)
|
|
|
|
|
|
|
|
|
|
check_user = models.ForeignKey('erp_system.UserModel', related_name='checker6_list', null=True, blank=True,
|
|
|
|
|
on_delete=models.SET_NULL,
|
|
|
|
|
verbose_name='审核人员,不能修改')
|
|
|
|
|
# 增加一个冗余字段
|
|
|
|
|
check_user_name = models.CharField('操作人员的真实姓名', max_length=20, null=True, blank=True)
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
db_table = 't_product_task'
|
|
|
|
|
verbose_name = '生产任务表'
|
|
|
|
|
verbose_name_plural = verbose_name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 生产物料模型
|
|
|
|
|
class ProductMaterialModel(BaseModel):
|
|
|
|
|
# 冗余字段
|
|
|
|
|
goods_code = models.CharField('货品编号,不让用户填写', max_length=28)
|
|
|
|
|
name = models.CharField(max_length=20, verbose_name='货品名称')
|
|
|
|
|
specification = models.CharField('货品规格', max_length=50, null=True, blank=True)
|
|
|
|
|
model_number = models.CharField('型号', max_length=50, null=True, blank=True)
|
|
|
|
|
units_name = models.CharField('单位名字', max_length=50, null=True, blank=True)
|
|
|
|
|
units = models.ForeignKey('goods_info.UnitsModel', on_delete=models.SET_NULL, null=True, blank=True)
|
|
|
|
|
|
|
|
|
|
remark = models.CharField('备注', max_length=512, blank=True, null=True)
|
|
|
|
|
purchase_price = models.DecimalField('采购价', max_digits=10, decimal_places=2, blank=True, default=0)
|
|
|
|
|
count = models.DecimalField('总共需要的数量', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
money = models.DecimalField('费用,最多精确到小数点后两位', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
|
|
|
|
|
goods = models.ForeignKey('goods_info.GoodsModel', null=True, on_delete=models.SET_NULL,
|
|
|
|
|
verbose_name='货品')
|
|
|
|
|
|
|
|
|
|
get_count = models.DecimalField('已经领取的数量', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
back_count = models.DecimalField('退回的数量', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
use_count = models.DecimalField('已使用的数量', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
scrap_count = models.DecimalField('报废的数量', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
|
|
|
|
|
product_task = models.ForeignKey('ProductTaskModel', null=True, on_delete=models.SET_NULL,
|
|
|
|
|
verbose_name='生产任务', related_name='material_list')
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
db_table = 't_product_material'
|
|
|
|
|
verbose_name = '生产物料表'
|
|
|
|
|
verbose_name_plural = verbose_name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 生产任务中 的生产工序模型类
|
|
|
|
|
class ProductProcessModel(BaseModel):
|
|
|
|
|
process_order = models.IntegerField('执行顺序')
|
|
|
|
|
name = models.CharField('工序名称', max_length=128)
|
|
|
|
|
leader_name = models.CharField('负责人的名字', max_length=20)
|
|
|
|
|
leader_user = models.ForeignKey('erp_system.UserModel', related_name='leader2_in_list', null=True, blank=True,
|
|
|
|
|
on_delete=models.SET_NULL, verbose_name='负责人员')
|
|
|
|
|
price = models.DecimalField('工价,最多精确到小数点后两位', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
money = models.DecimalField('费用,最多精确到小数点后两位', max_digits=10, decimal_places=2, default=0)
|
|
|
|
|
plan_finish_date = models.DateField('计划完工日期', null=True, blank=True)
|
|
|
|
|
remark = models.CharField('备注', max_length=512, blank=True, null=True)
|
|
|
|
|
|
|
|
|
|
product_task = models.ForeignKey('ProductTaskModel', null=True, on_delete=models.SET_NULL,
|
|
|
|
|
verbose_name='生产任务', related_name='process_list')
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
db_table = 't_product_process'
|
|
|
|
|
verbose_name = '生产工序表'
|
|
|
|
|
verbose_name_plural = verbose_name
|