!1549 添加功能

Merge pull request !1549 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-02-24 03:03:10 +00:00
committed by Gitee
131 changed files with 1810 additions and 221 deletions
+1
View File
@@ -7,6 +7,7 @@
'license': 'LGPL-3',
'data': [
'security/ir.model.access.csv',
'security/yuthon_holiday_group.xml',
'data/yuthon_holiday_data.xml',
'views/inherit_hr_type_views.xml',
'views/inherit_hr_leave_allocation_views.xml',
@@ -141,6 +141,13 @@ class HolidaysRequestBatch(models.Model):
is_issues = fields.Boolean(string='是否上会')
leave_by_hour = fields.Boolean(string='请假单位(小时)', default=False)
leave_by_day = fields.Boolean(string='请假单位(天)', default=True)
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.depends("users_id")
def _compute_details(self):
@@ -7,7 +7,7 @@ class HrLeaveType(models.Model):
leave_documents_id = fields.Many2many('ir.attachment', string="假期详细说明")
duration_calculation = fields.Float(string="时长计算")
request_unit = fields.Selection([('calendar', '自然日'), ('working','工作日'), ('hour', '小时'), ('half_day', '半天')], string="请假单位", default='hour')
request_unit = fields.Selection([('day', '天'), ('hour', '小时'), ('half_day', '半天')], string="请假单位", default='hour')
employee_requests = fields.Selection([('yes', '允许的额外天数要求'), ('no', '不允许')], string='员工要求', default='yes')
allocation_validation_type = fields.Selection(defalt='no')
start_date = fields.Date(string="生效日期", default=fields.Date.today())
@@ -25,6 +25,13 @@ class YuthonFixesApproval(models.Model):
leave_id = fields.Many2one('hr.leave.allocation')
active = fields.Boolean('Active', default=True, tracking=True)
remarks = fields.Text(string="备注")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
def bottom_allocation(self):
for record in self:
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="module_yuthon_holiday" model="ir.module.category">
<field name="name">假期组</field>
</record>
<record id="group_yuthon_holiday_user" model="res.groups">
<field name="name">假期:用户</field>
<field name="category_id" ref="module_yuthon_holiday"/>
</record>
<record id="group_yuthon_holiday_admin" model="res.groups">
<field name="name">假期:管理员</field>
<field name="category_id" ref="module_yuthon_holiday"/>
<field name="implied_ids" eval="[(4, ref('group_yuthon_holiday_user'))]"/>
</record>
</data>
</odoo>
+19 -2
View File
@@ -19,9 +19,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<div class="oe_title">
<label for="name"/>
<h1>
@@ -18,9 +18,26 @@
<field name="arch" type="xml">
<form string="假期修正审批">
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
</group>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事项">
<group>
<field name="name"/>
@@ -27,6 +27,13 @@ class CardApprovals(models.Model):
attendance_id = fields.Many2one('hr.attendance', string="补卡日期")
replacement_time = fields.Selection([('work', '上班卡'), ('quitting', '下班卡'), ('all', '全天卡')], string="补卡", store=True)
active = fields.Boolean('Active', default=True)
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('attendance_id')
def onchange_replacement_time(self):
@@ -20,6 +20,13 @@ class DutyApprovals(models.Model):
is_issues = fields.Boolean(string='是否上会')
reason_application = fields.Html(string="事由")
related_issues_id = fields.Many2one('issue.library', string="关联议题")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.depends('date_start', 'date_end')
def _compute_duration(self):
@@ -29,6 +29,13 @@ class GoApprovals(models.Model):
date_end = fields.Datetime(string="结束时间")
days = fields.Integer(string="天数")
hours = fields.Integer(string="小时")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('date_start', 'days', 'hours')
def _onchange_date_end(self):
@@ -16,6 +16,13 @@ class LeaveApprovals(models.Model):
partner_id = fields.Many2one('res.partner', string="来文单位")
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')], string="状态",
default='drft')
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
def leave_approval(self):
pass
@@ -28,6 +28,13 @@ class OvertimeApprovals(models.Model):
end_time = fields.Datetime(string="结束时间")
type_overtime = fields.Selection([('work', '工作日加班'), ('weekend', '周末加班'), ('holiday', '节假日加班')],
string="加班类型", compute="_compute_overtime_type")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.depends('start_time', 'end_time')
def _compute_duration(self):
@@ -25,6 +25,13 @@ class RemoveHolidayApprovals(models.Model):
reason_application = fields.Html(string="申请事由")
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -19,6 +19,13 @@ class YuthonAbnormalApproval(models.Model):
reason_application = fields.Html(string="申请事由")
documents_ids = fields.Many2many('ir.attachment', string="附件")
active = fields.Boolean('Active', default=True, tracking=True)
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -20,6 +20,13 @@ class YuthonAdjustmentsApproval(models.Model):
replacement_data = fields.Date(string="值班时间")
documents_ids = fields.Many2many('ir.attachment', string="附件")
active = fields.Boolean('Active', default=True, tracking=True)
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -20,6 +20,13 @@ class YuthonCustomerApproval(models.Model):
reason_application = fields.Html(string="申请事由")
documents_ids = fields.Many2many('ir.attachment', string="附件")
active = fields.Boolean('Active', default=True, tracking=True)
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -27,6 +27,13 @@ class YuthonShiftApproval(models.Model):
reason_application = fields.Html(string="申请事由")
documents_ids = fields.Many2many('ir.attachment', string="附件")
active = fields.Boolean('Active', default=True, tracking=True)
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -23,6 +23,13 @@ class YuthonSpecialApproval(models.Model):
active = fields.Boolean('Active', default=True, tracking=True)
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
def button_special_approval(self):
role_a = self.env['planning.role'].search([('name', '=', '联安粮库')], limit=1)
+19 -2
View File
@@ -18,9 +18,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事项">
<group>
<field name="name"/>
+19 -2
View File
@@ -17,9 +17,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<div class="oe_title">
<label for="name" placeholder="请输入标题"/>
<h1>
+19 -2
View File
@@ -18,9 +18,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<div class="oe_title">
<label for="name"/>
<h1>
+20 -3
View File
@@ -25,9 +25,26 @@
<button name="leave_approval" string="发起申请" type="object" class="oe_highlight"/>
<field name="statu" widget="statusbar"/>
</header>
<group>
<field name="code" readonly="1" string="流水号:"/>
</group>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<sheet>
<div class="oe_title">
<label for="name" placeholder="请输入标题"/>
@@ -21,9 +21,26 @@
<button name="put_hr_employee" type="object" string="Approve" class="oe_highlight"/>
</header>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<div class="oe_title">
<label for="name"/>
<h1>
@@ -21,9 +21,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事由">
<field name="name" required="1"/>
<field name="reason_application"/>
@@ -18,9 +18,26 @@
<field name="arch" type="xml">
<form string="值班调休审批">
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事项">
<group>
<field name="name"/>
@@ -18,9 +18,26 @@
<field name="arch" type="xml">
<form string="值班调休审批">
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事项">
<group>
<field name="name"/>
@@ -16,9 +16,26 @@
<field name="arch" type="xml">
<form string="客服值班审批">
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事项">
<field name="name"/>
<field name="reason_application"/>
@@ -21,9 +21,26 @@
<header>
<button name="button_shift_approval" type="object" string="批准" class="oe_highlight"/>
</header>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>>
<group string="审批事项">
<group>
<field name="name" placeholder="请输入标题"/>
@@ -21,9 +21,26 @@
<header>
<button name="button_special_approval" type="object" string="批准" class="oe_highlight"/>
</header>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事项">
<group>
<field name="name" placeholder="请输入标题"/>
@@ -234,9 +234,10 @@
<field name="nation" optional="hide"/>
<field name="user_sex" optional="hide"/>
<field name="old" optional="hide"/>
<field name="retire_date" optional="hide"/>
<field name="birthday_month" optional="hide"/>
<field name="user_type" optional="hide"/>
<field name="retire_years" optional="hide"/>
<!-- <field name="retire_years" optional="hide"/>-->
<field name="political_aspects" optional="hide"/>
<field name="dang_data" optional="hide"/>
<!-- <field name="new_start_contract_data" optional="hide"/>-->
@@ -256,6 +257,9 @@
<xpath expr="//field[@name='first_contract_date']" position="attributes">
<attribute name="optional">hide</attribute>
</xpath>
<xpath expr="//field[@name='attendance_manager_id']" position="attributes">
<attribute name="column_invisible">1</attribute>
</xpath>
</field>
</record>
<record id="view_employee_inherit_filter" model="ir.ui.view">
@@ -24,6 +24,7 @@
'views/yuthon_message_login_views.xml',
'views/yuthon_onboard_approval_views.xml',
'views/yuthon_enrollment_approval_views.xml',
'views/yuthon_retired_approval_views.xml',
'views/yuthon_account_approval_views.xml',
'views/yuthon_interview_approval_views.xml',
'views/yuthon_leaving_approval_views.xml',
@@ -104,4 +104,17 @@
<field name="padding">3</field>
</record>
<record id="yuthon_retired_approval_code" model="ir.sequence">
<field name="name">退休申请表-编号</field>
<field name="code">yuthon_retired_approval_code</field>
<field name="prefix">TX%(y)s%(month)s%(day)s</field>
<field name="padding">3</field>
</record>
<record id="yuthon_social_files_approval_code" model="ir.sequence">
<field name="name">社保档案申请表-编号</field>
<field name="code">yuthon_social_files_approval_code</field>
<field name="prefix">SB%(y)s%(month)s%(day)s</field>
<field name="padding">3</field>
</record>
</odoo>
@@ -19,4 +19,5 @@ from . import yuthon_system_approval
from . import yuthon_service_approval
from . import yuthon_social_files_approval
from . import yuthon_appointment_approval
from . import yuthon_transfer_approval
from . import yuthon_transfer_approval
from . import yuthon_retired_approval
@@ -39,6 +39,22 @@ class YuthonHrEmployee(models.Model):
}
def pub_retired_employee(self):
record_id = self.env["hr.employee"].browse(self._context.get('active_ids', self._context.get('active_id')))
user_id = record_id.user_id
if len(record_id) != 1:
raise UserError("请选择一个员工")
form_id = self.env.ref('yuthon_hr_employee_approval.view_retired_approval_form').id
return {
"type": "ir.actions.act_window",
"name": "退休申请",
"res_model": "yuthon.retired.approval",
"views": [[form_id, "form"]],
"context": {
'default_employee_id':user_id.employee_id.id,
}
}
def pub_regularization_employee(self):
record_id = self.env["hr.employee"].browse(self._context.get('active_ids', self._context.get('active_id')))
user_id = record_id.user_id
@@ -54,3 +70,4 @@ class YuthonHrEmployee(models.Model):
'default_employee_id':user_id.id,
}
}
@@ -21,6 +21,11 @@ class YuthonAppointmentApproval(models.Model):
# 聘任结果
judge_team_leader = fields.Many2one('hr.employee', string="评审小组组长")
judge_team_member = fields.Many2one('hr.employee', string="评审小组成员")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -1,3 +1,5 @@
from email.policy import default
from setuptools.dist import sequence
from odoo import models, fields, api
@@ -14,12 +16,16 @@ class YuthonInterviewApproval(models.Model):
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
job_id = fields.Many2one('hr.job', string='应聘岗位')
departments_id = fields.Many2one("hr.department", string="应聘职务")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度', default='normal')
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_interview_approval_code'))
applicant_ids = fields.One2many('interview.approval.line', 'interview_approval_id', string='应聘面试信息')
is_issues = fields.Boolean(string='是否上会')
yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'),
('thlc', '天河粮储')], string="公司")
related_issues_id = fields.Many2one('issue.library', string="关联议题")
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
def scheduling_of_meetings(self):
form_id = self.env.ref("room.room_booking_view_form").id
@@ -7,48 +7,33 @@ class YuthonLeavingApproval(models.Model):
_description = '离职申请'
_inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin']
name = fields.Char(string='标题')
text = fields.Text(string='正文')
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_leaving_approval_code'))
users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id)
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
contract = fields.Many2one('hr.contract', string='合同')
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_leaving_approval_code'))
phone = fields.Char(related='users_id.employee_id.work_phone',string='手机号')
yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'),
('thlc', '天河粮储')], string="任职单位")
job_id = fields.Many2one(related='users_id.employee_id.job_id', string="主岗")
duties = fields.Char(string="职务")
job_type_id = fields.Many2one('hr.job.type', string="岗位类别")
onboarding_date = fields.Date(related='users_id.employee_id.open_start_time',string="入职日期")
end_of_contract = fields.Date(string="合同结束日期")
reason_application = fields.Text(string="事由")
employee_id = fields.Many2one('hr.employee', string="员工")
department_id = fields.Many2one(related='employee_id.department_id', string="部门")
phone = fields.Char(related='employee_id.mobile_phone', string="联系方式")
documents_ids = fields.Many2many('ir.attachment', string="附件")
id_number = fields.Char(related='employee_id.identification_id', string="身份证号")
job_id = fields.Many2one(related='employee_id.job_id', string="岗位")
onboarding_time = fields.Date(related='employee_id.open_start_time', string="入职日期")
expected_departure_date = fields.Date(string="预计离职日期")
parent_id = fields.Many2one(related='users_id.employee_id.parent_id', string="直线上级")
business_superior = fields.Many2one("hr.employee", string="业务上级")
use_user_type = fields.Selection(related="users_id.employee_id.use_user_type", string="聘用形式")
type_resignation = fields.Selection([('1', '个人辞职'), ('2', '被动离职')], string="辞职类型")
application_data = fields.Date(string="申请日期")
notice_documents_ids= fields.Many2many('ir.attachment', string="辞职申请")
resignation_reason = fields.Text(string="辞职原因")
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
is_leaving = fields.Boolean(string="同意离职")
leaving_date = fields.Date(string="工作期限")
handover_person = fields.Many2one("hr.employee", string="交接人")
is_handover = fields.Boolean(string="交接完成")
@api.onchange('is_issues')
def _onchange_is_issues(self):
if self.is_issues:
issue_id = self.env['issue.library'].create({'name': self.name})
self.related_issues_id = issue_id.id
workflow_record_id = self.env["soong.workflow.record"].search([("res_model", "=", self._name), ("res_id", "=", self.id)])
self.env['issue.library.approval.line'].create({
'issue_library_id': issue_id.id,
'workflow_record_id': workflow_record_id.id,
'approval_type': workflow_record_id.workflow_id.id,
'code': self.code,
'approval_date': fields.Datetime.now(),
})
elif self.related_issues_id:
raise UserError("已经创建了相关的上会记录,不能取消勾选")
departure_type = fields.Selection([
('voluntary', '主动离职'),
('contract_expired', '合同到期'),
('negotiated_termination', '协商解除'),
('other', '其他')
], string='离职类型')
handover_line_ids = fields.One2many('yuthon.handover.line', 'leaving_id', string="工作交接")
return_line_ids = fields.One2many('yuthon.return.line', 'leaving_id', string="资产归还")
goods_line_ids = fields.One2many('yuthon.goods.line', 'leaving_id', string="物品交接")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
class HrJobType(models.Model):
_name = "hr.job.type"
@@ -85,6 +85,13 @@ class YuthonMessageLogin(models.Model):
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
login_document_id = fields.Many2one('ir.attachment', string="简历附件")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
# 紧急联系人
emergency_contact_ids = fields.One2many('hr.yuthon.emergency.contact.line', 'message_login_id',
@@ -52,6 +52,13 @@ class YuthonOnboardApproval(models.Model):
contracted_status = fields.Selection([('first', '首'
'签'), ('renew', '续签')], string='合同类型')
is_office = fields.Boolean(string='是否领用办公物品', default=False)
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
def button_office_supply(self):
form_id = self.env.ref('yuthon_sps_approval.view_yuthon_office_supplies_form').id
@@ -18,6 +18,13 @@ class YuthonPrepareApproval(models.Model):
notice_documents_ids = fields.Many2many('ir.attachment', string='议题附件')
adjust_information_ids = fields.One2many('prepare.approval.line', 'prepare_approval_id', string="关联调整信息")
prepare_approval_line_ids = fields.One2many('new.prepare.approval.line', 'prepare_approval_id', string="关联编制调整需求表行")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('adjust_information_ids')
def onchange_change_index_library_ids(self):
@@ -27,8 +27,15 @@ class YuthonReassignmentApproval(models.Model):
person_attributes = fields.Selection([('in', '编制内'), ('out', '编制外')], string="人员属性")
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
#异动信息
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
#异动信息
change_kind = fields.Char(string="异动类型")
change_rank = fields.Char(string='职级')
change_reason = fields.Char(string="异动原因")
@@ -21,6 +21,13 @@ class YuthonRecruitmentApproval(models.Model):
yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'),
('thlc', '天河粮储')], string="所属公司")
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -42,6 +42,14 @@ class YuthonRegularizationPrepareApproval(models.Model):
approval_regularization = fields.Selection([('none', '未发起'), ('done', '已发起')], string='转正审批状态', default='none')
regularization = fields.Selection([('none', '未发起'), ('done', '已发起')], string='试用期考核状态', default='none')
regularization_rules = fields.Char(string="转正规则")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
#试用信息明细行
trial_assessment_ids = fields.One2many('yuthon.trial.scenario.detail.line', 'regularization_login_id', string="试用期考核方案",help='请选择适用本人主岗的试用考核方案,或直接在下方填写')
@@ -0,0 +1,76 @@
from odoo import models, fields, api
from odoo.exceptions import UserError
class YuthonRetiredApproval(models.Model):
_name = 'yuthon.retired.approval'
_description = '退休申请表'
_inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin']
name = fields.Char(string='标题')
text = fields.Text(string='正文')
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_retired_approval_code'))
users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id)
reason_application = fields.Text(string="事由")
employee_id = fields.Many2one('hr.employee', string="员工")
department_id = fields.Many2one(related='employee_id.department_id', string="部门")
phone = fields.Char(related='employee_id.mobile_phone', string="联系方式")
id_number = fields.Char(related='employee_id.identification_id', string="身份证号")
job_id = fields.Many2one(related='employee_id.job_id', string="岗位")
onboarding_time = fields.Date(related='employee_id.open_start_time', string="入职日期")
expected_departure_date = fields.Date(string="预计离职日期")
retirement_type = fields.Selection([('normal', '正常退休'), ('special_job_early', '特殊工种提前退休'), ('sick', '病退')], string='退休类型')
social_security_card = fields.Char(string='社保卡')
treatment_choice = fields.Selection([('pension_payment', '养老金发放'), ('enterprise_annuity', '企业年金')], string='待遇选择')
account = fields.Char(string='账号')
documents_ids = fields.Many2many('ir.attachment', string="附件")
handover_line_ids = fields.One2many('yuthon.handover.line', 'retired_id', string="工作交接")
return_line_ids = fields.One2many('yuthon.return.line', 'retired_id', string="资产归还")
goods_line_ids = fields.One2many('yuthon.goods.line', 'retired_id', string="物品交接")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
class YuthonHandoverLine(models.Model):
_name = 'yuthon.handover.line'
_description = '工作交接'
name = fields.Char(string="交接事项")
employee_id = fields.Many2one('hr.employee', string="交接人")
state = fields.Selection([('done', '已完成'), ('undone', '未完成')], string="交接状态")
remake = fields.Char(string="备注")
retired_id = fields.Many2one('yuthon.retired.approval', string="关联退休申请")
leaving_id = fields.Many2one('yuthon.leaving.approval', string="关联离职申请")
class YuthonReturnLine(models.Model):
_name = 'yuthon.return.line'
_description = '资产归还'
name = fields.Char(string="资产类型")
model = fields.Char(string="型号")
state = fields.Selection([('done', '已完成'), ('undone', '未完成')], string="归还状态")
remake = fields.Char(string="备注")
retired_id = fields.Many2one('yuthon.retired.approval', string="关联退休申请")
leaving_id = fields.Many2one('yuthon.leaving.approval', string="关联离职申请")
class YuthonGoodsLine(models.Model):
_name = 'yuthon.goods.line'
_description = '办公用品'
name = fields.Char(string="物品名称")
number = fields.Integer(string="数量")
state = fields.Selection([('done', '已完成'), ('undone', '未完成')], string="归还状态")
remake = fields.Char(string="备注")
retired_id = fields.Many2one('yuthon.retired.approval', string="关联退休申请")
leaving_id = fields.Many2one('yuthon.leaving.approval', string="关联离职申请")
@@ -21,6 +21,13 @@ class YuthonRewardApproval(models.Model):
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
reward_results_ids = fields.One2many('yuthon.reward.punishment.details', 'reward_punishment_id', string="奖罚明细")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -22,6 +22,13 @@ class YuthonServiceApproval(models.Model):
issue_text = fields.Html(string="正文")
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -4,8 +4,11 @@ from odoo import models, fields, api
class YuthonSocialFilesApproval(models.Model):
_name = 'yuthon.social.files.approval'
_description = '社保档案'
_inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin']
name = fields.Char(string='档案名称', required=True)
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_social_files_approval_code'))
resignation_name = fields.Char(string='姓名')
phone = fields.Char(string='手机号')
card = fields.Char(string='身份证号')
@@ -28,3 +31,11 @@ class YuthonSocialFilesApproval(models.Model):
social_security_base = fields.Float(string="社保基数")
provident_base = fields.Float(string="公积金基数")
social_group = fields.Char(string="社保组")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@@ -33,6 +33,13 @@ class YutransferApproval(models.Model):
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
transfer_ids = fields.One2many('yuthon.transfer.infor.detail.lines', 'transfer_id')
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -40,4 +40,8 @@ access_yuthon_reward_punishment_details,yuthon_reward_punishment_details,model_y
access_yuthon_trial_scenario_detail_line,yuthon_trial_scenario_detail_line,model_yuthon_trial_scenario_detail_line,base.group_user,1,1,1,1
access_interview_approval_wizard,interview_approval_wizard,model_interview_approval_wizard,base.group_user,1,1,1,1
access_interview_approval_wizard_line,interview_approval_wizard_line,model_interview_approval_wizard_line,base.group_user,1,1,1,1
access_kindred_line,kindred_line,model_kindred_line,base.group_user,1,1,1,1
access_kindred_line,kindred_line,model_kindred_line,base.group_user,1,1,1,1
access_yuthon_retired_approval,yuthon_retired_approval,model_yuthon_retired_approval,base.group_user,1,1,1,1
access_yuthon_handover_line,yuthon_handover_line,model_yuthon_handover_line,base.group_user,1,1,1,1
access_yuthon_return_line,yuthon_return_line,model_yuthon_return_line,base.group_user,1,1,1,1
access_yuthon_goods_line,yuthon_goods_line,model_yuthon_goods_line,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
40 access_yuthon_trial_scenario_detail_line yuthon_trial_scenario_detail_line model_yuthon_trial_scenario_detail_line base.group_user 1 1 1 1
41 access_interview_approval_wizard interview_approval_wizard model_interview_approval_wizard base.group_user 1 1 1 1
42 access_interview_approval_wizard_line interview_approval_wizard_line model_interview_approval_wizard_line base.group_user 1 1 1 1
43 access_kindred_line kindred_line model_kindred_line base.group_user 1 1 1 1
44 access_yuthon_retired_approval yuthon_retired_approval model_yuthon_retired_approval base.group_user 1 1 1 1
45 access_yuthon_handover_line yuthon_handover_line model_yuthon_handover_line base.group_user 1 1 1 1
46 access_yuthon_return_line yuthon_return_line model_yuthon_return_line base.group_user 1 1 1 1
47 access_yuthon_goods_line yuthon_goods_line model_yuthon_goods_line base.group_user 1 1 1 1
@@ -9,6 +9,7 @@
<button name="pub_reassignment_employee" string="调岗" type="object"/>
<button name="pub_leaving_employee" string="离职" type="object"/>
<button name="pub_regularization_employee" string="转正" type="object"/>
<button name="pub_retired_employee" string="退休" type="object"/>
</xpath>
</field>
</record>
@@ -20,9 +20,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="基础信息" >
<field name="department_id" invisible="1"/>
<field name="users_id"/>
@@ -22,9 +22,26 @@
<button name="put_interview_wizard" string="结束" type="object" class='btn btn-primary'/>
</header>
<sheet>
<group>
<field name="code" string="流水号" readonly="1"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group>
<field name="name"/>
<field name="job_id"/>
@@ -4,13 +4,10 @@
<field name="name">yuthon.leaving.approval.tree</field>
<field name="model">yuthon.leaving.approval</field>
<field name="arch" type="xml">
<tree>
<field name="users_id"/>
<field name="phone"/>
<field name="department_id" string="部门"/>
<field name="use_user_type"/>
<field name="is_leaving" string="离职审批状态"/>
<field name="is_handover" string='离职交接状态'/>
<tree string="退休申请">
<field name="name"/>
<field name="employee_id"/>
<field name="departure_type"/>
<field name="expected_departure_date"/>
</tree>
</field>
@@ -21,69 +18,92 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
</group>
<group col="4" string="员工信息">
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="users_id"/>
<field name="yuthon_company"/>
<field name="onboarding_date"/>
<field name="use_user_type"/>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事项">
<group>
<field name="name"/>
<field name="users_id"/>
<field name="reason_application"/>
<field name="documents_ids" widget="preview_many2many"/>
</group>
</group>
<group string="退休信息" col="3">
<group>
<field name="employee_id"/>
<field name="department_id"/>
<field name="end_of_contract"/>
<field name="departure_type"/>
</group>
<group>
<field name="phone"/>
<field name="id_number"/>
</group>
<group>
<field name="onboarding_time"/>
<field name="expected_departure_date"/>
</group>
<group>
<field name="job_id"/>
<field name="job_type_id"/>
<field name="parent_id"/>
</group>
<group>
<field name="duties"/>
<field name="business_superior"/>
</group>
</group>
<group col="3" string="辞职说明">
<group>
<field name="type_resignation"/>
</group>
<group>
<field name="application_data"/>
</group>
<group>
<field name="notice_documents_ids" widget="preview_many2many"/>
</group>
<group>
<field name="resignation_reason"/>
</group>
</group>
<group string="审批信息" col="3">
<group>
<field name="is_leaving"/>
<field name="is_handover"/>
</group>
<group>
<field name="leaving_date"/>
<field name="is_issues"/>
<field name="related_issues_id" invisible="not is_issues"/>
</group>
<group>
<field name="handover_person"/>
</group>
</group>
<notebook>
<page string="工作交接">
<field name="handover_line_ids">
<tree editable="bottom">
<field name="leaving_id" column_invisible="1"/>
<field name="name"/>
<field name="employee_id"/>
<field name="state"/>
<field name="remake"/>
</tree>
</field>
</page>
<page string="资产归还">
<field name="return_line_ids">
<tree editable="bottom">
<field name="leaving_id" column_invisible="1"/>
<field name="name"/>
<field name="model"/>
<field name="state"/>
<field name="remake"/>
</tree>
</field>
</page>
<page string="办公用品">
<field name="goods_line_ids">
<tree editable="bottom">
<field name="leaving_id" column_invisible="1"/>
<field name="name"/>
<field name="number"/>
<field name="state"/>
<field name="remake"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="yuthon_leaving_approval_action" model="ir.actions.act_window">
<field name="name">员工辞职</field>
<field name="res_model">yuthon.leaving.approval</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -20,9 +20,26 @@
<button name="pub_name_button" string="发送邀请链接" type="object" class='btn btn-primary'/>
</header>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<field name="image_1920" widget="image" class="oe_avatar" options="{'preview_image': 'image_128'}"/>
<div class="oe_title">
<label for="name" string="名称"/>
@@ -21,9 +21,26 @@
<button name="button_office_supply" type="object" class="oe_highlight" string="办公用品" invisible="not is_office"/>
</header>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批信息"/>
<field name="name" required="1"/>
<field name="users_id"/>
@@ -17,9 +17,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group>
<field name="users_id" invisible="1"/>
<field name="department_id" invisible="1"/>
@@ -22,12 +22,29 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<field name="users_id" invisible="1"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="原员工信息" col="4">
<group>
<field name="users_id" invisible="1"/>
<field name="employee_id"/>
<field name="yuthon_company"/>
<field name="parent_id"/>
@@ -17,9 +17,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" string="流水号" readonly="1"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事项">
<field name="name" required="1"/>
<field name="users_id" readonly="1"/>
@@ -24,9 +24,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="员工信息" col="4">
<group>
<field name="users_id" required="1"/>
@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_retired_approval_tree" model="ir.ui.view">
<field name="name">retired.approval.tree</field>
<field name="model">yuthon.retired.approval</field>
<field name="arch" type="xml">
<tree string="退休申请">
<field name="name"/>
<field name="employee_id"/>
<field name="retirement_type"/>
<field name="treatment_choice"/>
<field name="expected_departure_date"/>
</tree>
</field>
</record>
<record id="view_retired_approval_form" model="ir.ui.view">
<field name="name">retired.approval.form</field>
<field name="model">yuthon.retired.approval</field>
<field name="arch" type="xml">
<form string="退休申请">
<sheet>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name"/>
</h1>
</div>
<group string="审批事项">
<group>
<field name="users_id"/>
<field name="reason_application"/>
<field name="documents_ids" widget="preview_many2many"/>
</group>
</group>
<group string="退休信息" col="3">
<group>
<field name="employee_id"/>
<field name="department_id"/>
<field name="retirement_type"/>
</group>
<group>
<field name="phone"/>
<field name="id_number"/>
<field name="social_security_card"/>
</group>
<group>
<field name="onboarding_time"/>
<field name="expected_departure_date"/>
<field name="treatment_choice"/>
<field name="account" invisible="treatment_choice != 'pension_payment'"/>
</group>
</group>
<notebook>
<page string="工作交接">
<field name="handover_line_ids">
<tree editable="bottom">
<field name="retired_id" column_invisible="1"/>
<field name="name"/>
<field name="employee_id"/>
<field name="state"/>
<field name="remake"/>
</tree>
</field>
</page>
<page string="资产归还">
<field name="return_line_ids">
<tree editable="bottom">
<field name="retired_id" column_invisible="1"/>
<field name="name"/>
<field name="model"/>
<field name="state"/>
<field name="remake"/>
</tree>
</field>
</page>
<page string="办公用品">
<field name="goods_line_ids">
<tree editable="bottom">
<field name="retired_id" column_invisible="1"/>
<field name="name"/>
<field name="number"/>
<field name="state"/>
<field name="remake"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_retired_approval_action" model="ir.actions.act_window">
<field name="name">退休审批</field>
<field name="res_model">yuthon.retired.approval</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -20,9 +20,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事项">
<field name="name"/>
<field name="notice_documents_ids" widget="preview_many2many" string="议题附件"/>
@@ -19,9 +19,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事项">
<field name="name" required="1"/>
<field name="users_id"/>
@@ -33,13 +33,29 @@
<field name="arch" type="xml">
<form>
<sheet>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name" required="1"/>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group col="4">
<group>
<field name="name"/>
<field name="resignation_name"/>
<field name="subject_contract"/>
<field name="department_id"/>
@@ -21,9 +21,26 @@
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="code" readonly="1" string="流水号:"/>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批事项">
<field name="name" required="1"/>
<field name="users_id"/>
+4 -2
View File
@@ -8,9 +8,11 @@
<xpath expr="//field[@name='is_notice']" position="before">
<field name="is_issue"/>
</xpath>
<xpath expr="//field[@name='meeting_type_id']" position="after">
<xpath expr="//field[@name='department_id']" position="before">
<field name="company_page"/>
<field name="number_of_meetings"/>
</xpath>
<xpath expr="//field[@name='meeting_type_id']" position="after">
<field name="number_of_meetings"/>
</xpath>
<xpath expr="//page[@name='sign']" position="after">
<page string="关联议题" invisible="is_issue == False">
@@ -29,6 +29,13 @@ class PropertyAccountingApproval(models.Model):
lack = fields.Float(string="差额")
percentage = fields.Float(string="差额百分比")
accounting_way_ids = fields.One2many('accounting.way.line', 'accounting_id', string="关联支付方式明细行")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
class AccountingWayLine(models.Model):
@@ -21,6 +21,13 @@ class PropertyApproval(models.Model):
property_documents_ids = fields.Many2many('documents.document', string="附件")
source = fields.Many2one('yuthon.property.source', string="物业来源")
property_massage_ids = fields.One2many('property.approval.line', 'property_approval_id', string="审批信息")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
def put_message_in(self): # 导入按钮
return {
@@ -23,6 +23,13 @@ class PropertyCapacity(models.Model):
related_issues_id = fields.Many2one('issue.library', string="关联议题")
is_water = fields.Boolean(string="水")
is_electricity = fields.Boolean(string="电")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -29,6 +29,13 @@ class PropertyConstructionApproval(models.Model):
contract_amount = fields.Float(string="合同金额")
payment_methods = fields.Char(string="付款方式")
construction_way_ids = fields.One2many('construction.way.line', 'construction_id', string="关联支付方式")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
class ConstructionWayLine(models.Model):
@@ -19,5 +19,12 @@ class PropertyDelegatedAgent(models.Model):
payment_date = fields.Date(string="付款日期")
consult_fee = fields.Float(string="咨询费")
quotations_list_id = fields.Many2one('ir.attachment', string="报价清单")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@@ -25,6 +25,13 @@ class PropertyDesignApproval(models.Model):
contract_amount = fields.Float(string="合同金额")
payment_methods = fields.Char(string="付款方式")
design_way_ids = fields.One2many('design.way.line', 'design_id', string="关联支付方式")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
class DesignWayLine(models.Model):
@@ -27,6 +27,13 @@ class PropertyEarlyQuitting(models.Model):
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
reason = fields.Text(string="退租原因")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
def button_approval(self):
for rec in self:
@@ -24,6 +24,13 @@ class PropertyEligibility(models.Model):
reason = fields.Html(string="事由")
notice_documents_ids = fields.Many2many('ir.attachment', string="附件")
active = fields.Boolean('Active', default=True, tracking=True)
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
class PropertyEligibilityLine(models.Model):
_name = 'property.eligibility.line'
@@ -26,6 +26,13 @@ class PropertyEquity(models.Model):
new_get = fields.Char(string="取得方式")
new_equity = fields.Char(string="新产权")
new_owner = fields.Char(string='新权属人')
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@@ -20,6 +20,13 @@ class PropertyEvaluateApplication(models.Model):
notice_documents_ids = fields.Many2many('ir.attachment', string='议题附件')
issue_library_id = fields.Many2one('issue.library', string='关联议题')
evaluate_application_ids = fields.One2many('evaluate.application.line', 'property_message_id', string='物业信息明细行')
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
def put_property_record(self):
form_id = self.env.ref('yuthon_property_approval.views_property_record_form').id
@@ -27,4 +27,11 @@ class PropertyFitment(models.Model):
#附件
card_id = fields.Many2one('documents.document', string="身份证")
license_id = fields.Many2one('documents.document', string="营业执照")
property_documents_ids = fields.Many2many('documents.document', string="装修文件")
property_documents_ids = fields.Many2many('documents.document', string="装修文件")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@@ -18,6 +18,13 @@ class PropertyHandover(models.Model):
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
property_handover_ids = fields.One2many('property.handover.line', 'property_handover_id', string="移交申请")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -24,4 +24,11 @@ class PropertyInformation(models.Model):
address = fields.Text(string="物业地址")
management_type = fields.Char(string="权属类型")
property_id = fields.Char(string="物业ID")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@@ -20,6 +20,13 @@ class PropertyIntentionApproval(models.Model):
notice_documents_ids = fields.Many2many('ir.attachment', string="附件")
active = fields.Boolean('Active', default=True, tracking=True)
intention_customer_ids = fields.One2many('property.intention.customer.line', 'property_intention_id', string="关联意向客户明细行")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -140,6 +140,13 @@ class PropertyLeaseContract(models.Model):
confirmation_transaction_id = fields.Many2one('ir.attachment', string="成交确认书")
responsibility_book_id = fields.Many2one('ir.attachment', string="安全生产责任书")
handover_time = fields.Date(string="交接日期")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('lessee_id')
def _onchange_lessee_id(self):
@@ -27,6 +27,13 @@ class PropertyLeaseExtension(models.Model):
reason_extension = fields.Char(string="延期原因")
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
def button_approval(self):
for rec in self:
@@ -17,6 +17,13 @@ class PropertyManagement(models.Model):
handling_opinions = fields.Text(string="经办意见")
original_property_ids = fields.One2many('property.information', 'original_property_id', string="原物业信息")
new_property_ids = fields.One2many('property.information.detail.lines', 'new_property_id', string="新物业信息")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
class PropertyInformationDetailLines(models.Model):
@@ -17,6 +17,13 @@ class PropertyManagementFee(models.Model):
default=lambda self: self.env['ir.sequence'].next_by_code('property_management_fee_code'))
property_documents_ids = fields.Many2many('documents.document', string="管理费整理材料")
start_date = fields.Date(string="生效日期")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
#类型
@@ -24,6 +24,13 @@ class PropertyMergeApproval(models.Model):
merge_rent_area = fields.Float(string='可租面积')
merge_remarks = fields.Char(string='备注')
is_issues = fields.Boolean(string='是否上会')
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
related_issues_id = fields.Many2one('issue.library', string="关联议题")
@api.onchange('property_merge_approval_line_ids')
@@ -24,6 +24,13 @@ class PropertyOfflineRegistration(models.Model):
quote_message_line_ids = fields.One2many('quote.message.line', 'property_offline_registration_id', string='关联报价信息明细行')
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -15,6 +15,13 @@ class PropertyOpenRent(models.Model):
property_documents_ids = fields.Many2many('documents.document', string="物业公开招租文件")
rental_area = fields.Float(string="出租面积")
upset = fields.Float(string="底价")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
#
#
# class PropertyOpenRentLine(models.Model):
@@ -17,4 +17,11 @@ class PropertyPenaltyProportion(models.Model):
default=lambda self: self.env['ir.sequence'].next_by_code('property_penalty_proportion_code'))
calculate_time_point = fields.Char(string='违约金计算时间点')
percentage_damages = fields.Float(string='违约金比例')
date_payment = fields.Date(string='付款日期')
date_payment = fields.Date(string='付款日期')
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@@ -25,6 +25,13 @@ class PropertyPenaltyRelief(models.Model):
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
penalty_relief_line_ids = fields.One2many('property.penalty.relief.line', 'penalty_relief_id', string="违约金列表")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -17,4 +17,11 @@ class PropertyProjectApproval(models.Model):
documents_id = fields.Many2one('ir.attachment', string="建议书/可研报告")
amount = fields.Float(string="预算金额")
start_date = fields.Date(string="开始日期")
end_date = fields.Date(string="结束日期")
end_date = fields.Date(string="结束日期")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@@ -18,4 +18,11 @@ class PropertyProjectWorks(models.Model):
total = fields.Float(string="总金额")
coping = fields.Float(string="应付")
paid = fields.Float(string="已付")
not_paid = fields.Float(string="未付")
not_paid = fields.Float(string="未付")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@@ -25,6 +25,13 @@ class PropertyRecord(models.Model):
notice_documents_ids = fields.Many2many('ir.attachment', string='议题附件')
evaluate_application_ids = fields.One2many('evaluated.application.line', 'yuthon_property_evaluated_id',
string='关联物业信息明细行')
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -22,6 +22,13 @@ class PropertyReimbursementForm(models.Model):
account_id = fields.Many2one('property.account.setting', string="账户")
expense_line_ids = fields.One2many('property.expense.line', 'reimbursement_id', string="费用项目明细")
physical_line_ids = fields.One2many('property.physical.line', 'reimbursement_id', string="体检费明细")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
def put_physical_in(self): # 导入按钮
return {
@@ -20,4 +20,11 @@ class PropertyRenamed(models.Model):
invoicing_type = fields.Selection([('spot', '专票'), ('cape', '普票')], string="开票类型")
renamed_lessee = fields.Char(string='更名')
renamed_fee = fields.Float(string='更名费用')
renamed_invoicing_type = fields.Selection([('spot', '专票'), ('cape', '普票')], string="开票类型")
renamed_invoicing_type = fields.Selection([('spot', '专票'), ('cape', '普票')], string="开票类型")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@@ -24,6 +24,13 @@ class PropertyRentRelief(models.Model):
abatement_reason = fields.Text(string="减免原因")
property_documents_ids = fields.Many2many('ir.document', string="附件")
property_rent_relief_ids = fields.One2many('property.rent.relief.line', 'property_rent_relief_id', string="租金列表")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):
@@ -19,6 +19,13 @@ class PropertyRentalConditions(models.Model):
rental_adjustment_line_ids = fields.One2many('rental.adjustment.line', 'property_rental_conditions_id', string='关联出租调整')
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
class NowRentalConditionsLine(models.Model):
_name = 'now.rental.conditions.line'
@@ -17,6 +17,13 @@ class PropertyRentalForm(models.Model):
related_issues_id = fields.Many2one('issue.library', string="关联议题")
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('property_rental_form_code'))
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
class PropertyRentalFormLine(models.Model):
@@ -24,6 +24,13 @@ class PropertySplitApproval(models.Model):
notice_documents_ids = fields.Many2many('ir.attachment', string="附件")
property_split_approval_line_ids = fields.One2many('property.split.approval.line', 'property_split_approval_id', string='关联物业拆分明细行')
split_quantity = fields.Integer(string='拆分数量', default=2)
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
def property_split_button(self):
if self.split_quantity < 2:
@@ -18,7 +18,13 @@ class PropertySporadicWorks(models.Model):
paid = fields.Float(string="已付")
not_paid = fields.Float(string="未付")
payment_methods_line_ids = fields.One2many('payment.methods.line', 'payment_methods_id', string="付款方式明细行")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
class PaymentMethodsLine(models.Model):
_name = 'payment.methods.line'
@@ -25,7 +25,13 @@ class PropertySupervisingApproval(models.Model):
contract_amount = fields.Float(string="合同金额")
payment_methods = fields.Char(string="付款方式")
supervising_way_ids = fields.One2many('supervising.way.line', 'supervising_id', string="关联支付方式")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
class SupervisingWayLine(models.Model):
_name = 'supervising.way.line'
@@ -21,6 +21,13 @@ class PropertyTransactionConfirmed(models.Model):
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
is_issues = fields.Boolean(string='是否上会')
related_issues_id = fields.Many2one('issue.library', string="关联议题")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
return self._description if self._description else self._name
name_title = fields.Char(default=_get_default_name_title)
@api.onchange('is_issues')
def _onchange_is_issues(self):

Some files were not shown because too many files have changed in this diff Show More