mirror of
https://github.com/bringout/oca-payroll.git
synced 2026-04-24 08:01:59 +02:00
Initial commit: OCA Payroll packages (5 packages)
This commit is contained in:
commit
d19274f581
407 changed files with 214057 additions and 0 deletions
|
|
@ -0,0 +1,64 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="view_date_range_type_hr_tree" model="ir.ui.view">
|
||||
<field name="name">date.range.type.hr.tree</field>
|
||||
<field name="model">date.range.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name" />
|
||||
<field name="allow_overlap" />
|
||||
<field
|
||||
name="company_id"
|
||||
groups="base.group_multi_company"
|
||||
options="{'no_create': True}"
|
||||
/>
|
||||
<field name="hr_fiscal_year" />
|
||||
<field name="hr_period" />
|
||||
<field name="active" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_date_range_type_hr_form_view" model="ir.ui.view">
|
||||
<field name="name">date.range.type.hr.form</field>
|
||||
<field name="model">date.range.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Daterange Type">
|
||||
<group col="4">
|
||||
<field name="name" />
|
||||
<field name="allow_overlap" />
|
||||
<field
|
||||
name="company_id"
|
||||
groups="base.group_multi_company"
|
||||
options="{'no_create': True}"
|
||||
/>
|
||||
<field name="hr_fiscal_year" />
|
||||
<field name="hr_period" />
|
||||
<field name="active" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="date_range_type_hr_action" model="ir.actions.act_window">
|
||||
<field name="name">Period Types</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">date.range.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field
|
||||
name="view_ids"
|
||||
eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('view_date_range_type_hr_tree')}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('view_date_range_type_hr_form_view')})]"
|
||||
/>
|
||||
<field
|
||||
name="domain"
|
||||
>['|', ('hr_period', '=', True), ('hr_fiscal_year', '=', True)]</field>
|
||||
<field name="context">{}</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
action="date_range_type_hr_action"
|
||||
id="menu_date_range_type_action"
|
||||
parent="hr_payroll_period.hr_period_configure"
|
||||
sequence="23"
|
||||
/>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<!-- Form -->
|
||||
<record id="view_hr_fiscalyear_form" model="ir.ui.view">
|
||||
<field name="name">hr.fiscalyear.form</field>
|
||||
<field name="model">hr.fiscalyear</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Fiscal Year">
|
||||
<header>
|
||||
<button
|
||||
name="create_periods"
|
||||
string="Create Periods"
|
||||
type="object"
|
||||
class="btn-primary"
|
||||
states="draft"
|
||||
/>
|
||||
<button
|
||||
name="button_set_to_draft"
|
||||
string="Set To Draft"
|
||||
type="object"
|
||||
states="open"
|
||||
/>
|
||||
<button
|
||||
name="button_confirm"
|
||||
string="Confirm"
|
||||
type="object"
|
||||
class="btn-primary"
|
||||
states="draft"
|
||||
/>
|
||||
<field name="state" widget="statusbar" nolabel="1" />
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only" />
|
||||
<h1>
|
||||
<field name="name" placeholder="Fiscal year..." />
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="schedule_pay" />
|
||||
<label for="date_start" string="Period" />
|
||||
<div>
|
||||
<field
|
||||
name="date_start"
|
||||
widget="daterange"
|
||||
class="oe_inline"
|
||||
options="{'related_end_date': 'date_end'}"
|
||||
/>
|
||||
-
|
||||
<field
|
||||
name="date_end"
|
||||
widget="daterange"
|
||||
class="oe_inline"
|
||||
options="{'related_start_date': 'date_start'}"
|
||||
/>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field
|
||||
name="company_id"
|
||||
groups="base.group_multi_company"
|
||||
/>
|
||||
<field name="type_id" domain="[('hr_fiscal_year','=',True)]" />
|
||||
</group>
|
||||
<group>
|
||||
<field
|
||||
name="payment_day"
|
||||
attrs="{
|
||||
'invisible': [('schedule_pay', 'in', ['weekly', 'bi-weekly'])],
|
||||
'required': [('schedule_pay', 'not in', ['weekly', 'bi-weekly'])],
|
||||
}"
|
||||
/>
|
||||
<newline />
|
||||
<field
|
||||
name="payment_weekday"
|
||||
attrs="{
|
||||
'invisible': [('schedule_pay', 'not in', ['weekly', 'bi-weekly'])],
|
||||
'required': [('schedule_pay', 'in', ['weekly', 'bi-weekly'])],
|
||||
}"
|
||||
/>
|
||||
<field
|
||||
name="payment_week"
|
||||
attrs="{
|
||||
'invisible': [('schedule_pay', 'not in', ['weekly', 'bi-weekly'])],
|
||||
'required': [('schedule_pay', 'in', ['weekly', 'bi-weekly'])],
|
||||
}"
|
||||
/>
|
||||
</group>
|
||||
</group>
|
||||
<field colspan="4" name="period_ids" nolabel="1" />
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Tree -->
|
||||
<record id="view_hr_fiscalyear_tree" model="ir.ui.view">
|
||||
<field name="name">hr.fiscalyear.tree</field>
|
||||
<field name="model">hr.fiscalyear</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree
|
||||
decoration-info="state == 'draft'"
|
||||
decoration-muted="state == 'done'"
|
||||
name="Fiscalyear"
|
||||
>
|
||||
<field name="name" />
|
||||
<field name="company_id" groups="base.group_multi_company" />
|
||||
<field name="state" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Search -->
|
||||
<record id="view_hr_fiscalyear_search" model="ir.ui.view">
|
||||
<field name="name">hr.fiscalyear.search</field>
|
||||
<field name="model">hr.fiscalyear</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Fiscalyear">
|
||||
<field
|
||||
name="name"
|
||||
filter_domain="[('name', 'ilike', self)]"
|
||||
string="Fiscal Year"
|
||||
/>
|
||||
<field name="schedule_pay" />
|
||||
<field name="payment_weekday" />
|
||||
<field name="payment_day" />
|
||||
<filter
|
||||
name="open"
|
||||
string="Open"
|
||||
domain="[('state', '=', 'open')]"
|
||||
icon="terp-camera_test"
|
||||
/>
|
||||
<filter
|
||||
name="closed"
|
||||
string="Closed"
|
||||
domain="[('state', '=', 'done')]"
|
||||
icon="terp-dialog-close"
|
||||
/>
|
||||
<field name="state" />
|
||||
<group expand="0" string="Group By...">
|
||||
<filter
|
||||
name="Status"
|
||||
context="{'group_by': 'state'}"
|
||||
icon="terp-stock_effects-object-colorize"
|
||||
/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Action -->
|
||||
<record id="action_hr_fiscalyear" model="ir.actions.act_window">
|
||||
<field name="name">Payroll Fiscal Years</field>
|
||||
<field name="res_model">hr.fiscalyear</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('type_id.hr_fiscal_year','=',True)]</field>
|
||||
</record>
|
||||
<!-- Menu -->
|
||||
<menuitem
|
||||
id="menu_action_hr_fiscalyear"
|
||||
action="action_hr_fiscalyear"
|
||||
parent="hr_payroll_period.hr_period_configure"
|
||||
sequence="25"
|
||||
/>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="view_hr_payslip_by_employees" model="ir.ui.view">
|
||||
<field name="name">hr_payroll_payslip_employees</field>
|
||||
<field name="model">hr.payslip.employees</field>
|
||||
<field name="inherit_id" ref="payroll.view_hr_payslip_by_employees" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="employee_ids" position="before">
|
||||
<field name="company_id" groups="base.group_multi_company" />
|
||||
<field name="schedule_pay" />
|
||||
<field
|
||||
name="employee_ids"
|
||||
nolabel="1"
|
||||
groups="!base.group_multi_company"
|
||||
colspan="2"
|
||||
/>
|
||||
</field>
|
||||
<field name="employee_ids" position="attributes">
|
||||
<attribute name="colspan">2</attribute>
|
||||
<attribute name="domain">[
|
||||
('company_id', '=', company_id)
|
||||
]</attribute>
|
||||
<attribute name="groups">base.group_multi_company</attribute>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<!-- Form -->
|
||||
<record id="hr_payslip_run_form" model="ir.ui.view">
|
||||
<field name="name">hr.payslip.run.period.form</field>
|
||||
<field name="model">hr.payslip.run</field>
|
||||
<field name="inherit_id" ref="payroll.hr_payslip_run_view_form" />
|
||||
<field name="priority">100</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="struct_id" position="before">
|
||||
<field name="company_id" invisible="1" />
|
||||
</field>
|
||||
<label for="date_start" position="before">
|
||||
<field
|
||||
name="hr_period_id"
|
||||
domain="[
|
||||
('state', '=', 'open'),
|
||||
]"
|
||||
groups="!base.group_multi_company"
|
||||
/>
|
||||
<field
|
||||
name="hr_period_id"
|
||||
domain="[
|
||||
('state', '=', 'open'),
|
||||
('company_id', '=', company_id)
|
||||
]"
|
||||
groups="base.group_multi_company"
|
||||
/>
|
||||
<field name="schedule_pay" />
|
||||
<field name="date_payment" required="1" />
|
||||
</label>
|
||||
<button
|
||||
name="%(payroll.action_hr_payslip_by_employees)d"
|
||||
position="replace"
|
||||
>
|
||||
<button
|
||||
name="get_payslip_employees_wizard"
|
||||
type="object"
|
||||
states="draft"
|
||||
string="Generate Payslips"
|
||||
class="btn-primary"
|
||||
/>
|
||||
</button>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Search -->
|
||||
<record id="hr_payslip_run_filter" model="ir.ui.view">
|
||||
<field name="name">hr.payslip.run.period.search</field>
|
||||
<field name="model">hr.payslip.run</field>
|
||||
<field name="inherit_id" ref="payroll.hr_payslip_run_view_search" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="name" position="after">
|
||||
<field name="company_id" />
|
||||
<field name="date_payment" />
|
||||
<field name="schedule_pay" />
|
||||
</field>
|
||||
<search position="inside">
|
||||
<group string="Group By...">
|
||||
<filter
|
||||
string="Company"
|
||||
name="company_id"
|
||||
groups="base.group_multi_company"
|
||||
context="{'group_by':'company_id'}"
|
||||
/>
|
||||
<filter
|
||||
string="Scheduled Pay"
|
||||
name="schedule_pay"
|
||||
context="{'group_by':'schedule_pay'}"
|
||||
/>
|
||||
<filter
|
||||
string="Payment Date"
|
||||
name="date_payment"
|
||||
context="{'group_by':'date_payment'}"
|
||||
/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Tree -->
|
||||
<record id="hr_payslip_run_tree" model="ir.ui.view">
|
||||
<field name="name">hr.payslip.run.period.tree</field>
|
||||
<field name="model">hr.payslip.run</field>
|
||||
<field name="inherit_id" ref="payroll.hr_payslip_run_view_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="date_end" position="after">
|
||||
<field name="date_payment" />
|
||||
<field name="schedule_pay" />
|
||||
<field name="company_id" groups="base.group_multi_company" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<!-- Form -->
|
||||
<record id="view_hr_payslip_form" model="ir.ui.view">
|
||||
<field name="name">hr.payslip.period.form</field>
|
||||
<field name="model">hr.payslip</field>
|
||||
<field name="inherit_id" ref="payroll.hr_payslip_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="date_from" position="before">
|
||||
<field
|
||||
name="hr_period_id"
|
||||
domain="[
|
||||
('state', '=', 'open'),
|
||||
]"
|
||||
groups="!base.group_multi_company"
|
||||
/>
|
||||
<field
|
||||
name="hr_period_id"
|
||||
domain="[
|
||||
('state', '=', 'open'),
|
||||
('company_id', '=', company_id)
|
||||
]"
|
||||
groups="base.group_multi_company"
|
||||
/>
|
||||
</field>
|
||||
<field name="name" position="after">
|
||||
<field name="date_payment" required="1" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Tree -->
|
||||
<record id="view_hr_payslip_tree" model="ir.ui.view">
|
||||
<field name="name">hr.payslip.period.tree</field>
|
||||
<field name="model">hr.payslip</field>
|
||||
<field name="inherit_id" ref="payroll.hr_payslip_view_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="date_to" position="after">
|
||||
<field name="date_payment" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Search -->
|
||||
<record id="view_hr_payslip_filter" model="ir.ui.view">
|
||||
<field name="name">hr.payslip.period.select</field>
|
||||
<field name="model">hr.payslip</field>
|
||||
<field name="inherit_id" ref="payroll.hr_payslip_view_search" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="date_from" position="after">
|
||||
<field name="date_payment" />
|
||||
</field>
|
||||
<filter name="employee_id" position="after">
|
||||
<filter
|
||||
string="Payment Date"
|
||||
name="date_payment"
|
||||
context="{'group_by':'date_payment'}"
|
||||
/>
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<!-- Form -->
|
||||
<record id="view_hr_period_form" model="ir.ui.view">
|
||||
<field name="name">hr.period.form</field>
|
||||
<field name="model">hr.period</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Payroll Periods">
|
||||
<header>
|
||||
<button
|
||||
name="button_open"
|
||||
string="Open Period"
|
||||
type="object"
|
||||
states="draft"
|
||||
/>
|
||||
<button
|
||||
name="button_re_open"
|
||||
string="Re-Open Period"
|
||||
type="object"
|
||||
states="done"
|
||||
/>
|
||||
<button
|
||||
name="button_close"
|
||||
string="Close Period"
|
||||
type="object"
|
||||
states="open"
|
||||
/>
|
||||
<field
|
||||
name="state"
|
||||
widget="statusbar"
|
||||
statusbar_visible="draft,open,done"
|
||||
/>
|
||||
</header>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name" />
|
||||
<field name="fiscalyear_id" widget="selection" />
|
||||
<label for="date_start" string="Duration" />
|
||||
<div>
|
||||
<field
|
||||
name="date_start"
|
||||
nolabel="1"
|
||||
class="oe_inline"
|
||||
/> -
|
||||
<field name="date_end" nolabel="1" class="oe_inline" />
|
||||
</div>
|
||||
<field name="date_payment" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="schedule_pay" />
|
||||
<field name="type_id" domain="[('hr_period','=',True)]" />
|
||||
<field name="number" />
|
||||
<field
|
||||
name="company_id"
|
||||
widget="selection"
|
||||
groups="base.group_multi_company"
|
||||
/>
|
||||
</group>
|
||||
</group>
|
||||
<separator string="Payslips" />
|
||||
<newline />
|
||||
<field name="payslip_ids" nolabel="1" />
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Tree -->
|
||||
<record id="view_hr_period_tree" model="ir.ui.view">
|
||||
<field name="name">hr.period.tree</field>
|
||||
<field name="model">hr.period</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree
|
||||
decoration-info="state == 'open'"
|
||||
decoration-muted="state == 'done'"
|
||||
name="Payroll Period"
|
||||
>
|
||||
<field name="name" />
|
||||
<field name="date_start" />
|
||||
<field name="date_end" />
|
||||
<field name="date_payment" />
|
||||
<field name="company_id" groups="base.group_multi_company" />
|
||||
<field name="state" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Search -->
|
||||
<record id="view_hr_period_search" model="ir.ui.view">
|
||||
<field name="name">hr.period.search</field>
|
||||
<field name="model">hr.period</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Period">
|
||||
<field
|
||||
name="name"
|
||||
filter_domain="['|', ('name', 'ilike', self), ('number', 'ilike', self)]"
|
||||
string="Period"
|
||||
/>
|
||||
<field name="schedule_pay" />
|
||||
<field name="fiscalyear_id" />
|
||||
<field name="date_payment" />
|
||||
<field name="state" />
|
||||
<group expand="0" string="Group By...">
|
||||
<filter
|
||||
string="To Close"
|
||||
name="draft"
|
||||
domain="[('state', '=', 'draft')]"
|
||||
icon="terp-dialog-close"
|
||||
/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Action -->
|
||||
<record id="action_hr_period" model="ir.actions.act_window">
|
||||
<field name="name">Payroll Periods</field>
|
||||
<field name="res_model">hr.period</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('type_id.hr_period', '=', True)]</field>
|
||||
<field
|
||||
name="context"
|
||||
>{'search_default_state': 'open', 'search_default_schedule_pay': 'monthly'}</field>
|
||||
</record>
|
||||
<!-- Menu -->
|
||||
<menuitem
|
||||
id="menu_action_hr_period"
|
||||
action="action_hr_period"
|
||||
parent="hr_payroll_period.hr_period_configure"
|
||||
sequence="26"
|
||||
/>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<menuitem
|
||||
id="hr_period_configure"
|
||||
parent="payroll.payroll_menu_configuration"
|
||||
name="Fiscal Years and Periods"
|
||||
groups="payroll.group_payroll_manager"
|
||||
sequence="50"
|
||||
/>
|
||||
</odoo>
|
||||
Loading…
Add table
Add a link
Reference in a new issue