示例#1
0
def pay_balance(client, admin, sum, temporary_pay, temporary_pay_model,
                report_pay_admin_model):
    json_balance = {}

    before_balance = client.balance

    client.balance = int(client.balance) + int(sum)

    old_end_used_date = client.end_used_date

    if (int(client.balance) >= 0):
        try:
            for device in client.select_clients_group.select_server.all():
                action_mikrotik = ActionMikroTik(device)
                action_mikrotik.on_client(client.ip_address)
                json_balance.update({'message': 'Счет пополнен'})
        except:
            json_balance.update({'message': 'Сервер не доступен'})
        else:
            client.internet_status = True

            now_date = datetime.date.today()
            if client.end_used_date <= now_date:

                if client.fix_work_period:
                    if client.fix_work_period:
                        new_end_used_date = now_date.replace(
                            day=1) + relativedelta(months=1)
                    else:
                        new_end_used_date = now_date + relativedelta(months=1)
                else:
                    if client.select_tarif.fix_work_period:
                        new_end_used_date = now_date.replace(
                            day=1) + relativedelta(months=1)
                    else:
                        new_end_used_date = now_date + relativedelta(months=1)
                client.end_used_date = new_end_used_date
            client.save()

    else:
        json_balance.update({'message': 'Недостаточно средств'})
        client.save()

    if int(temporary_pay) == 1:
        temporary_pay_model.objects.create(user=client, price=int(sum))
    # Добавляем запись в отчет о пополнениях
    report_pay_admin_model.objects.create(
        id_admin_select=admin.profile_employee,
        id_client_select=client,
        sum=sum,
        before_balance=before_balance,
        after_balance=client.balance,
        before_date_off=old_end_used_date)

    json_balance.update({'balance': client.balance})
    return json_balance
示例#2
0
def deferred_actions_with_customers():
    ('off', 'Отключить'),
    ('on', 'Включить'),
    ('del', 'Удалить'),
    ('create', 'Создать'),
    ('del', 'Удалить'),
    for action in models.DeferredActionsWithClient.objects.filter(
            status=False, scheduled_implementation_date__isnull=True):
        print(action.id, action.scheduled_implementation_date)

        for device in action.client.select_clients_group.select_server.all():

            if action.action == 'create':
                try:
                    action_mikrotik = ActionMikroTik(device)
                    action_mikrotik.create_user(action.client.login,
                                                action.client.key,
                                                action.client.ip_address,
                                                action.client.select_tarif)
                    action.status = True
                    action.save()

                    emails = [
                        admin.admin.user.email
                        for admin in models.SendEmailAdmin.objects.filter(
                            event='deferred_actions')
                    ]
                    #msg = EmailMessage('deferred_actions',
                    #                   deferred_actions_text_messages(action.action, action.client.login, 'work'),
                    #                   settings.DEFAULT_FROM_EMAIL, emails)
                    #msg.content_subtype = "html"
                    #msg.send()

                except:
                    emails = [
                        admin.admin.user.email
                        for admin in models.SendEmailAdmin.objects.filter(
                            event='deferred_actions')
                    ]
                    #msg = EmailMessage('deferred_actions', deferred_actions_text_messages(action.action, action.client.login, 'error'),
                    #                   settings.DEFAULT_FROM_EMAIL, emails)
                    #msg.content_subtype = "html"
                    #msg.send()

            if action.action == 'on':
                try:
                    action_mikrotik = ActionMikroTik(device)
                    action_mikrotik.on_client(action.client.ip_address)
                    action.status = True
                    action.save()

                    emails = [
                        admin.admin.user.email
                        for admin in models.SendEmailAdmin.objects.filter(
                            event='deferred_actions')
                    ]
                    #msg = EmailMessage('deferred_actions',
                    #                   deferred_actions_text_messages(action.action, action.client.login, 'work'),
                    #                   settings.DEFAULT_FROM_EMAIL, emails)
                    #msg.content_subtype = "html"
                    #msg.send()
                except:
                    emails = [
                        admin.admin.user.email
                        for admin in models.SendEmailAdmin.objects.filter(
                            event='deferred_actions')
                    ]
                    #msg = EmailMessage('deferred_actions',
                    #                   deferred_actions_text_messages(action.action, action.client.login, 'error'),
                    #                   settings.DEFAULT_FROM_EMAIL, emails)
                    #msg.content_subtype = "html"
                    #msg.send()

            if action.action == 'off':
                try:
                    action_mikrotik = ActionMikroTik(device)
                    action_mikrotik.off_client(action.client.ip_address)
                    action.status = True
                    action.save()

                    emails = [
                        admin.admin.user.email
                        for admin in models.SendEmailAdmin.objects.filter(
                            event='deferred_actions')
                    ]
                    #msg = EmailMessage('deferred_actions',
                    #                   deferred_actions_text_messages(action.action, action.client.login, 'worm'),
                    #                   settings.DEFAULT_FROM_EMAIL, emails)
                    #msg.content_subtype = "html"
                    #msg.send()
                except:
                    emails = [
                        admin.admin.user.email
                        for admin in models.SendEmailAdmin.objects.filter(
                            event='deferred_actions')
                    ]
                    #msg = EmailMessage('deferred_actions',
                    #                   deferred_actions_text_messages(action.action, action.client.login, 'error'),
                    #                   settings.DEFAULT_FROM_EMAIL, emails)
                    #msg.content_subtype = "html"
                    #msg.send()

            if action.action == 'del':
                try:
                    action_mikrotik = ActionMikroTik(device)
                    action_mikrotik.delete_user(action.client.login,
                                                action.client.ip_address)
                    action.status = True
                    action.save()

                    emails = [
                        admin.admin.user.email
                        for admin in models.SendEmailAdmin.objects.filter(
                            event='deferred_actions')
                    ]
                    #msg = EmailMessage('deferred_actions',
                    #                   deferred_actions_text_messages(action.action, action.client.login, 'work'),
                    #                   settings.DEFAULT_FROM_EMAIL, emails)
                    #msg.content_subtype = "html"
                    #msg.send()
                except:
                    emails = [
                        admin.admin.user.email
                        for admin in models.SendEmailAdmin.objects.filter(
                            event='deferred_actions')
                    ]