Merge pull request !4093 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-07-26 12:30:42 +00:00
committed by Gitee
6 changed files with 47 additions and 28 deletions
@@ -451,7 +451,7 @@ class HrAttendanceDetail(models.Model):
# 上班
attendance_detail_obj_in = self.env['hr.attendance.detail'].sudo().search(
[("exception_type", "!=", "未打卡"),
("userid", "=", user.oauth_uid),
("employee_id", "=", user.employee_id.id),
("checkin_time", ">=", check_in_start),
("checkin_time", "<=", check_in_end)])
if len(attendance_detail_obj_in) > 0:
@@ -474,7 +474,7 @@ class HrAttendanceDetail(models.Model):
# 下班
attendance_detail_obj_out = self.env['hr.attendance.detail'].sudo().search(
[("exception_type", "!=", "未打卡"),
("userid", "=", user.oauth_uid),
("employee_id", "=", user.employee_id.id),
("checkin_time", ">=", check_out_start),
("checkin_time", "<=", check_out_end),
])
@@ -15,12 +15,12 @@
</header>
<field name="employee_id" class="list_current_data" options="{'no_create': True}"/>
<field name="current_data" optional="show" class="list_current_data"/>
<field name="week" optional="show" class="list_ids_width"/>
<field name="check_in" optional="show" widget="time" decoration-danger="is_check_in_red == 1"/>
<field name="check_out" optional="show" widget="time" class="list_current_data" decoration-danger="is_check_out_red == 1"/>
<field name="shift_id" optional="hidden"/>
<field name="shift_name" optional="show" class="list_current_data"/>
<field name="create_date" optional="hidden"/>
<field name="week" optional="show" class="list_ids_width"/>
<field name="user_id" column_invisible="1"/>
<field name="is_clock_card" column_invisible="1"/>
<field name="department_id" column_invisible="1"/>
@@ -215,8 +215,10 @@ class PropertyFloorSetting(models.Model):
_name = 'property.floor.setting'
_description = '楼层配置'
_order = 'first_letter'
_rec_name = 'show_name'
name = fields.Char('名称', required=True)
name = fields.Char('名称')
show_name = fields.Char('名称', required=True)
parent_id = fields.Many2one('property.floor.setting', string='父级')
child_ids = fields.One2many('property.floor.setting', 'parent_id', string='子级')
type = fields.Selection([('floor', '楼层'), ('building', '楼盘')], string='类型')
@@ -67,7 +67,7 @@
<group>
<field name="users_id" invisible="1"/>
<field name="property_building_id" domain="[('type', '=', 'building')]"/>
<field name="property_floor_id" domain="[('type', '=', 'floor')]"/>
<field name="property_floor_id" domain="[('type', '=', 'floor'), ('parent_id', '=', property_building_id)]"/>
<field name="units"/>
<field name="property_orientation"/>
<field name="street"/>
@@ -346,7 +346,8 @@
<field name="model">property.floor.setting</field>
<field name="arch" type="xml">
<tree string="楼层配置" editable="bottom" limit="20">
<field name="name"/>
<field name="name" optional="hide"/>
<field name="show_name"/>
<field name="parent_id" domain="[('type', '=', 'building')]"/>
<field name="first_letter" column_invisible="1"/>
<field name="child_ids" widget="many2many_tags" domain="[('type', '=', 'floor')]"/>
@@ -3,6 +3,7 @@ from odoo import models, fields, api, _, SUPERUSER_ID
from odoo.exceptions import ValidationError, UserError
from pypinyin import pinyin, Style
import xlrd
import ast
import base64
import datetime
from datetime import datetime
@@ -182,31 +183,46 @@ class YuthonPropertyWizard(models.Model):
'company_id': company_id.id,})
def yuthon_premises_id(self,row):
def yuthon_property_update2(self,row):
property_id = self.env['yuthon.property'].search([('name', '=', row[0].value)])
premises_id = self.env['yuthon.premises.setting'].search([('name', '=', row[1].value)])
property_floor_id = self.env['property.floor.setting'].search([('name', '=', row[4].value)])
if not premises_id:
premises_id = self.env['yuthon.premises.setting'].create({
'name': row[1].value,
})
if not property_floor_id:
property_floor_id = self.env['property.floor.setting'].create({
'name': row[4].value,
})
if property_id:
property_id.write({
'premises_id': premises_id.id,
'property_floor_id': property_floor_id.id,
})
property_building_id = self.env['property.floor.setting'].search([('name', '=', row[1].value)])
property_floor_id = self.env['property.floor.setting'].search([('name', '=', row[2].value)])
property_id.write({
'property_building_id': property_building_id.id,
'property_floor_id': property_floor_id.id,
})
def update_property(self,row):
property_floor_id = self.env['property.floor.setting'].search([('name', '=', row[0].value)])
if not property_floor_id:
self.env['property.floor.setting'].create({
'name': row[0].value,
'type': row[1].value
def update_property(self, row):
"""处理楼盘和楼层数据,建立父子关系"""
building_name = row[0].value
building = self.env['property.floor.setting'].search([
('name', '=', building_name),
('type', '=', 'building')
], limit=1)
if not building:
building = self.env['property.floor.setting'].create({
'name': building_name,
'show_name': building_name,
'type': 'building'
})
floor_list_str = row[1].value.strip()
floor_list = ast.literal_eval(floor_list_str)
for floor_show_name in floor_list:
floor_name = f"{building_name}-{floor_show_name}"
floor = self.env['property.floor.setting'].search([
('name', '=', floor_name),
('type', '=', 'floor'),
('parent_id', '=', building.id)
], limit=1)
if not floor:
floor = self.env['property.floor.setting'].create({
'name': floor_name,
'show_name': floor_show_name,
'type': 'floor',
'parent_id': building.id
})
def update_property1(self,row):
building = self.env['property.floor.setting'].search([('name', '=', row[1].value)])