65 lines
4.7 KiB
Python
65 lines
4.7 KiB
Python
from odoo import fields, models
|
||
|
||
|
||
class ResCompany(models.Model):
|
||
_inherit = 'res.company'
|
||
|
||
# ВНИМАНИЕ: значения-заглушки. Перед вводом в эксплуатацию сверить
|
||
# ставки с актуальной нормативкой 2026 (НДФЛ, единый тариф, льготный
|
||
# тариф МСП, тариф травматизма по классу профриска). TODO(сверка).
|
||
rsbu_ndfl_rate = fields.Float(
|
||
string='Ставка НДФЛ, %', default=13.0,
|
||
help='Базовая ставка НДФЛ (справочно). С 2025 НДФЛ считается по '
|
||
'прогрессивной шкале 13–22% нарастающим итогом с учётом вычетов '
|
||
'(см. hr.payslip.rsbu_compute_ndfl); это поле в расчёте не '
|
||
'используется, оставлено для совместимости/справки.')
|
||
rsbu_insurance_rate = fields.Float(
|
||
string='Тариф страховых взносов (единый), %', default=30.0,
|
||
help='Единый тариф страховых взносов в пределах предельной базы. '
|
||
'Разбивка на ОПС/ОМС/ВНиМ для РСВ — по долям ниже.')
|
||
|
||
# --- Разбивка единого тарифа на виды (для РСВ). Доли в пределах базы;
|
||
# сумма должна давать rsbu_insurance_rate. Значения по НК: ОПС 22 +
|
||
# ОМС 5.1 + ВНиМ 2.9 = 30%. TODO(сверка на 2026). ---
|
||
rsbu_rate_ops = fields.Float(
|
||
string='Тариф ОПС, %', default=22.0,
|
||
help='Взносы на обязательное пенсионное страхование (в пределах базы).')
|
||
rsbu_rate_oms = fields.Float(
|
||
string='Тариф ОМС, %', default=5.1,
|
||
help='Взносы на обязательное медицинское страхование.')
|
||
rsbu_rate_vnim = fields.Float(
|
||
string='Тариф ВНиМ, %', default=2.9,
|
||
help='Взносы на случай временной нетрудоспособности и материнства.')
|
||
|
||
# --- Льготный тариф МСП (сверх 1.5 МРОТ) и предельная база. ---
|
||
rsbu_msp_enabled = fields.Boolean(
|
||
string='Льготный тариф МСП',
|
||
help='Субъект МСП: выплаты сверх 1.5 МРОТ в месяц облагаются по '
|
||
'льготному тарифу (ниже). TODO(сверка права на льготу).')
|
||
rsbu_msp_rate = fields.Float(
|
||
string='Льготный тариф МСП, %', default=15.0,
|
||
help='Совокупный тариф для выплат сверх 1.5 МРОТ (МСП). TODO(сверка).')
|
||
rsbu_min_wage = fields.Monetary(
|
||
string='МРОТ', currency_field='currency_id',
|
||
help='Минимальный размер оплаты труда для порога МСП (1.5 МРОТ) и '
|
||
'иных расчётов. TODO(актуальный МРОТ на 2026).')
|
||
rsbu_insurance_base_limit = fields.Monetary(
|
||
string='Предельная база взносов (год)', currency_field='currency_id',
|
||
help='Предельная величина базы для страховых взносов нарастающим '
|
||
'итогом с начала года; сверх неё ОПС/ВНиМ по пониженному '
|
||
'тарифу. TODO(предельная база на 2026).')
|
||
|
||
rsbu_injury_rate = fields.Float(
|
||
string='Тариф взносов на травматизм, %', default=0.2,
|
||
help='Тариф взносов на травматизм по классу профриска.')
|
||
|
||
# --- Код тарифа плательщика для РСВ (раздел 1, РасчСВ_ОПС_ОМС/ТарифПлат
|
||
# и код категории застрахованного). ---
|
||
rsbu_payer_tariff_code = fields.Char(
|
||
string='Код тарифа плательщика (РСВ)', default='01', size=2,
|
||
help='Код тарифа плательщика страховых взносов для РСВ (атрибут '
|
||
'«ТарифПлат», справочник формата 5.08: 01, 06, 07, 10, 11, '
|
||
'13–19 и т.д.). Для субъекта МСП на едином пониженном тарифе '
|
||
'выберите соответствующий код из справочника ФНС. '
|
||
'TODO(сверка справочника кодов тарифа).')
|