From d9515a37b851a6c30f82ac03737b1762de4debb9 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 8 Mar 2017 22:28:25 +0300 Subject: [PATCH] customer: added short_name to BankAccount model; migrate! --- project/customer/forms.py | 6 +- ..._auto__add_field_bankaccount_short_name.py | 149 ++++++++++++++++++ project/customer/models.py | 33 ++-- 3 files changed, 169 insertions(+), 19 deletions(-) create mode 100644 project/customer/migrations/0005_auto__add_field_bankaccount_short_name.py diff --git a/project/customer/forms.py b/project/customer/forms.py index f6efada..645e98f 100644 --- a/project/customer/forms.py +++ b/project/customer/forms.py @@ -177,9 +177,9 @@ class BankAccountForm(forms.ModelForm): """Форма редактирования расчетных счетов.""" class Meta: model = models.BankAccount - fields = ('bik', 'name', 'address', 'korr_account', 'account', 'is_main', 'company') + fields = ('bik', 'name', 'short_name', 'address', 'korr_account', 'account', 'is_main', 'company') _textarea = forms.Textarea(attrs={'cols': 80, 'rows': 3}) - widgets = {'name': _textarea, 'address': _textarea, 'company': forms.HiddenInput()} + widgets = {'name': _textarea, 'short_name': _textarea, 'address': _textarea, 'company': forms.HiddenInput()} #widgets = {'name': _textarea, 'address': _textarea,} def __init__(self, *args, **kwargs): @@ -468,7 +468,7 @@ class LicenseForm(forms.Form): """ term = forms.ModelChoiceField(queryset=models.LicensePrice.objects.all(), widget=forms.RadioSelect, label=u'Срок лицензии', empty_label = None) - payform = forms.ChoiceField(choices=consts.PAYFORMS[1:], widget=forms.RadioSelect, + payform = forms.ChoiceField(choices=consts.PAYFORMS[1:], widget=forms.RadioSelect, label=u'Форма оплаты') diff --git a/project/customer/migrations/0005_auto__add_field_bankaccount_short_name.py b/project/customer/migrations/0005_auto__add_field_bankaccount_short_name.py new file mode 100644 index 0000000..bc9f40b --- /dev/null +++ b/project/customer/migrations/0005_auto__add_field_bankaccount_short_name.py @@ -0,0 +1,149 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'BankAccount.short_name' + db.add_column(u'customer_bankaccount', 'short_name', + self.gf('django.db.models.fields.CharField')(default='', max_length=100, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'BankAccount.short_name' + db.delete_column(u'customer_bankaccount', 'short_name') + + + models = { + u'customer.bankaccount': { + 'Meta': {'ordering': "['-created_at']", 'object_name': 'BankAccount'}, + 'account': ('django.db.models.fields.CharField', [], {'max_length': '20'}), + 'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}), + 'bik': ('django.db.models.fields.CharField', [], {'max_length': '10'}), + 'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bank_accounts'", 'to': u"orm['customer.UserProfile']"}), + 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_main': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'korr_account': ('django.db.models.fields.CharField', [], {'max_length': '20'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}), + 'short_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) + }, + u'customer.client': { + 'Meta': {'ordering': "['name', '-created_at']", 'object_name': 'Client'}, + 'address': ('django.db.models.fields.CharField', [], {'max_length': '256'}), + 'bank_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}), + 'bank_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'bank_bik': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}), + 'bank_korr_account': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}), + 'bank_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['customer.UserProfile']"}), + 'contact_email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), + 'contact_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), + 'contact_other': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'contact_phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), + 'contact_skype': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}), + 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inn': ('django.db.models.fields.CharField', [], {'max_length': '12'}), + 'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}), + 'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}), + 'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}), + 'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) + }, + u'customer.license': { + 'Meta': {'object_name': 'License'}, + 'company': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': u"orm['customer.UserProfile']"}), + 'date_from': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'date_to': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'order_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'paid_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'pay_sum': ('django.db.models.fields.IntegerField', [], {}), + 'payform': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'term': ('django.db.models.fields.IntegerField', [], {}) + }, + u'customer.licenseprice': { + 'Meta': {'object_name': 'LicensePrice'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'price': ('django.db.models.fields.IntegerField', [], {}), + 'term': ('django.db.models.fields.IntegerField', [], {}) + }, + u'customer.userprofile': { + 'Meta': {'object_name': 'UserProfile'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}), + 'boss_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}), + 'boss_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}), + 'boss_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'boss_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30'}), + 'boss_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), + 'fax': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}), + 'fax_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}), + 'full_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'glavbuh_midname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}), + 'glavbuh_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}), + 'glavbuh_sign': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'glavbuh_surname': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '30', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '12'}), + 'ip_reg_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'jur_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'kpp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '9'}), + 'logo': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'na_osnovanii': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256'}), + 'ogrn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '15'}), + 'okpo': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}), + 'phone_code': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '10', 'blank': 'True'}), + 'profile_type': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), + 'real_address': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'site': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'stamp': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'svid_gos_reg': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'user_session_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}) + }, + u'customer.userprofilefilters': { + 'Meta': {'object_name': 'UserProfileFilters'}, + 'bank_account': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': u"orm['customer.BankAccount']"}), + 'company': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'profile_filters'", 'unique': 'True', 'primary_key': 'True', 'to': u"orm['customer.UserProfile']"}), + 'show_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_bank_account': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_contact_info': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_fax': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_full_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_glavbuh': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_inn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_ip_boss_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_ip_reg_date': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_jur_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_kpp': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_logo': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_na_osnovanii': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_name': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_ogrn': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_okpo': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_org_boss_title_and_fio': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_phone': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_profile_type': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_real_address': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_site': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'show_svid_gos_reg': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + } + } + + complete_apps = ['customer'] \ No newline at end of file diff --git a/project/customer/models.py b/project/customer/models.py index 9f812cf..5fb929f 100644 --- a/project/customer/models.py +++ b/project/customer/models.py @@ -11,7 +11,7 @@ from django.conf import settings from django.db.models import Max from django.core.urlresolvers import reverse -from . import consts, managers, utils +from . import consts, managers, utils from project.myauth.models import DokUser from project.commons.utils import only_numerics @@ -114,7 +114,7 @@ class UserProfile(models.Model): user_session_key = models.CharField(u'Ключ сессии (служебная информация)', max_length=256, blank=True, default='', help_text=u'Руками не тро...') - + objects = managers.UserProfileManager() class Meta: @@ -260,6 +260,7 @@ class BankAccount(models.Model): bik = models.CharField(u'БИК', max_length=10) name = models.CharField(u'Наименование банка', max_length=256) + short_name = models.CharField(u'Сокращенное название банка', max_length=100, blank=True, default='') address = models.CharField(u'Местонахождение', max_length=256) korr_account = models.CharField(u'Корр. счет', max_length=20) account = models.CharField(u'Расчетный счет', max_length=20) @@ -277,7 +278,7 @@ class BankAccount(models.Model): ordering = ['-created_at'] def __unicode__(self): - return (u'%s, %s' % (self.account, self.name[0:30],)).strip() + return (u'%s, %s' % (self.account, self.short_name[0:30] or self.name[0:30],)).strip() def save(self, *args, **kwargs): self.bik = only_numerics(self.bik) @@ -416,9 +417,9 @@ class License(models.Model): term = models.IntegerField(verbose_name=u'срок лицензии') date_from = models.DateField(u'дата начала', null=True, blank=True) date_to = models.DateField(u'дата окончания', null=True, blank=True) - payform = models.IntegerField(verbose_name=u'форма оплаты', + payform = models.IntegerField(verbose_name=u'форма оплаты', choices=consts.PAYFORMS, default=0) - status = models.IntegerField(verbose_name=u'статус лицензии', + status = models.IntegerField(verbose_name=u'статус лицензии', choices=consts.LICENSE_STATUSES, default=0) order_date = models.DateField(verbose_name=u'дата заказа', auto_now_add=True) paid_date = models.DateField(verbose_name=u'дата оплаты', null=True, blank=True) @@ -431,11 +432,11 @@ class License(models.Model): def __unicode__(self): return u'%s - %s %s (%d %s)' % ( - self.company.get_company_name(), - self.term, - numeral.choose_plural(self.term, u"месяц, месяца, месяцев"), + self.company.get_company_name(), + self.term, + numeral.choose_plural(self.term, u"месяц, месяца, месяцев"), self.pay_sum, - numeral.choose_plural(self.pay_sum, u"рубль, рубля, рублей"), + numeral.choose_plural(self.pay_sum, u"рубль, рубля, рублей"), ) def save(self, *args, **kwargs): @@ -457,7 +458,7 @@ class License(models.Model): return self.company.get_company_name() def get_action_link(self): - + if self.status == 0: if self.payform == 0: return u'Скачать счёт' % reverse('customer_license_get_doc', kwargs={'order_num': self.id}) @@ -474,8 +475,8 @@ class License(models.Model): if self.term == 0: return u'45 дней' else: - return u'%s %s' % (self.term, - numeral.choose_plural(self.term, u"месяц, месяца, месяцев"), + return u'%s %s' % (self.term, + numeral.choose_plural(self.term, u"месяц, месяца, месяцев"), ) def get_paid_status(self): @@ -502,14 +503,14 @@ class License(models.Model): class LicensePrice(models.Model): - term = models.IntegerField(verbose_name=u'срок лицензии', + term = models.IntegerField(verbose_name=u'срок лицензии', choices=consts.TERMS) price = models.IntegerField(verbose_name=u'сумма оплаты') def __unicode__(self): - return u'%s %s (%d %s)' % (self.term, - numeral.choose_plural(self.term, u"месяц, месяца, месяцев"), + return u'%s %s (%d %s)' % (self.term, + numeral.choose_plural(self.term, u"месяц, месяца, месяцев"), self.price, - numeral.choose_plural(self.price, u"рубль, рубля, рублей"), + numeral.choose_plural(self.price, u"рубль, рубля, рублей"), )