Public release from ruodoo-project: 19.0 - 2026-11-01 22:52:25 UTC
This commit is contained in:
68
rsbu_payroll/views/hr_employee_views.xml
Normal file
68
rsbu_payroll/views/hr_employee_views.xml
Normal 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>
|
||||
41
rsbu_payroll/views/hr_payslip_run_views.xml
Normal file
41
rsbu_payroll/views/hr_payslip_run_views.xml
Normal 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>
|
||||
19
rsbu_payroll/views/hr_payslip_views.xml
Normal file
19
rsbu_payroll/views/hr_payslip_views.xml
Normal 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>
|
||||
24
rsbu_payroll/views/hr_salary_rule_views.xml
Normal file
24
rsbu_payroll/views/hr_salary_rule_views.xml
Normal 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>
|
||||
59
rsbu_payroll/views/res_config_settings_views.xml
Normal file
59
rsbu_payroll/views/res_config_settings_views.xml
Normal 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>
|
||||
117
rsbu_payroll/views/rsbu_hr_event_views.xml
Normal file
117
rsbu_payroll/views/rsbu_hr_event_views.xml
Normal 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>
|
||||
Reference in New Issue
Block a user