osbzr/gooderp_addons

View on GitHub
staff/views/staff.xml

Summary

Maintainability
Test Coverage
<?xml version="1.0"?>
<openerp>
    <data>
        <!--菜单-->
        <menuitem name="人力资源"
            id="menu_staff_root" groups="staff.hr_groups" web_icon="staff,static/description/icon.png"/>
        <menuitem id="menu_staff_main" name="员工" groups="staff.hr_groups" parent="staff.menu_staff_root"/>
        <menuitem id="menu_staff_configuration" name="设置" groups="staff.hr_senior_groups"
                parent="staff.menu_staff_root"/>
        <!--员工界面-->
        <record id="view_staff_employee_form" model="ir.ui.view">
            <field name="name">staff.employee.form</field>
            <field name="model">staff</field>
            <field name="arch" type="xml">
                <form string="员工">
                    <sheet>
                        <field name="image_medium" widget="image" class="oe_avatar oe_left"/>
                        <div class="oe_title">
                            <label for="name" class="oe_edit_only"/>
                            <h1>
                                <field name="name"/>
                            </h1>
                            <label for="category_ids" class="oe_edit_only"/>
                            <field name="category_ids" widget="many2many_tags"/>
                            <label for="work_email" class="oe_edit_only"/>
                            <field name="work_email" widget="email"/>
                            <label for="work_phone" class="oe_edit_only"/>
                            <field name="work_phone" required="1"/>
                        </div>
                        <notebook>
                            <page string="公开信息">
                                <group>
                                    <group string="职位">
                                        <field name="job_id"/>
                                        <field name="department_id"/>
                                        <field name="parent_id"/>
                                    </group>
                                    <group string="联系信息">
                                        <field name="work_mobile"/>
                                    </group>
                                    <group>
                                        <field name="identification_id" required="1"/>
                                        <field name="type_of_certification"/>
                                        <field name="bank_name"/>
                                        <field name="bank_num"/>
                                    </group>
                                    <group>
                                        <field name="user_id"/>
                                    </group>
                                </group>
                                <field name="notes" placeholder="其他信息 ..." colspan="4"/>
                            </page>
                            <page string="个人信息" groups='staff.hr_senior_groups'>
                                <group>
                                    <group string="国籍和其他">
                                        <field name="birthday"/>
                                        <field name="is_arbeitnehmer"/>
                                        <field name="is_investoren"/>
                                        <field name="is_bsw"/>
                                        <field name="emergency_contact"/>
                                        <field name="emergency_call"/>
                                    </group>
                                    <group string="状态">
                                        <field name="gender"/>
                                        <field name="marital"/>
                                    </group>
                                </group>
                            </page>
                            <page string='合同' groups='staff.hr_senior_groups'>
                                <field name='contract_ids'>
                                    <tree editable='bottom'>
                                        <field name="basic_wage"/>
                                        <field name="endowment"
                                               base_string='养老保险' merge="False" child_name='个人' colspan='2'/>
                                        <field name="endowment_co"
                                               merge="True" child_name='公司'/>
                                        <field name="health"
                                               base_string='医疗保险' merge="False" child_name='个人' colspan='2'/>
                                        <field name="health_co"
                                               merge="True" child_name='公司'/>
                                        <field name="unemployment"
                                               base_string='失业保险' merge="False" child_name='个人' colspan='2'/>
                                        <field name="unemployment_co"
                                               merge="True" child_name='公司'/>
                                        <field name="housing_fund"
                                               base_string='住房公积金' merge="False" child_name='个人' colspan='2'/>
                                        <field name="housing_fund_co"
                                               merge="True" child_name='公司'/>
                                        <field name="injury"/>
                                        <field name="maternity"/>
                                        <field name="over_date"/>
                                        <field name="job_id" string='岗位'/>
                                    </tree>
                                </field>
                            </page>
                            <page string="人力资源设置" groups='staff.hr_senior_groups'>
                                <group>
                                    <group string="生效" name="active_group">
                                        <field name="active"/>
                                    </group>
                                </group>
                            </page>
                        </notebook>
                    </sheet>
                </form>
            </field>
        </record>
        <record id="view_staff_employee_tree" model="ir.ui.view">
            <field name="name">staff.employee.tree</field>
            <field name="model">staff</field>
            <field name="arch" type="xml">
                <tree string="员工">
                    <field name="name"/>
                    <field name="work_phone"/>
                    <field name="work_email"/>
                    <field name="job_id"/>
                    <field name="department_id"/>
                    <field name="parent_id"/>
                    <field name='active'  invisible='1'/>
                </tree>
            </field>
        </record>
        <record id="view_staff_employee_kanban" model="ir.ui.view">
            <field name="name">staff.employee.kanban</field>
            <field name="model">staff</field>
            <field name="arch" type="xml">
                <kanban>
                  <field name="name"/>
                  <field name="work_phone"/>
                  <field name="work_email"/>
                  <field name="department_id"/>
                  <field name="work_mobile"/>
                  <field name="job_id"/>
                  <templates>
                    <t t-name="kanban-box">
                      <div class="oe_kanban_global_click">
                          <h4><img t-att-src="kanban_image('staff', 'image_medium', record.id.value)" class="oe_module_icon"/></h4>
                          <div class="oe_module_desc">
                              <p class="oe_module_name">
                                <i><field name="name"/></i>
                              </p>
                              <h4><field name="work_phone"/></h4>
                              <h4><field name="work_mobile"/></h4>
                              <h4><field name="job_id"/></h4>
                              <h4><field name="department_id"/></h4>
                              <h4><field name="work_email"/></h4>
                        </div>
                      </div>
                    </t>
                  </templates>
                </kanban>
            </field>
        </record>
        <record id="view_staff_search" model="ir.ui.view">
            <field name="name">staff.employee.search</field>
            <field name="model">staff</field>
            <field name="arch" type="xml">
                <search string="员工">
                    <field name="name" filter_domain="['|',('work_email','ilike',self),('name','ilike',self)]"/>
                    <field name="work_phone"/>
                    <field name="work_email"/>
                    <field name="job_id"/>
                    <field name="department_id"/>
                    <group string="分组">
                        <filter string="经理" domain="[]" context="{'group_by':'parent_id'}"/>
                        <filter string="部门" domain="[]" context="{'group_by':'department_id'}"/>
                        <filter string="职位" domain="[]" context="{'group_by':'job_id'}"/>
                    </group>
                </search>
            </field>
        </record>

        <record id="staff_action" model="ir.actions.act_window">
            <field name="name">员工</field>
            <field name="res_model">staff</field>
            <field name="view_type">form</field>
            <field name="view_mode">kanban,tree,form</field>
            <field name="context">{'type':'member'}</field>
            <field name="search_view_id" ref="view_staff_search"/>
            <field name="help" type="html">
              <p class="oe_view_nocontent_create">
                点击创建员工
              </p>
            </field>
        </record>
        
        <menuitem action="staff_action" id="menu_staff" groups="staff.hr_senior_groups"
            sequence="3" parent="menu_staff_main"/>

        <!--人力资源设置-->
        <record id="view_staff_department_form" model="ir.ui.view">
            <field name="name">staff.department.form</field>
            <field name="model">staff.department</field>
            <field name="arch" type="xml">
                <form string="部门">
                    <group>
                        <group>
                            <field name="name"/>
                        </group>
                        <group>
                            <field name="manager_id"/>
                            <field name="parent_id" />
                        </group>
                    </group>
                    <group>
                        <field name="jobs_ids" required='1'>
                         <tree string="职位" editable='bottom'>
                             <field name="name"/>
                        </tree>
                        </field>
                    </group>
                    <field name='note' placeholder='描述...'/>
                </form>
            </field>
        </record>

        <!-- 部门 树形显示 -->
        <record id="view_staff_department_tree" model="ir.ui.view">
            <field name="name">staff.department.tree</field>
            <field name="model">staff.department</field>
            <field name="field_parent">child_ids</field>
            <field name="arch" type="xml">
                <tree string="部门">
                    <field name="name"/>
                    <field name="manager_id"/>
                    <field name="parent_id" invisible='1'/>
                    <field name='active' invisible='1'/>
                </tree>
            </field>
        </record>

        <!-- 部门 action -->
        <record id="staff_department_action" model="ir.actions.act_window">
            <field name="name">部门</field>
            <field name="res_model">staff.department</field>
            <field name="view_type">tree</field>
            <field name="view_mode">tree,form</field>
            <field name="context">{'type':'department'}</field>
            <field name="domain">[('parent_id','=',False)]</field>
        </record>

        <!-- 在树形上打开部门 -->
        <record id="action_staff_department_open" model="ir.actions.server">
            <field name="name">Open staff department</field>
            <field name="model_id" ref="model_staff_department"/>
            <field name="state">code</field>
            <field name="code">action=records.view_detail()</field>
        </record>
        <record model="ir.values" id="ir_action_staff_department_open">
            <field name="model_id" ref="model_staff_department" />
            <field name="name">Open staff department</field>
            <field name="key2">tree_but_open</field>
            <field eval="'ir.actions.server,%d'%action_staff_department_open" name="value"/>
            <field name="key">action</field>
            <field name="model">staff.department</field>
        </record>
        <menuitem action="staff_department_action" id="menu_staff_department" sequence="4" parent="menu_staff_configuration"/>

        <record id="view_staff_job_form" model="ir.ui.view">
            <field name="name">staff.job.form</field>
            <field name="model">staff.job</field>
            <field name="arch" type="xml">
                <form string="职位">
                    <sheet>
                        <div class="oe_button_box" name="button_box"/>
                        <div class="oe_title">
                            <label for="name" class="oe_edit_only"/>
                            <h1><field name="name" placeholder="e.g. Sales Manager"/></h1>
                        </div>
                        <group name="staff_data">
                            <group>
                                <field name='department_id'/>
                                <field name='account_id'/>
                            </group>
                        </group>
                        <label for="note"/>
                        <field name='note' placeholder='描述...'/>
                    </sheet>
                </form>
            </field>
        </record>
        
        <record id="view_staff_job_tree" model="ir.ui.view">
            <field name="name">staff.job.tree</field>
            <field name="model">staff.job</field>
            <field name="arch" type="xml">
                <tree string="职位">
                    <field name="name"/>
                    <field name="department_id"/>
                    <field name='active'  invisible='1'/>
                </tree>
            </field>
        </record>
        
        <record id="staff_job_action" model="ir.actions.act_window">
            <field name="name">职位</field>
            <field name="res_model">staff.job</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
        </record>
        
        <menuitem action="staff_job_action" id="menu_staff_job" sequence="5" parent="menu_staff_configuration"/>

        <!-- 继承 公司 form 添加社保信息 -->
        <record id="staff_company_form_inherit" model="ir.ui.view">
            <field name="name">staff.company.form.inherit</field>
            <field name="model">res.company</field>
            <field name="inherit_id" ref="base.view_company_form" />
            <field name="arch" type="xml">
               <xpath expr="//notebook/page[2]" position="after">
                    <page string="社保信息">
                        <group>
                              <group>
                                <field name="housing_fund_co_ratio"/>
                                <field name="endowment_co_ratio"/>
                                <field name="health_co_ratio"/>
                                <field name="unemployment_co_ratio"/>
                                <field name="injury_ratio"/>
                                <field name="maternity_ratio"/>
                              </group>
                              <group>
                                <field name="housing_fund_ratio"/>
                                <field name="endowment_ratio"/>
                                <field name="health_ratio"/>
                                <field name="unemployment_ratio"/>
                              </group>
                          </group>
                    </page>
                </xpath>
            </field>
        </record>

    </data>
</openerp>