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(сверка справочника кодов тарифа).')