update for wage

This commit is contained in:
2026-01-24 21:29:06 +03:30
parent ff81caf8f4
commit 1c27648db1
4 changed files with 856 additions and 57 deletions

View File

@@ -1346,6 +1346,24 @@ class KillHouseforPurchaseRequestSerializer(serializers.ModelSerializer):
"total_limitation": total_limitation,
}
# def get_wage_info(self, obj):
# total_unpaid_wage = 0
# total_paid_wage = 0
# kill_house_kill_requests_wage = 0
# real_free_sale_wage = 0
# # role = self.context.get('request').GET['role']
# total_unpaid_wage = get_finance_info(obj)['total_price']
# slaughter_transactions = InternalTransaction.objects.filter(Q(kill_house=obj) | Q(parent_kill_house=obj),
# status='completed',
# trash=False)
#
# total_paid_wage += slaughter_transactions.aggregate(total=Sum('amount'))[
# 'total'] or 0
#
# return {
# "user_token": 'k' + obj.kill_house_operator.user.user_gate_way_id,
# "total_amount": total_unpaid_wage - (total_paid_wage + obj.off)
# }
def get_wage_info(self, obj):
total_unpaid_wage = 0
total_paid_wage = 0
@@ -1353,9 +1371,14 @@ class KillHouseforPurchaseRequestSerializer(serializers.ModelSerializer):
real_free_sale_wage = 0
# role = self.context.get('request').GET['role']
total_unpaid_wage = get_finance_info(obj)['total_price']
slaughter_transactions = InternalTransaction.objects.filter(Q(kill_house=obj) | Q(parent_kill_house=obj),
status='completed',
trash=False)
if obj.killer and obj.type == 'public':
slaughter_transactions = InternalTransaction.objects.filter(kill_house=obj,parent_kill_house=obj,
status='completed',
trash=False)
else:
slaughter_transactions = InternalTransaction.objects.filter(Q(kill_house=obj) | Q(parent_kill_house=obj),
status='completed',
trash=False)
total_paid_wage += slaughter_transactions.aggregate(total=Sum('amount'))[
'total'] or 0
@@ -1531,6 +1554,55 @@ class KillHouseForNewWageInormationSerializer(serializers.ModelSerializer):
model = KillHouse
fields = ['key', 'name', 'wage_info', 'shares']
# def get_wage_info(self, obj):
# date1 = None
# date2 = None
# if self.context.get('request').GET.get('date1'):
# date1 = datetime.datetime.strptime(str(self.context.get('request').GET['date1']),
# '%Y-%m-%d').date()
# date2 = datetime.datetime.strptime(str(self.context.get('request').GET['date2']),
# '%Y-%m-%d').date()
# total_paid_wage = 0
# if date1:
# # finance_info = get_kill_house_finance_info(obj,date1,date2)
# finance_info = get_finance_info(obj, date1, date2)
# slaughter_transactions = InternalTransaction.objects.filter(
# Q(kill_house=obj) | Q(parent_kill_house=obj), status='completed', date__date__gte=date1,
# date__date__lte=date2,
# trash=False)
# else:
# # finance_info = get_kill_house_finance_info(obj)
# finance_info = get_finance_info(obj)
# slaughter_transactions = InternalTransaction.objects.filter(
# Q(kill_house=obj) | Q(parent_kill_house=obj), status='completed',
# trash=False)
#
# total_paid_wage += slaughter_transactions.aggregate(total=Sum('amount'))[
# 'total'] or 0
#
# return {
# "wage_counting_type": wage_counting_type,
# "total_wage": finance_info['total_price'],
# "total_paid_wage": total_paid_wage,
# "off": obj.off,
# "total_unpaid_wage": finance_info['total_price'] - (total_paid_wage + obj.off),
# "province_kill_requests_total_wage": finance_info['total_pure_province_carcasses_price'],
# "province_kill_requests_total_weight": finance_info['total_pure_province_carcasses_weight'],
# "free_bars_live_total_wage": finance_info['total_out_live_buying_province_carcasses_price'],
# "free_bars_live_total_weight": finance_info['total_out_live_buying_province_carcasses_weight'],
# "free_bars_carcases_total_wage": finance_info['total_out_carcasses_buying_province_carcasses_price'],
# "free_bars_carcases_total_weight": finance_info['total_out_carcasses_buying_province_carcasses_weight'],
# "free_bars_out_province_carcases_total_wage": finance_info['total_out_selling_province_carcasses_price'],
# "free_bars_out_province_carcases_total_weight": finance_info['total_out_selling_province_carcasses_weight'],
# "total_province_live_weight": finance_info['total_province_live_weight'],
# "total_province_carcasses_weight": finance_info['total_province_carcasses_weight'],
# "province_live_wage_amount": finance_info['province_live_wage_amount'],
# "free_buying_live_weight_amount": finance_info['free_buying_live_weight_amount'],
# "free_buying_carcesses_weight_amount": finance_info['free_buying_carcesses_weight_amount'],
# "free_sell_carcesses_weight_amount": finance_info['free_sell_carcesses_weight_amount'],
# "return_total_province_live_weight": finance_info['return_total_province_live_weight'],
# "total_return_pure_province_carcasses_price": finance_info['total_return_pure_province_carcasses_price'],
# }
def get_wage_info(self, obj):
date1 = None
date2 = None
@@ -1543,16 +1615,28 @@ class KillHouseForNewWageInormationSerializer(serializers.ModelSerializer):
if date1:
# finance_info = get_kill_house_finance_info(obj,date1,date2)
finance_info = get_finance_info(obj, date1, date2)
slaughter_transactions = InternalTransaction.objects.filter(
Q(kill_house=obj) | Q(parent_kill_house=obj), status='completed', date__date__gte=date1,
date__date__lte=date2,
trash=False)
if obj.killer and obj.type == 'public':
slaughter_transactions = InternalTransaction.objects.filter(
kill_house=obj,parent_kill_house=obj, status='completed', date__date__gte=date1,
date__date__lte=date2,
trash=False)
else:
slaughter_transactions = InternalTransaction.objects.filter(
Q(kill_house=obj) | Q(parent_kill_house=obj), status='completed', date__date__gte=date1,
date__date__lte=date2,
trash=False)
else:
# finance_info = get_kill_house_finance_info(obj)
finance_info = get_finance_info(obj)
slaughter_transactions = InternalTransaction.objects.filter(
Q(kill_house=obj) | Q(parent_kill_house=obj), status='completed',
trash=False)
if obj.killer and obj.type == 'public':
slaughter_transactions = InternalTransaction.objects.filter(
kill_house=obj,parent_kill_house=obj, status='completed',
trash=False)
else:
slaughter_transactions = InternalTransaction.objects.filter(
Q(kill_house=obj) | Q(parent_kill_house=obj), status='completed',
trash=False)
total_paid_wage += slaughter_transactions.aggregate(total=Sum('amount'))[
'total'] or 0
@@ -1581,6 +1665,182 @@ class KillHouseForNewWageInormationSerializer(serializers.ModelSerializer):
"total_return_pure_province_carcasses_price": finance_info['total_return_pure_province_carcasses_price'],
}
# def get_shares(self, kill_house):
# date1 = None
# date2 = None
# before_total_out_live_buying_province_carcasses_price = 0
# total_wage_type = WageType.objects.filter(trash=False)
# free_buying_live_weight_wage_type = total_wage_type.filter(en_name='live-buy', trash=False).first()
# free_buying_live_weight_wage_type_amount = free_buying_live_weight_wage_type.amount if free_buying_live_weight_wage_type.status == True else 0
#
# if self.context.get('request').GET.get('date1'):
# date1 = datetime.datetime.strptime(str(self.context.get('request').GET['date1']),
# '%Y-%m-%d').date()
# date2 = datetime.datetime.strptime(str(self.context.get('request').GET['date2']),
# '%Y-%m-%d').date()
#
# finance_info = get_finance_info(kill_house, date1, date2) if date1 else get_finance_info(kill_house)
# if date1:
# slaughter_transactions = InternalTransaction.objects.filter(
# Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed', date__date__gte=date1,
# date__date__lte=date2,
# trash=False)
# else:
# slaughter_transactions = InternalTransaction.objects.filter(
# Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
# trash=False)
#
# total_pure_province_carcasses_price = finance_info['total_pure_province_carcasses_price']
# return_total_pure_province_carcasses_price = finance_info['total_return_pure_province_carcasses_price']
# total_out_selling_province_carcasses_price = finance_info['total_out_selling_province_carcasses_price']
# difference_requests_price = finance_info['difference_requests_price']
#
# if new_out_selling_count_wage:
# total_out_live_buying_province_carcasses_price = int(
# (finance_info[
# 'before_total_out_live_buying_province_carcasses_weight'] * before_out_buying_count_wage_amount) + (
# finance_info[
# 'after_total_out_live_buying_province_carcasses_weight'] * free_buying_live_weight_wage_type_amount))
#
# before_total_out_live_buying_province_carcasses_price = finance_info[
# 'before_total_out_live_buying_province_carcasses_weight'] * before_out_buying_count_wage_amount
# else:
# total_out_live_buying_province_carcasses_price = finance_info[
# 'total_out_live_buying_province_carcasses_price']
# total_out_carcasses_buying_province_carcasses_price = finance_info[
# 'total_out_carcasses_buying_province_carcasses_price']
# total_price = finance_info['total_price']
#
# percentages_wage_type = PercentageOfWageType.objects.filter(trash=False)
# union_province_kill_request_percent = percentages_wage_type.filter(
# wage_type__en_name='province-kill-request', share_type__en_name='union').first().percent / 100
# company_province_kill_request_percent = percentages_wage_type.filter(
# wage_type__en_name='province-kill-request', share_type__en_name='company').first().percent / 100
# guilds_province_kill_request_percent = percentages_wage_type.filter(
# wage_type__en_name='province-kill-request', share_type__en_name='guilds').first().percent / 100
# other_province_kill_request_percent = percentages_wage_type.filter(
# wage_type__en_name='province-kill-request', share_type__en_name='other').first().percent / 100
#
# union_free_buying_live_percent = percentages_wage_type.filter(wage_type__en_name='live-buy',
# share_type__en_name='union').first().percent / 100
# union_free_buying_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-buy',
# share_type__en_name='union').first().percent / 100
# company_free_buying_live_percent = percentages_wage_type.filter(wage_type__en_name='live-buy',
# share_type__en_name='company').first().percent / 100
# company_free_buying_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-buy',
# share_type__en_name='company').first().percent / 100
# guilds_free_buying_live_percent = percentages_wage_type.filter(wage_type__en_name='live-buy',
# share_type__en_name='guilds').first().percent / 100
# guilds_free_buying_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-buy',
# share_type__en_name='guilds').first().percent / 100
# other_free_buying_live_percent = percentages_wage_type.filter(wage_type__en_name='live-buy',
# share_type__en_name='other').first().percent / 100
# other_free_buying_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-buy',
# share_type__en_name='other').first().percent / 100
#
# union_free_sell_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-sell',
# share_type__en_name='union').first().percent / 100
# company_free_sell_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-sell',
# share_type__en_name='company').first().percent / 100
# guilds_free_sell_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-sell',
# share_type__en_name='guilds').first().percent / 100
# other_free_sell_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-sell',
# share_type__en_name='other').first().percent / 100
#
# guilds_difference_requests_price = difference_requests_price * guilds_province_kill_request_percent
# other_difference_requests_price = difference_requests_price * other_province_kill_request_percent
# guild_return_province_kill_request_wage = return_total_pure_province_carcasses_price * guilds_province_kill_request_percent
# other_return_province_kill_request_wage = return_total_pure_province_carcasses_price * other_province_kill_request_percent
#
# union_province_kill_request_wage = total_pure_province_carcasses_price * union_province_kill_request_percent
# return_union_province_kill_request_wage = return_total_pure_province_carcasses_price * union_province_kill_request_percent
# union_free_buying_live_wage = (
# total_out_live_buying_province_carcasses_price - before_total_out_live_buying_province_carcasses_price) * union_free_buying_live_percent
# union_free_buying_carcasses_wage = total_out_carcasses_buying_province_carcasses_price * union_free_buying_carcasses_percent
# union_free_sell_carcasses_wage = total_out_selling_province_carcasses_price * union_free_sell_carcasses_percent
# union_total_wage = union_province_kill_request_wage + union_free_buying_live_wage + union_free_buying_carcasses_wage + union_free_sell_carcasses_wage + return_union_province_kill_request_wage
# union_total_paid_wage = slaughter_transactions.aggregate(total=Sum('union_share'))['total'] or 0
# union_total_unpaid_wage = union_total_wage - union_total_paid_wage
# company_province_kill_request_wage = (
# total_pure_province_carcasses_price * company_province_kill_request_percent) + (
# guilds_difference_requests_price + other_difference_requests_price)
# return_company_province_kill_request_wage = (
# return_total_pure_province_carcasses_price * company_province_kill_request_percent) + (
# guild_return_province_kill_request_wage + other_return_province_kill_request_wage)
# company_free_buying_live_wage = ((
# total_out_live_buying_province_carcasses_price - before_total_out_live_buying_province_carcasses_price) * company_free_buying_live_percent) + before_total_out_live_buying_province_carcasses_price
# company_free_buying_carcasses_wage = total_out_carcasses_buying_province_carcasses_price * company_free_buying_carcasses_percent
# company_free_sell_carcasses_wage = total_out_selling_province_carcasses_price * company_free_sell_carcasses_percent
# company_total_wage = company_province_kill_request_wage + company_free_buying_live_wage + company_free_buying_carcasses_wage + company_free_sell_carcasses_wage + return_company_province_kill_request_wage
# company_total_paid_wage = slaughter_transactions.aggregate(total=Sum('company_share'))['total'] or 0
# company_total_unpaid_wage = company_total_wage - company_total_paid_wage
#
# guilds_province_kill_request_wage = (
# total_pure_province_carcasses_price * guilds_province_kill_request_percent) - guilds_difference_requests_price
# return_guilds_province_kill_request_wage = 0
# guilds_free_buying_live_wage = (
# total_out_live_buying_province_carcasses_price - before_total_out_live_buying_province_carcasses_price) * guilds_free_buying_live_percent
# guilds_free_buying_carcasses_wage = total_out_carcasses_buying_province_carcasses_price * guilds_free_buying_carcasses_percent
# guilds_free_sell_carcasses_wage = total_out_selling_province_carcasses_price * guilds_free_sell_carcasses_percent
# guilds_total_wage = guilds_province_kill_request_wage + guilds_free_buying_live_wage + guilds_free_buying_carcasses_wage + guilds_free_sell_carcasses_wage
# guilds_total_paid_wage = slaughter_transactions.aggregate(total=Sum('guilds_share'))['total'] or 0
# guilds_total_unpaid_wage = guilds_total_wage - guilds_total_paid_wage
#
# other_province_kill_request_wage = (
# total_pure_province_carcasses_price * other_province_kill_request_percent) - other_difference_requests_price
# return_other_province_kill_request_wage = 0
# other_free_buying_live_wage = (
# total_out_live_buying_province_carcasses_price - before_total_out_live_buying_province_carcasses_price) * other_free_buying_live_percent
# other_free_buying_carcasses_wage = total_out_carcasses_buying_province_carcasses_price * other_free_buying_carcasses_percent
# other_free_sell_carcasses_wage = total_out_selling_province_carcasses_price * other_free_sell_carcasses_percent
# other_total_wage = other_province_kill_request_wage + other_free_buying_live_wage + other_free_buying_carcasses_wage + other_free_sell_carcasses_wage
# other_total_paid_wage = slaughter_transactions.aggregate(total=Sum('other_share'))['total'] or 0
# other_total_unpaid_wage = other_total_wage - other_total_paid_wage
# return [
# {
# "name": "اتحادیه",
# "province_kill_request_wage": union_province_kill_request_wage,
# "return_province_kill_request_wage": return_union_province_kill_request_wage,
# "free_buying_live_wage": union_free_buying_live_wage,
# "free_buying_carcasses_wage": union_free_buying_carcasses_wage,
# "free_sell_carcasses_wage": union_free_sell_carcasses_wage,
# "total_wage": union_total_wage,
# "total_paid_wage": union_total_paid_wage,
# "total_unpaid_wage": union_total_unpaid_wage,
# },
# {
# "name": "شرکت",
# "province_kill_request_wage": company_province_kill_request_wage,
# "return_province_kill_request_wage": return_company_province_kill_request_wage,
# "free_buying_live_wage": company_free_buying_live_wage,
# "free_buying_carcasses_wage": company_free_buying_carcasses_wage,
# "free_sell_carcasses_wage": company_free_sell_carcasses_wage,
# "total_wage": company_total_wage,
# "total_paid_wage": company_total_paid_wage,
# "total_unpaid_wage": company_total_unpaid_wage,
# },
# {
# "name": "صنف پروتئین",
# "province_kill_request_wage": guilds_province_kill_request_wage,
# "return_province_kill_request_wage": return_guilds_province_kill_request_wage,
# "free_buying_live_wage": guilds_free_buying_live_wage,
# "free_buying_carcasses_wage": guilds_free_buying_carcasses_wage,
# "free_sell_carcasses_wage": guilds_free_sell_carcasses_wage,
# "total_wage": guilds_total_wage,
# "total_paid_wage": guilds_total_paid_wage,
# "total_unpaid_wage": guilds_total_unpaid_wage,
# },
# {
# "name": "دامپزشک",
# "province_kill_request_wage": other_province_kill_request_wage,
# "return_province_kill_request_wage": return_other_province_kill_request_wage,
# "free_buying_live_wage": other_free_buying_live_wage,
# "free_buying_carcasses_wage": other_free_buying_carcasses_wage,
# "free_sell_carcasses_wage": other_free_sell_carcasses_wage,
# "total_wage": other_total_wage,
# "total_paid_wage": other_total_paid_wage,
# "total_unpaid_wage": other_total_unpaid_wage,
# }]
def get_shares(self, kill_house):
date1 = None
date2 = None
@@ -1597,14 +1857,27 @@ class KillHouseForNewWageInormationSerializer(serializers.ModelSerializer):
finance_info = get_finance_info(kill_house, date1, date2) if date1 else get_finance_info(kill_house)
if date1:
slaughter_transactions = InternalTransaction.objects.filter(
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed', date__date__gte=date1,
date__date__lte=date2,
trash=False)
if kill_house.killer and kill_house.type == 'public':
slaughter_transactions = InternalTransaction.objects.filter(
ill_house=kill_house,parent_kill_house=kill_house, status='completed', date__date__gte=date1,
date__date__lte=date2,
trash=False)
else:
slaughter_transactions = InternalTransaction.objects.filter(
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
date__date__gte=date1,
date__date__lte=date2,
trash=False)
else:
slaughter_transactions = InternalTransaction.objects.filter(
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
trash=False)
if kill_house.killer and kill_house.type == 'public':
slaughter_transactions = InternalTransaction.objects.filter(
kill_house=kill_house,parent_kill_house=kill_house, status='completed',
trash=False)
else:
slaughter_transactions = InternalTransaction.objects.filter(
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
trash=False)
total_pure_province_carcasses_price = finance_info['total_pure_province_carcasses_price']
return_total_pure_province_carcasses_price = finance_info['total_return_pure_province_carcasses_price']
@@ -5025,15 +5298,219 @@ class TotalWageInformationExclusiveKillerSerializer(serializers.ModelSerializer)
model = KillHouse
fields = ['name', 'key', 'wage_info']
# def get_wage_info(self, obj):
# before_total_out_live_buying_province_carcasses_price = 0
# total_wage_type = WageType.objects.filter(trash=False)
# free_buying_live_weight_wage_type = total_wage_type.filter(en_name='live-buy', trash=False).first()
# free_buying_live_weight_wage_type_amount = free_buying_live_weight_wage_type.amount if free_buying_live_weight_wage_type.status == True else 0
# finance_info = get_kill_house_finance_info(obj)
# slaughter_transactions = InternalTransaction.objects.filter(
# kill_house=obj, status='completed',
# trash=False)
#
# total_paid_wage = slaughter_transactions.aggregate(total=Sum('amount'))[
# 'total'] or 0
#
# total_pure_province_carcasses_price = finance_info['total_pure_province_carcasses_price']
# return_total_pure_province_carcasses_price = finance_info['total_return_pure_province_carcasses_price']
# total_out_selling_province_carcasses_price = finance_info['total_out_selling_province_carcasses_price']
# difference_requests_price = finance_info['difference_requests_price']
#
# if new_out_selling_count_wage:
# total_out_live_buying_province_carcasses_price = int(
# (finance_info[
# 'before_total_out_live_buying_province_carcasses_weight'] * before_out_buying_count_wage_amount) + (
# finance_info[
# 'after_total_out_live_buying_province_carcasses_weight'] * free_buying_live_weight_wage_type_amount))
#
# before_total_out_live_buying_province_carcasses_price = finance_info[
# 'before_total_out_live_buying_province_carcasses_weight'] * before_out_buying_count_wage_amount
# else:
# total_out_live_buying_province_carcasses_price = finance_info[
# 'total_out_live_buying_province_carcasses_price']
# total_out_carcasses_buying_province_carcasses_price = finance_info[
# 'total_out_carcasses_buying_province_carcasses_price']
# total_price = finance_info['total_price']
#
# # total_pure_province_carcasses_price = finance_info['total_pure_province_carcasses_price']
# # total_out_selling_province_carcasses_price = finance_info['total_out_selling_province_carcasses_price']
# # total_out_live_buying_province_carcasses_price = finance_info['total_out_live_buying_province_carcasses_price']
# # total_out_carcasses_buying_province_carcasses_price = finance_info[
# # 'total_out_carcasses_buying_province_carcasses_price']
# # total_price = finance_info['total_price']
#
# percentages_wage_type = PercentageOfWageType.objects.filter(trash=False)
# union_province_kill_request_percent = percentages_wage_type.filter(
# wage_type__en_name='province-kill-request', share_type__en_name='union').first().percent / 100
# company_province_kill_request_percent = percentages_wage_type.filter(
# wage_type__en_name='province-kill-request', share_type__en_name='company').first().percent / 100
# guilds_province_kill_request_percent = percentages_wage_type.filter(
# wage_type__en_name='province-kill-request', share_type__en_name='guilds').first().percent / 100
# other_province_kill_request_percent = percentages_wage_type.filter(
# wage_type__en_name='province-kill-request', share_type__en_name='other').first().percent / 100
#
# union_free_buying_live_percent = percentages_wage_type.filter(wage_type__en_name='live-buy',
# share_type__en_name='union').first().percent / 100
# union_free_buying_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-buy',
# share_type__en_name='union').first().percent / 100
# company_free_buying_live_percent = percentages_wage_type.filter(wage_type__en_name='live-buy',
# share_type__en_name='company').first().percent / 100
# company_free_buying_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-buy',
# share_type__en_name='company').first().percent / 100
# guilds_free_buying_live_percent = percentages_wage_type.filter(wage_type__en_name='live-buy',
# share_type__en_name='guilds').first().percent / 100
# guilds_free_buying_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-buy',
# share_type__en_name='guilds').first().percent / 100
# other_free_buying_live_percent = percentages_wage_type.filter(wage_type__en_name='live-buy',
# share_type__en_name='other').first().percent / 100
# other_free_buying_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-buy',
# share_type__en_name='other').first().percent / 100
#
# union_free_sell_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-sell',
# share_type__en_name='union').first().percent / 100
# company_free_sell_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-sell',
# share_type__en_name='company').first().percent / 100
# guilds_free_sell_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-sell',
# share_type__en_name='guilds').first().percent / 100
# other_free_sell_carcasses_percent = percentages_wage_type.filter(wage_type__en_name='carcasse-sell',
# share_type__en_name='other').first().percent / 100
#
# guilds_difference_requests_price = difference_requests_price * guilds_province_kill_request_percent
# other_difference_requests_price = difference_requests_price * other_province_kill_request_percent
# guild_return_province_kill_request_wage = return_total_pure_province_carcasses_price * guilds_province_kill_request_percent
# other_return_province_kill_request_wage = return_total_pure_province_carcasses_price * other_province_kill_request_percent
#
# union_province_kill_request_wage = total_pure_province_carcasses_price * union_province_kill_request_percent
# return_union_province_kill_request_wage = return_total_pure_province_carcasses_price * union_province_kill_request_percent
# union_free_buying_live_wage = (
# total_out_live_buying_province_carcasses_price - before_total_out_live_buying_province_carcasses_price) * union_free_buying_live_percent
# union_free_buying_carcasses_wage = total_out_carcasses_buying_province_carcasses_price * union_free_buying_carcasses_percent
# union_free_sell_carcasses_wage = total_out_selling_province_carcasses_price * union_free_sell_carcasses_percent
# union_total_wage = union_province_kill_request_wage + union_free_buying_live_wage + union_free_buying_carcasses_wage + union_free_sell_carcasses_wage + return_union_province_kill_request_wage
# union_total_paid_wage = slaughter_transactions.aggregate(total=Sum('union_share'))['total'] or 0
# union_total_unpaid_wage = union_total_wage - union_total_paid_wage
# company_province_kill_request_wage = (
# total_pure_province_carcasses_price * company_province_kill_request_percent) + (
# guilds_difference_requests_price + other_difference_requests_price)
# return_company_province_kill_request_wage = (
# return_total_pure_province_carcasses_price * company_province_kill_request_percent) + (
# guild_return_province_kill_request_wage + other_return_province_kill_request_wage)
# company_free_buying_live_wage = ((
# total_out_live_buying_province_carcasses_price - before_total_out_live_buying_province_carcasses_price) * company_free_buying_live_percent) + before_total_out_live_buying_province_carcasses_price
# company_free_buying_carcasses_wage = total_out_carcasses_buying_province_carcasses_price * company_free_buying_carcasses_percent
# company_free_sell_carcasses_wage = total_out_selling_province_carcasses_price * company_free_sell_carcasses_percent
# company_total_wage = company_province_kill_request_wage + company_free_buying_live_wage + company_free_buying_carcasses_wage + company_free_sell_carcasses_wage + return_company_province_kill_request_wage
# company_total_paid_wage = slaughter_transactions.aggregate(total=Sum('company_share'))['total'] or 0
# company_total_unpaid_wage = company_total_wage - company_total_paid_wage
#
# guilds_province_kill_request_wage = (
# total_pure_province_carcasses_price * guilds_province_kill_request_percent) - guilds_difference_requests_price
# return_guilds_province_kill_request_wage = 0
# guilds_free_buying_live_wage = (
# total_out_live_buying_province_carcasses_price - before_total_out_live_buying_province_carcasses_price) * guilds_free_buying_live_percent
# guilds_free_buying_carcasses_wage = total_out_carcasses_buying_province_carcasses_price * guilds_free_buying_carcasses_percent
# guilds_free_sell_carcasses_wage = total_out_selling_province_carcasses_price * guilds_free_sell_carcasses_percent
# guilds_total_wage = guilds_province_kill_request_wage + guilds_free_buying_live_wage + guilds_free_buying_carcasses_wage + guilds_free_sell_carcasses_wage
# guilds_total_paid_wage = slaughter_transactions.aggregate(total=Sum('guilds_share'))['total'] or 0
# guilds_total_unpaid_wage = guilds_total_wage - guilds_total_paid_wage
#
# other_province_kill_request_wage = (
# total_pure_province_carcasses_price * other_province_kill_request_percent) - other_difference_requests_price
# return_other_province_kill_request_wage = 0
# other_free_buying_live_wage = (
# total_out_live_buying_province_carcasses_price - before_total_out_live_buying_province_carcasses_price) * other_free_buying_live_percent
# other_free_buying_carcasses_wage = total_out_carcasses_buying_province_carcasses_price * other_free_buying_carcasses_percent
# other_free_sell_carcasses_wage = total_out_selling_province_carcasses_price * other_free_sell_carcasses_percent
# other_total_wage = other_province_kill_request_wage + other_free_buying_live_wage + other_free_buying_carcasses_wage + other_free_sell_carcasses_wage
# other_total_paid_wage = slaughter_transactions.aggregate(total=Sum('other_share'))['total'] or 0
# other_total_unpaid_wage = other_total_wage - other_total_paid_wage
#
# shares = [
# {
# "name": "اتحادیه",
# "province_kill_request_wage": union_province_kill_request_wage,
# "return_province_kill_request_wage": return_union_province_kill_request_wage,
# "free_buying_live_wage": union_free_buying_live_wage,
# "free_buying_carcasses_wage": union_free_buying_carcasses_wage,
# "free_sell_carcasses_wage": union_free_sell_carcasses_wage,
# "total_wage": union_total_wage,
# "total_paid_wage": union_total_paid_wage,
# "total_unpaid_wage": union_total_unpaid_wage,
# },
# {
# "name": "شرکت",
# "province_kill_request_wage": company_province_kill_request_wage,
# "return_province_kill_request_wage": return_company_province_kill_request_wage,
# "free_buying_live_wage": company_free_buying_live_wage,
# "free_buying_carcasses_wage": company_free_buying_carcasses_wage,
# "free_sell_carcasses_wage": company_free_sell_carcasses_wage,
# "total_wage": company_total_wage,
# "total_paid_wage": company_total_paid_wage,
# "total_unpaid_wage": company_total_unpaid_wage,
# },
# {
# "name": "صنف پروتئین",
# "province_kill_request_wage": guilds_province_kill_request_wage,
# "return_province_kill_request_wage": return_guilds_province_kill_request_wage,
# "free_buying_live_wage": guilds_free_buying_live_wage,
# "free_buying_carcasses_wage": guilds_free_buying_carcasses_wage,
# "free_sell_carcasses_wage": guilds_free_sell_carcasses_wage,
# "total_wage": guilds_total_wage,
# "total_paid_wage": guilds_total_paid_wage,
# "total_unpaid_wage": guilds_total_unpaid_wage,
# },
# {
# "name": "دامپزشک",
# "province_kill_request_wage": other_province_kill_request_wage,
# "return_province_kill_request_wage": return_other_province_kill_request_wage,
# "free_buying_live_wage": other_free_buying_live_wage,
# "free_buying_carcasses_wage": other_free_buying_carcasses_wage,
# "free_sell_carcasses_wage": other_free_sell_carcasses_wage,
# "total_wage": other_total_wage,
# "total_paid_wage": other_total_paid_wage,
# "total_unpaid_wage": other_total_unpaid_wage,
# }]
#
# return {
# "wage_counting_type": wage_counting_type,
# "total_wage": finance_info['total_price'],
# "total_paid_wage": total_paid_wage,
# "off": obj.off,
# "total_unpaid_wage": finance_info['total_price'] - (total_paid_wage + obj.off),
# "province_kill_requests_total_wage": finance_info['total_pure_province_carcasses_price'],
# "province_kill_requests_total_weight": finance_info['total_pure_province_carcasses_weight'],
# "free_bars_live_total_wage": finance_info['total_out_live_buying_province_carcasses_price'],
# "free_bars_live_total_weight": finance_info['total_out_live_buying_province_carcasses_weight'],
# "free_bars_carcases_total_wage": finance_info['total_out_carcasses_buying_province_carcasses_price'],
# "free_bars_carcases_total_weight": finance_info['total_out_carcasses_buying_province_carcasses_weight'],
# "free_bars_out_province_carcases_total_wage": finance_info['total_out_selling_province_carcasses_price'],
# "free_bars_out_province_carcases_total_weight": finance_info['total_out_selling_province_carcasses_weight'],
# "total_province_live_weight": finance_info['total_province_live_weight'],
# "total_province_carcasses_weight": finance_info['total_province_carcasses_weight'],
# "province_live_wage_amount": finance_info['province_live_wage_amount'],
# "free_buying_live_weight_amount": finance_info['free_buying_live_weight_amount'],
# "free_buying_carcesses_weight_amount": finance_info['free_buying_carcesses_weight_amount'],
# "free_sell_carcesses_weight_amount": finance_info['free_sell_carcesses_weight_amount'],
# "user_token": 'k' + obj.kill_house_operator.user.user_gate_way_id,
# "shares": shares,
# "return_total_province_live_weight": finance_info['return_total_province_live_weight'],
# "total_return_pure_province_carcasses_price": finance_info['total_return_pure_province_carcasses_price'],
#
# }
def get_wage_info(self, obj):
before_total_out_live_buying_province_carcasses_price = 0
total_wage_type = WageType.objects.filter(trash=False)
free_buying_live_weight_wage_type = total_wage_type.filter(en_name='live-buy', trash=False).first()
free_buying_live_weight_wage_type_amount = free_buying_live_weight_wage_type.amount if free_buying_live_weight_wage_type.status == True else 0
finance_info = get_kill_house_finance_info(obj)
slaughter_transactions = InternalTransaction.objects.filter(
kill_house=obj, status='completed',
trash=False)
if obj.killer and obj.type == 'public':
slaughter_transactions = InternalTransaction.objects.filter(
kill_house=obj,parent_kill_house=obj, status='completed',
trash=False)
else:
slaughter_transactions = InternalTransaction.objects.filter(
kill_house=obj, status='completed',
trash=False)
total_paid_wage = slaughter_transactions.aggregate(total=Sum('amount'))[
'total'] or 0