Public release from ruodoo-project: 19.0 - 2026-11-01 22:52:25 UTC

This commit is contained in:
CI Publish Bot
2026-11-01 22:54:30 +00:00
commit 26250aa580
2492 changed files with 664277 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="rsbu_hr_employee_view_form" model="ir.ui.view">
<field name="name">rsbu.hr.employee.form</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='hr_settings']" position="after">
<page name="rsbu_payroll_page" string="РСБУ — Расчёт пособий">
<group string="Персональные данные для отчётности">
<group>
<field name="rsbu_snils"/>
<field name="rsbu_inn"/>
<field name="rsbu_insured_category"/>
<field name="rsbu_taxpayer_status"/>
</group>
<group string="Раздел 3 РСВ (перс. сведения)">
<field name="rsbu_sex"/>
<field name="rsbu_citizenship_code"/>
<field name="rsbu_id_doc_code"/>
<field name="rsbu_id_doc_number"/>
</group>
</group>
<div class="alert alert-info" role="alert">
СНИЛС, ИНН, код категории застрахованного и статус
налогоплательщика используются в персонифицированных
сведениях, РСВ, ЕФС-1 и 6-НДФЛ. Дата рождения и
гражданство берутся из вкладки «Личная информация».
</div>
<group string="Стандартные вычеты по НДФЛ">
<group>
<field name="rsbu_personal_deduction_code"/>
<field name="rsbu_gto_deduction"/>
</group>
</group>
<field name="rsbu_child_ids">
<list editable="bottom">
<field name="name"/>
<field name="birthdate"/>
<field name="order"/>
<field name="is_disabled"/>
<field name="is_student"/>
<field name="is_guardian"/>
<field name="single_parent"/>
</list>
</field>
<div class="alert alert-info" role="alert">
Детские вычеты (1400 / 2800 / 6000 ₽ по очерёдности,
+12 000 ₽ на ребёнка-инвалида) применяются, пока доход
нарастающим итогом не превысит 450 000 ₽. Прогрессивная
шкала НДФЛ 13–22% считается автоматически при расчёте.
</div>
<group string="Расчёт пособий">
<field name="rsbu_insurance_years"/>
<field name="rsbu_avg_daily_wage"/>
<field name="rsbu_currency_id" invisible="1"/>
</group>
<div class="alert alert-info" role="alert">
Страховой стаж определяет процент оплаты больничного
(≥8 лет — 100%, 5–8 лет — 80%, менее 5 лет — 60%).
Средний дневной заработок используется для расчёта
больничного (позже — калькулятор за 2 года).
</div>
</page>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="rsbu_hr_payslip_run_view_form" model="ir.ui.view">
<field name="name">rsbu.hr.payslip.run.form</field>
<field name="model">hr.payslip.run</field>
<field name="inherit_id" ref="payroll.hr_payslip_run_view_form"/>
<field name="arch" type="xml">
<!-- Кнопки реестра выплаты в шапке -->
<xpath expr="//header" position="inside">
<button name="action_rsbu_pay" type="object"
string="Провести выплату" class="btn-primary"
invisible="payout_state == 'paid'"/>
<button name="action_rsbu_pay_cancel" type="object"
string="Отменить выплату"
invisible="payout_state != 'paid'"/>
<field name="payout_state" widget="statusbar"/>
</xpath>
<!-- Реквизиты зарплатного проекта и итоги -->
<xpath expr="//sheet" position="before">
<div class="oe_button_box" name="rsbu_run_button_box">
<button name="action_view_rsbu_payout_move" type="object"
class="oe_stat_button" icon="fa-book"
invisible="not rsbu_payout_move_id">
<div class="o_stat_info">
<span class="o_stat_text">Проводка выплаты</span>
</div>
</button>
</div>
</xpath>
<xpath expr="//group" position="after">
<group string="Зарплатный проект (реестр)">
<field name="payment_bank_partner_id"/>
<field name="payment_date"/>
<field name="bank_fee_amount"/>
<field name="total_net"/>
<field name="currency_id" invisible="1"/>
</group>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="rsbu_hr_payslip_view_form" model="ir.ui.view">
<field name="name">rsbu.hr.payslip.form</field>
<field name="model">hr.payslip</field>
<field name="inherit_id" ref="payroll.hr_payslip_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='button_box']" position="inside">
<button name="action_view_rsbu_move" type="object"
class="oe_stat_button" icon="fa-book"
invisible="not rsbu_move_id">
<div class="o_stat_info">
<span class="o_stat_text">РСБУ-проводка</span>
</div>
</button>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="rsbu_hr_salary_rule_view_form" model="ir.ui.view">
<field name="name">rsbu.hr.salary.rule.form</field>
<field name="model">hr.salary.rule</field>
<field name="inherit_id" ref="payroll.hr_salary_rule_view_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page name="rsbu_accounts" string="Счета РСБУ">
<group>
<field name="rsbu_account_debit"/>
<field name="rsbu_account_credit"/>
<field name="rsbu_subconto_employee"/>
</group>
<div class="alert alert-info" role="alert">
Счета плана счетов РСБУ, по которым формируется проводка
при проведении расчётного листка. Правила-итоги
(Начислено, К выплате) счетов не имеют.
</div>
</page>
</notebook>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="rsbu_payroll_res_config_settings_view_form" model="ir.ui.view">
<field name="name">rsbu.payroll.res.config.settings.form</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//form" position="inside">
<app data-string="РСБУ — Зарплата" string="РСБУ — Зарплата"
name="rsbu_payroll"
img="/rsbu_payroll/static/description/icon.png">
<block title="Страховые взносы (единый тариф)"
help="Разбивка единого тарифа на виды для РСВ. Сумма ОПС+ОМС+ВНиМ = единый тариф. Сверьте с нормативкой 2026.">
<setting string="Тариф ОПС, %">
<field name="rsbu_rate_ops"/>
</setting>
<setting string="Тариф ОМС, %">
<field name="rsbu_rate_oms"/>
</setting>
<setting string="Тариф ВНиМ, %">
<field name="rsbu_rate_vnim"/>
</setting>
<setting string="Тариф взносов на травматизм, %">
<field name="rsbu_injury_rate"/>
</setting>
</block>
<block title="Льготный тариф МСП"
help="Для субъектов МСП: выплаты сверх 1.5 МРОТ по льготному тарифу.">
<setting string="Применять льготный тариф МСП">
<field name="rsbu_msp_enabled"/>
</setting>
<setting string="Льготный тариф МСП, %"
invisible="not rsbu_msp_enabled">
<field name="rsbu_msp_rate"/>
</setting>
<setting string="МРОТ"
invisible="not rsbu_msp_enabled">
<field name="rsbu_min_wage"/>
<field name="company_currency_id" invisible="1"/>
</setting>
<setting string="Предельная база взносов (год)">
<field name="rsbu_insurance_base_limit"/>
</setting>
<setting string="Код тарифа плательщика (РСВ)"
help="ТарифПлат в РСВ: 01 — основной, 20 — МСП">
<field name="rsbu_payer_tariff_code"/>
</setting>
</block>
<block title="НДФЛ"
help="НДФЛ считается по прогрессивной шкале 13–22% нарастающим итогом с учётом вычетов (ст.224/225/218 НК). Ставка ниже — справочная.">
<setting string="Базовая ставка НДФЛ, % (справочно)">
<field name="rsbu_ndfl_rate"/>
</setting>
</block>
</app>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_rsbu_hr_event_list" model="ir.ui.view">
<field name="name">rsbu.hr.event.list</field>
<field name="model">rsbu.hr.event</field>
<field name="arch" type="xml">
<list string="Кадровые мероприятия">
<field name="event_date"/>
<field name="employee_id"/>
<field name="kind"/>
<field name="job_title"/>
<field name="state" widget="badge"/>
<field name="company_id" groups="base.group_multi_company"/>
</list>
</field>
</record>
<record id="view_rsbu_hr_event_form" model="ir.ui.view">
<field name="name">rsbu.hr.event.form</field>
<field name="model">rsbu.hr.event</field>
<field name="arch" type="xml">
<form string="Кадровое мероприятие">
<header>
<field name="state" widget="statusbar"/>
</header>
<sheet>
<div class="oe_title">
<h1><field name="name" readonly="1"/></h1>
</div>
<group>
<group string="Мероприятие">
<field name="employee_id"/>
<field name="event_date"/>
<field name="kind"/>
<field name="event_uuid" readonly="1"/>
<field name="company_id"
groups="base.group_multi_company"/>
</group>
<group string="Сведения о работе">
<field name="job_title"/>
<field name="employment_type"/>
<field name="work_kind"/>
<field name="department_name"/>
<field name="func_code"/>
<field name="okz_code"
placeholder="напр. 2512.1"/>
</group>
</group>
<group string="Документ-основание">
<group>
<field name="basis_name"/>
<field name="basis_date"/>
</group>
<group>
<field name="basis_series"/>
<field name="basis_number"/>
</group>
</group>
<group string="Основание увольнения"
invisible="kind != '5'">
<group>
<field name="dismissal_reason_code"
placeholder="напр. п3ч1с77тк"/>
<field name="dismissal_document"/>
<field name="dismissal_reason"/>
</group>
<group>
<field name="dismissal_article"/>
<field name="dismissal_part"/>
<field name="dismissal_point"/>
<field name="dismissal_subpoint"/>
<field name="dismissal_paragraph"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_rsbu_hr_event_search" model="ir.ui.view">
<field name="name">rsbu.hr.event.search</field>
<field name="model">rsbu.hr.event</field>
<field name="arch" type="xml">
<search string="Кадровые мероприятия">
<field name="employee_id"/>
<field name="kind"/>
<filter name="draft" string="Черновики"
domain="[('state', '=', 'draft')]"/>
<filter name="reported" string="Поданные"
domain="[('state', '=', 'reported')]"/>
<separator/>
<filter name="group_employee" string="Сотрудник"
context="{'group_by': 'employee_id'}"/>
<filter name="group_kind" string="Вид мероприятия"
context="{'group_by': 'kind'}"/>
</search>
</field>
</record>
<record id="action_rsbu_hr_event" model="ir.actions.act_window">
<field name="name">Кадровые мероприятия</field>
<field name="res_model">rsbu.hr.event</field>
<field name="view_mode">list,form</field>
</record>
<!-- Раздел «Кадровый учёт» в приложении Payroll (OCA). Здесь же
будущий «Воинский учёт». Наследуемся от корневого меню OCA-модуля
payroll; сам код остаётся в rsbu_payroll. -->
<menuitem id="menu_rsbu_hr" name="Кадровый учёт"
parent="payroll.payroll_menu_root" sequence="50"
groups="rsbu_chart_of_accounts.group_rsbu_account_user"/>
<menuitem id="menu_rsbu_hr_event"
name="Кадровые мероприятия"
parent="menu_rsbu_hr" action="action_rsbu_hr_event"
sequence="10"/>
</odoo>