update
This commit is contained in:
152
bot_eata.py
152
bot_eata.py
@@ -5,12 +5,14 @@ import requests
|
|||||||
from django.db.models import Sum, Q, F
|
from django.db.models import Sum, Q, F
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
|
|
||||||
|
from authentication.models import SystemUserProfile
|
||||||
from general_urls import base_url_for_sms_report
|
from general_urls import base_url_for_sms_report
|
||||||
from helper_eata import token, chat_id, chat_id_mali
|
from helper_eata import token, chat_id, chat_id_mali
|
||||||
from panel.ProvinceOperator.serializers import TotalWageInformationSerializer
|
from panel.ProvinceOperator.serializers import TotalWageInformationSerializer
|
||||||
from panel.helper_excel import shamsi_date, to_locale_str
|
from panel.helper_excel import shamsi_date, to_locale_str
|
||||||
from panel.models import PoultryHatching, ProvinceKillRequest, KillHousePercentage, TotalWageInformation, \
|
from panel.models import PoultryHatching, ProvinceKillRequest, KillHousePercentage, TotalWageInformation, \
|
||||||
InternalTransaction, TokenEitaaForEachVet, VetFarm, KillHouseRequest, PoultryRequest, Poultry
|
InternalTransaction, TokenEitaaForEachVet, VetFarm, KillHouseRequest, PoultryRequest, Poultry
|
||||||
|
from ticket.models import TicketSupport, MessageSupport
|
||||||
|
|
||||||
|
|
||||||
def format_datetime_to_shamsi(input_date):
|
def format_datetime_to_shamsi(input_date):
|
||||||
@@ -1852,4 +1854,152 @@ def send_single_bar_to_eitaa(kill_house_request):
|
|||||||
response = requests.post(url, data=data, verify=False)
|
response = requests.post(url, data=data, verify=False)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def send_all_bar_to_eitaa_ticket(request):
|
||||||
|
# url = f'https://eitaayar.ir/api/{token}/sendMessage'
|
||||||
|
date = datetime.now().date() - timedelta(days=1)
|
||||||
|
|
||||||
|
all_kill_house_requests = KillHouseRequest.objects.filter(
|
||||||
|
trash=False,
|
||||||
|
kill_request__recive_date__date__gte=date
|
||||||
|
).select_related(
|
||||||
|
'province_request__poultry_request__poultry__user__city',
|
||||||
|
'kill_request__kill_house__kill_house_operator__user',
|
||||||
|
'kill_request__kill_house__system_address__city',
|
||||||
|
'add_car__driver'
|
||||||
|
)
|
||||||
|
|
||||||
|
poultry_ids = all_kill_house_requests.values_list(
|
||||||
|
'province_request__poultry_request__poultry__id',
|
||||||
|
flat=True
|
||||||
|
).distinct()
|
||||||
|
|
||||||
|
vet_farms = VetFarm.objects.filter(
|
||||||
|
trash=False,
|
||||||
|
poultry__id__in=poultry_ids
|
||||||
|
).select_related('vet__user', 'poultry')
|
||||||
|
|
||||||
|
vet_to_poultries = {}
|
||||||
|
for vet_farm in vet_farms:
|
||||||
|
vet_mobile = vet_farm.vet.user.mobile
|
||||||
|
if vet_mobile not in vet_to_poultries:
|
||||||
|
vet_to_poultries[vet_mobile] = []
|
||||||
|
vet_to_poultries[vet_mobile].append(vet_farm.poultry.id)
|
||||||
|
|
||||||
|
if not vet_to_poultries:
|
||||||
|
return
|
||||||
|
|
||||||
|
for vet_mobile, poultry_list in vet_to_poultries.items():
|
||||||
|
chat_id_eitaa = TokenEitaaForEachVet.objects.filter(vet_mobile=vet_mobile).first()
|
||||||
|
|
||||||
|
if not chat_id_eitaa:
|
||||||
|
continue
|
||||||
|
|
||||||
|
vet_kill_requests = all_kill_house_requests.filter(
|
||||||
|
province_request__poultry_request__poultry__id__in=poultry_list
|
||||||
|
)
|
||||||
|
|
||||||
|
if not vet_kill_requests.exists():
|
||||||
|
continue
|
||||||
|
|
||||||
|
date_time_jalali = format_datetime_to_shamsi(date)
|
||||||
|
date_shamsi = shamsi_date(date).replace('-', '_')
|
||||||
|
|
||||||
|
base_message = '🗓📢❗ سامانه رصدیار، زنجیره تامین،تولید و توزیع مرغ گوشتی📢❗'
|
||||||
|
base_message += f'***'
|
||||||
|
base_message += f'❗{date_time_jalali}❗'
|
||||||
|
base_message += f'***'
|
||||||
|
base_message += f' #گزارش_بارها #{date_shamsi}'
|
||||||
|
base_message += f'***'
|
||||||
|
base_message += f'تعداد کل بارها: {vet_kill_requests.count()}'
|
||||||
|
base_message += f'***'
|
||||||
|
base_message += f'➖➖➖➖➖➖➖➖➖➖'
|
||||||
|
base_message += '***'
|
||||||
|
|
||||||
|
messages = []
|
||||||
|
current_message = base_message
|
||||||
|
m = 1
|
||||||
|
|
||||||
|
for entry in vet_kill_requests:
|
||||||
|
try:
|
||||||
|
main_quantity = entry.accepted_real_quantity
|
||||||
|
real_weight = entry.accepted_real_weight
|
||||||
|
poultry_name = entry.province_request.poultry_request.poultry.unit_name
|
||||||
|
poultry_mobile = entry.province_request.poultry_request.poultry.user.mobile
|
||||||
|
|
||||||
|
city = entry.province_request.poultry_request.poultry.user.city.name
|
||||||
|
buyer = entry.kill_request.kill_house.name
|
||||||
|
buyer_city = entry.kill_request.kill_house.system_address.city.name
|
||||||
|
buyer_mobile = entry.kill_request.kill_house.kill_house_operator.user.mobile
|
||||||
|
weight = entry.province_request.poultry_request.Index_weight
|
||||||
|
order_code = entry.bar_code
|
||||||
|
recive_date = entry.kill_request.recive_date
|
||||||
|
recive_date_shamsi = shamsi_date(recive_date) if recive_date else ''
|
||||||
|
main_quantity = "{:,}".format(int(main_quantity))
|
||||||
|
real_weight = "{:,}".format(int(real_weight))
|
||||||
|
|
||||||
|
driver_name = '-'
|
||||||
|
driver_mobile = '-'
|
||||||
|
driver_pelak = '-'
|
||||||
|
driver_health_code = '-'
|
||||||
|
if entry.add_car and entry.add_car.driver:
|
||||||
|
driver_name = entry.add_car.driver.driver_name or '-'
|
||||||
|
driver_mobile = entry.add_car.driver.driver_mobile or '-'
|
||||||
|
driver_pelak = entry.add_car.driver.pelak or '-'
|
||||||
|
driver_health_code = entry.add_car.driver.health_code or '-'
|
||||||
|
|
||||||
|
if entry.province_request.poultry_request.direct_buying == True:
|
||||||
|
province_type = 'خرید مستقیم'
|
||||||
|
elif entry.province_request.poultry_request.export == True:
|
||||||
|
province_type = 'فروش به خارج استان'
|
||||||
|
else:
|
||||||
|
province_type = 'اتحادیه'
|
||||||
|
|
||||||
|
driver_info = f' - راننده: {driver_name} ({driver_mobile}) پلاک: {driver_pelak} کد حمل: {driver_health_code}'
|
||||||
|
|
||||||
|
new_message_part = f'{m}. کد بار: {order_code} - حجم بار: {main_quantity} قطعه - وزن بار: {real_weight} - میانگین وزن: {weight} - مرغدار: {poultry_name} ({poultry_mobile}) - شهر: {city} - نوع فروش: {province_type} - خریدار: {buyer} ({buyer_mobile}) - شهر خریدار: {buyer_city}{driver_info} - تاریخ بار: ({recive_date_shamsi}) *** ***'
|
||||||
|
m += 1
|
||||||
|
|
||||||
|
if len(current_message) + len(new_message_part) > 4000:
|
||||||
|
messages.append(current_message)
|
||||||
|
current_message = base_message
|
||||||
|
|
||||||
|
current_message += new_message_part
|
||||||
|
except Exception as e:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if current_message and current_message != base_message:
|
||||||
|
messages.append(current_message)
|
||||||
|
|
||||||
|
chat_id_eitaa_token = chat_id_eitaa.token
|
||||||
|
# for message in messages:
|
||||||
|
# try:
|
||||||
|
user = SystemUserProfile.objects.filter(trash=False, mobile=chat_id_eitaa.vet_mobile).last()
|
||||||
|
new_ticket = TicketSupport(
|
||||||
|
user=user,
|
||||||
|
title="گزارش بارها",
|
||||||
|
status='open',
|
||||||
|
read_only=True,
|
||||||
|
type_ticket='single',
|
||||||
|
parent=None,
|
||||||
|
last_message='Admin',
|
||||||
|
)
|
||||||
|
new_ticket.save()
|
||||||
|
new_ticket.to_user.add(user)
|
||||||
|
msg = MessageSupport(
|
||||||
|
ticket=new_ticket,
|
||||||
|
message=messages,
|
||||||
|
created_by=user,
|
||||||
|
sender='Admin'
|
||||||
|
)
|
||||||
|
msg.save()
|
||||||
|
# data = {
|
||||||
|
# 'chat_id': chat_id_eitaa_token,
|
||||||
|
# 'text': message,
|
||||||
|
# }
|
||||||
|
# response = requests.post(url, data=data, verify=False)
|
||||||
|
|
||||||
|
|
||||||
|
return HttpResponse('پیامها ارسال شد.')
|
||||||
@@ -113,7 +113,7 @@ from .poultry.views import Cancel_Poultry_Exchange_request, Check_Poultry_Auctio
|
|||||||
archive_poultry_hatching_with_archive_percent
|
archive_poultry_hatching_with_archive_percent
|
||||||
from bot_eata import bot_eitaa_for_bar, bot_eitaa_free_bar, bot_eitaa_for_hatching_gt_50, \
|
from bot_eata import bot_eitaa_for_bar, bot_eitaa_free_bar, bot_eitaa_for_hatching_gt_50, \
|
||||||
bot_eitaa_for_province_kill_request, daily_manual_transaction_for_eata, transaction_for_eata_new, \
|
bot_eitaa_for_province_kill_request, daily_manual_transaction_for_eata, transaction_for_eata_new, \
|
||||||
daily_report_for_each_vet_farm_manual,send_all_bar_to_eitaa
|
daily_report_for_each_vet_farm_manual, send_all_bar_to_eitaa, send_all_bar_to_eitaa_ticket
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.conf.urls.static import static
|
from django.conf.urls.static import static
|
||||||
|
|
||||||
@@ -1391,5 +1391,6 @@ urlpatterns = [
|
|||||||
path('get_dispenser_user_info/', get_dispenser_user_info),
|
path('get_dispenser_user_info/', get_dispenser_user_info),
|
||||||
path('fetch_evacuation_details_for_unknown_hatchings/', fetch_evacuation_details_for_unknown_hatchings),
|
path('fetch_evacuation_details_for_unknown_hatchings/', fetch_evacuation_details_for_unknown_hatchings),
|
||||||
path('kill_house_debt_report_pdf/', kill_house_debt_report_pdf),
|
path('kill_house_debt_report_pdf/', kill_house_debt_report_pdf),
|
||||||
|
path('send_all_bar_to_eitaa_ticket/', send_all_bar_to_eitaa_ticket),
|
||||||
|
|
||||||
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
||||||
|
|||||||
Reference in New Issue
Block a user