Files
public/rsbu_payroll/models/res_company.py

65 lines
4.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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(сверка справочника кодов тарифа).')