# -*- coding: utf-8 -*- from django.db import models from django.core.validators import MinValueValidator, MaxValueValidator class Fond(models.Model): """НПФ.""" license = models.CharField(u'номер лицензии', max_length=255, unique=True, db_index=True) license_date = models.DateField(u'дата выдачи лицензии') name = models.CharField(u'название', max_length=255) slug = models.SlugField(u'слаг', unique=True) logo = models.ImageField(u'логотип', upload_to='npfs/', blank=True, default='') description = models.TextField(u'описание', max_length=5000, blank=True, default='') content = models.TextField(u'основной контент', max_length=10000, blank=True, default='') short_name = models.CharField(u'краткое наименование', max_length=255, blank=True, default='') full_name = models.TextField(u'полное наименование', max_length=500, blank=True, default='') inn = models.CharField(u'ИНН', max_length=255, blank=True, default='') ogrn = models.CharField(u'ОГРН', max_length=255, blank=True, default='') addr = models.TextField(u'адрес юр. лица', max_length=500, blank=True, default='') tel = models.CharField(u'телефон', max_length=255, blank=True, default='') tel2 = models.CharField(u'телефон 2', max_length=255, blank=True, default='') tel3 = models.CharField(u'телефон 3', max_length=255, blank=True, default='') url = models.URLField(u'адрес сайта', max_length=255, blank=True, default='') ops = models.BooleanField(u'деятельность по ОПС', blank=True, default=False) created_at = models.DateTimeField(u'создан', auto_now_add=True) updated_at = models.DateTimeField(u'изменен', auto_now=True) class Meta: verbose_name = u'фонд' verbose_name_plural = u'фонды' ordering = ['name', 'license'] permissions = [['can_import_export_fond', u'Импорт/экспорт']] def __unicode__(self): return (u'%s - %s' % (self.license.strip(), self.name.strip()[:50])).strip() class FondStats(models.Model): """Основные показатели НПФ.""" KVARTAL_CHOICES = ( (1, u'1 квартал'), (2, u'2 квартал'), (3, u'3 квартал'), (4, u'4 квартал'), ) fond = models.ForeignKey(Fond, verbose_name=u'фонд', related_name='stats') god = models.PositiveIntegerField(u'год', validators=[MinValueValidator(2000), MaxValueValidator(2030)]) kvartal = models.PositiveIntegerField(u'квартал', choices=KVARTAL_CHOICES) imusch = models.DecimalField(u'Имущество фонда', max_digits=12, decimal_places=2, blank=True, null=True, default=None, help_text=u'тыс. рублей') kapital = models.DecimalField(u'Капитал и резервы', max_digits=12, decimal_places=2, blank=True, null=True, default=None, help_text= u'тыс. рублей') ioud = models.DecimalField(u'ИОУД', max_digits=12, decimal_places=2, blank=True, null=True, default=None, help_text=u'тыс. рублей') pens_rezerv = models.DecimalField(u'Пенс. резервы', max_digits=12, decimal_places=2, blank=True, null=True, default=None, help_text=u'тыс. рублей') pens_nakopl = models.DecimalField(u'Пенс. накопл. (балансовая стоимость)', max_digits=12, decimal_places=2, blank=True, null=True, default=None, help_text=u'тыс. рублей') obyazat = models.DecimalField(u'Кратко- и долгосрочные обязательства фонда', max_digits=12, decimal_places=2, blank=True, null=True, default=None, help_text=u'тыс. рублей') pens_nakopl_rynok = models.DecimalField(u'Пенс. накопл. (рыночная стоимость)', max_digits=12, decimal_places=2, blank=True, null=True, default=None, help_text= u'тыс. рублей') num_zastrah = models.PositiveIntegerField(u'Кол-во застрах. лиц', blank=True, null=True, default=None, help_text=u'человек') num_zastrah_pens = models.PositiveIntegerField(u'Кол-во застрах. лиц, получ. пенсию', blank=True, null=True, default=None, help_text=u'(единовременные выплаты, срочные выплаты, накопительная часть трудовой пенсии), человек') pens_ops = models.DecimalField(u'Выплаты пенсий по ОПС', max_digits=12, decimal_places=2, blank=True, null=True, default=None, help_text=u'(единовременные выплаты, срочные выплаты, накопительная часть трудовой пенсии), тыс. рублей') num_chel = models.PositiveIntegerField(u'Кол-во участников', blank=True, null=True, default=None, help_text=u'человек') num_chel_pens = models.PositiveIntegerField(u'Кол-во участников, получ. пенсию', blank=True, null=True, default=None, help_text= u'человек') vyplat_npo = models.DecimalField(u'Выплаты пенсий по НПО', max_digits=12, decimal_places=2, blank=True, null=True, default=None, help_text=u'тыс. рублей') dohod_razmesch = models.DecimalField(u'Доходность размещения', max_digits=6, decimal_places=2, blank=True, null=True, default=None, help_text=u'средств пенсионных резервов с начала года') dohod_invest = models.DecimalField(u'Доходность инвестирования', max_digits=6, decimal_places=2, blank=True, null=True, default=None, help_text=u'средств пенсионных накоплений с начала года') created_at = models.DateTimeField(u'создан', auto_now_add=True) updated_at = models.DateTimeField(u'изменен', auto_now=True) class Meta: verbose_name = u'основные показатели фонда' verbose_name_plural = u'основные показатели фондов' permissions = [['can_imp_exp_fond_stats', u'Импорт/экспорт основных показателей НПФ']] ordering = ['fond__license', 'god', 'kvartal'] unique_together = ['fond', 'god', 'kvartal'] index_together = [['fond', 'god', 'kvartal']] def __unicode__(self): return u'%s, %s, %s' % (self.fond, self.god, self.kvartal)