This commit is contained in:
@@ -46,6 +46,22 @@ const RouteEdit = () => {
|
|||||||
const permissions = Array.isArray(employee.permissions) ? employee.permissions : [];
|
const permissions = Array.isArray(employee.permissions) ? employee.permissions : [];
|
||||||
return roles.includes('driver') || permissions.includes('isDriver');
|
return roles.includes('driver') || permissions.includes('isDriver');
|
||||||
};
|
};
|
||||||
|
const buildExternalDriverOptions = (records = []) => {
|
||||||
|
return (records || [])
|
||||||
|
.filter((record) => Array.isArray(record?.permissions) && record.permissions.includes('isDriver'))
|
||||||
|
.map((record) => ({
|
||||||
|
id: record?.external_user_id,
|
||||||
|
name: record?.name || record?.username || '',
|
||||||
|
name_cn: '',
|
||||||
|
title: record?.title || '',
|
||||||
|
employment_status: 'external',
|
||||||
|
license_type: '',
|
||||||
|
phone: '',
|
||||||
|
email: record?.email || '',
|
||||||
|
status: 'active'
|
||||||
|
}))
|
||||||
|
.filter((record) => record.id && record.name);
|
||||||
|
};
|
||||||
|
|
||||||
const scheduleDate = paramsQuery.get('dateSchedule');
|
const scheduleDate = paramsQuery.get('dateSchedule');
|
||||||
const editSection = paramsQuery.get('editSection')
|
const editSection = paramsQuery.get('editSection')
|
||||||
@@ -309,9 +325,21 @@ const RouteEdit = () => {
|
|||||||
CustomerService.getAllCustomers().then(data => {
|
CustomerService.getAllCustomers().then(data => {
|
||||||
setAllCustomers(data?.data || []);
|
setAllCustomers(data?.data || []);
|
||||||
});
|
});
|
||||||
EmployeeService.getAllEmployees().then((data) => {
|
Promise.all([
|
||||||
const employees = data?.data || [];
|
EmployeeService.getAllEmployees(),
|
||||||
setDriverOptions(employees.filter(isDriverEligibleEmployee));
|
EmployeeService.getExternalUserPermissionsList(EventsService.site)
|
||||||
|
]).then(([employeeResponse, externalPermissionResponse]) => {
|
||||||
|
const employees = employeeResponse?.data || [];
|
||||||
|
const internalDrivers = employees.filter(isDriverEligibleEmployee);
|
||||||
|
const externalDrivers = buildExternalDriverOptions(externalPermissionResponse?.data || []);
|
||||||
|
const mergedById = new Map();
|
||||||
|
[...internalDrivers, ...externalDrivers].forEach((driverItem) => {
|
||||||
|
if (!driverItem?.id) return;
|
||||||
|
if (!mergedById.has(driverItem.id)) {
|
||||||
|
mergedById.set(driverItem.id, driverItem);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
setDriverOptions(Array.from(mergedById.values()));
|
||||||
});
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user