@@ -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)])
|
||||
|
||||
Reference in New Issue
Block a user