Files
public/rsbu_reporting_base/models/res_company.py

96 lines
6.6 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.
"""Реквизиты компании (страхователя/налогоплательщика) для отчётности.
Обязательные реквизиты XML-форматов ФНС и СФР, отсутствующие в базовых
модулях: ОКТМО, код налогового органа, ОКВЭД, КБК по налогам/взносам,
регистрационный номер СФР, класс профессионального риска, подписант.
ВНИМАНИЕ: конкретные коды (ОКТМО, код НО), значения КБК и класс профриска
зависят от организации и региона — задаются пользователем в настройках.
Приведённые defaults КБК — типовые на 2026 и подлежат сверке с актуальными
приказами Минфина. TODO(сверка).
"""
from odoo import fields, models
# Типовые КБК 2026 (подлежат сверке — TODO). Заданы как defaults, чтобы
# не хардкодить в генераторах XML; пользователь корректирует в настройках.
KBK_USN_INCOME = '18210501011011000110' # УСН «Доходы»
KBK_NDS = '18210301000011000110' # НДС
KBK_NDFL = '18210102010011000110' # НДФЛ (агент)
KBK_INSURANCE_UNIFIED = '18210201000011000160' # Страховые взносы (ед. тариф)
KBK_INJURY = '79710212000061000160' # Взносы на травматизм (СФР)
class ResCompany(models.Model):
_inherit = 'res.company'
# --- Территория и налоговый орган ---
rsbu_oktmo = fields.Char(
string='ОКТМО',
help='Код территории муниципального образования (ОКТМО) для '
'деклараций и уведомлений. TODO(сверка).')
rsbu_tax_office_code = fields.Char(
string='Код налогового органа',
help='Четырёхзначный код ИФНС по месту учёта. TODO(сверка).')
rsbu_okved = fields.Char(
string='ОКВЭД',
help='Основной код вида экономической деятельности. TODO(сверка).')
# --- КБК по налогам и взносам ---
rsbu_kbk_usn = fields.Char(
string='КБК УСН', default=KBK_USN_INCOME,
help='КБК налога при УСН. TODO(сверка с приказом Минфина).')
rsbu_kbk_nds = fields.Char(
string='КБК НДС', default=KBK_NDS,
help='КБК налога на добавленную стоимость. TODO(сверка).')
rsbu_kbk_ndfl = fields.Char(
string='КБК НДФЛ', default=KBK_NDFL,
help='КБК налога на доходы физлиц (налоговый агент). TODO(сверка).')
rsbu_kbk_insurance = fields.Char(
string='КБК страховых взносов', default=KBK_INSURANCE_UNIFIED,
help='КБК страховых взносов по единому тарифу. TODO(сверка).')
rsbu_kbk_injury = fields.Char(
string='КБК взносов на травматизм', default=KBK_INJURY,
help='КБК взносов на травматизм (СФР). TODO(сверка).')
# --- Реквизиты страхователя в СФР ---
rsbu_sfr_reg_number = fields.Char(
string='Рег. номер в СФР',
help='Регистрационный номер страхователя в Социальном фонде России '
'(для ЕФС-1). TODO(сверка).')
rsbu_profrisk_class = fields.Char(
string='Класс профриска',
help='Класс профессионального риска (определяет тариф взносов на '
'травматизм). TODO(сверка с уведомлением СФР).')
rsbu_ogrn = fields.Char(
string='ОГРН',
help='Основной государственный регистрационный номер юридического '
'лица (13 знаков). Элемент «ОГРН» блока «Страхователь» в ЕФС-1. '
'Для ИП указывается ОГРНИП (15 знаков).')
# --- Подписант отчётности ---
rsbu_signatory_id = fields.Many2one(
'res.users', string='Подписант отчётности',
help='Лицо, подписывающее налоговую/страховую отчётность '
'(руководитель или уполномоченный представитель).')
rsbu_signatory_is_representative = fields.Boolean(
string='Подписант — представитель',
help='Отмечено — подписант является уполномоченным представителем '
'(признак «2» в XML), иначе руководитель (признак «1»).')
rsbu_signatory_title = fields.Char(
string='Должность подписанта', default='ГЕНЕРАЛЬНЫЙ ДИРЕКТОР',
help='Должность руководителя (уполномоченного представителя), '
'подписывающего отчётность. Элемент «Должность» в блоке '
'«Руководитель» ЕФС-1.')
# --- Электронный документооборот (ЭДО) — для имени файла обмена УПД ---
rsbu_edo_operator_code = fields.Char(
string='Код оператора ЭДО (УИОЭДО)', size=3, default='000',
help='Трёхзначный код оператора ЭДО, присвоенный ФНС (напр. «2BM» — '
'Диадок, «2BE» — СБИС). «000» — при обмене не через оператора '
'ЭДО. Используется в имени файла обмена УПД.')
rsbu_edo_participant_id = fields.Char(
string='Идентификатор участника ЭДО',
help='Уникальный идентификатор участника (организации) в системе '
'ЭДО, присвоенный оператором (УИОтпр в имени файла обмена). '
'При обмене не через оператора — GUID участника.')