@@ -74,8 +74,22 @@ class AppletAttendance(Controller):
|
||||
self_address = self.get_address_from_coords(kw['att_latitude'], kw['att_longitude'])
|
||||
_logger.info(f"打卡经度{kw['att_longitude'] }打卡纬度{kw['att_latitude']}__________")
|
||||
_logger.info(f"人员{employee_id.name}地址{self_address['formatted_address']}__________")
|
||||
address_ids = request.env(user=SUPERUSER_ID)["applet.address"].search([('address_name', '=', employee_id.company_id.name)])
|
||||
data = {"message": "超出范围,不允许打卡", 'state': 'no', 'state_result': '超出范围'}
|
||||
address_ids = request.env(user=SUPERUSER_ID)["applet.address"].search(
|
||||
[('address_name', '=', employee_id.company_id.name)])
|
||||
shift_class = "休息" if not attendance_id.shift_name else f"{attendance_id.shift_name}{start_time_str}-{end_time_str}"
|
||||
default_state_result = "休息" if not attendance_id.shift_name else "超出范围"
|
||||
data = {
|
||||
'location': '',
|
||||
'user_id': user_id.id,
|
||||
'state': 'no', # Default to 'no'
|
||||
'class': shift_class,
|
||||
'state_result': default_state_result,
|
||||
'check_in': check_in_html,
|
||||
'check_in_status': check_in_status,
|
||||
'check_out': check_out_html,
|
||||
'check_out_status': check_out_status,
|
||||
}
|
||||
|
||||
for address_id in address_ids:
|
||||
card_rice = address_id.card_rice * 0.001 # 打卡范围
|
||||
if self.is_within_radius_geopy(
|
||||
@@ -85,18 +99,17 @@ class AppletAttendance(Controller):
|
||||
address_id.longitude,
|
||||
card_rice
|
||||
):
|
||||
data = {
|
||||
data.update({
|
||||
'location': '%s' % address_id.address_name,
|
||||
'user_id': user_id.id,
|
||||
'state': 'yes',
|
||||
'class': [f"{attendance_id.shift_name}{start_time_str}-{end_time_str}"],
|
||||
'state_result': state_result,
|
||||
'check_in': check_in_html,
|
||||
'check_in_status': check_in_status,
|
||||
'check_out': check_out_html,
|
||||
'check_out_status': check_out_status,
|
||||
}
|
||||
'state_result': "休息" if not attendance_id.shift_name else state_result,
|
||||
'class': "休息" if not attendance_id.shift_name else f"{attendance_id.shift_name}{start_time_str}-{end_time_str}",
|
||||
})
|
||||
break
|
||||
else:
|
||||
data.update({
|
||||
'location': '%s' % address_id.address_name,
|
||||
})
|
||||
return_data = {'data': data, 'code': '200', 'message': 'OK'}
|
||||
return json.dumps(return_data)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user