update for wage
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
# Dockerfile
|
# Dockerfile
|
||||||
#FROM python:3.9-slim-bookworm
|
#FROM python:3.9-slim-bookworm
|
||||||
#FROM ghcr.io/seniorkian/python39-rasadyar:1.0.2
|
#FROM ghcr.io/seniorkian/python39-rasadyar:1.0.2
|
||||||
FROM registry-ea28d41763-mnpc.apps.ir-central1.arvancaas.ir/python39-rasadyar:1.0.2
|
#FROM registry-ea28d41763-mnpc.apps.ir-central1.arvancaas.ir/python39-rasadyar:1.0.2
|
||||||
|
FROM registry.hamdocker.ir/seniorkian/python39-rasadyar:1.0.0
|
||||||
ENV TZ="Asia/Tehran"
|
ENV TZ="Asia/Tehran"
|
||||||
#RUN ls /usr/share/zoneinfo && \
|
#RUN ls /usr/share/zoneinfo && \
|
||||||
# cp /usr/share/zoneinfo/Asia/Tehran /etc/localtime && \
|
# cp /usr/share/zoneinfo/Asia/Tehran /etc/localtime && \
|
||||||
|
|||||||
@@ -301,6 +301,243 @@ def get_new_wage_for_free_buying(kill_house_free_sale_bar_info):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# def get_finance_info(kill_house, date1=None, date2=None):
|
||||||
|
# before_total_out_live_buying_province_carcasses_weight = 0
|
||||||
|
# after_total_out_live_buying_province_carcasses_weight = 0
|
||||||
|
# before_new_out_selling = 0
|
||||||
|
# after_new_out_selling = 0
|
||||||
|
# extra_company_amount = 0
|
||||||
|
# total_wage_type = WageType.objects.filter(trash=False)
|
||||||
|
# province_live_wage_type = total_wage_type.filter(en_name='province-kill-request', trash=False).first()
|
||||||
|
# free_buying_live_weight_wage_type = total_wage_type.filter(en_name='live-buy', trash=False).first()
|
||||||
|
# free_buying_carcesses_weight_wage_type = total_wage_type.filter(en_name='carcasse-buy', trash=False).first()
|
||||||
|
# free_sell_carcesses_weight_wage_type = total_wage_type.filter(en_name='carcasse-sell', trash=False).first()
|
||||||
|
# province_live_wage_type_amount = province_live_wage_type.amount if province_live_wage_type.status == True else 0
|
||||||
|
# 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
|
||||||
|
# free_buying_carcesses_weight_wage_type_amount = free_buying_carcesses_weight_wage_type.amount if free_buying_carcesses_weight_wage_type.status == True else 0
|
||||||
|
# free_sell_carcesses_weight_wage_type_amount = free_sell_carcesses_weight_wage_type.amount if free_sell_carcesses_weight_wage_type.status == True else 0
|
||||||
|
#
|
||||||
|
# if date1:
|
||||||
|
# province_kill_requests = ProvinceKillRequest.objects.filter(killhouse_user=kill_house, trash=False,
|
||||||
|
# archive_wage=False, return_to_province=False,
|
||||||
|
# kill_request__recive_date__date__gte=date1,
|
||||||
|
# kill_request__recive_date__date__lte=date2,
|
||||||
|
# state__in=('pending', 'accepted'),
|
||||||
|
# first_car_allocated_quantity=0).order_by('id')
|
||||||
|
#
|
||||||
|
# return_province_kill_requests = ProvinceKillRequest.objects.filter(killhouse_user=kill_house, trash=True,
|
||||||
|
# return_trash=True,
|
||||||
|
# archive_wage=False, return_to_province=False,
|
||||||
|
# kill_request__recive_date__date__gte=date1,
|
||||||
|
# kill_request__recive_date__date__lte=date2,
|
||||||
|
# state__in=('pending', 'accepted'),
|
||||||
|
# first_car_allocated_quantity=0).order_by(
|
||||||
|
# 'id')
|
||||||
|
# kill_house_requests = KillHouseRequest.objects.filter(
|
||||||
|
# Q(Q(killhouse_user=kill_house) & Q(killer=kill_house)) | Q(
|
||||||
|
# Q(killhouse_user=kill_house) & Q(killer__isnull=True)) | Q(
|
||||||
|
# Q(killhouse_user=kill_house) | Q(killer=kill_house)), archive_wage=False,
|
||||||
|
# kill_request__recive_date__date__gte=date1, kill_request__recive_date__date__lte=date2,
|
||||||
|
# trash=False, calculate_status=True
|
||||||
|
# )
|
||||||
|
#
|
||||||
|
# return_kill_house_requests = KillHouseRequest.objects.filter(
|
||||||
|
# Q(Q(killhouse_user=kill_house) & Q(killer=kill_house)) | Q(
|
||||||
|
# Q(killhouse_user=kill_house) & Q(killer__isnull=True)) | Q(
|
||||||
|
# Q(killhouse_user=kill_house) | Q(killer=kill_house)), archive_wage=False,
|
||||||
|
# kill_request__recive_date__date__gte=date1, kill_request__recive_date__date__lte=date2,
|
||||||
|
# trash=True, return_trash=True, calculate_status=True
|
||||||
|
# )
|
||||||
|
# kill_house_free_bar_info = KillHouseFreeBarInformation.objects.filter(
|
||||||
|
# Q(kill_house=kill_house) | Q(exclusive_killer=kill_house),
|
||||||
|
# archive_wage=False,
|
||||||
|
# calculate_status=True, date__date__gte=date1, date__date__lte=date2,
|
||||||
|
# trash=False)
|
||||||
|
# kill_house_free_sale_bar_info = KillHouseFreeSaleBarInformation.objects.filter(
|
||||||
|
# kill_house=kill_house,
|
||||||
|
# archive_wage=False,
|
||||||
|
# calculate_status=True, date__date__gte=date1, date__date__lte=date2,
|
||||||
|
# trash=False)
|
||||||
|
# slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
|
# kill_house=kill_house, status='completed', date__date__gte=date1, date__date__lte=date2,
|
||||||
|
# trash=False)
|
||||||
|
# difference_requests = BarDifferenceRequest.objects.filter(kill_house=kill_house, trash=False, state='accepted',
|
||||||
|
# create_date__date__gte=date1,
|
||||||
|
# create_date__date__lte=date2)
|
||||||
|
# else:
|
||||||
|
#
|
||||||
|
# province_kill_requests = ProvinceKillRequest.objects.filter(killhouse_user=kill_house, trash=False,
|
||||||
|
# archive_wage=False, return_to_province=False,
|
||||||
|
# state__in=('pending', 'accepted'),
|
||||||
|
# first_car_allocated_quantity=0).order_by('id')
|
||||||
|
#
|
||||||
|
# return_province_kill_requests = ProvinceKillRequest.objects.filter(killhouse_user=kill_house, trash=True,
|
||||||
|
# return_trash=True,
|
||||||
|
# archive_wage=False, return_to_province=False,
|
||||||
|
# state__in=('pending', 'accepted'),
|
||||||
|
# first_car_allocated_quantity=0).order_by(
|
||||||
|
# 'id')
|
||||||
|
# kill_house_requests = KillHouseRequest.objects.filter(
|
||||||
|
# Q(Q(killhouse_user=kill_house) & Q(killer=kill_house)) | Q(
|
||||||
|
# Q(killhouse_user=kill_house) & Q(killer__isnull=True)) | Q(
|
||||||
|
# Q(killhouse_user=kill_house) | Q(killer=kill_house)), archive_wage=False,
|
||||||
|
# trash=False, calculate_status=True
|
||||||
|
# )
|
||||||
|
# return_kill_house_requests = KillHouseRequest.objects.filter(
|
||||||
|
# Q(Q(killhouse_user=kill_house) & Q(killer=kill_house)) | Q(
|
||||||
|
# Q(killhouse_user=kill_house) & Q(killer__isnull=True)) | Q(
|
||||||
|
# Q(killhouse_user=kill_house) | Q(killer=kill_house)), archive_wage=False,
|
||||||
|
# trash=True, return_trash=True, calculate_status=True
|
||||||
|
# )
|
||||||
|
# kill_house_free_bar_info = KillHouseFreeBarInformation.objects.filter(
|
||||||
|
# Q(kill_house=kill_house) | Q(exclusive_killer=kill_house),
|
||||||
|
# archive_wage=False,
|
||||||
|
# calculate_status=True,
|
||||||
|
# trash=False)
|
||||||
|
# kill_house_free_sale_bar_info = KillHouseFreeSaleBarInformation.objects.filter(
|
||||||
|
# kill_house=kill_house,
|
||||||
|
# archive_wage=False,
|
||||||
|
# calculate_status=True,
|
||||||
|
# trash=False)
|
||||||
|
# slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
|
# kill_house=kill_house, status='completed',
|
||||||
|
# trash=False)
|
||||||
|
# difference_requests = BarDifferenceRequest.objects.filter(kill_house=kill_house, trash=False, state='accepted')
|
||||||
|
#
|
||||||
|
# total_paid_wage = slaughter_transactions.aggregate(total=Sum('amount'))[
|
||||||
|
# 'total'] or 0
|
||||||
|
# total_province_live_weight = province_kill_requests.aggregate(total=Sum('total_killed_weight'))['total'] or 0
|
||||||
|
# total_province_live_weight += kill_house_requests.aggregate(total=Sum('accepted_real_weight'))['total'] or 0
|
||||||
|
# total_province_live_weight += \
|
||||||
|
# difference_requests.aggregate(total=Sum('weight'))['total'] or 0
|
||||||
|
# difference_requests_weight = \
|
||||||
|
# difference_requests.aggregate(total=Sum('weight'))['total'] or 0
|
||||||
|
# return_total_province_live_weight = return_province_kill_requests.aggregate(total=Sum('total_killed_weight'))[
|
||||||
|
# 'total'] or 0
|
||||||
|
# return_total_province_live_weight += return_kill_house_requests.aggregate(total=Sum('accepted_real_weight'))[
|
||||||
|
# 'total'] or 0
|
||||||
|
#
|
||||||
|
# final_date = '2025-05-28'
|
||||||
|
# total_out_selling_province_carcasses_weight = \
|
||||||
|
# kill_house_free_sale_bar_info.filter(date__date__lte=final_date).aggregate(
|
||||||
|
# total=Sum('real_weight_of_carcasses'))['total'] or 0
|
||||||
|
# new_total_out_selling_province_carcasses_weight = \
|
||||||
|
# kill_house_free_sale_bar_info.filter(date__date__gt=final_date,
|
||||||
|
# quarantine_weight_of_carcasses__gt=0).aggregate(
|
||||||
|
# total_weight=Sum(
|
||||||
|
# Case(
|
||||||
|
# When(real_weight_of_carcasses__lt=F('quarantine_weight_of_carcasses'),
|
||||||
|
# then=F('real_weight_of_carcasses')),
|
||||||
|
# default=F('quarantine_weight_of_carcasses'),
|
||||||
|
# output_field=FloatField()
|
||||||
|
# )
|
||||||
|
# )
|
||||||
|
# )
|
||||||
|
# new_out_selling = new_total_out_selling_province_carcasses_weight['total_weight'] or 0
|
||||||
|
#
|
||||||
|
# total_out_selling_province_carcasses_weight += new_out_selling
|
||||||
|
#
|
||||||
|
# if wage_counting_type == 'live':
|
||||||
|
# total_province_carcasses_weight = total_province_live_weight
|
||||||
|
# total_pure_province_carcasses_weight = total_province_carcasses_weight
|
||||||
|
# else:
|
||||||
|
# return_total_province_live_weight = int(return_total_province_live_weight * 0.75)
|
||||||
|
# total_province_carcasses_weight = total_province_live_weight * 0.75
|
||||||
|
# difference_requests_weight = difference_requests_weight * 0.75
|
||||||
|
# total_out_carcasses_buying_for_pure_province_carcasses_weight = \
|
||||||
|
# kill_house_free_bar_info.aggregate(total=Sum('weight_of_carcasses'))['total'] or 0
|
||||||
|
# out_selling_out_carcasses_buying_difference = total_out_selling_province_carcasses_weight - total_out_carcasses_buying_for_pure_province_carcasses_weight if (
|
||||||
|
# total_out_selling_province_carcasses_weight - total_out_carcasses_buying_for_pure_province_carcasses_weight) > 0 else 0
|
||||||
|
# total_pure_province_carcasses_weight = total_province_carcasses_weight - out_selling_out_carcasses_buying_difference
|
||||||
|
# total_out_live_buying_province_carcasses_weight = \
|
||||||
|
# kill_house_free_bar_info.filter(buy_type='live').aggregate(total=Sum('live_weight'))['total'] or 0
|
||||||
|
# real_total_out_live_buying_province_carcasses_weight = total_out_live_buying_province_carcasses_weight
|
||||||
|
# if new_out_selling_count_wage:
|
||||||
|
# if out_selling_ignore:
|
||||||
|
# before_total_out_live_buying_province_carcasses_weight = \
|
||||||
|
# kill_house_free_bar_info.filter(create_date__date__lt=new_out_selling_count_wage_date,
|
||||||
|
# buy_type='live').aggregate(total=Sum('live_weight'))['total'] or 0
|
||||||
|
# after_total_out_live_buying_province_carcasses_weight = \
|
||||||
|
# kill_house_free_bar_info.filter(create_date__date__gte=new_out_selling_count_wage_date,
|
||||||
|
# buy_type='live').aggregate(total=Sum('live_weight'))['total'] or 0
|
||||||
|
# get_new_wage = get_new_wage_for_free_buying(kill_house_free_sale_bar_info)
|
||||||
|
#
|
||||||
|
# before_new_out_selling = get_new_wage['before_new_out_selling']
|
||||||
|
# after_new_out_selling = get_new_wage['after_new_out_selling']
|
||||||
|
# max_amount = before_total_out_live_buying_province_carcasses_weight * 0.80
|
||||||
|
# if max_amount <= before_new_out_selling:
|
||||||
|
# before_total_out_live_buying_province_carcasses_weight -= max_amount
|
||||||
|
# else:
|
||||||
|
# before_total_out_live_buying_province_carcasses_weight -= before_new_out_selling
|
||||||
|
#
|
||||||
|
# if after_total_out_live_buying_province_carcasses_weight > after_new_out_selling:
|
||||||
|
# extra_company_amount = int(after_new_out_selling * extra_company_amount)
|
||||||
|
# after_total_out_live_buying_province_carcasses_weight -= after_new_out_selling
|
||||||
|
#
|
||||||
|
# else:
|
||||||
|
# extra_company_amount = int(after_total_out_live_buying_province_carcasses_weight * extra_company_amount)
|
||||||
|
#
|
||||||
|
# after_total_out_live_buying_province_carcasses_weight = 0
|
||||||
|
#
|
||||||
|
# total_out_live_buying_province_carcasses_weight = before_total_out_live_buying_province_carcasses_weight + after_total_out_live_buying_province_carcasses_weight
|
||||||
|
#
|
||||||
|
# else:
|
||||||
|
# if out_selling_ignore:
|
||||||
|
# max_amount = total_out_live_buying_province_carcasses_weight * 0.80
|
||||||
|
# if max_amount <= new_out_selling:
|
||||||
|
# total_out_live_buying_province_carcasses_weight -= max_amount
|
||||||
|
# else:
|
||||||
|
# total_out_live_buying_province_carcasses_weight -= new_out_selling
|
||||||
|
#
|
||||||
|
# # else:
|
||||||
|
# # total_out_live_buying_province_carcasses_weight -= total_out_selling_province_quarantine_carcasses_weight
|
||||||
|
# total_out_carcasses_buying_province_carcasses_weight = \
|
||||||
|
# kill_house_free_bar_info.filter(buy_type='carcass').aggregate(total=Sum('weight_of_carcasses'))['total'] or 0
|
||||||
|
#
|
||||||
|
# total_pure_province_carcasses_price = total_pure_province_carcasses_weight * province_live_wage_type_amount
|
||||||
|
# difference_requests_price = difference_requests_weight * province_live_wage_type_amount
|
||||||
|
# total_return_pure_province_carcasses_price = return_total_province_live_weight * province_live_wage_type_amount
|
||||||
|
# total_out_selling_province_carcasses_price = total_out_selling_province_carcasses_weight * free_sell_carcesses_weight_wage_type_amount
|
||||||
|
# if new_out_selling_count_wage:
|
||||||
|
# total_out_live_buying_province_carcasses_price = int(
|
||||||
|
# (before_total_out_live_buying_province_carcasses_weight * before_out_buying_count_wage_amount) + (
|
||||||
|
# after_total_out_live_buying_province_carcasses_weight * free_buying_live_weight_wage_type_amount))
|
||||||
|
# else:
|
||||||
|
# total_out_live_buying_province_carcasses_price = total_out_live_buying_province_carcasses_weight * free_buying_live_weight_wage_type_amount
|
||||||
|
#
|
||||||
|
# total_out_carcasses_buying_province_carcasses_price = total_out_carcasses_buying_province_carcasses_weight * free_buying_carcesses_weight_wage_type_amount
|
||||||
|
# total_price = total_pure_province_carcasses_price + total_out_selling_province_carcasses_price + total_out_live_buying_province_carcasses_price + total_out_carcasses_buying_province_carcasses_price + extra_company_amount + total_return_pure_province_carcasses_price
|
||||||
|
#
|
||||||
|
# return {
|
||||||
|
# "total_province_live_weight": total_province_live_weight,
|
||||||
|
# "total_province_carcasses_weight": total_province_carcasses_weight,
|
||||||
|
# "total_out_selling_province_carcasses_weight": total_out_selling_province_carcasses_weight,
|
||||||
|
# "total_pure_province_carcasses_weight": total_pure_province_carcasses_weight,
|
||||||
|
# "total_pure_province_carcasses_price": total_pure_province_carcasses_price,
|
||||||
|
# "total_out_selling_province_carcasses_price": total_out_selling_province_carcasses_price,
|
||||||
|
# "total_out_carcasses_buying_province_carcasses_weight": total_out_carcasses_buying_province_carcasses_weight,
|
||||||
|
# "total_out_carcasses_buying_province_carcasses_price": total_out_carcasses_buying_province_carcasses_price,
|
||||||
|
# "total_out_live_buying_province_carcasses_weight": real_total_out_live_buying_province_carcasses_weight,
|
||||||
|
# "total_out_live_buying_province_carcasses_price": total_out_live_buying_province_carcasses_price,
|
||||||
|
# "total_paid_wage": total_paid_wage,
|
||||||
|
# "total_price": total_price,
|
||||||
|
# "province_live_wage_amount": province_live_wage_type_amount,
|
||||||
|
# "free_buying_live_weight_amount": free_buying_live_weight_wage_type_amount,
|
||||||
|
# "free_buying_carcesses_weight_amount": free_buying_carcesses_weight_wage_type_amount,
|
||||||
|
# "free_sell_carcesses_weight_amount": free_sell_carcesses_weight_wage_type_amount,
|
||||||
|
# "extra_company_amount": extra_company_amount,
|
||||||
|
# "before_total_out_live_buying_province_carcasses_weight": before_total_out_live_buying_province_carcasses_weight,
|
||||||
|
# "after_total_out_live_buying_province_carcasses_weight": after_total_out_live_buying_province_carcasses_weight,
|
||||||
|
# "before_new_out_selling": before_new_out_selling,
|
||||||
|
# "after_new_out_selling": after_new_out_selling,
|
||||||
|
# "return_total_province_live_weight": return_total_province_live_weight,
|
||||||
|
# "total_return_pure_province_carcasses_price": total_return_pure_province_carcasses_price,
|
||||||
|
# "difference_requests_weight": difference_requests_weight,
|
||||||
|
# "difference_requests_price": difference_requests_price,
|
||||||
|
#
|
||||||
|
# }
|
||||||
|
|
||||||
|
|
||||||
def get_finance_info(kill_house, date1=None, date2=None):
|
def get_finance_info(kill_house, date1=None, date2=None):
|
||||||
before_total_out_live_buying_province_carcasses_weight = 0
|
before_total_out_live_buying_province_carcasses_weight = 0
|
||||||
after_total_out_live_buying_province_carcasses_weight = 0
|
after_total_out_live_buying_province_carcasses_weight = 0
|
||||||
@@ -333,6 +570,19 @@ def get_finance_info(kill_house, date1=None, date2=None):
|
|||||||
state__in=('pending', 'accepted'),
|
state__in=('pending', 'accepted'),
|
||||||
first_car_allocated_quantity=0).order_by(
|
first_car_allocated_quantity=0).order_by(
|
||||||
'id')
|
'id')
|
||||||
|
if kill_house.killer and kill_house.type == 'public':
|
||||||
|
kill_house_requests = KillHouseRequest.objects.filter(
|
||||||
|
killhouse_user=kill_house, archive_wage=False,
|
||||||
|
kill_request__recive_date__date__gte=date1, kill_request__recive_date__date__lte=date2,
|
||||||
|
trash=False, calculate_status=True
|
||||||
|
)
|
||||||
|
|
||||||
|
return_kill_house_requests = KillHouseRequest.objects.filter(
|
||||||
|
killhouse_user=kill_house, archive_wage=False,
|
||||||
|
kill_request__recive_date__date__gte=date1, kill_request__recive_date__date__lte=date2,
|
||||||
|
trash=True, return_trash=True, calculate_status=True
|
||||||
|
)
|
||||||
|
else:
|
||||||
kill_house_requests = KillHouseRequest.objects.filter(
|
kill_house_requests = KillHouseRequest.objects.filter(
|
||||||
Q(Q(killhouse_user=kill_house) & Q(killer=kill_house)) | Q(
|
Q(Q(killhouse_user=kill_house) & Q(killer=kill_house)) | Q(
|
||||||
Q(killhouse_user=kill_house) & Q(killer__isnull=True)) | Q(
|
Q(killhouse_user=kill_house) & Q(killer__isnull=True)) | Q(
|
||||||
@@ -377,6 +627,18 @@ def get_finance_info(kill_house, date1=None, date2=None):
|
|||||||
state__in=('pending', 'accepted'),
|
state__in=('pending', 'accepted'),
|
||||||
first_car_allocated_quantity=0).order_by(
|
first_car_allocated_quantity=0).order_by(
|
||||||
'id')
|
'id')
|
||||||
|
|
||||||
|
if kill_house.killer and kill_house.type == 'public':
|
||||||
|
|
||||||
|
kill_house_requests = KillHouseRequest.objects.filter(
|
||||||
|
killhouse_user=kill_house, archive_wage=False,
|
||||||
|
trash=False, calculate_status=True
|
||||||
|
)
|
||||||
|
return_kill_house_requests = KillHouseRequest.objects.filter(
|
||||||
|
killhouse_user=kill_house, archive_wage=False,
|
||||||
|
trash=True, return_trash=True, calculate_status=True
|
||||||
|
)
|
||||||
|
else:
|
||||||
kill_house_requests = KillHouseRequest.objects.filter(
|
kill_house_requests = KillHouseRequest.objects.filter(
|
||||||
Q(Q(killhouse_user=kill_house) & Q(killer=kill_house)) | Q(
|
Q(Q(killhouse_user=kill_house) & Q(killer=kill_house)) | Q(
|
||||||
Q(killhouse_user=kill_house) & Q(killer__isnull=True)) | Q(
|
Q(killhouse_user=kill_house) & Q(killer__isnull=True)) | Q(
|
||||||
|
|||||||
@@ -1346,6 +1346,24 @@ class KillHouseforPurchaseRequestSerializer(serializers.ModelSerializer):
|
|||||||
"total_limitation": total_limitation,
|
"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):
|
def get_wage_info(self, obj):
|
||||||
total_unpaid_wage = 0
|
total_unpaid_wage = 0
|
||||||
total_paid_wage = 0
|
total_paid_wage = 0
|
||||||
@@ -1353,6 +1371,11 @@ class KillHouseforPurchaseRequestSerializer(serializers.ModelSerializer):
|
|||||||
real_free_sale_wage = 0
|
real_free_sale_wage = 0
|
||||||
# role = self.context.get('request').GET['role']
|
# role = self.context.get('request').GET['role']
|
||||||
total_unpaid_wage = get_finance_info(obj)['total_price']
|
total_unpaid_wage = get_finance_info(obj)['total_price']
|
||||||
|
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),
|
slaughter_transactions = InternalTransaction.objects.filter(Q(kill_house=obj) | Q(parent_kill_house=obj),
|
||||||
status='completed',
|
status='completed',
|
||||||
trash=False)
|
trash=False)
|
||||||
@@ -1531,6 +1554,55 @@ class KillHouseForNewWageInormationSerializer(serializers.ModelSerializer):
|
|||||||
model = KillHouse
|
model = KillHouse
|
||||||
fields = ['key', 'name', 'wage_info', 'shares']
|
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):
|
def get_wage_info(self, obj):
|
||||||
date1 = None
|
date1 = None
|
||||||
date2 = None
|
date2 = None
|
||||||
@@ -1543,6 +1615,12 @@ class KillHouseForNewWageInormationSerializer(serializers.ModelSerializer):
|
|||||||
if date1:
|
if date1:
|
||||||
# finance_info = get_kill_house_finance_info(obj,date1,date2)
|
# finance_info = get_kill_house_finance_info(obj,date1,date2)
|
||||||
finance_info = get_finance_info(obj, date1, date2)
|
finance_info = get_finance_info(obj, date1, date2)
|
||||||
|
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(
|
slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
Q(kill_house=obj) | Q(parent_kill_house=obj), status='completed', date__date__gte=date1,
|
Q(kill_house=obj) | Q(parent_kill_house=obj), status='completed', date__date__gte=date1,
|
||||||
date__date__lte=date2,
|
date__date__lte=date2,
|
||||||
@@ -1550,6 +1628,12 @@ class KillHouseForNewWageInormationSerializer(serializers.ModelSerializer):
|
|||||||
else:
|
else:
|
||||||
# finance_info = get_kill_house_finance_info(obj)
|
# finance_info = get_kill_house_finance_info(obj)
|
||||||
finance_info = get_finance_info(obj)
|
finance_info = get_finance_info(obj)
|
||||||
|
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(
|
slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
Q(kill_house=obj) | Q(parent_kill_house=obj), status='completed',
|
Q(kill_house=obj) | Q(parent_kill_house=obj), status='completed',
|
||||||
trash=False)
|
trash=False)
|
||||||
@@ -1581,6 +1665,182 @@ class KillHouseForNewWageInormationSerializer(serializers.ModelSerializer):
|
|||||||
"total_return_pure_province_carcasses_price": finance_info['total_return_pure_province_carcasses_price'],
|
"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):
|
def get_shares(self, kill_house):
|
||||||
date1 = None
|
date1 = None
|
||||||
date2 = None
|
date2 = None
|
||||||
@@ -1597,10 +1857,23 @@ class KillHouseForNewWageInormationSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
finance_info = get_finance_info(kill_house, date1, date2) if date1 else get_finance_info(kill_house)
|
finance_info = get_finance_info(kill_house, date1, date2) if date1 else get_finance_info(kill_house)
|
||||||
if date1:
|
if date1:
|
||||||
|
if kill_house.killer and kill_house.type == 'public':
|
||||||
slaughter_transactions = InternalTransaction.objects.filter(
|
slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed', date__date__gte=date1,
|
ill_house=kill_house,parent_kill_house=kill_house, status='completed', date__date__gte=date1,
|
||||||
date__date__lte=date2,
|
date__date__lte=date2,
|
||||||
trash=False)
|
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:
|
||||||
|
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:
|
else:
|
||||||
slaughter_transactions = InternalTransaction.objects.filter(
|
slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
|
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
|
||||||
@@ -5025,12 +5298,216 @@ class TotalWageInformationExclusiveKillerSerializer(serializers.ModelSerializer)
|
|||||||
model = KillHouse
|
model = KillHouse
|
||||||
fields = ['name', 'key', 'wage_info']
|
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):
|
def get_wage_info(self, obj):
|
||||||
before_total_out_live_buying_province_carcasses_price = 0
|
before_total_out_live_buying_province_carcasses_price = 0
|
||||||
total_wage_type = WageType.objects.filter(trash=False)
|
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 = 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
|
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)
|
finance_info = get_kill_house_finance_info(obj)
|
||||||
|
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(
|
slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
kill_house=obj, status='completed',
|
kill_house=obj, status='completed',
|
||||||
trash=False)
|
trash=False)
|
||||||
|
|||||||
@@ -19736,7 +19736,13 @@ class KillHouseLock(APIView):
|
|||||||
kill_house = KillHouse.objects.filter(kill_house_operator__user=user, trash=False).first()
|
kill_house = KillHouse.objects.filter(kill_house_operator__user=user, trash=False).first()
|
||||||
kill_house_purchase = KillHousePurchaseRequest.objects.filter(kill_house=kill_house).first()
|
kill_house_purchase = KillHousePurchaseRequest.objects.filter(kill_house=kill_house).first()
|
||||||
total_unpaid_wage = get_finance_info(kill_house)['total_price']
|
total_unpaid_wage = get_finance_info(kill_house)['total_price']
|
||||||
slaughter_transactions = InternalTransaction.objects.filter(Q(kill_house=kill_house) | Q(parent_kill_house=kill_house),
|
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',
|
status='completed',
|
||||||
trash=False)
|
trash=False)
|
||||||
|
|
||||||
|
|||||||
@@ -2568,12 +2568,13 @@ class POSMachineForLiveStockTransactionsSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
|
|
||||||
class POSDeviceSessionForInspectionSerializer(serializers.ModelSerializer):
|
class POSDeviceSessionForInspectionSerializer(serializers.ModelSerializer):
|
||||||
pos = POSMachineForInspectionsSerializer(read_only=True)
|
lat = serializers.FloatField(source='lot', read_only=True)
|
||||||
|
lng = serializers.FloatField(read_only=True)
|
||||||
|
guilds_name = serializers.CharField(source='pos.guild.guilds_name', read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = POSDeviceSession
|
model = POSDeviceSession
|
||||||
fields = ['key', 'name', 'pos', 'version', 'session_last_seen_date', 'lng', 'lot']
|
fields = ['lat', 'lng', 'guilds_name']
|
||||||
|
|
||||||
|
|
||||||
class POSMachineForServerSerializer(serializers.ModelSerializer):
|
class POSMachineForServerSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
@@ -4001,8 +4002,26 @@ class TotalWageInformationSerializer(serializers.ModelSerializer):
|
|||||||
except:
|
except:
|
||||||
user = SystemUserProfile.objects.get(key=self.context.get('request').GET['key'])
|
user = SystemUserProfile.objects.get(key=self.context.get('request').GET['key'])
|
||||||
kill_house = KillHouse.objects.filter(kill_house_operator__user=user, trash=False).first()
|
kill_house = KillHouse.objects.filter(kill_house_operator__user=user, trash=False).first()
|
||||||
|
# if date1:
|
||||||
|
# finance_info = get_finance_info(kill_house, date1, date2)
|
||||||
|
# slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
|
# Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), date__date__gte=date1,
|
||||||
|
# date__date__lte=date2, status='completed',
|
||||||
|
# trash=False)
|
||||||
|
#
|
||||||
|
# else:
|
||||||
|
# finance_info = get_finance_info(kill_house)
|
||||||
|
# slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
|
# Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
|
||||||
|
# trash=False)
|
||||||
if date1:
|
if date1:
|
||||||
finance_info = get_finance_info(kill_house, date1, date2)
|
finance_info = get_finance_info(kill_house, date1, date2)
|
||||||
|
if kill_house.killer and kill_house.type == 'public':
|
||||||
|
slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
|
kill_house=kill_house,parent_kill_house=kill_house, date__date__gte=date1,
|
||||||
|
date__date__lte=date2, status='completed',
|
||||||
|
trash=False)
|
||||||
|
else:
|
||||||
slaughter_transactions = InternalTransaction.objects.filter(
|
slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), date__date__gte=date1,
|
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), date__date__gte=date1,
|
||||||
date__date__lte=date2, status='completed',
|
date__date__lte=date2, status='completed',
|
||||||
@@ -4010,6 +4029,12 @@ class TotalWageInformationSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
finance_info = get_finance_info(kill_house)
|
finance_info = get_finance_info(kill_house)
|
||||||
|
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(
|
slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
|
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
|
||||||
trash=False)
|
trash=False)
|
||||||
|
|||||||
@@ -1502,6 +1502,7 @@ class DispenserInformationViewSet(viewsets.ModelViewSet):
|
|||||||
dispenser_info.dispenser.save()
|
dispenser_info.dispenser.save()
|
||||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
class RepresentativeViewSet(viewsets.ModelViewSet):
|
class RepresentativeViewSet(viewsets.ModelViewSet):
|
||||||
queryset = Representative.objects.all()
|
queryset = Representative.objects.all()
|
||||||
permission_classes = [TokenHasReadWriteScope]
|
permission_classes = [TokenHasReadWriteScope]
|
||||||
@@ -3880,8 +3881,8 @@ class StewardFreeBarInformationViewSet(viewsets.ModelViewSet):
|
|||||||
steward = Guilds.objects.get(user=user, active=True, trash=False)
|
steward = Guilds.objects.get(user=user, active=True, trash=False)
|
||||||
product = RolesProducts.objects.get(key=request.data['product_key'], trash=False)
|
product = RolesProducts.objects.get(key=request.data['product_key'], trash=False)
|
||||||
request.data.pop('product_key')
|
request.data.pop('product_key')
|
||||||
dispenser = request.data.pop('dispenser',None)
|
dispenser = request.data.pop('dispenser', None)
|
||||||
representative = request.data.pop('representative',None)
|
representative = request.data.pop('representative', None)
|
||||||
try:
|
try:
|
||||||
image = request.data['bar_image']
|
image = request.data['bar_image']
|
||||||
request.data.pop('bar_image')
|
request.data.pop('bar_image')
|
||||||
@@ -4187,8 +4188,8 @@ class StewardFreeSaleBarInformationViewSet(viewsets.ModelViewSet):
|
|||||||
buyer = OutProvinceCarcassesBuyer.objects.get(key=request.data.pop('buyer_key', None), trash=False)
|
buyer = OutProvinceCarcassesBuyer.objects.get(key=request.data.pop('buyer_key', None), trash=False)
|
||||||
date = datetime.strptime(str(request.data['date']), '%Y-%m-%d').date()
|
date = datetime.strptime(str(request.data['date']), '%Y-%m-%d').date()
|
||||||
production_date = datetime.strptime(str(request.data['production_date']), '%Y-%m-%d').date()
|
production_date = datetime.strptime(str(request.data['production_date']), '%Y-%m-%d').date()
|
||||||
dispenser = request.data.pop('dispenser',None)
|
dispenser = request.data.pop('dispenser', None)
|
||||||
representative = request.data.pop('representative',None)
|
representative = request.data.pop('representative', None)
|
||||||
date = datetime(year=date.year, month=date.month, day=date.day, hour=now_time.hour,
|
date = datetime(year=date.year, month=date.month, day=date.day, hour=now_time.hour,
|
||||||
minute=now_time.minute,
|
minute=now_time.minute,
|
||||||
second=now_time.second)
|
second=now_time.second)
|
||||||
@@ -4686,8 +4687,8 @@ class StewardAllocationViewSet(viewsets.ModelViewSet):
|
|||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
now_time = now.time()
|
now_time = now.time()
|
||||||
production_date = None
|
production_date = None
|
||||||
dispenser = request.data.pop('dispenser',None)
|
dispenser = request.data.pop('dispenser', None)
|
||||||
representative = request.data.pop('representative',None)
|
representative = request.data.pop('representative', None)
|
||||||
date = datetime.strptime(str(request.data['date']), '%Y-%m-%d').date()
|
date = datetime.strptime(str(request.data['date']), '%Y-%m-%d').date()
|
||||||
|
|
||||||
date = datetime(year=date.year, month=date.month, day=date.day, hour=now_time.hour,
|
date = datetime(year=date.year, month=date.month, day=date.day, hour=now_time.hour,
|
||||||
@@ -5521,7 +5522,8 @@ class InProvinceAllocationDashboardViewSet(viewsets.ModelViewSet):
|
|||||||
else:
|
else:
|
||||||
filters['steward__user__city'] = user.city
|
filters['steward__user__city'] = user.city
|
||||||
if allocations_type == 'Steward':
|
if allocations_type == 'Steward':
|
||||||
allocations = StewardAllocation.objects.filter(Q(steward__isnull=False)|Q(guilds__isnull=False),**filters)
|
allocations = StewardAllocation.objects.filter(Q(steward__isnull=False) | Q(guilds__isnull=False),
|
||||||
|
**filters)
|
||||||
else:
|
else:
|
||||||
|
|
||||||
allocations = StewardAllocation.objects.filter(**filters)
|
allocations = StewardAllocation.objects.filter(**filters)
|
||||||
@@ -5908,9 +5910,9 @@ class InProvinceAllocationViewSet(viewsets.ModelViewSet):
|
|||||||
else:
|
else:
|
||||||
filters['steward__user__city'] = user.city
|
filters['steward__user__city'] = user.city
|
||||||
|
|
||||||
|
|
||||||
if allocations_type == 'Steward':
|
if allocations_type == 'Steward':
|
||||||
allocations = StewardAllocation.objects.filter(Q(steward__isnull=False)|Q(guilds__isnull=False),**filters).order_by('-date')
|
allocations = StewardAllocation.objects.filter(Q(steward__isnull=False) | Q(guilds__isnull=False),
|
||||||
|
**filters).order_by('-date')
|
||||||
else:
|
else:
|
||||||
allocations = StewardAllocation.objects.filter(**filters).order_by('-date')
|
allocations = StewardAllocation.objects.filter(**filters).order_by('-date')
|
||||||
if value and search == 'filter':
|
if value and search == 'filter':
|
||||||
@@ -19240,6 +19242,37 @@ def get_gate_way_payer_info(request):
|
|||||||
status=status.HTTP_200_OK
|
status=status.HTTP_200_OK
|
||||||
|
|
||||||
)
|
)
|
||||||
|
# elif role == 'KillHouse':
|
||||||
|
# total_unpaid_wage = 0
|
||||||
|
# total_paid_wage = 0
|
||||||
|
# real_free_sale_wage = 0
|
||||||
|
# kill_house_kill_requests_wage = 0
|
||||||
|
# # wage_type = WageType.objects.filter(en_name='province-kill-request').first()
|
||||||
|
# # total_check_wage = wage_type.amount
|
||||||
|
# kill_house = KillHouse.objects.filter(kill_house_operator__user=user, trash=False).first()
|
||||||
|
# total_unpaid_wage = get_finance_info(kill_house)['total_price']
|
||||||
|
#
|
||||||
|
# slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
|
# Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
|
||||||
|
# trash=False)
|
||||||
|
#
|
||||||
|
# total_paid_wage += slaughter_transactions.aggregate(total=Sum('amount'))[
|
||||||
|
# 'total'] or 0
|
||||||
|
#
|
||||||
|
# return Response(
|
||||||
|
# {
|
||||||
|
# "role": role,
|
||||||
|
# "user_key": user.key,
|
||||||
|
# "name": kill_house.name,
|
||||||
|
# "fullname": user.fullname,
|
||||||
|
# "mobile": user.mobile,
|
||||||
|
# "city": user.city.name,
|
||||||
|
# "province": user.province.name,
|
||||||
|
# "total_amount": total_unpaid_wage - (total_paid_wage + kill_house.off)
|
||||||
|
# },
|
||||||
|
# status=status.HTTP_200_OK
|
||||||
|
#
|
||||||
|
# )
|
||||||
elif role == 'KillHouse':
|
elif role == 'KillHouse':
|
||||||
total_unpaid_wage = 0
|
total_unpaid_wage = 0
|
||||||
total_paid_wage = 0
|
total_paid_wage = 0
|
||||||
@@ -19249,7 +19282,11 @@ def get_gate_way_payer_info(request):
|
|||||||
# total_check_wage = wage_type.amount
|
# total_check_wage = wage_type.amount
|
||||||
kill_house = KillHouse.objects.filter(kill_house_operator__user=user, trash=False).first()
|
kill_house = KillHouse.objects.filter(kill_house_operator__user=user, trash=False).first()
|
||||||
total_unpaid_wage = get_finance_info(kill_house)['total_price']
|
total_unpaid_wage = get_finance_info(kill_house)['total_price']
|
||||||
|
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(
|
slaughter_transactions = InternalTransaction.objects.filter(
|
||||||
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
|
Q(kill_house=kill_house) | Q(parent_kill_house=kill_house), status='completed',
|
||||||
trash=False)
|
trash=False)
|
||||||
@@ -19271,6 +19308,7 @@ def get_gate_way_payer_info(request):
|
|||||||
status=status.HTTP_200_OK
|
status=status.HTTP_200_OK
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
total_unpaid_wage = 0
|
total_unpaid_wage = 0
|
||||||
total_paid_wage = 0
|
total_paid_wage = 0
|
||||||
@@ -20171,11 +20209,13 @@ class CombinedPosProductsViewSet(viewsets.ModelViewSet):
|
|||||||
queryset = self.get_queryset(validation_device, version)
|
queryset = self.get_queryset(validation_device, version)
|
||||||
serializer = self.get_serializer(queryset, many=True, context={'validation_device': validation_device})
|
serializer = self.get_serializer(queryset, many=True, context={'validation_device': validation_device})
|
||||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
class NewCombinedPosProductsViewSet(viewsets.ModelViewSet):
|
class NewCombinedPosProductsViewSet(viewsets.ModelViewSet):
|
||||||
permission_classes = [AllowAny]
|
permission_classes = [AllowAny]
|
||||||
serializer_class = NewCombinedPosProductSerializer
|
serializer_class = NewCombinedPosProductSerializer
|
||||||
|
|
||||||
def get_queryset(self, pos, version,role):
|
def get_queryset(self, pos, version, role):
|
||||||
if role == 'KillHouse':
|
if role == 'KillHouse':
|
||||||
kill_house = KillHouse.objects.filter(kill_house_operator__user=pos.owner).first()
|
kill_house = KillHouse.objects.filter(kill_house_operator__user=pos.owner).first()
|
||||||
roles_products = RolesProducts.objects.filter(kill_house=kill_house, trash=False)
|
roles_products = RolesProducts.objects.filter(kill_house=kill_house, trash=False)
|
||||||
@@ -20208,7 +20248,7 @@ class NewCombinedPosProductsViewSet(viewsets.ModelViewSet):
|
|||||||
validation_device = validator.validation_pos()
|
validation_device = validator.validation_pos()
|
||||||
version = request.headers.get('device-version')
|
version = request.headers.get('device-version')
|
||||||
role = request.headers.get('device-role')
|
role = request.headers.get('device-role')
|
||||||
queryset = self.get_queryset(validation_device, version,role)
|
queryset = self.get_queryset(validation_device, version, role)
|
||||||
serializer = self.get_serializer(queryset, many=True, context={'validation_device': validation_device})
|
serializer = self.get_serializer(queryset, many=True, context={'validation_device': validation_device})
|
||||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
@@ -22828,8 +22868,8 @@ class AppSegmentationViewSet(viewsets.ModelViewSet):
|
|||||||
guild = None
|
guild = None
|
||||||
kill_house = None
|
kill_house = None
|
||||||
quota = None
|
quota = None
|
||||||
dispenser = request.data.pop('dispenser',None)
|
dispenser = request.data.pop('dispenser', None)
|
||||||
representative = request.data.pop('representative',None)
|
representative = request.data.pop('representative', None)
|
||||||
product = RolesProducts.objects.get(key=request.data['product_key'], trash=False)
|
product = RolesProducts.objects.get(key=request.data['product_key'], trash=False)
|
||||||
if product.guild:
|
if product.guild:
|
||||||
guild = product.guild
|
guild = product.guild
|
||||||
@@ -24541,7 +24581,7 @@ class PoultryAndHatchingForPoultryScience(GenericAPIView):
|
|||||||
elif role == 'CityPoultry':
|
elif role == 'CityPoultry':
|
||||||
city_poultry = CityPoultry.objects.get(user=user, trash=False)
|
city_poultry = CityPoultry.objects.get(user=user, trash=False)
|
||||||
hatching = hatching.filter(
|
hatching = hatching.filter(
|
||||||
poultry__address__city=city_poultry.city
|
poultry__address__city=city_poultry.address.city
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
hatching = hatching
|
hatching = hatching
|
||||||
@@ -25950,9 +25990,14 @@ class StewardRemainWeightViewSet(GenericAPIView):
|
|||||||
production_date__isnull=False,
|
production_date__isnull=False,
|
||||||
steward_warehouse=True
|
steward_warehouse=True
|
||||||
)
|
)
|
||||||
input_allocations_vals = allocations_vals.filter(Q(to_guilds=steward,to_steward__isnull=True) | Q(to_steward=steward,to_guilds__isnull=True),receiver_state='accepted').values('production_date__date', 'date__date', 'quota', 'real_weight_of_carcasses', 'receiver_state')
|
input_allocations_vals = allocations_vals.filter(
|
||||||
output_allocations_vals = allocations_vals.filter(Q(guilds=steward,steward__isnull=True) | Q(steward=steward,guilds__isnull=True),receiver_state__in=('accepted','pending')).values('production_date__date', 'date__date', 'quota', 'real_weight_of_carcasses', 'receiver_state')
|
Q(to_guilds=steward, to_steward__isnull=True) | Q(to_steward=steward, to_guilds__isnull=True),
|
||||||
|
receiver_state='accepted').values('production_date__date', 'date__date', 'quota',
|
||||||
|
'real_weight_of_carcasses', 'receiver_state')
|
||||||
|
output_allocations_vals = allocations_vals.filter(
|
||||||
|
Q(guilds=steward, steward__isnull=True) | Q(steward=steward, guilds__isnull=True),
|
||||||
|
receiver_state__in=('accepted', 'pending')).values('production_date__date', 'date__date', 'quota',
|
||||||
|
'real_weight_of_carcasses', 'receiver_state')
|
||||||
|
|
||||||
free_bar_vals = list(StewardFreeBarInformation.objects.filter(
|
free_bar_vals = list(StewardFreeBarInformation.objects.filter(
|
||||||
steward=steward,
|
steward=steward,
|
||||||
@@ -26023,7 +26068,6 @@ class StewardRemainWeightViewSet(GenericAPIView):
|
|||||||
input_alloc_daily[a[date_field]] = {'governmental': 0, 'free': 0}
|
input_alloc_daily[a[date_field]] = {'governmental': 0, 'free': 0}
|
||||||
input_alloc_daily[a[date_field]][q] += w
|
input_alloc_daily[a[date_field]][q] += w
|
||||||
|
|
||||||
|
|
||||||
for a in output_allocations_vals:
|
for a in output_allocations_vals:
|
||||||
date_field = 'production_date__date'
|
date_field = 'production_date__date'
|
||||||
w = a['real_weight_of_carcasses'] or 0
|
w = a['real_weight_of_carcasses'] or 0
|
||||||
@@ -26032,7 +26076,6 @@ class StewardRemainWeightViewSet(GenericAPIView):
|
|||||||
output_alloc_daily[a[date_field]] = {'governmental': 0, 'free': 0}
|
output_alloc_daily[a[date_field]] = {'governmental': 0, 'free': 0}
|
||||||
output_alloc_daily[a[date_field]][q] += w
|
output_alloc_daily[a[date_field]][q] += w
|
||||||
|
|
||||||
|
|
||||||
free_bar_daily = {}
|
free_bar_daily = {}
|
||||||
for f in free_bar_vals:
|
for f in free_bar_vals:
|
||||||
d = f['date__date']
|
d = f['date__date']
|
||||||
|
|||||||
Reference in New Issue
Block a user