You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
6.6 KiB
116 lines
6.6 KiB
# -*- 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)
|
|
|