Пример #1
0
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)
Пример #2
0
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'})
Пример #3
0
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)
Пример #4
0
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']})
Пример #5
0
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)
Пример #6
0
 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)
Пример #7
0
 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
Пример #8
0
 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)
Пример #9
0
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})
Пример #10
0
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)
Пример #11
0
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()
Пример #12
0
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
    ]
Пример #13
0
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)
Пример #14
0
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)
Пример #15
0
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)
Пример #16
0
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)
Пример #17
0
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)
Пример #18
0
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)
Пример #19
0
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)
Пример #20
0
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)