From a69e914b3e6f1b8c22dba6b62458497cfdb1f7be Mon Sep 17 00:00:00 2001 From: Bachurin Sergey Date: Fri, 13 Jun 2014 16:50:41 +0300 Subject: [PATCH] faktura xls --- project/docs/models/faktura.py | 22 ++++++++++++++++++ project/docs/views/base_views.py | 4 +++- .../docs/parts/form_client_choices.html | 2 +- project/xls_templates/faktura.xls | Bin 55808 -> 44032 bytes 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/project/docs/models/faktura.py b/project/docs/models/faktura.py index 52e8afd..0cc1e81 100644 --- a/project/docs/models/faktura.py +++ b/project/docs/models/faktura.py @@ -17,6 +17,28 @@ class Faktura(BaseInvoiceModel, SignedStatusFieldMixin, InvoiceFieldMixin): sender = models.ForeignKey(Client, related_name='sender_fakturas', blank=True, null=True, verbose_name=u'Отправитель') receiver = models.ForeignKey(Client, related_name='receiver_fakturas', blank=True, null=True, verbose_name=u'Получатель') + def get_consignor_and_address(self): + """Отправитель и адрес + """ + + if self.user_is_sender: + print '%s, %s' % (self.user.profile.get_company_name(), self.user.profile.address) + print self.user.profile.get_company_name(), self.user.profile.address + return u'%s, %s' % (self.user.profile.get_company_name(), self.user.profile.address) + elif self.sender: + return '%s, %s' % self.sender.name, self.sender.address + else: + return u'' + + def get_receiver_and_address(self): + """Получатель и адрес + """ + if self.receiver: + #return self.user + return '%s, %s' % (self.receiver.name, self.receiver.address) + else: + return u'' + class Meta(BaseInvoiceModel.Meta): verbose_name = u'Фактура' verbose_name_plural = u'Фактуры' diff --git a/project/docs/views/base_views.py b/project/docs/views/base_views.py index b0e8165..129126d 100644 --- a/project/docs/views/base_views.py +++ b/project/docs/views/base_views.py @@ -663,7 +663,7 @@ class BaseItemsViews(BaseViews): if hasattr(obj, 'receiver') and hasattr(obj, 'sender'): if obj.receiver == obj.client: receiver_choice = 'he_is' - elif obj.sender: + elif obj.receiver: receiver_choice = 'another' else: receiver_choice = 'nobody' @@ -693,6 +693,8 @@ class BaseItemsViews(BaseViews): elif sender == 'nobody': new_obj.user_is_sender = False new_obj.sender = None + elif sender == 'another': + new_obj.user_is_sender = False new_obj.save() # сохранить табличную часть diff --git a/project/templates/docs/parts/form_client_choices.html b/project/templates/docs/parts/form_client_choices.html index 6b101de..fcacfce 100644 --- a/project/templates/docs/parts/form_client_choices.html +++ b/project/templates/docs/parts/form_client_choices.html @@ -1,4 +1,4 @@

{{ label }}

{{ label1|default:'Он же' }}
{{ label2|default:'Стороннее лицо' }}
- Не указывать \ No newline at end of file + Не указывать diff --git a/project/xls_templates/faktura.xls b/project/xls_templates/faktura.xls index bd7878c1bc34f835ddd0be5264dee80b09518dce..0fc25828c8e8d06feed299201f759515268b501d 100644 GIT binary patch literal 44032 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

lfDjv#H&}i3k?LEB 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