feat: 修改sam部分字段
This commit is contained in:
parent
a4a96ce59e
commit
d39aa87dd5
|
@ -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='订单状态'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -71,8 +71,8 @@ class OrderItem(BaseModel):
|
||||||
订单明细
|
订单明细
|
||||||
"""
|
"""
|
||||||
order = models.ForeignKey(Order, verbose_name='关联订单', on_delete=models.CASCADE)
|
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 = models.PositiveIntegerField('所需数量', default=1)
|
||||||
count_deliverd = models.PositiveIntegerField('已交货数量', default=0)
|
delivered_count = models.PositiveIntegerField('已交货数量', default=0)
|
||||||
|
|
||||||
|
|
|
@ -39,12 +39,12 @@ class OrderSerializer(CustomModelSerializer):
|
||||||
return super().update(instance, validated_data)
|
return super().update(instance, validated_data)
|
||||||
|
|
||||||
class OrderItemSerializer(CustomModelSerializer):
|
class OrderItemSerializer(CustomModelSerializer):
|
||||||
product_ = MaterialSerializer(source='product', read_only=True)
|
material_ = MaterialSerializer(source='material', read_only=True)
|
||||||
order_ = OrderSerializer(source='order', read_only=True)
|
order_ = OrderSerializer(source='order', read_only=True)
|
||||||
class Meta:
|
class Meta:
|
||||||
model = OrderItem
|
model = OrderItem
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
read_only_fields = EXCLUDE_FIELDS_BASE + ['count_deliverd']
|
read_only_fields = EXCLUDE_FIELDS_BASE + ['delivered_count']
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
order = attrs['order']
|
order = attrs['order']
|
||||||
|
@ -54,8 +54,8 @@ class OrderItemSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
order = validated_data['order']
|
order = validated_data['order']
|
||||||
product = validated_data['product']
|
material = validated_data['material']
|
||||||
if OrderItem.objects.filter(order=order, product=product).exists():
|
if OrderItem.objects.filter(order=order, material=material).exists():
|
||||||
raise ValidationError('该产品已选择!')
|
raise ValidationError('该产品已选择!')
|
||||||
return super().create(validated_data)
|
return super().create(validated_data)
|
||||||
|
|
||||||
|
|
|
@ -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)
|
|
@ -36,7 +36,7 @@ class ContractViewSet(CustomModelViewSet):
|
||||||
|
|
||||||
合同信息
|
合同信息
|
||||||
"""
|
"""
|
||||||
querset = Contract.objects.all()
|
queryset = Contract.objects.all()
|
||||||
serializer_class = ContractSerializer
|
serializer_class = ContractSerializer
|
||||||
select_related_fields = ['customer']
|
select_related_fields = ['customer']
|
||||||
search_fields = ['name', 'number']
|
search_fields = ['name', 'number']
|
||||||
|
@ -85,8 +85,8 @@ class OrderItemViewSet(ListModelMixin, CreateModelMixin, DestroyModelMixin, Cust
|
||||||
"""
|
"""
|
||||||
queryset = OrderItem.objects.all()
|
queryset = OrderItem.objects.all()
|
||||||
serializer_class = OrderItemSerializer
|
serializer_class = OrderItemSerializer
|
||||||
select_related_fields = ['order', 'product']
|
select_related_fields = ['order', 'material']
|
||||||
filterset_fields = ['order', 'product']
|
filterset_fields = ['order', 'material']
|
||||||
ordering = ['create_time']
|
ordering = ['create_time']
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue