67 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
| 
 | |
| from rest_framework import serializers
 | |
| 
 | |
| from utils.mixins import DynamicFieldsSerializerMixin
 | |
| 
 | |
| from .models import Contract, Customer, Order
 | |
| 
 | |
| from apps.mtm.serializers import MaterialSimpleSerializer
 | |
| from utils.tools import ranstr
 | |
| 
 | |
| class CustomerSerializer(serializers.ModelSerializer):
 | |
|     class Meta:
 | |
|         model = Customer
 | |
|         fields = '__all__'
 | |
| 
 | |
| class CustomerCreateUpdateSerializer(serializers.ModelSerializer):
 | |
|     class Meta:
 | |
|         model = Customer
 | |
|         fields = ['name', 'address', 'contact', 'contact_phone', 'description']
 | |
| 
 | |
| class CustomerSimpleSerializer(serializers.ModelSerializer):
 | |
|     class Meta:
 | |
|         model = Customer
 | |
|         fields = ['id', 'name', 'address', 'contact', 'contact_phone']
 | |
| 
 | |
| class ContractSerializer(serializers.ModelSerializer):
 | |
|     customer_  = CustomerSimpleSerializer(source='customer', read_only=True)
 | |
|     class Meta:
 | |
|         model = Contract
 | |
|         fields = '__all__'
 | |
| 
 | |
| class ContractSimpleSerializer(serializers.ModelSerializer):
 | |
|     class Meta:
 | |
|         model = Contract
 | |
|         fields = ['id', 'name', 'number']
 | |
| 
 | |
| class ContractCreateUpdateSerializer(serializers.ModelSerializer):
 | |
|     class Meta:
 | |
|         model = Contract
 | |
|         fields = ['name', 'number', 'amount', 'customer', 'sign_date', 'description', 'invoice']
 | |
| 
 | |
| 
 | |
| class OrderCreateUpdateSerializer(serializers.ModelSerializer):
 | |
|     class Meta:
 | |
|         model = Order
 | |
|         fields = ['customer', 'contract', 'product', 'count', 'delivery_date', 'need_mtest']
 | |
|     
 | |
|     def create(self, validated_data):
 | |
|         validated_data['number'] = 'DD' + ranstr(7)
 | |
|         return super().create(validated_data)
 | |
| 
 | |
| class OrderSerializer(DynamicFieldsSerializerMixin, serializers.ModelSerializer):
 | |
|     contract_ =  ContractSimpleSerializer(source='contract', read_only=True)
 | |
|     customer_  = CustomerSimpleSerializer(source='customer', read_only=True)
 | |
|     product_  = MaterialSimpleSerializer(source='product', read_only=True)
 | |
|     class Meta:
 | |
|         model = Order
 | |
|         fields = '__all__'
 | |
| 
 | |
| class OrderSimpleSerializer(serializers.ModelSerializer):
 | |
|     contract_ =  ContractSimpleSerializer(source='contract', read_only=True)
 | |
|     customer_  = CustomerSimpleSerializer(source='customer', read_only=True)
 | |
|     class Meta:
 | |
|         model = Order
 | |
|         fields = ['id', 'number', 'contract_',  'customer_', 'need_mtest', 'delivery_date']
 | |
| 
 |