def get_schedule_color(request): auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) house_id = request.GET.get('house_id', '') ticket_id = request.GET.get('ticket_id', '') return JsonResponse(auth.month_schedule_color(house_id, ticket_id), safe=False)
def change_phone_number(request): auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) ticket_id = request.GET.get('ticket_id', '') if request.is_ajax(): if request.method == "POST": response = auth.change_phone_info(ticket_id, request.body) return JsonResponse({'status': 'success'}) return JsonResponse({'status': 'error'})
def get_schedule_by_house_id(request, city_id, house_id, year, month, day): auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) return JsonResponse(auth.schedule_interval_by_day(ticket_id=False, year=year, month=month, day=day, house_id=house_id), safe=False)
def check_fraud(request, city_id, house_id, flat): auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) if auth.account_type != 4: employer = Employer.objects.get( profile_name=request.session['operator']) auth = NewDesign(os.getenv('SELL_CODE'), employer.operator.number, employer.operator_password) res_data = auth.check_fraud(house_id, flat) if res_data['data']: return JsonResponse({'result': 'Можно создавать заявку'}) else: return JsonResponse({'result': res_data['metadata']['message']})
def get_switched_tickets(request): if request.method == "POST": params = unquote(request.POST.urlencode()).split('&') data = { param.split('=')[0]: param.split('=')[1] for param in params if param } auth = NewDesign(os.getenv('SELL_CODE'), data['operator'], data['password']) tickets = auth.retrive_tickets() switched, count = auth.switched_tickets(tickets) t = jsonpickle.encode(switched) return JsonResponse({'tickets': t, 'count': count}, safe=False)
def setUp(self): self.url = reverse('ticket_info', kwargs={"id" : 109706332}) self.response = self.client.get(self.url) self.sell_code = os.environ.get('SELL_CODE') self.operator = os.environ.get('A_OPERATOR') self.password = os.environ.get('A_PASS') self.auth = NewDesign(self.sell_code,self.operator,self.password)
def parse_installers(cls, auth): login = NewDesign(auth['login'], auth['operator'], auth['password']) tickets = login.retrive_tickets() sw_tickets, sw_today = login.switched_tickets(tickets) for ticket in sw_tickets: info_data = login.ticket_info(ticket.id) name, phone = cls.find_installer_in_text(info_data.comments) try: installer, created = cls.objects.update_or_create(full_name=name) if not created: installer.number = phone installer.save() else: cls(full_name=name, number=phone).save() except: continue
def setUp(self): self.url = reverse('main_page_tickets') self.response = self.client.get(self.url) self.sell_code = os.environ.get('SELL_CODE') self.operator = os.environ.get('A_OPERATOR') self.password = os.environ.get('A_PASS') self.auth = NewDesign(self.sell_code,self.operator,self.password)
def assign_ticket(request): auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) if request.method == "POST": payload = json.loads(request.body) data = { "tickets": [payload['ticket_id']], "cell": payload['cell'], "intbegin": payload['intbegin'], "intend": payload['intend'], "entrance": payload['entrance'], "floor": payload['floor'], "code": "0", "confirmation": "" } response = auth.assign_ticket(data) return JsonResponse({'status': response})
def get_assigned_tickets(request): if request.method == "POST": params = unquote(request.POST.urlencode()).split('&') data = { param.split('=')[0]: param.split('=')[1] for param in params if param } auth = NewDesign(os.getenv('SELL_CODE'), data['operator'], data['password']) tickets = auth.retrive_tickets() assigned_tickets, assigned_tickets_today = auth.assigned_tickets( tickets) as_t = jsonpickle.encode(assigned_tickets) return JsonResponse( { 'assigned_tickets': as_t, 'assigned_tickets_today': assigned_tickets_today }, safe=False)
def update_date_for_assigned(): auth = NewDesign(os.getenv('SELL_CODE'), os.getenv('S_OPERATOR'), os.getenv('S_PASS')) AssignedTickets = apps.get_model(app_label='tickets_handler', model_name='AssignedTickets') db_tickets = AssignedTickets.objects.filter(when_assigned=None) ticket_with_id = '' for ticket in db_tickets: supervisors_tickets = cache.get('supervisors_tickets') for sp_ticket in supervisors_tickets['all_tickets']: if hasattr( sp_ticket.ticket_paired_info, 'number' ) and sp_ticket.ticket_paired_info.number == ticket.ticket_number: ticket_with_id = sp_ticket if not ticket_with_id: continue ticket_info = auth.ticket_info(ticket_with_id.ticket_paired_info.id) ticket.when_assigned = dmYHM_to_datetime( ticket_info.assigned_date) if ticket_info.assigned_date else None ticket.save()
def get_supervisor_tickets(login, password): AssignedTickets = apps.get_model(app_label='tickets_handler', model_name='AssignedTickets') auth = NewDesign('G800-37', login, password) assigned_tickets, assigned_today, call_for_today, switched_on_tickets, \ switched_on_today, created_today_tickets, all_tickets = auth.three_month_tickets() cache.set( login.encode().decode('unicode-escape'), { 'assigned_tickets': assigned_tickets, 'assigned_today': assigned_today, 'call_for_today': call_for_today, 'switched_on_tickets': switched_on_tickets, 'switched_on_today': switched_on_today, 'created_today_tickets': created_today_tickets, 'all_tickets': all_tickets, 'timestamp': moscow }) for assigned in assigned_tickets: AssignedTickets.update(assigned, satelit_type=True) return [ assigned_tickets, assigned_today, call_for_today, switched_on_tickets, switched_on_today, created_today_tickets, all_tickets ]
def notify_call_timer(): FCMDevice = apps.get_model(app_label='fcm_django', model_name='FCMDevice') FirebaseNotification = apps.get_model(app_label='tickets_handler', model_name='FirebaseNotification') tickets = cache.get('supervisors_tickets') devices = FCMDevice.objects.all() for device in devices: all_tickets = list([ a for a in tickets['all_tickets'] if a.operator == device.device_id ]) call_today = NewDesign.call_today_tickets(all_tickets) if call_today: for ticket in call_today: notification = FirebaseNotification.objects.filter( ticket_number=ticket.ticket_paired_info.number).first() timer = dmYHM_to_datetime(ticket.ticket_paired_info.call_time) status = ticket.ticket_paired_info.status number = ticket.ticket_paired_info.number now = moscow.localize(datetime.now()) expire = ((now - timer).total_seconds() // 3600) if not notification: FirebaseNotification(ticket_number=number, last_call_time=timer, last_ticket_status=status).save() else: diff_from_update = ( now - notification.updated_at).total_seconds() // 3600 if diff_from_update >= 4 and ((timer.hour == 0 and timer.minute == 0) \ or (expire >= 4)): notification.today_count_notification += 1 notification.status = status notification.last_call_time = timer notification.save() elif (timer.hour == datetime.now().hour and timer.day == datetime.now().day and diff_from_update > 1): notification.today_count_notification += 1 notification.status = status notification.last_call_time = timer notification.save() else: continue device.send_message( title=f"Перезвон {ticket.ticket_paired_info.call_time}", click_action= f'https://partnerweb3.herokuapp.com/info/{ticket.id}', icon= "https://partnerweb3.s3.amazonaws.com/static/image/favicon.ico", body=ticket.name)
def get_count_created_today(request): auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) tickets = auth.retrive_tickets() created_today_tickets = auth.count_created_today(tickets) return JsonResponse(created_today_tickets, safe=False)
def ticket_info_json(request, id): auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) ticket = auth.ticket_info(id).__dict__ return JsonResponse(ticket, safe=False)
def get_personal_info(request): phone = request.GET.get('phone') city = request.GET.get('city') auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) return JsonResponse(auth.get_personal_info(phone, city), safe=False)
def get_presets_json(request): auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) city_id, house_id = request.GET.get('city_id'), request.GET.get('house_id') data = auth.get_presets(city_id, house_id) return JsonResponse(data, safe=False)
def get_ctn_info(request): ctn = request.GET.get('ctn', '') auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) data = auth.get_ctn_info(ctn) return JsonResponse(data)
def street_search(request): auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) input = request.GET.get('streetPattern', '') return JsonResponse(auth.street_search_type(input), safe=False)
def get_homes_by_street(request): auth = NewDesign(os.getenv('SELL_CODE'), request.session['operator'], request.session['password']) street_id = request.GET.get('street_id', '') data = auth.get_houses_by_street(auth.get_homes(street_id)) return JsonResponse(data, safe=False)