From 701d5548072143f5a1d785c9487b0534e157202b Mon Sep 17 00:00:00 2001 From: Dmitriy Shesterkin Date: Fri, 26 May 2017 00:30:47 +0300 Subject: [PATCH] task 22 --- src/customer/views/bank_accounts_ajax.py | 38 +++++++++++++++++++++--- src/docs/models/base_models.py | 2 +- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/customer/views/bank_accounts_ajax.py b/src/customer/views/bank_accounts_ajax.py index e8f44dd..26057bb 100644 --- a/src/customer/views/bank_accounts_ajax.py +++ b/src/customer/views/bank_accounts_ajax.py @@ -8,6 +8,7 @@ from django.views.decorators.csrf import csrf_protect from django.contrib.auth.decorators import login_required from django.core.urlresolvers import reverse +from docs.models import Invoice, Faktura, AktRabot, AktSverki, Nakladn, Platejka, Dover from commons.utils import dthandler from .. import models, forms @@ -128,11 +129,40 @@ def bank_accounts_delete_ajax(request, id): raise_if_no_profile(request) account = get_object_or_404(models.BankAccount, pk=id, company=request.user.profile) - account.delete() - # TODO обработать ошибки удаления + account_docs = [] + + doc_list = [ + (Invoice, u'счета'), + (Faktura, u'счета-фактуры'), + (Nakladn, u'накладные'), + (AktRabot, u'акты выполненных работ'), + (Platejka, u'платёжные поручения') + ] + for doc in doc_list: + docs = doc[0].objects.filter(bank_account=account) + print(docs) + if docs: + account_docs.append(doc[1]) + if not account_docs: + account.delete() + success = True + message = {'title': u'Инфо', + 'msg': u'Расчётный счёт удалён.'} + del_id = id + else: + success = True + message = {'title': u'Инфо', + 'msg': u'Расчтный счет не удалён. Есть выписанные документы: %s.' % ','.join( + account_docs)} + del_id = None + data = { - 'success': True, - 'message': {'title': 'Инфо', 'msg': 'Расчётный счёт удалён.',}, + 'success': success, + 'message': message, + 'reload': False, + 'action': 'account-delete', + 'id': del_id, } + return HttpResponse(json.dumps(data), content_type='application/json') diff --git a/src/docs/models/base_models.py b/src/docs/models/base_models.py index b140657..c561f12 100644 --- a/src/docs/models/base_models.py +++ b/src/docs/models/base_models.py @@ -66,7 +66,7 @@ class BaseInvoiceModel(BaseNdsModel): """ bank_account = models.ForeignKey(BankAccount, related_name='+', verbose_name=u'Расчётный счёт', - blank=True, null=True ) + blank=True, null=True) doc_text = models.TextField(u'Дополнительные условия', max_length=1000, blank=True, default='') class Meta(BaseNdsModel.Meta):