feat: materialbatch 添加supplier字段

This commit is contained in:
caoqianming 2024-10-11 13:36:53 +08:00
parent c546e25808
commit ed8ee4e68d
5 changed files with 28 additions and 2 deletions

View File

@ -0,0 +1,20 @@
# Generated by Django 3.2.12 on 2024-10-11 04:38
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('pum', '0008_auto_20240731_1829'),
('inm', '0019_mio_mgroup'),
]
operations = [
migrations.AddField(
model_name='materialbatch',
name='supplier',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='pum.supplier', verbose_name='供应商'),
),
]

View File

@ -28,6 +28,8 @@ class MaterialBatch(BaseModel):
count = models.DecimalField('存量', max_digits=12, decimal_places=3, default=0)
production_dept = models.ForeignKey('system.dept', verbose_name='生产车间', on_delete=models.CASCADE, null=True, blank=True)
expiration_date = models.DateField('有效期', null=True, blank=True)
supplier = models.ForeignKey(
Supplier, verbose_name='供应商', on_delete=models.SET_NULL, null=True, blank=True)
class Meta:
unique_together = ('material', 'batch', 'warehouse')

View File

@ -33,6 +33,8 @@ class MaterialBatchSerializer(CustomModelSerializer):
source='warehouse.name', read_only=True)
material_name = serializers.StringRelatedField(
source='material', read_only=True)
supplier_name = serializers.StringRelatedField(
source='supplier', read_only=True)
material_ = MaterialSerializer(source='material', read_only=True)
class Meta:
@ -49,6 +51,8 @@ class MaterialBatchDetailSerializer(CustomModelSerializer):
material_ = MaterialSerializer(source='material', read_only=True)
assemb = MaterialBatchAListSerializer(
source='a_mb', read_only=True, many=True)
supplier_name = serializers.StringRelatedField(
source='supplier', read_only=True)
class Meta:
model = MaterialBatch

View File

@ -90,7 +90,7 @@ class InmService:
material=material,
warehouse=warehouse,
batch=i.batch,
defaults={"material": material, "warehouse": warehouse, "count": 0, "batch": i.batch}
defaults={"count": 0, "supplier": i.mio.supplier}
)
if in_or_out == 1:
mb.count = mb.count + getattr(i, field)

View File

@ -48,7 +48,7 @@ class MaterialBatchViewSet(ListModelMixin, CustomGenericViewSet):
queryset = MaterialBatch.objects.filter(count__gt=0)
serializer_class = MaterialBatchSerializer
retrieve_serializer_class = MaterialBatchDetailSerializer
select_related_fields = ['warehouse', 'material']
select_related_fields = ['warehouse', 'material', 'supplier']
filterset_class = MaterialBatchFilter
search_fields = ['material__name', 'material__number',
'material__model', 'material__specification', 'batch']