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)
|
||||
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)
|
||||
|
||||
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
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']
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue