Merge branch 'dev' of gitee.com:jinan-pengyusen-data/gzth into dev

This commit is contained in:
sunjie
2025-08-05 21:29:40 +08:00
115 changed files with 450 additions and 223 deletions
@@ -1,13 +1,13 @@
/** @odoo-module **/
import {ListController} from "@web/views/list/list_controller";
import {patch} from "@web/core/utils/patch";
import {onWillStart, useState, useRef, useExternalListener} from "@odoo/owl";
import {Dropdown} from "@web/core/dropdown/dropdown";
import {CheckBox} from "@web/core/checkbox/checkbox";
import {useSortable} from "@web/core/utils/sortable_owl";
import {useService} from "@web/core/utils/hooks";
import {usePosition} from "@web/core/position_hook";
import { ListController } from "@web/views/list/list_controller";
import { patch } from "@web/core/utils/patch";
import { onWillStart, useState, useRef, useExternalListener,onWillRender} from "@odoo/owl";
import { Dropdown } from "@web/core/dropdown/dropdown";
import { CheckBox } from "@web/core/checkbox/checkbox";
import { useSortable } from "@web/core/utils/sortable_owl";
import { useService } from "@web/core/utils/hooks";
import { usePosition } from "@web/core/position_hook";
patch(ListController.prototype, {
@@ -18,13 +18,15 @@ patch(ListController.prototype, {
this.ooColumnsRef = useRef('ooColumnsRef');
this.ooManagerRef = useRef('ooManagerRef');
this.ooListRef = useRef('ooListRef');
this.ooManager = useState({
state: false,
key: '',
filter: false,
serial_num: false,
sticky_end: false,
default_order_field: '',
default_order_type: 'asc',
default_page_size: 0,
columns: this.archInfo.columns.filter((column) => {
if (column.type === "field" && column.widget !== 'handle') {
return column
@@ -34,28 +36,20 @@ patch(ListController.prototype, {
return column.name
})
});
console.log(this.ooManager.columns)
onWillStart(async () => {
const manager_data = await this.orm.call('ir.ui.view', 'get_manager_data', [this.env.config.viewId]);
console.log(manager_data)
if (!Object.keys(manager_data).length || !manager_data.columns) {
this.ooManager.columns.forEach(val => {
val.visibility = !!!val.column_invisible;
})
} else {
// 简化逻辑:如果字段不一致(字段名判断),则重置视图
const currentColumns = this.ooManager.columns;
const savedColumns = manager_data.columns || [];
// 比较字段名是否一致
const currentColumnNames = currentColumns.map(col => col.name).sort();
const savedColumnNames = savedColumns.map(col => col.name).sort();
const isFieldConsistent = JSON.stringify(currentColumnNames) === JSON.stringify(savedColumnNames);
if (!isFieldConsistent) {
// 字段不一致,重置视图配置
this.ooManager.columns.forEach(val => {
@@ -69,7 +63,19 @@ patch(ListController.prototype, {
}
this.ooManager.show = manager_data.show;
})
onWillRender(() => {
if (this.ooManager.default_page_size>0) {
this.model.config.limit = this.ooManager.default_page_size;
// this.model.load();
}
if (this.ooManager.default_order_field) {
this.model.config.orderBy = [];
this.model.config.orderBy.push({
name: this.ooManager.default_order_field,
[this.ooManager.default_order_type]: true
});
}
});
usePosition('ooListRef', () => this.ooManagerRef.el, {
position: "bottom-start",
})
@@ -84,7 +90,6 @@ patch(ListController.prototype, {
useExternalListener(window, "click", this.onGlobalClick.bind(this));
},
onGlobalClick(ev) {
if (this.ooListRef.el && !this.ooListRef.el.contains(ev.target)) {
this.ooManager.state = false;
@@ -169,7 +174,7 @@ patch(ListController.prototype, {
* @param params
*/
sortColumnDrop(params) {
const {element, previous} = params;
const { element, previous } = params;
const fromId = element.dataset.id;
const toId = previous ? previous.dataset.id : null;
@@ -192,7 +197,6 @@ patch(ListController.prototype, {
this.ooManager.columns = columns;
},
/**
* 保存
* @returns {*}
@@ -208,7 +212,10 @@ patch(ListController.prototype, {
columns: this.ooManager.columns,
filter: this.ooManager.filter,
serial_num: this.ooManager.serial_num,
sticky_end: this.ooManager.sticky_end
sticky_end: this.ooManager.sticky_end,
default_order_field: this.ooManager.default_order_field,
default_order_type: this.ooManager.default_order_type,
default_page_size: this.ooManager.default_page_size,
}
]
);
@@ -39,6 +39,41 @@
</div>
</div>
</div>
<!-- 新增配置:默认页数和默认排序 -->
<div class="d-flex align-items-center pb-2">
<div class="d-flex align-items-center me-3">
<label class="me-1">默认页数:</label>
<input type="number" min="0" class="form-control"
t-model.number="ooManager.default_page_size"
t-on-blur="onChangeColumns"
style="width: 100px;"/>
</div>
<div class="d-flex align-items-center">
<label class="me-1">默认排序:</label>
<select class="form-select"
t-model="ooManager.default_order_field"
t-on-change="onChangeColumns"
style="width: 150px;">
<option t-att-value="''">默认</option>
<option t-foreach="ooManager.columns"
t-as="col"
t-key="col.id"
t-att-value="col.name">
<t t-esc="col.string"/>
</option>
</select>
</div>
<div class="d-flex align-items-center">
<label class="me-1">排序方式:</label>
<select class="form-select"
t-model="ooManager.default_order_type"
t-on-change="onChangeColumns"
style="width: 150px;">
<option value="asc">升序</option>
<option value='desc'>降序</option>
</select>
</div>
</div>
<div class="d-flex align-items-center pb-2">
<input type="text" class="form-control" t-model="ooManager.key"/>
<i class="btn btn-primary fa fa-refresh ms-2" t-on-click="()=>this.ooManager.key = ''"/>
@@ -206,7 +206,6 @@ patch(ListRenderer.prototype, {
}
if (this.props.ooManagerStickyEnd) {
console.log('ooManagerStickyEnd')
let rightOffset = 0;
const rightStickyIndices = [];
@@ -262,7 +261,6 @@ patch(ListRenderer.prototype, {
* @returns {boolean}
*/
get hasOptionalFields() {
console.log('hasOptionalFields')
return false
},
get displayOptionalFields() {
@@ -272,7 +270,6 @@ patch(ListRenderer.prototype, {
getActiveColumns(list) {
if (this.props.ooManagerColumns) {
console.log(this.allColumns)
const columns = this.allColumns.filter((col) => {
if (list.isGrouped && col.widget === "handle") return false;
const mColumn = this.props.ooManagerColumns.find(item => item.id === col.id);
@@ -4,7 +4,7 @@
<field name="name">soong.user.role.tree</field>
<field name="model">soong.user.role</field>
<field name="arch" type="xml">
<tree limit="20" >
<tree>
<field name="number" required="1"/>
<field name="name" required="1"/>
<field name="department_id" widget="ztree_select"/>
-2
View File
@@ -9,11 +9,9 @@
'security/ir.model.access.csv',
'security/yuthon_holiday_group.xml',
'data/yuthon_holiday_data.xml',
'data/mothly_report_time.xml',
'views/inherit_hr_type_views.xml',
'views/inherit_hr_leave_allocation_views.xml',
'views/inherit_hr_leave_accrual_plan_views.xml',
'views/yuthon_vacation_reports_views.xml',
'views/hr_leave_accrual_views.xml',
'views/yuthon_fixes_approval_views.xml',
'views/hr_leave_batch.xml',
+1 -2
View File
@@ -3,5 +3,4 @@ from . import inherit_hr_leave_type
from . import inherit_hr_leave
from . import inherit_hr_leave_accrual_plan
from . import yuthon_fixes_approval
from . import yuthon_holiday_setting
from . import yuthon_vacation_reports
from . import yuthon_holiday_setting
@@ -6,10 +6,3 @@ access_yuthon_fixes_wizard,yuthon_fixes_wizard,model_yuthon_fixes_wizard,base.gr
access_yuthon_holiday_setting,yuthon_holiday_setting,model_yuthon_holiday_setting,base.group_user,1,1,1,1
access_leave_allocation_wizard,leave_allocation_wizard,model_leave_allocation_wizard,base.group_user,1,1,1,1
access_yuthon_leave_wizard,yuthon_leave_wizard,model_yuthon_leave_wizard,base.group_user,1,1,1,1
access_yuthon_vacation_reports,yuthon_vacation_reports,model_yuthon_vacation_reports,base.group_user,1,1,1,1
access_vacation_leave_line,vacation_leave_line,model_vacation_leave_line,base.group_user,1,1,1,1
access_vacation_meal_line,vacation_meal_line,model_vacation_meal_line,base.group_user,1,1,1,1
access_vacation_over_line,vacation_over_line,model_vacation_over_line,base.group_user,1,1,1,1
access_details_tree, details_tree,model_details_tree,base.group_user,1,1,1,1
access_vacation_medical_line,vacation_medical_line,model_vacation_medical_line,base.group_user,1,1,1,1
access_vacation_other_line,vacation_other_line,model_vacation_other_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
6 access_yuthon_holiday_setting yuthon_holiday_setting model_yuthon_holiday_setting base.group_user 1 1 1 1
7 access_leave_allocation_wizard leave_allocation_wizard model_leave_allocation_wizard base.group_user 1 1 1 1
8 access_yuthon_leave_wizard yuthon_leave_wizard model_yuthon_leave_wizard base.group_user 1 1 1 1
access_yuthon_vacation_reports yuthon_vacation_reports model_yuthon_vacation_reports base.group_user 1 1 1 1
access_vacation_leave_line vacation_leave_line model_vacation_leave_line base.group_user 1 1 1 1
access_vacation_meal_line vacation_meal_line model_vacation_meal_line base.group_user 1 1 1 1
access_vacation_over_line vacation_over_line model_vacation_over_line base.group_user 1 1 1 1
access_details_tree details_tree model_details_tree base.group_user 1 1 1 1
access_vacation_medical_line vacation_medical_line model_vacation_medical_line base.group_user 1 1 1 1
access_vacation_other_line vacation_other_line model_vacation_other_line base.group_user 1 1 1 1
@@ -13,10 +13,5 @@
<field name="category_id" ref="module_yuthon_holiday"/>
<field name="implied_ids" eval="[(4, ref('group_yuthon_holiday_user'))]"/>
</record>
<record model="ir.rule" id="yuthon_vacation_reports_rule">
<field name="name">假期额度记录多公司</field>
<field name="model_id" ref="model_yuthon_vacation_reports"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>
</data>
</odoo>
+2
View File
@@ -18,6 +18,7 @@
'security/ir.model.access.csv',
'security/planning_group.xml',
'data/hr_attendance_time.xml',
'data/mothly_report_time.xml',
'data/attendance_code_data.xml',
'data/attendance_time_data.xml',
'data/attendance_month_date.xml',
@@ -31,6 +32,7 @@
'views/yuthon_customer_approval_views.xml',
'views/yuthon_shift_planning_views.xml',
'views/yuthon_run_planning_views.xml',
'views/yuthon_vacation_reports_views.xml',
'views/hr_attendance_wechat_views.xml',
'views/hr_attendance_detail_wechat_views.xml',
'views/overtime_approval.xml',
+1
View File
@@ -8,6 +8,7 @@ from . import remove_holiday_approval
from . import card_approval
from . import planning_template_inherit
from . import overtime_page
from . import yuthon_vacation_reports
from . import inherit_planning_role
from . import yuthon_shift_planning
from . import yuthon_run_planning
@@ -2,12 +2,15 @@ from datetime import datetime, timedelta, time
from email.policy import default
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
import calendar
from datetime import date
class YuthonVacationReports(models.Model):
_name = 'yuthon.vacation.reports'
_description = '假期额度记录'
_rec_name = "employee_id"
_order = "vacation_date desc"
employee_id = fields.Many2one('hr.employee', string='员工')
department_id = fields.Many2one(related='employee_id.department_id', string="部门")
@@ -19,10 +22,118 @@ class YuthonVacationReports(models.Model):
other_fee_ids = fields.One2many('vacation.other.line', 'vacation_id', string='其他明细')
vacation_date = fields.Date(string='日期', default=lambda self: fields.Date.today())
leave = fields.Char(string='年假', compute='_compute_leave', store=True)
leave = fields.Char(string='年假', compute='_compute_leave', store=True, digits=(16, 3))
working_overtime = fields.Char(string='加班时', compute='_compute_working_overtime', store=True)
meal_fee = fields.Integer(string="误餐次数", compute='_compute_meal_fee', store=True)
medical_fee = fields.Float(string="体检费", compute='_compute_medical_fee', store=True)
compensatory_leave = fields.Integer(string="调休")
leave_of_absence = fields.Integer(string="事假", digits=(16, 3))
statutory_leave = fields.Integer(string="法定假")
cop_leave = fields.Float(string='补休', digits=(16, 3))
duty_off_leave = fields.Integer(string='值班调休')
marriage_leave = fields.Integer(string='婚假')
maternity_leave = fields.Integer(string='产假')
paternity_leave = fields.Integer(string='陪产假')
family_planning_leave = fields.Integer(string='计生假')
bereavement_leave = fields.Float(string='丧假')
home_visit_leave = fields.Integer(string='探亲假')
parents_meeting_leave = fields.Integer(string='家长会假')
general_sick_leave = fields.Float(string='病假(普通)')
hospital_sick_leave = fields.Float(string='病假(住院期)')
recovery_sick_leave = fields.Float(string='病假(出院恢复期)')
exam_leave = fields.Integer(string='考试假')
is_late_card = fields.Integer(string="迟到", compute='_compute_attendance_fields', store=True)
is_early_card = fields.Integer(string="早退", compute='_compute_attendance_fields', store=True)
is_no_card = fields.Integer(string="缺卡", compute='_compute_attendance_fields', store=True)
is_work = fields.Integer(string='旷工', compute='_compute_attendance_fields', store=True)
is_abnormal = fields.Boolean(string="异常", compute='_compute_attendance_fields', store=True)
vacation_state = fields.Selection(
selection=[
('unconfirmed', "未确认"),
('confirmed', "已确认"),
('pending', "待定"),
],
string="状态",
readonly=True, copy=False, index=True,
tracking=3,
default='unconfirmed')
@api.depends('employee_id', 'vacation_date')
def _compute_attendance_fields(self):
for rec in self:
# 初始化字段值
is_late = 0
is_early = 0
is_no = 0
is_work = 0
is_abnormal = False
if rec.employee_id and rec.vacation_date:
year = rec.vacation_date.year
month = rec.vacation_date.month
days_in_month = calendar.monthrange(year, month)[1]
for day in range(1, days_in_month + 1):
current_date = date(year, month, day)
attendances = self.env["hr.attendance"].sudo().search([
('employee_id', '=', rec.employee_id.id),
("current_data", '=', current_date)
])
for att in attendances:
if att.is_late_card:
is_late += 1
if att.is_early_card:
is_early += 1
if att.is_no_card:
is_no += 1
if att.absenteeism_card:
is_work += 1
if att.is_abnormal:
is_abnormal = True
rec.is_late_card = is_late
rec.is_early_card = is_early
rec.is_no_card = is_no
rec.is_work = is_work
rec.is_abnormal = is_abnormal
def button_put(self):
menu_id = self.env['ir.ui.menu'].search([('name', '=', '考勤确认'), ('parent_id', '!=', False)])
url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.attendance.month.detail&view_type=list&menu_id={menu_id.id}'
we_id = self.env['hr.employee'].search([('id', '=', self.employee_id.id)]).wecom_userid
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='default', user_id=we_id, title="考勤确认",
description=self.employee_id.name + '请确认你的考勤:',
url=url, btntxt="详细信息")
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'type': 'success',
'message': '确认通知已发送',
'sticky': False,
}
}
def button_all_put(self):
detail_ids = self.env["yuthon.vacation.reports"].browse(self._context.get('active_ids', self._context.get('active_id')))
unique_employee_ids = list({detail.employee_id.id for detail in detail_ids if detail.employee_id})
for employee_id in unique_employee_ids:
menu_id = self.env['ir.ui.menu'].search([('name', '=', '考勤确认'), ('parent_id', '!=', False)])
url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.attendance.month.detail&view_type=list&menu_id={menu_id.id}'
we_id = self.env['hr.employee'].search([('id', '=', employee_id)]).wecom_userid
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='attendance', user_id=we_id, title="考勤确认",
description=employee_id.name + '请确认你的考勤:',
url=url, btntxt="详细信息")
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'type': 'success',
'message': '确认通知已发送',
'sticky': False,
}
}
@api.depends('medical_fee_ids.update_type', 'medical_fee_ids.lines', 'medical_fee_ids.is_void')
def _compute_medical_fee(self):
@@ -172,7 +283,6 @@ class YuthonVacationReports(models.Model):
overtime_hours += line_total
elif line.update_type == 'reduce':
overtime_hours -= line_total
overtime_days = overtime_hours / 8
record.working_overtime = f"{overtime_hours:.2f}小时({overtime_days:.2f}天)"
@@ -188,34 +298,6 @@ class YuthonVacationReports(models.Model):
meal_total -= int(line.update_lines or 0)
record.meal_fee = meal_total
def button_fixes_approval(self):
form_id = self.env.ref('yuthon_holiday.view_yuthon_fixes_approval_form').id
return {
"type": "ir.actions.act_window",
"name": "修正申请",
"res_model": "yuthon.fixes.approval",
"views": [[form_id, "form"]],
"context": {
'default_users_id': self.employee_id.user_id.id,
'default_vacation_id': self.id,
'default_now_type': 'hours',
'default_holiday_status': 'annual'
}
}
def vacation_details(self):
domain =[('workflow_id.name', 'in', ['请假', '加班', '外出']), ('create_uid', '=', self.employee_id.user_id.id)]
action = {
'name': '审批详情',
'type': 'ir.actions.act_window',
'res_model': 'soong.workflow.record',
'view_mode': 'tree',
'domain': domain,
'context': {'group_by': ['workflow_id'],
'tree_view_ref':'yuthon_holiday.details_tree_view',
}}
return action
def update_vacation(self):
employees = self.env['hr.employee'].search([
('is_salary', '=', True),
@@ -8,6 +8,13 @@ access_overtime_page,overtime.page,model_overtime_page,base.group_user,1,1,1,1
access_duty_approval,duty.approval,model_duty_approval,base.group_user,1,1,1,1
access_duty_approval_line,duty.approval.line,model_duty_approval_line,base.group_user,1,1,1,1
access_mac_line, mac.line,model_mac_line,base.group_user,1,1,1,1
access_yuthon_vacation_reports,yuthon_vacation_reports,model_yuthon_vacation_reports,base.group_user,1,1,1,1
access_vacation_leave_line,vacation_leave_line,model_vacation_leave_line,base.group_user,1,1,1,1
access_vacation_meal_line,vacation_meal_line,model_vacation_meal_line,base.group_user,1,1,1,1
access_vacation_over_line,vacation_over_line,model_vacation_over_line,base.group_user,1,1,1,1
access_details_tree, details_tree,model_details_tree,base.group_user,1,1,1,1
access_vacation_medical_line,vacation_medical_line,model_vacation_medical_line,base.group_user,1,1,1,1
access_vacation_other_line,vacation_other_line,model_vacation_other_line,base.group_user,1,1,1,1
access_yuthon_shift_planning,yuthon.shift.planning,model_yuthon_shift_planning,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
8 access_duty_approval duty.approval model_duty_approval base.group_user 1 1 1 1
9 access_duty_approval_line duty.approval.line model_duty_approval_line base.group_user 1 1 1 1
10 access_mac_line mac.line model_mac_line base.group_user 1 1 1 1
11 access_yuthon_vacation_reports yuthon_vacation_reports model_yuthon_vacation_reports base.group_user 1 1 1 1
12 access_vacation_leave_line vacation_leave_line model_vacation_leave_line base.group_user 1 1 1 1
13 access_vacation_meal_line vacation_meal_line model_vacation_meal_line base.group_user 1 1 1 1
14 access_vacation_over_line vacation_over_line model_vacation_over_line base.group_user 1 1 1 1
15 access_details_tree details_tree model_details_tree base.group_user 1 1 1 1
16 access_vacation_medical_line vacation_medical_line model_vacation_medical_line base.group_user 1 1 1 1
17 access_vacation_other_line vacation_other_line model_vacation_other_line base.group_user 1 1 1 1
18 access_yuthon_shift_planning yuthon.shift.planning model_yuthon_shift_planning base.group_user 1 1 1 1
19 access_yuthon_shift_planning_a_line yuthon.shift.planning.a.line model_yuthon_shift_planning_a_line base.group_user 1 1 1 1
20 access_yuthon_shift_planning_b_line yuthon.shift.planning.b.line model_yuthon_shift_planning_b_line base.group_user 1 1 1 1
@@ -34,5 +34,10 @@
<field name="model_id" ref="model_hr_attendance"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>
<record model="ir.rule" id="yuthon_vacation_reports_rule">
<field name="name">假期额度记录多公司</field>
<field name="model_id" ref="model_yuthon_vacation_reports"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>
</data>
</odoo>
@@ -108,7 +108,6 @@
<button name="workflow_record" string="流程" type="object" class="oe_highlight"/>
<button name="details_record" string="详情" type="object" class="oe_highlight"/>
<button name="button_put" string="发送" type="object" class="oe_highlight"/>
</tree>
</field>
</record>
@@ -7,7 +7,7 @@
<tree string="出勤"
edit="false" delete="false" create="false"
decoration-danger="is_workflow or is_approval"
editable="bottom" limit="20">
editable="bottom">
<header>
<!-- <button name="compute_company_id" string="公司更新" type="object" class="btn btn-primary"/>-->
<!-- <button name="button_all" string="班次更新" type="object" class="btn btn-primary"/>-->
@@ -51,7 +51,7 @@
<field name="arch" type="xml">
<tree string="出勤"
edit="false" delete="false" create="false"
editable="bottom" limit="20" default_order="current_data desc">
editable="bottom" default_order="current_data desc">
<!-- <header>-->
<!-- <button name="compute_company_id" string="公司更新" type="object" class="btn btn-primary"/>-->
<!-- </header>-->
@@ -4,15 +4,39 @@
<field name="name">yuthon.vacation.reports.tree</field>
<field name="model">yuthon.vacation.reports</field>
<field name="arch" type="xml">
<tree string="假期额度日志" editable="bottom" edit="0">
<field name="employee_id" options="{'no_create': True}"/>
<tree string="假期额度记录" editable="bottom" edit="0" default_order="vacation_date desc">
<field name="employee_id" options="{'no_open': True}"/>
<field name="department_id" column_invisible="1"/>
<field name="company_id" column_invisible="1"/>
<field name="vacation_date" column_invisible="1"/>
<field name="is_late_card"/>
<field name="is_early_card"/>
<field name="is_no_card"/>
<field name="is_work"/>
<field name="leave"/>
<field name="working_overtime"/>
<field name="meal_fee"/>
<field name="company_id" optional="hide"/>
<field name="vacation_date"/>
<button name="button_fixes_approval" string="修正" type="object" class="oe_highlight"/>
<button name="log" string="日志" type="object" class="oe_highlight"/>
<field name="medical_fee"/>
<field name="compensatory_leave"/>
<field name="leave_of_absence"/>
<field name="statutory_leave"/>
<field name="cop_leave"/>
<field name="duty_off_leave"/>
<field name="marriage_leave"/>
<field name="maternity_leave"/>
<field name="paternity_leave"/>
<field name="family_planning_leave"/>
<field name="bereavement_leave"/>
<field name="home_visit_leave"/>
<field name="parents_meeting_leave"/>
<field name="general_sick_leave"/>
<field name="hospital_sick_leave"/>
<field name="recovery_sick_leave"/>
<field name="exam_leave"/>
<field name="vacation_state" widget="badge" decoration-info="vacation_state == 'unconfirmed'"
decoration-success="vacation_state == 'confirmed'"/>
<button name="log" type="object" string="详情" class="oe_highlight"/>
<button name="button_put" string="发送" type="object" class="oe_highlight"/>
</tree>
</field>
</record>
@@ -20,14 +44,39 @@
<field name="name">yuthon.vacation.my.reports.tree</field>
<field name="model">yuthon.vacation.reports</field>
<field name="arch" type="xml">
<tree string="我的假期额度日志" editable="bottom" edit="0">
<field name="employee_id" options="{'no_create': True}"/>
<field name="department_id"/>
<tree string="我的假期额度记录" editable="bottom" default_order="vacation_date desc">
<field name="employee_id" options="{'no_open': True}"/>
<field name="department_id" column_invisible="1"/>
<field name="company_id" column_invisible="1"/>
<field name="vacation_date" column_invisible="1"/>
<field name="is_late_card"/>
<field name="is_early_card"/>
<field name="is_no_card"/>
<field name="is_work"/>
<field name="leave"/>
<field name="working_overtime"/>
<field name="meal_fee"/>
<field name="vacation_date"/>
<field name="company_id" optional="hide"/>
<field name="medical_fee"/>
<field name="compensatory_leave"/>
<field name="leave_of_absence"/>
<field name="statutory_leave"/>
<field name="cop_leave"/>
<field name="duty_off_leave"/>
<field name="marriage_leave"/>
<field name="maternity_leave"/>
<field name="paternity_leave"/>
<field name="family_planning_leave"/>
<field name="bereavement_leave"/>
<field name="home_visit_leave"/>
<field name="parents_meeting_leave"/>
<field name="general_sick_leave"/>
<field name="hospital_sick_leave"/>
<field name="recovery_sick_leave"/>
<field name="exam_leave"/>
<field name="vacation_state" widget="badge" decoration-info="vacation_state == 'unconfirmed'"
decoration-success="vacation_state == 'confirmed'"/>
<button name="log" type="object" string="详情" class="oe_highlight"/>
<button name="button_put" string="发送" type="object" class="oe_highlight"/>
</tree>
</field>
</record>
@@ -142,6 +191,30 @@
</tree>
</field>
</page>
<page string="汇总" invisible="1">
<group>
<field name="is_late_card"/>
<field name="is_early_card"/>
<field name="is_no_card"/>
<field name="is_work"/>
<field name="compensatory_leave"/>
<field name="leave_of_absence"/>
<field name="statutory_leave"/>
<field name="cop_leave"/>
<field name="duty_off_leave"/>
<field name="marriage_leave"/>
<field name="maternity_leave"/>
<field name="paternity_leave"/>
<field name="family_planning_leave"/>
<field name="bereavement_leave"/>
<field name="home_visit_leave"/>
<field name="parents_meeting_leave"/>
<field name="general_sick_leave"/>
<field name="hospital_sick_leave"/>
<field name="recovery_sick_leave"/>
<field name="exam_leave"/>
</group>
</page>
</notebook>
</sheet>
</form>
@@ -155,7 +228,8 @@
<field name="employee_id"/>
<group expand="0" string="Group By">
<filter string="员工" name="group_by_employee_id" domain="[]" context="{'group_by': 'employee_id'}"/>
<filter string="日期" name="group_by_vacation_date" domain="[]" context="{'group_by' : 'vacation_date'}"/>
<filter string="按年" name="group_by_vacation_year" domain="[]" context="{'group_by': 'vacation_date:year'}"/>
<filter string="按月" name="group_by_vacation_month" domain="[]" context="{'group_by': 'vacation_date:month'}"/>
</group>
</search>
</field>
@@ -259,6 +333,30 @@
</tree>
</field>
</page>
<page string="汇总" invisible="1">
<group>
<field name="is_late_card"/>
<field name="is_early_card"/>
<field name="is_no_card"/>
<field name="is_work"/>
<field name="compensatory_leave"/>
<field name="leave_of_absence"/>
<field name="statutory_leave"/>
<field name="cop_leave"/>
<field name="duty_off_leave"/>
<field name="marriage_leave"/>
<field name="maternity_leave"/>
<field name="paternity_leave"/>
<field name="family_planning_leave"/>
<field name="bereavement_leave"/>
<field name="home_visit_leave"/>
<field name="parents_meeting_leave"/>
<field name="general_sick_leave"/>
<field name="hospital_sick_leave"/>
<field name="recovery_sick_leave"/>
<field name="exam_leave"/>
</group>
</page>
</notebook>
</sheet>
</form>
@@ -268,46 +366,53 @@
<field name="name">假期额度日志</field>
<field name="res_model">yuthon.vacation.reports</field>
<field name="view_mode">tree,form</field>
<field name="context">{'search_default_group_by_employee_id': 1, 'search_default_group_by_vacation_date': True}</field>
<field name="context">{'search_default_group_by_employee_id': 1, 'search_default_group_by_vacation_year': True, 'search_default_group_by_vacation_month': True}</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_holiday.view_yuthon_vacation_reports_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_holiday.view_yuthon_vacation_reports_form')})]"/>
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_hr_attendance.view_yuthon_vacation_reports_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_hr_attendance.view_yuthon_vacation_reports_form')})]"/>
</record>
<record id="action_server_open_my_vacation_form1" model="ir.actions.act_window">
<field name="name">我的假期额度</field>
<field name="name">我的考勤确认</field>
<field name="res_model">yuthon.vacation.reports</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('employee_id.user_id', '=', uid)]</field>
<field name="context">{'search_default_group_by_vacation_date': 1}</field>
<field name="context">{'search_default_group_by_vacation_year': True, 'search_default_group_by_vacation_month': True}</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_holiday.view_yuthon_vacation_my_reports_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_holiday.view_yuthon_vacation_reports_form1')})]"/>
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_hr_attendance.view_yuthon_vacation_my_reports_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_hr_attendance.view_yuthon_vacation_reports_form1')})]"/>
</record>
<record id="all_update_employee" model="ir.actions.server">
<field name="name">更新报表</field>
<field name="model_id" ref="yuthon_holiday.model_yuthon_vacation_reports"/>
<field name="binding_model_id" ref="yuthon_holiday.model_yuthon_vacation_reports"/>
<field name="model_id" ref="yuthon_hr_attendance.model_yuthon_vacation_reports"/>
<field name="binding_model_id" ref="yuthon_hr_attendance.model_yuthon_vacation_reports"/>
<field name="state">code</field>
<field name="code">action = model.update_vacation()</field>
</record>
<record id="all_update_log" model="ir.actions.server">
<field name="name">初始化日志</field>
<field name="model_id" ref="yuthon_holiday.model_yuthon_vacation_reports"/>
<field name="binding_model_id" ref="yuthon_holiday.model_yuthon_vacation_reports"/>
<field name="model_id" ref="yuthon_hr_attendance.model_yuthon_vacation_reports"/>
<field name="binding_model_id" ref="yuthon_hr_attendance.model_yuthon_vacation_reports"/>
<field name="state">code</field>
<field name="code">action = model.update_log()</field>
</record>
<record id="all_data_attendance_put_month" model="ir.actions.server">
<field name="name">批量发送</field>
<field name="model_id" ref="yuthon_hr_attendance.model_yuthon_vacation_reports"/>
<field name="binding_model_id" ref="yuthon_hr_attendance.model_yuthon_vacation_reports"/>
<field name="state">code</field>
<field name="code">action = model.update_log()</field>
</record>
<record id="all_vacation_delete" model="ir.actions.server">
<field name="name">清零</field>
<field name="model_id" ref="yuthon_holiday.model_yuthon_vacation_reports"/>
<field name="binding_model_id" ref="yuthon_holiday.model_yuthon_vacation_reports"/>
<field name="model_id" ref="yuthon_hr_attendance.model_yuthon_vacation_reports"/>
<field name="binding_model_id" ref="yuthon_hr_attendance.model_yuthon_vacation_reports"/>
<field name="state">code</field>
<field name="code">action = model.vacation_delete()</field>
</record>
<record id="all_update_vac" model="ir.actions.server">
<field name="name">一次性</field>
<field name="model_id" ref="yuthon_holiday.model_yuthon_vacation_reports"/>
<field name="binding_model_id" ref="yuthon_holiday.model_yuthon_vacation_reports"/>
<field name="model_id" ref="yuthon_hr_attendance.model_yuthon_vacation_reports"/>
<field name="binding_model_id" ref="yuthon_hr_attendance.model_yuthon_vacation_reports"/>
<field name="state">code</field>
<field name="code">action = model.disposable_report()</field>
</record>
@@ -25,6 +25,7 @@
<group col="3">
<group>
<field name="code" string="保修编号" readonly="1"/>
<field name="work_end" invisible="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
@@ -4,7 +4,7 @@
<field name="name">property.accounting.unit.tree</field>
<field name="model">property.accounting.unit</field>
<field name="arch" type="xml">
<tree string="核算单位列表" limit="20">
<tree string="核算单位列表">
<field name="name"/>
<field name="valid_date"/>
</tree>
@@ -4,8 +4,7 @@
<field name="model">property.accounts.receivable</field>
<field name="arch" type="xml">
<tree editable="bottom" string="应收账单"
decoration-success="is_reconciliation == True"
limit="20">
decoration-success="is_reconciliation == True">
<header>
<button name="all_red" string="红冲" type="object" class="btn btn-primary"/>
</header>
@@ -4,7 +4,7 @@
<field name="name">property.bank.statements.tree</field>
<field name="model">property.bank.statements</field>
<field name="arch" type="xml">
<tree string="对账" editable="bottom" js_class="custom_statements_list_button" limit="20">
<tree string="对账" editable="bottom" js_class="custom_statements_list_button">
<field name="start_time"/>
<field name="company_id" optional="hide"/>
<field name="bank_name" optional="hide"/>
@@ -35,7 +35,7 @@
<field name="name">property.bank.statements.tree</field>
<field name="model">property.bank.statements</field>
<field name="arch" type="xml">
<tree string="银行流水" editable="bottom" js_class="custom_bank_statements_button" limit="20">
<tree string="银行流水" editable="bottom" js_class="custom_bank_statements_button">
<field name="your_own_account" optional="hide"/>
<field name="your_own_unit" optional="hide"/>
<!--
@@ -4,7 +4,7 @@
<field name="name">property.check.decorate.tree</field>
<field name="model">property.check.decorate</field>
<field name="arch" type="xml">
<tree string="违章装修" limit="20">
<tree string="违章装修">
<field name="name"/>
<field name="sequence"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.check.elevator.tree</field>
<field name="model">property.check.elevator</field>
<field name="arch" type="xml">
<tree string="巡检电梯" limit="20">
<tree string="巡检电梯">
<field name="name"/>
<field name="sequence"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.check.equipment.tree</field>
<field name="model">property.check.equipment</field>
<field name="arch" type="xml">
<tree string="公告设施巡检" limit="20">
<tree string="公告设施巡检">
<field name="name"/>
<field name="sequence"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.check.escape.tree</field>
<field name="model">property.check.escape</field>
<field name="arch" type="xml">
<tree string="巡检逃生平台" limit="20">
<tree string="巡检逃生平台">
<field name="name"/>
<field name="sequence"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.check.list.tree</field>
<field name="model">property.check.list</field>
<field name="arch" type="xml">
<tree string="检查电水表" limit="20">
<tree string="检查电水表">
<field name="name"/>
<field name="sequence"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.check.lobby.tree</field>
<field name="model">property.check.lobby</field>
<field name="arch" type="xml">
<tree string="巡检大堂、门厅、走廊" limit="20">
<tree string="巡检大堂、门厅、走廊">
<field name="name"/>
<field name="sequence"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.check.project.tree</field>
<field name="model">property.check.project</field>
<field name="arch" type="xml">
<tree string="巡检项目" limit="20">
<tree string="巡检项目">
<field name="name"/>
<field name="sequence"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.check.room.tree</field>
<field name="model">property.check.room</field>
<field name="arch" type="xml">
<tree string="查询空置房" limit="20">
<tree string="查询空置房">
<field name="name"/>
<field name="sequence"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.check.stairs.tree</field>
<field name="model">property.check.stairs</field>
<field name="arch" type="xml">
<tree string="查询空置房" limit="20">
<tree string="查询空置房">
<field name="name"/>
<field name="sequence"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.construction.unit.tree</field>
<field name="model">property.construction.unit</field>
<field name="arch" type="xml">
<tree string="施工单位列表" limit="20">
<tree string="施工单位列表">
<field name="name"/>
<field name="valid_date"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.deposit.tree</field>
<field name="model">property.deposit.list</field>
<field name="arch" type="xml">
<tree string="押金列表" editable="bottom" limit="20" create="false" delete="false" edit="0">
<tree string="押金列表" editable="bottom" create="false" delete="false" edit="0">
<field name="property_id" options="{'no_create': True}"/>
<field name="lessee_id" options="{'no_create': True}"/>
<field name="is_push" optional="hide"/>
@@ -4,7 +4,7 @@
<field name="name">property.evaluation.plan.tree</field>
<field name="model">property.evaluation.plan</field>
<field name="arch" type="xml">
<tree string="物业评估方案" editable="bottom" create="false" js_class="custom_evaluation_button" limit="20">
<tree string="物业评估方案" editable="bottom" create="false" js_class="custom_evaluation_button">
<header>
<button name="put_assessment_approval" type="object" string="提交评估申请" class="btn btn-primary"/>
</header>
@@ -4,7 +4,7 @@
<field name="name">property.intention.information.tree</field>
<field name="model">property.intention.information</field>
<field name="arch" type="xml">
<tree string="意向客户信息" limit="20">
<tree string="意向客户信息">
<field name="name"/>
<field name="entity_type"/>
<field name="license_id"/>
@@ -4,7 +4,7 @@
<field name="name">property.management.list.tree</field>
<field name="model">property.management.list</field>
<field name="arch" type="xml">
<tree editable="bottom" string="管理费列表" limit="20">
<tree editable="bottom" string="管理费列表">
<field name="lessee_id" options="{'no_create': True}"/>
<field name="property_id" options="{'no_create': True}"/>
<field name="area"/>
@@ -4,7 +4,7 @@
<field name="name">property.message.fee.tree</field>
<field name="model">property.message.fee</field>
<field name="arch" type="xml">
<tree string="物业管理费" editable="bottom" limit="20">
<tree string="物业管理费" editable="bottom">
<field name="name"/>
<field name="amount"/>
<field name="start_date"/>
@@ -4,7 +4,7 @@
<field name="name">property.meter.archives.tree</field>
<field name="model">property.meter.archives</field>
<field name="arch" type="xml">
<tree string="电表库" limit="20" create="False" editable="bottom" decoration-success="is_push"
<tree string="电表库" create="False" editable="bottom" decoration-success="is_push"
decoration-danger="archives_state == 'stop'">
<header>
<button class="oe_highlight" name="batch_reading_push" string="推送" type="object"/>
@@ -35,7 +35,7 @@
<field name="name">property.meter.archives.tree</field>
<field name="model">property.meter.archives</field>
<field name="arch" type="xml">
<tree string="电表抄表" limit="20" create="False" editable="bottom">
<tree string="电表抄表" create="False" editable="bottom">
<field name="name" readonly="1"/>
<field name="yuthon_property_id" string="地址" readonly="1"/>
<field name="lessee_id" options="{'no_create': True}" readonly="1"/>
@@ -4,7 +4,7 @@
<field name="name">property.meter.water.tree</field>
<field name="model">property.meter.water</field>
<field name="arch" type="xml">
<tree string="水表库" limit="20" create="False" editable="bottom"
<tree string="水表库" create="False" editable="bottom"
decoration-danger="water_state == 'stop'">
decoration-success="is_push">
<header>
@@ -37,7 +37,7 @@
<field name="name">property.meter.water.tree</field>
<field name="model">property.meter.water</field>
<field name="arch" type="xml">
<tree string="水表抄表" limit="20" create="False" editable="bottom">
<tree string="水表抄表" create="False" editable="bottom">
<field name="name" readonly="1"/>
<field name="yuthon_property_id" string="地址" readonly="1"/>
<field name="lessee_id" options="{'no_create': True}" readonly="1"/>
@@ -4,7 +4,7 @@
<field name="name">property.patrol.duty.tree</field>
<field name="model">property.patrol.duty</field>
<field name="arch" type="xml">
<tree string="巡更任务" editable="bottom" limit="20">
<tree string="巡更任务" editable="bottom">
<field name="number"/>
<field name="task_number"/>
<field name="task_category"/>
@@ -4,7 +4,7 @@
<field name="name">property.patrol.plan.tree</field>
<field name="model">property.patrol.plan</field>
<field name="arch" type="xml">
<tree string="巡更计划" editable="bottom" limit="20">
<tree string="巡更计划" editable="bottom">
<field name="plan_name"/>
<field name="plan_category"/>
<field name="people"/>
@@ -4,7 +4,7 @@
<field name="name">property.patrol.position.tree</field>
<field name="model">property.patrol.position</field>
<field name="arch" type="xml">
<tree string="巡更点位" editable="bottom" limit="20">
<tree string="巡更点位" editable="bottom">
<field name="number"/>
<field name="point_number"/>
<field name="point_name"/>
@@ -4,7 +4,7 @@
<field name="name">property.patrol.standard.tree</field>
<field name="model">property.patrol.standard</field>
<field name="arch" type="xml">
<tree string="巡更标准" editable="bottom" limit="20">
<tree string="巡更标准" editable="bottom">
<field name="number"/>
<field name="task_number"/>
<field name="question_type"/>
@@ -5,7 +5,7 @@
<field name="model">property.rent.list</field>
<field name="arch" type="xml">
<tree editable="bottom" string="租金列表" decoration-danger = "charge_status == 'unpaid'"
decoration-success="charge_status == 'fully_paid'" js_class="custom_rent_list_button" limit="20">
decoration-success="charge_status == 'fully_paid'" js_class="custom_rent_list_button">
<field name="property_id" options="{'no_create': True}"/>
<field name="lessee_id" options="{'no_create': True}"/>
<field name="admin_id" options="{'no_create': True}"/>
@@ -4,7 +4,7 @@
<field name="name">property.route.management.tree</field>
<field name="model">property.route.management</field>
<field name="arch" type="xml">
<tree string="路线管理" editable="bottom" limit="20">
<tree string="路线管理" editable="bottom">
<field name="number"/>
<field name="patrol_types"/>
<field name="route_sequence"/>
@@ -4,7 +4,7 @@
<field name="name">property.subject.form.tree</field>
<field name="model">property.subject.form</field>
<field name="arch" type="xml">
<tree string="预算科目表" editable="bottom" limit="20">
<tree string="预算科目表" editable="bottom">
<field name="code"/>
<field name="name"/>
<field name="subject_description"/>
@@ -4,7 +4,7 @@
<field name="name">property.summary.report.tree</field>
<field name="model">property.summary.report</field>
<field name="arch" type="xml">
<tree string="物业汇总报表" limit="20">
<tree string="物业汇总报表">
<field name="property_id"/>
<field name="now_rent_price"/>
<field name="appraisal_price"/>
@@ -4,7 +4,7 @@
<field name="name">property.tariff.list.tree</field>
<field name="model">property.tariff.list</field>
<field name="arch" type="xml">
<tree string="电费列表" editable="bottom" limit="20">
<tree string="电费列表" editable="bottom">
<field name="name"/>
<field name="contract_code" optional="hide"/>
<field name="property_id" options="{'no_create': True}"/>
@@ -4,7 +4,7 @@
<field name="name">property.tenant.information.tree</field>
<field name="model">property.tenant.information</field>
<field name="arch" type="xml">
<tree string="承租方列表" limit="20">
<tree string="承租方列表">
<field name="name"/>
<field name="phone"/>
<field name="email"/>
@@ -16,7 +16,7 @@
<field name="name">property.tenant.information.form</field>
<field name="model">property.tenant.information</field>
<field name="arch" type="xml">
<form string="承租方信息" create="0" limit="20">
<form string="承租方信息" create="0">
<sheet>
<div class="oe_title">
<label for="name"/>
@@ -4,7 +4,7 @@
<field name="name">property.water.list.tree</field>
<field name="model">property.water.list</field>
<field name="arch" type="xml">
<tree string="水费列表" editable="bottom" limit="20">
<tree string="水费列表" editable="bottom">
<field name="name"/>
<field name="contract_code" optional="hide"/>
<field name="property_id" options="{'no_create': True}"/>
@@ -5,7 +5,7 @@
<field name="name">yuthon_draw_result_view_tree</field>
<field name="model">yuthon.draw.result</field>
<field name="arch" type="xml">
<tree editable="bottom" limit="20">
<tree editable="bottom">
<field name="date"/>
<field name="project"/>
<field name="company"/>
@@ -4,7 +4,7 @@
<field name="name">yuthon.precinct.message.tree</field>
<field name="model">yuthon.precinct.message</field>
<field name="arch" type="xml">
<tree string="片区管理" editable="bottom" limit="20">
<tree string="片区管理" editable="bottom">
<field name="sequence" widget="handle"/>
<field name="name"/>
<field name="employee_id" options="{'no_create': True}"/>
@@ -4,7 +4,7 @@
<field name="name">yuthon.property.message.tree</field>
<field name="model">yuthon.property.message</field>
<field name="arch" type="xml">
<tree string="产权管理" limit="20">
<tree string="产权管理">
<field name="name"/>
<field name="owner_id"/>
<field name="title_certificate"/>
@@ -4,7 +4,7 @@
<field name="name">yuthon.property.penalty.tree</field>
<field name="model">yuthon.penalty.setting</field>
<field name="arch" type="xml">
<tree string="违约金配置" editable="bottom" limit="20">
<tree string="违约金配置" editable="bottom">
<field name="name"/>
<field name="ratio"/>
</tree>
@@ -14,7 +14,7 @@
<field name="name">yuthon.property.tariff.tree</field>
<field name="model">yuthon.tariff.setting</field>
<field name="arch" type="xml">
<tree string="物业费配置" editable="bottom" limit="20">
<tree string="物业费配置" editable="bottom">
<field name="name"/>
<field name="ratio"/>
</tree>
@@ -34,7 +34,7 @@
<field name="name">property.account.setting.tree</field>
<field name="model">property.account.setting</field>
<field name="arch" type="xml">
<tree string="账户配置" editable="bottom" limit="20">
<tree string="账户配置" editable="bottom">
<field name="name"/>
<field name="bank_deposit"/>
<field name="bank_cards"/>
@@ -50,7 +50,7 @@
<field name="name">property.project.setting.tree</field>
<field name="model">property.project.setting</field>
<field name="arch" type="xml">
<tree string="项目配置" editable="bottom" limit="20">
<tree string="项目配置" editable="bottom">
<field name="name"/>
</tree>
</field>
@@ -4,7 +4,7 @@
<field name="name">yuthon.property.tree</field>
<field name="model">yuthon.property</field>
<field name="arch" type="xml">
<tree string="物业管理" limit="20">
<tree string="物业管理">
<header>
<button name="put_merge_approval" string="合并" type="object" class="btn btn-primary"/>
<button name="put_property_handover" string="物业移交" type="object" class="btn btn-primary"/>
@@ -314,7 +314,7 @@
<field name="name">feature.setting.tree</field>
<field name="model">feature.setting</field>
<field name="arch" type="xml">
<tree string="特色配置" editable="bottom" limit="20">
<tree string="特色配置" editable="bottom">
<field name="name"/>
</tree>
</field>
@@ -328,7 +328,7 @@
<field name="name">major.event.setting.tree</field>
<field name="model">major.event.setting</field>
<field name="arch" type="xml">
<tree string="重大事项配置" editable="bottom" limit="20">
<tree string="重大事项配置" editable="bottom">
<field name="name"/>
<field name="inspector_html"/>
<field name="start_date"/>
@@ -345,7 +345,7 @@
<field name="name">property.floor.setting.tree</field>
<field name="model">property.floor.setting</field>
<field name="arch" type="xml">
<tree string="楼层配置" editable="bottom" limit="20">
<tree string="楼层配置" editable="bottom">
<field name="sequence" widget="handle"/>
<field name="name" optional="hide"/>
<field name="show_name"/>
@@ -378,7 +378,7 @@
<field name="name">evaluation.company.tree</field>
<field name="model">evaluation.company</field>
<field name="arch" type="xml">
<tree string="评估公司" editable="bottom" limit="20">
<tree string="评估公司" editable="bottom">
<field name="name"/>
</tree>
</field>
@@ -392,7 +392,7 @@
<field name="name">amount.way.tree</field>
<field name="model">amount.way</field>
<field name="arch" type="xml">
<tree string="交易方式" editable="bottom" limit="20">
<tree string="交易方式" editable="bottom">
<field name="name"/>
</tree>
</field>
@@ -4,7 +4,7 @@
<field name="name">property.claim.approval.tree</field>
<field name="model">property.claim.approval</field>
<field name="arch" type="xml">
<tree string="业务报销审批" limit="20">
<tree string="业务报销审批">
<field name="name"/>
<field name="users_id"/>
<field name="total_received"/>
@@ -4,7 +4,7 @@
<field name="name">property.accounting.approval.tree</field>
<field name="model">property.accounting.approval</field>
<field name="arch" type="xml">
<tree string="建设工程委托核算合同审批" limit="20">
<tree string="建设工程委托核算合同审批">
<field name="name"/>
<field name="company_id" required="1"/>
<field name="company_b_id"/>
@@ -4,7 +4,7 @@
<field name="name">property.accounts.approval.tree</field>
<field name="model">property.accounts.approval</field>
<field name="arch" type="xml">
<tree string="应收账单生成审批单" limit="20">
<tree string="应收账单生成审批单">
<field name="name"/>
<field name="users_id"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.approval.tree</field>
<field name="model">property.approval</field>
<field name="arch" type="xml">
<tree string="新增物业审批" limit="20">
<tree string="新增物业审批">
<field name="name"/>
<field name="code"/>
<field name="property_source"/>
@@ -4,7 +4,7 @@
<field name="name">property.assess.tree</field>
<field name="model">property.assess</field>
<field name="arch" type="xml">
<tree string="物业评估" limit="20">
<tree string="物业评估">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.billing.confirmation.tree</field>
<field name="model">property.billing.confirmation</field>
<field name="arch" type="xml">
<tree string="账单确认单审批" limit="20">
<tree string="账单确认单审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.borrowing.approval.tree</field>
<field name="model">property.borrowing.approval</field>
<field name="arch" type="xml">
<tree string="借支审批" limit="20">
<tree string="借支审批">
<field name="name"/>
<field name="users_id"/>
<field name="total_received"/>
@@ -4,7 +4,7 @@
<field name="name">property.business.confirm.tree</field>
<field name="model">property.business.confirm</field>
<field name="arch" type="xml">
<tree string="经营报表确认单审批" limit="20">
<tree string="经营报表确认单审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -26,9 +26,11 @@
<group>
<group>
<field name="code"/>
<field name="work_end" invisible="1"/>
<field name="property_documents_ids">
<tree>
<field name="name"/>
</tree>
</field>
</group>
@@ -4,7 +4,7 @@
<field name="name">property.capacity.tree</field>
<field name="model">property.capacity</field>
<field name="arch" type="xml">
<tree string="增容审批" limit="20">
<tree string="增容审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.collection.confirm.tree</field>
<field name="model">property.collection.confirm</field>
<field name="arch" type="xml">
<tree string="收款确认单审批" limit="20">
<tree string="收款确认单审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.confirm.tree</field>
<field name="model">property.confirm</field>
<field name="arch" type="xml">
<tree string="成交确认" limit="20">
<tree string="成交确认">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.construction.approval.tree</field>
<field name="model">property.construction.approval</field>
<field name="arch" type="xml">
<tree string="施工合同合同审批" limit="20">
<tree string="施工合同合同审批">
<field name="name"/>
<field name="company_id" required="1"/>
<field name="company_b_id"/>
@@ -4,7 +4,7 @@
<field name="name">property.construction.work.tree</field>
<field name="model">property.construction.work</field>
<field name="arch" type="xml">
<tree string="建设工程审批单" limit="20">
<tree string="建设工程审批单">
<field name="name"/>
</tree>
</field>
@@ -4,7 +4,7 @@
<field name="name">property.contract.changes.tree</field>
<field name="model">property.contract.changes</field>
<field name="arch" type="xml">
<tree string="租聘合同变更审批" limit="20">
<tree string="租聘合同变更审批">
<field name="name"/>
</tree>
</field>
@@ -4,7 +4,7 @@
<field name="name">property.current.approval.tree</field>
<field name="model">property.current.approval</field>
<field name="arch" type="xml">
<tree string="租赁合同审批表" limit="20">
<tree string="租赁合同审批表">
<field name="name"/>
<field name="current_type"/>
<field name="lessor_id"/>
@@ -4,7 +4,7 @@
<field name="name">property.delegated.agent.tree</field>
<field name="model">property.delegated.agent</field>
<field name="arch" type="xml">
<tree string="零星工程" limit="20">
<tree string="零星工程">
<field name="name"/>
<field name="annual"/>
<field name="contract_date"/>
@@ -4,7 +4,7 @@
<field name="name">property.design.approval.tree</field>
<field name="model">property.design.approval</field>
<field name="arch" type="xml">
<tree string="建设工程设计合同审批" limit="20">
<tree string="建设工程设计合同审批">
<field name="name"/>
<field name="company_id" required="1"/>
<field name="company_b_id"/>
@@ -4,7 +4,7 @@
<field name="name">property.early.quitting.tree</field>
<field name="model">property.early.quitting</field>
<field name="arch" type="xml">
<tree string="提前退租审批" limit="20">
<tree string="提前退租审批">
<field name="name"/>
<field name="address_id"/>
<field name="early_quitting_date"/>
@@ -4,7 +4,7 @@
<field name="name">property.eligibility.tree</field>
<field name="model">property.eligibility</field>
<field name="arch" type="xml">
<tree string="承租资格审批" limit="20">
<tree string="承租资格审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.engineering.approval.tree</field>
<field name="model">property.engineering.approval</field>
<field name="arch" type="xml">
<tree string="工程合同审批表" limit="20">
<tree string="工程合同审批表">
<field name="name"/>
<field name="contractor"/>
<field name="contract_amount"/>
@@ -4,7 +4,7 @@
<field name="name">property.equity.tree</field>
<field name="model">property.equity</field>
<field name="arch" type="xml">
<tree string="物业产权变更" limit="20">
<tree string="物业产权变更">
<field name="name"/>
<field name="department_id" widget="ztree_select"/>
<field name="applicant"/>
@@ -4,7 +4,7 @@
<field name="name">property.evaluate.application.tree</field>
<field name="model">property.evaluate.application</field>
<field name="arch" type="xml">
<tree string="评估申请" limit="20">
<tree string="评估申请">
<header>
<button name="put_property_record" type="object" string="提交备案申请"/>
</header>
@@ -4,7 +4,7 @@
<field name="name">property.fitment.tree</field>
<field name="model">property.fitment</field>
<field name="arch" type="xml">
<tree string="装修审批" limit="20">
<tree string="装修审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.handover.tree</field>
<field name="model">property.handover</field>
<field name="arch" type="xml">
<tree string="移交审批" limit="20">
<tree string="移交审批">
<field name="name"/>
<field name="code"/>
<field name="source"/>
@@ -4,7 +4,7 @@
<field name="name">property.information.tree</field>
<field name="model">property.information</field>
<field name="arch" type="xml">
<tree string="物业信息审批" limit="20">
<tree string="物业信息审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.inventory.table.tree</field>
<field name="model">property.inventory.table</field>
<field name="arch" type="xml">
<tree string="盘点表审批" limit="20">
<tree string="盘点表审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.lease.alter.tree</field>
<field name="model">property.lease.alter</field>
<field name="arch" type="xml">
<tree string="续租审批" limit="20">
<tree string="续租审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.lease.contract.tree</field>
<field name="model">property.lease.contract</field>
<field name="arch" type="xml">
<tree string="合同审批" limit="20">
<tree string="合同审批">
<field name="code"/>
<field name="contract_code"/>
<field name="lessee_id"/>
@@ -354,7 +354,7 @@
<field name="name">property.lease.contract.tree</field>
<field name="model">property.lease.contract</field>
<field name="arch" type="xml">
<tree create="false" string="物业合同管理" limit="20">
<tree create="false" string="物业合同管理">
<header>
<!-- <button name="all_put_evaluation_plan" string="评估推送" type="object" class="btn btn-primary"/>-->
<button name="button_lease_extension" type="object" class="btn-primary" string="续租"/>
@@ -4,7 +4,7 @@
<field name="name">property.lease.extension.tree</field>
<field name="model">property.lease.extension</field>
<field name="arch" type="xml">
<tree string="续租审批" limit="20">
<tree string="续租审批">
<field name="name"/>
<field name="address_id"/>
<field name="contract_id"/>
@@ -4,7 +4,7 @@
<field name="name">property.lease.renewal.tree</field>
<field name="model">property.lease.renewal</field>
<field name="arch" type="xml">
<tree string="租赁合同变更审批" limit="20">
<tree string="租赁合同变更审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.lessee.tree</field>
<field name="model">property.lessee.change</field>
<field name="arch" type="xml">
<tree string="承租方变更" limit="20">
<tree string="承租方变更">
<field name="name"/>
<field name="original_lessee"/>
<field name="new_lessee"/>
@@ -4,7 +4,7 @@
<field name="name">property.management.tree</field>
<field name="model">property.management</field>
<field name="arch" type="xml">
<tree string="物业管理变更" limit="20">
<tree string="物业管理变更">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.management.fee.tree</field>
<field name="model">property.management.fee</field>
<field name="arch" type="xml">
<tree string="管理费审批" limit="20">
<tree string="管理费审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.material.procurement.tree</field>
<field name="model">property.material.procurement</field>
<field name="arch" type="xml">
<tree string="物资配件采购单审批" limit="20">
<tree string="物资配件采购单审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.meeting.approval.tree</field>
<field name="model">property.meeting.approval</field>
<field name="arch" type="xml">
<tree string="会议审批" limit="20">
<tree string="会议审批">
<header>
<button name="button_rental" string="提交挂牌申报表" type="object" class="btn btn-primary"/>
</header>
@@ -4,7 +4,7 @@
<field name="name">property.merge.approval.tree</field>
<field name="model">property.merge.approval</field>
<field name="arch" type="xml">
<tree string="合并管理" limit="20">
<tree string="合并管理">
<field name="property_name"/>
<field name="code"/>
<field name="merge_asset_type_id"/>
@@ -4,7 +4,7 @@
<field name="name">property.move.tree</field>
<field name="model">property.move</field>
<field name="arch" type="xml">
<tree string="物业调拨" limit="20">
<tree string="物业调拨">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.offline.registration.tree</field>
<field name="model">property.offline.registration</field>
<field name="arch" type="xml">
<tree string="线下承租方报名表" limit="20">
<tree string="线下承租方报名表">
<field name="property_id" options="{'no_create': True}"/>
<field name="area"/>
<field name="contract_years"/>
@@ -4,7 +4,7 @@
<field name="name">property.open.rent.tree</field>
<field name="model">property.open.rent</field>
<field name="arch" type="xml">
<tree string="物业公开招租" limit="20">
<tree string="物业公开招租">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.penalty.proportion.tree</field>
<field name="model">property.penalty.proportion</field>
<field name="arch" type="xml">
<tree string="违约金比例审批" limit="20">
<tree string="违约金比例审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.penalty.relief.tree</field>
<field name="model">property.penalty.relief</field>
<field name="arch" type="xml">
<tree string="违约金减免审批" limit="20">
<tree string="违约金减免审批">
<field name="name"/>
<field name="code"/>
</tree>
@@ -4,7 +4,7 @@
<field name="name">property.project.approval.tree</field>
<field name="model">property.project.approval</field>
<field name="arch" type="xml">
<tree string="项目立项审批" limit="20">
<tree string="项目立项审批">
<field name="name"/>
<field name="property_id"/>
<field name="amount"/>
@@ -4,7 +4,7 @@
<field name="name">property.project.works.tree</field>
<field name="model">property.project.works</field>
<field name="arch" type="xml">
<tree string="项目工程" limit="20">
<tree string="项目工程">
<field name="name"/>
<field name="signing_date"/>
<field name="acceptance_date"/>
@@ -4,7 +4,7 @@
<field name="name">views.property.record.tree</field>
<field name="model">property.record</field>
<field name="arch" type="xml">
<tree string="评估备案" limit="20">
<tree string="评估备案">
<header>
<button name="button_meeting" string="出租申报会议审批" type="object" class="btn btn-primary"/>
</header>
@@ -4,7 +4,7 @@
<field name="name">property.renamed.tree</field>
<field name="model">property.renamed</field>
<field name="arch" type="xml">
<tree string="更名申请表" limit="20">
<tree string="更名申请表">
<field name="name"/>
<field name="lessee"/>
<field name="invoicing_type"/>

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