0
0
Fork 0

feat: refs #7828 useAcl & cherry pick mail data worker

This commit is contained in:
Jorge Penadés 2024-09-12 13:19:31 +02:00
parent adb9cac360
commit 44fd356d63
1 changed files with 22 additions and 41 deletions

View File

@ -12,7 +12,6 @@ import WorkerTimeControlCalendar from 'pages/Worker/Card/WorkerTimeControlCalend
import useNotify from 'src/composables/useNotify.js';
import axios from 'axios';
import { useRole } from 'src/composables/useRole';
import { useAcl } from 'src/composables/useAcl';
import { useWeekdayStore } from 'src/stores/useWeekdayStore';
import { useStateStore } from 'stores/useStateStore';
@ -63,13 +62,16 @@ const selectedCalendarDates = ref([]);
const selectedDateFormatted = ref(toDateString(defaultDate.value));
const arrayData = useArrayData('workerData');
const acl = useAcl();
const worker = computed(() => arrayData.store?.data);
const isHr = computed(() => useRole().hasAny(['hr']));
const canSend = computed(() => useAcl().hasAny('WorkerTimeControl', 'sendMail', 'WRITE'));
const canSend = computed(() =>
acl.hasAny([{ model: 'WorkerTimeControl', props: 'sendMail', accessType: 'WRITE' }])
);
const canUpdate = computed(() =>
acl.hasAny([
{ model: 'WorkerTimeControl', props: 'updateMailState', accessType: 'WRITE' },
])
);
const isHimself = computed(() => user.value.id === Number(route.params.id));
const columns = computed(() => {
@ -257,46 +259,25 @@ const fetchHours = async () => {
}
};
const fetchWorkerTimeControlMails = async (filter) => {
try {
const { data } = await axios.get('WorkerTimeControlMails', {
params: { filter: JSON.stringify(filter) },
});
return data;
} catch (err) {
console.error('Error fetching worker time control mails');
}
};
const fetchWeekData = async () => {
const where = {
year: selectedDate.value.getFullYear(),
week: selectedWeekNumber.value,
};
try {
const data = (
await axios.get(`WorkerTimeControlMails/${route.params.id}/getWeeklyMail`, {
params: {
workerFk: route.params.id,
year: selectedDate.value.getFullYear(),
week: selectedWeekNumber.value,
},
const mail = (
await axios.get(`Workers/${route.params.id}/mail`, {
params: { filter: { where } },
})
).data;
if (!data.length) state.value = null;
).data[0];
if (!mail) state.value = null;
else {
const [mail] = data;
state.value = mail.state;
reason.value = mail.reason;
}
canResend.value = !!(
await axios.get('WorkerTimeControlMails/count', {
filter: {
where: {
year: selectedDate.value.getFullYear(),
week: selectedWeekNumber.value,
limit: 1,
},
},
})
await axios.get('WorkerTimeControlMails/count', { params: { where } })
).data.count;
} catch (err) {
console.error('Error fetching week data');
@ -443,7 +424,7 @@ onMounted(async () => {
<div>
<QBtnGroup push class="q-gutter-x-sm" flat>
<QBtn
v-if="isHimself && state"
v-if="canUpdate && state"
:label="t('Satisfied')"
color="primary"
type="submit"
@ -451,7 +432,7 @@ onMounted(async () => {
@click="isSatisfied()"
/>
<QBtn
v-if="isHimself && state"
v-if="canUpdate && state"
:label="t('Not satisfied')"
color="primary"
type="submit"
@ -462,7 +443,7 @@ onMounted(async () => {
</QBtnGroup>
<QBtnGroup push class="q-gutter-x-sm q-ml-none" flat>
<QBtn
v-if="reason && state && (isHimself || isHr)"
v-if="reason && state && canUpdate"
:label="t('Reason')"
color="primary"
type="submit"