feat: 增加material 反向查询条件
This commit is contained in:
parent
e9845a246e
commit
3f544ada2f
|
@ -12,7 +12,9 @@ class MaterialFilter(filters.FilterSet):
|
||||||
"id": ["exact", "in"],
|
"id": ["exact", "in"],
|
||||||
"type": ["exact", "in"],
|
"type": ["exact", "in"],
|
||||||
"is_hidden": ["exact"],
|
"is_hidden": ["exact"],
|
||||||
"is_assemb": ["exact"]
|
"is_assemb": ["exact"],
|
||||||
|
"orderitem_material__order": ['exact'],
|
||||||
|
"pu_orderitem_material__pu_order": ["exact"]
|
||||||
}
|
}
|
||||||
|
|
||||||
def filter_tag(self, queryset, name, value):
|
def filter_tag(self, queryset, name, value):
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Generated by Django 3.2.12 on 2023-10-25 08:02
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('mtm', '0017_auto_20231018_1033'),
|
||||||
|
('pum', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='puorderitem',
|
||||||
|
name='material',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pu_orderitem_material', to='mtm.material', verbose_name='物料'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -24,19 +24,19 @@ class PuPlan(CommonBModel):
|
||||||
PUPLAN_ORDERED = 40
|
PUPLAN_ORDERED = 40
|
||||||
PUPLAN_DONE = 50
|
PUPLAN_DONE = 50
|
||||||
PUPLAN_STATES = (
|
PUPLAN_STATES = (
|
||||||
(PUPLAN_CREATE, '创建中'),
|
(PUPLAN_CREATE, '创建中'),
|
||||||
(PUPLAN_SUBMITED, '已提交'),
|
(PUPLAN_SUBMITED, '已提交'),
|
||||||
(PUPLAN_ORDERING, '下单中'),
|
(PUPLAN_ORDERING, '下单中'),
|
||||||
(PUPLAN_ORDERED, '下单完成'),
|
(PUPLAN_ORDERED, '下单完成'),
|
||||||
(PUPLAN_DONE, '已完成'),
|
(PUPLAN_DONE, '已完成'),
|
||||||
)
|
)
|
||||||
state = models.PositiveSmallIntegerField('状态', choices=PUPLAN_STATES, default=10, help_text=str(PUPLAN_STATES))
|
state = models.PositiveSmallIntegerField(
|
||||||
|
'状态', choices=PUPLAN_STATES, default=10, help_text=str(PUPLAN_STATES))
|
||||||
number = models.CharField('编号', max_length=20)
|
number = models.CharField('编号', max_length=20)
|
||||||
name = models.CharField('名称', max_length=50, null=True, blank=True)
|
name = models.CharField('名称', max_length=50, null=True, blank=True)
|
||||||
submit_time = models.DateTimeField('提交时间', null=True, blank=True)
|
submit_time = models.DateTimeField('提交时间', null=True, blank=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class PuOrder(CommonBModel):
|
class PuOrder(CommonBModel):
|
||||||
"""
|
"""
|
||||||
采购订单
|
采购订单
|
||||||
|
@ -51,31 +51,34 @@ class PuOrder(CommonBModel):
|
||||||
(PUORDER_SHIP, '到货中'),
|
(PUORDER_SHIP, '到货中'),
|
||||||
(PUORDER_DONE, '已完成'),
|
(PUORDER_DONE, '已完成'),
|
||||||
)
|
)
|
||||||
state = models.PositiveSmallIntegerField('状态', choices=PUORDER_STATES, default=10, help_text=str(PUORDER_STATES))
|
state = models.PositiveSmallIntegerField(
|
||||||
|
'状态', choices=PUORDER_STATES, default=10, help_text=str(PUORDER_STATES))
|
||||||
number = models.CharField('订单编号', max_length=20, null=True, blank=True)
|
number = models.CharField('订单编号', max_length=20, null=True, blank=True)
|
||||||
supplier = models.ForeignKey(Supplier, verbose_name='供应商', on_delete=models.CASCADE)
|
supplier = models.ForeignKey(
|
||||||
|
Supplier, verbose_name='供应商', on_delete=models.CASCADE)
|
||||||
delivery_date = models.DateField('截止到货日期', null=True, blank=True)
|
delivery_date = models.DateField('截止到货日期', null=True, blank=True)
|
||||||
submit_time = models.DateTimeField('提交时间', null=True, blank=True)
|
submit_time = models.DateTimeField('提交时间', null=True, blank=True)
|
||||||
|
|
||||||
|
|
||||||
class PuOrderItem(BaseModel):
|
class PuOrderItem(BaseModel):
|
||||||
material = models.ForeignKey(Material, verbose_name='物料', on_delete=models.CASCADE)
|
material = models.ForeignKey(
|
||||||
|
Material, verbose_name='物料', on_delete=models.CASCADE, related_name='pu_orderitem_material')
|
||||||
count = models.PositiveIntegerField('所需数量', default=0)
|
count = models.PositiveIntegerField('所需数量', default=0)
|
||||||
delivered_count = models.PositiveIntegerField('已到货数量', default=0)
|
delivered_count = models.PositiveIntegerField('已到货数量', default=0)
|
||||||
pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单',
|
pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单',
|
||||||
on_delete=models.CASCADE, null=True, blank=True, related_name='item_puorder')
|
on_delete=models.CASCADE, null=True, blank=True, related_name='item_puorder')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class PuPlanItem(CommonBDModel):
|
class PuPlanItem(CommonBDModel):
|
||||||
"""
|
"""
|
||||||
采购计划明细(因为各部门填写所以需要belong_dept字段)
|
采购计划明细(因为各部门填写所以需要belong_dept字段)
|
||||||
"""
|
"""
|
||||||
material = models.ForeignKey(Material, verbose_name='所需物料', on_delete=models.CASCADE)
|
material = models.ForeignKey(
|
||||||
|
Material, verbose_name='所需物料', on_delete=models.CASCADE)
|
||||||
need_count = models.PositiveIntegerField('所属数量')
|
need_count = models.PositiveIntegerField('所属数量')
|
||||||
need_date = models.DateField('需求日期')
|
need_date = models.DateField('需求日期')
|
||||||
note = models.TextField('备注', default='')
|
note = models.TextField('备注', default='')
|
||||||
pu_plan = models.ForeignKey(PuPlan, verbose_name='采购计划', on_delete=models.CASCADE,
|
pu_plan = models.ForeignKey(PuPlan, verbose_name='采购计划', on_delete=models.CASCADE,
|
||||||
null=True, blank=True, related_name='item_puplan')
|
null=True, blank=True, related_name='item_puplan')
|
||||||
pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单',
|
pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单',
|
||||||
on_delete=models.SET_NULL, null=True, blank=True, related_name='puplan_item_puorder')
|
on_delete=models.SET_NULL, null=True, blank=True, related_name='puplan_item_puorder')
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Generated by Django 3.2.12 on 2023-10-25 08:02
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('mtm', '0017_auto_20231018_1033'),
|
||||||
|
('sam', '0006_alter_order_state'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='orderitem',
|
||||||
|
name='material',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='orderitem_material', to='mtm.material', verbose_name='所需产品'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -82,7 +82,7 @@ class OrderItem(BaseModel):
|
||||||
order = models.ForeignKey(
|
order = models.ForeignKey(
|
||||||
Order, verbose_name='关联订单', on_delete=models.CASCADE)
|
Order, verbose_name='关联订单', on_delete=models.CASCADE)
|
||||||
material = models.ForeignKey(
|
material = models.ForeignKey(
|
||||||
Material, verbose_name='所需产品', on_delete=models.CASCADE)
|
Material, verbose_name='所需产品', on_delete=models.CASCADE, related_name='orderitem_material')
|
||||||
count = models.PositiveIntegerField('所需数量', default=1)
|
count = models.PositiveIntegerField('所需数量', default=1)
|
||||||
delivered_count = models.PositiveIntegerField('已交货数量', default=0)
|
delivered_count = models.PositiveIntegerField('已交货数量', default=0)
|
||||||
utask = models.ForeignKey('pm.utask', verbose_name='关联生产大任务',
|
utask = models.ForeignKey('pm.utask', verbose_name='关联生产大任务',
|
||||||
|
|
Loading…
Reference in New Issue