feat: 修改sam部分字段

This commit is contained in:
caoqianming 2023-09-21 10:23:09 +08:00
parent a4a96ce59e
commit d39aa87dd5
5 changed files with 56 additions and 9 deletions

View File

@ -0,0 +1,33 @@
# Generated by Django 3.2.12 on 2023-09-21 02:18
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('sam', '0001_initial'),
]
operations = [
migrations.RenameField(
model_name='orderitem',
old_name='count_deliverd',
new_name='delivered_count',
),
migrations.RenameField(
model_name='orderitem',
old_name='product',
new_name='material',
),
migrations.AddField(
model_name='order',
name='submit_time',
field=models.DateTimeField(blank=True, null=True, verbose_name='提交时间'),
),
migrations.AlterField(
model_name='order',
name='state',
field=models.PositiveSmallIntegerField(choices=[(10, '创建中'), (20, '已提交'), (30, '已排产'), (40, '已交付')], default=10, help_text="((10, '创建中'), (20, '已提交'), (30, '已排产'), (40, '已交付'))", verbose_name='订单状态'),
),
]

View File

@ -71,8 +71,8 @@ class OrderItem(BaseModel):
订单明细
"""
order = models.ForeignKey(Order, verbose_name='关联订单', on_delete=models.CASCADE)
product = models.ForeignKey(Material, verbose_name='所需产品', on_delete=models.CASCADE)
material = models.ForeignKey(Material, verbose_name='所需产品', on_delete=models.CASCADE)
count = models.PositiveIntegerField('所需数量', default=1)
count_deliverd = models.PositiveIntegerField('已交货数量', default=0)
delivered_count = models.PositiveIntegerField('已交货数量', default=0)

View File

@ -39,12 +39,12 @@ class OrderSerializer(CustomModelSerializer):
return super().update(instance, validated_data)
class OrderItemSerializer(CustomModelSerializer):
product_ = MaterialSerializer(source='product', read_only=True)
material_ = MaterialSerializer(source='material', read_only=True)
order_ = OrderSerializer(source='order', read_only=True)
class Meta:
model = OrderItem
fields = '__all__'
read_only_fields = EXCLUDE_FIELDS_BASE + ['count_deliverd']
read_only_fields = EXCLUDE_FIELDS_BASE + ['delivered_count']
def validate(self, attrs):
order = attrs['order']
@ -54,8 +54,8 @@ class OrderItemSerializer(CustomModelSerializer):
def create(self, validated_data):
order = validated_data['order']
product = validated_data['product']
if OrderItem.objects.filter(order=order, product=product).exists():
material = validated_data['material']
if OrderItem.objects.filter(order=order, material=material).exists():
raise ValidationError('该产品已选择!')
return super().create(validated_data)

14
apps/sam/services.py Normal file
View File

@ -0,0 +1,14 @@
from apps.sam.models import Order, OrderItem
from rest_framework.exceptions import ValidationError
from django.db.models import F
from apps.inm.models import MIO, MIOItem
class SamService:
def mio_saleout(mio: MIO):
"""
销售出库成功后的操作
"""
order = mio.order
for i in MIOItem.objects.filter(mio=mio):
orderitem = OrderItem.objects.get(order=order, product=i.material)

View File

@ -36,7 +36,7 @@ class ContractViewSet(CustomModelViewSet):
合同信息
"""
querset = Contract.objects.all()
queryset = Contract.objects.all()
serializer_class = ContractSerializer
select_related_fields = ['customer']
search_fields = ['name', 'number']
@ -85,8 +85,8 @@ class OrderItemViewSet(ListModelMixin, CreateModelMixin, DestroyModelMixin, Cust
"""
queryset = OrderItem.objects.all()
serializer_class = OrderItemSerializer
select_related_fields = ['order', 'product']
filterset_fields = ['order', 'product']
select_related_fields = ['order', 'material']
filterset_fields = ['order', 'material']
ordering = ['create_time']