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
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') ]