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

# -*- 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)