WIP EmployeesList подтягивается из Schedules

This commit is contained in:
Daria Golova
2022-12-22 17:26:05 +03:00
parent 4aecbbca36
commit 79faa743fb
5 changed files with 123 additions and 55 deletions

View File

@@ -113,6 +113,12 @@ export default {
return {};
},
},
currentDate: {
type: Object,
default() {
return {};
},
},
},
data() {
return {
@@ -130,6 +136,7 @@ export default {
ifClearedForm: true,
membersData: [],
ownersData: [],
WORKING_STATUS: "WORKS",
};
},
computed: {
@@ -298,10 +305,27 @@ export default {
},
checkTime() {
let counter = 0;
let foundedSchedule = {};
let foundedEmployee = this.ownersData.find(
(elem) => elem.id === this.employees.employee.id
);
if (foundedEmployee)
foundedSchedule = foundedEmployee.schedules.find(
(elem) =>
elem.date === this.eventDate && elem.status === this.WORKING_STATUS
);
if (!foundedSchedule) {
this.addErrorNotification(
"Некорректная дата события",
`В данный день ${this.employees.employee.label} не работает`
);
counter += 1;
return false;
}
if (
this.checkTimeLimits(
this.startTime,
this.timeInformation.dayStartTime,
foundedSchedule.start_time,
"start"
)
) {
@@ -311,13 +335,7 @@ export default {
);
counter += 1;
}
if (
this.checkTimeLimits(
this.endTime,
this.timeInformation.dayEndTime,
"end"
)
) {
if (this.checkTimeLimits(this.endTime, foundedSchedule.end_time, "end")) {
this.addErrorNotification(
"Некорректное время окончания события",
"Время окончания события позже окончания рабочего дня"
@@ -325,11 +343,7 @@ export default {
counter += 1;
}
if (
this.checkTimeLimits(
this.endTime,
this.timeInformation.dayStartTime,
"start"
)
this.checkTimeLimits(this.endTime, foundedSchedule.start_time, "start")
) {
this.addErrorNotification(
"Некорректное время окончания события",
@@ -338,11 +352,7 @@ export default {
counter += 1;
}
if (
this.checkTimeLimits(
this.startTime,
this.timeInformation.dayEndTime,
"end"
)
this.checkTimeLimits(this.startTime, foundedSchedule.end_time, "end")
) {
this.addErrorNotification(
"Некорректное время начала события",
@@ -485,11 +495,58 @@ export default {
},
fetchOwnersData() {
fetchWrapper
.get("general/employee/")
.get(
`accounts/schedules/?date_after=${this.currentDate
.clone()
.subtract(1, "month")
.format("YYYY-MM-DD")}&date_before=${this.currentDate
.clone()
.add(1, "month")
.format("YYYY-MM-DD")}`
)
.then((res) => this.saveOwnersData(res));
},
saveOwnersData(res) {
this.ownersData = res.results;
let serializedList = [];
if (res.results.length === 0) {
this.ownersData = [];
return;
}
res.results.forEach((elem) => {
let foundedElem = serializedList.find(
(item) => item.id === elem.employee.id
);
if (!foundedElem) {
serializedList.push({
id: elem.employee.id,
last_name: elem.employee.last_name,
first_name: elem.employee.first_name,
patronymic: elem.employee.patronymic,
color: elem.employee.color,
schedules: [
{
date: elem.date,
end_time: elem.end_time.slice(0, elem.end_time.length - 3),
start_time: elem.start_time.slice(
0,
elem.start_time.length - 3
),
status: elem.status,
id: elem.id,
},
],
});
} else {
foundedElem.schedules.push({
date: elem.date,
end_time: elem.end_time.slice(0, elem.end_time.length - 3),
start_time: elem.start_time.slice(0, elem.start_time.length - 3),
status: elem.status,
id: elem.id,
});
}
});
this.ownersData = serializedList;
},
saveMembersData(res) {
this.membersData = res.results;