67 lines
2.6 KiB
Python
67 lines
2.6 KiB
Python
|
|
from rest_framework import serializers
|
||
|
|
|
||
|
|
from LiveStock.models import Cooperative, LiveStockRolseProduct
|
||
|
|
from authentication.serializer.serializer import BankCardSerializer, SystemUserProfileForInspectionSerializer
|
||
|
|
from authentication.serializers import SystemAddressSerializer
|
||
|
|
from ticket.serializers import SystemUserProfileForTicketPermissionSerializer
|
||
|
|
|
||
|
|
|
||
|
|
class CooperativeSerializer(serializers.ModelSerializer):
|
||
|
|
user = SystemUserProfileForInspectionSerializer(read_only=True)
|
||
|
|
address = SystemAddressSerializer(read_only=True)
|
||
|
|
user_bank_info = BankCardSerializer(required=False)
|
||
|
|
|
||
|
|
class Meta:
|
||
|
|
model = Cooperative
|
||
|
|
fields = '__all__'
|
||
|
|
|
||
|
|
|
||
|
|
class CooperativeForSharesSerializer(serializers.ModelSerializer):
|
||
|
|
user = SystemUserProfileForInspectionSerializer(read_only=True)
|
||
|
|
|
||
|
|
class Meta:
|
||
|
|
model = Cooperative
|
||
|
|
fields = ['user', 'name']
|
||
|
|
|
||
|
|
|
||
|
|
class CooperativeForAllocationsReportSerializer(serializers.ModelSerializer):
|
||
|
|
user = SystemUserProfileForInspectionSerializer(read_only=True)
|
||
|
|
info = serializers.SerializerMethodField('get_info')
|
||
|
|
|
||
|
|
class Meta:
|
||
|
|
model = Cooperative
|
||
|
|
fields = ['key','user', 'name','info']
|
||
|
|
|
||
|
|
def get_info(self, obj):
|
||
|
|
products = {
|
||
|
|
"bran":"سبوس",
|
||
|
|
"barley":"جو",
|
||
|
|
"soy":"سویا",
|
||
|
|
"corn":"ذرت",
|
||
|
|
"sheep_concentrate":"کنسانتره گوسفندی",
|
||
|
|
"high_cow_concentrate":"کنسانتره گاو شیری پرتولید",
|
||
|
|
"medium_cow_concentrate":"کنسانتره گاو شیری متوسط",
|
||
|
|
"fattening_calf_concentrate":"کنسانتره گوساله پرواری",
|
||
|
|
}
|
||
|
|
product =products[self.context.get('request').GET['name']]
|
||
|
|
cooperative_roles = LiveStockRolseProduct.objects.get(cooperative=obj,parent_product__name=product)
|
||
|
|
total_weight = cooperative_roles.total_weight
|
||
|
|
total_receipt_weight = cooperative_roles.total_receipt_weight
|
||
|
|
total_allocated_weight = cooperative_roles.total_allocated_weight
|
||
|
|
total_remain_weight = cooperative_roles.total_remain_weight
|
||
|
|
return {
|
||
|
|
"total_weight": total_weight,
|
||
|
|
"total_receipt_weight": total_receipt_weight,
|
||
|
|
"total_allocated_weight": total_allocated_weight,
|
||
|
|
"total_remain_weight": total_remain_weight,
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
class CooperativeForPosSerializer(serializers.ModelSerializer):
|
||
|
|
user = SystemUserProfileForTicketPermissionSerializer(read_only=True)
|
||
|
|
address = SystemAddressSerializer(read_only=True)
|
||
|
|
|
||
|
|
class Meta:
|
||
|
|
model = Cooperative
|
||
|
|
fields = ['user', 'name', 'address']
|