From 3f544ada2fcafb0ff9d50cadd5b0653d241e54db Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 25 Oct 2023 16:04:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0material=20=E5=8F=8D?= =?UTF-8?q?=E5=90=91=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/mtm/filters.py | 4 ++- .../0002_alter_puorderitem_material.py | 20 +++++++++++ apps/pum/models.py | 35 ++++++++++--------- .../0007_alter_orderitem_material.py | 20 +++++++++++ apps/sam/models.py | 2 +- 5 files changed, 63 insertions(+), 18 deletions(-) create mode 100644 apps/pum/migrations/0002_alter_puorderitem_material.py create mode 100644 apps/sam/migrations/0007_alter_orderitem_material.py diff --git a/apps/mtm/filters.py b/apps/mtm/filters.py index b8283391..14ad4e60 100644 --- a/apps/mtm/filters.py +++ b/apps/mtm/filters.py @@ -12,7 +12,9 @@ class MaterialFilter(filters.FilterSet): "id": ["exact", "in"], "type": ["exact", "in"], "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): diff --git a/apps/pum/migrations/0002_alter_puorderitem_material.py b/apps/pum/migrations/0002_alter_puorderitem_material.py new file mode 100644 index 00000000..ef817c50 --- /dev/null +++ b/apps/pum/migrations/0002_alter_puorderitem_material.py @@ -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='物料'), + ), + ] diff --git a/apps/pum/models.py b/apps/pum/models.py index 618816d0..9eae5ccf 100644 --- a/apps/pum/models.py +++ b/apps/pum/models.py @@ -24,19 +24,19 @@ class PuPlan(CommonBModel): PUPLAN_ORDERED = 40 PUPLAN_DONE = 50 PUPLAN_STATES = ( - (PUPLAN_CREATE, '创建中'), - (PUPLAN_SUBMITED, '已提交'), - (PUPLAN_ORDERING, '下单中'), - (PUPLAN_ORDERED, '下单完成'), - (PUPLAN_DONE, '已完成'), + (PUPLAN_CREATE, '创建中'), + (PUPLAN_SUBMITED, '已提交'), + (PUPLAN_ORDERING, '下单中'), + (PUPLAN_ORDERED, '下单完成'), + (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) name = models.CharField('名称', max_length=50, null=True, blank=True) submit_time = models.DateTimeField('提交时间', null=True, blank=True) - class PuOrder(CommonBModel): """ 采购订单 @@ -51,31 +51,34 @@ class PuOrder(CommonBModel): (PUORDER_SHIP, '到货中'), (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) - 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) submit_time = models.DateTimeField('提交时间', null=True, blank=True) 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) delivered_count = models.PositiveIntegerField('已到货数量', default=0) - pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单', - on_delete=models.CASCADE, null=True, blank=True, related_name='item_puorder') - + pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单', + on_delete=models.CASCADE, null=True, blank=True, related_name='item_puorder') class PuPlanItem(CommonBDModel): """ 采购计划明细(因为各部门填写所以需要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_date = models.DateField('需求日期') note = models.TextField('备注', default='') pu_plan = models.ForeignKey(PuPlan, verbose_name='采购计划', on_delete=models.CASCADE, null=True, blank=True, related_name='item_puplan') - pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单', - on_delete=models.SET_NULL, null=True, blank=True, related_name='puplan_item_puorder') \ No newline at end of file + pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单', + on_delete=models.SET_NULL, null=True, blank=True, related_name='puplan_item_puorder') diff --git a/apps/sam/migrations/0007_alter_orderitem_material.py b/apps/sam/migrations/0007_alter_orderitem_material.py new file mode 100644 index 00000000..f4f26a28 --- /dev/null +++ b/apps/sam/migrations/0007_alter_orderitem_material.py @@ -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='所需产品'), + ), + ] diff --git a/apps/sam/models.py b/apps/sam/models.py index ee3b5556..5b6f6fe1 100644 --- a/apps/sam/models.py +++ b/apps/sam/models.py @@ -82,7 +82,7 @@ class OrderItem(BaseModel): order = models.ForeignKey( Order, verbose_name='关联订单', on_delete=models.CASCADE) 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) delivered_count = models.PositiveIntegerField('已交货数量', default=0) utask = models.ForeignKey('pm.utask', verbose_name='关联生产大任务',