fix(timesheet-approval): fix oversight to modify employee timesheet from approval module
Fixed an oversight in the logic in one of the steps to update and create shifts from the timesheet approval page, which led to update or create requests being sent with the users credentials instead of the employees
This commit is contained in:
parent
c7e5829ca4
commit
e44d790a21
|
|
@ -224,6 +224,7 @@ export default {
|
||||||
error: {
|
error: {
|
||||||
no_data_found: "no data found",
|
no_data_found: "no data found",
|
||||||
no_search_results: "no results matching search",
|
no_search_results: "no results matching search",
|
||||||
|
generic_error: "An error occured",
|
||||||
},
|
},
|
||||||
label: {
|
label: {
|
||||||
search: "search",
|
search: "search",
|
||||||
|
|
@ -284,6 +285,7 @@ export default {
|
||||||
apply_preset: "auto-fill",
|
apply_preset: "auto-fill",
|
||||||
apply_preset_day: "Apply schedule to day",
|
apply_preset_day: "Apply schedule to day",
|
||||||
apply_preset_week: "Apply schedule to week",
|
apply_preset_week: "Apply schedule to week",
|
||||||
|
save_successful: "timesheets saved",
|
||||||
nav_button: {
|
nav_button: {
|
||||||
calendar_date_picker: "Calendar",
|
calendar_date_picker: "Calendar",
|
||||||
current_week: "This week",
|
current_week: "This week",
|
||||||
|
|
@ -359,6 +361,7 @@ export default {
|
||||||
SHIFT_TYPE_REQUIRED: "Shift type required",
|
SHIFT_TYPE_REQUIRED: "Shift type required",
|
||||||
TIMESHEET_NOT_FOUND: "No timesheet found with provided data",
|
TIMESHEET_NOT_FOUND: "No timesheet found with provided data",
|
||||||
UPDATE_ERROR: "Error while updating data",
|
UPDATE_ERROR: "Error while updating data",
|
||||||
|
ERROR_SAVING_SHIFTS: "Timesheet changes were not saved",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -224,6 +224,7 @@ export default {
|
||||||
error: {
|
error: {
|
||||||
no_data_found: 'aucune donnée à afficher',
|
no_data_found: 'aucune donnée à afficher',
|
||||||
no_search_results: 'aucun résultat ne correspond à la recherche',
|
no_search_results: 'aucun résultat ne correspond à la recherche',
|
||||||
|
generic_error: "Une erreur est survenue",
|
||||||
},
|
},
|
||||||
label: {
|
label: {
|
||||||
search: 'recherche',
|
search: 'recherche',
|
||||||
|
|
@ -284,6 +285,7 @@ export default {
|
||||||
apply_preset: "auto-remplir",
|
apply_preset: "auto-remplir",
|
||||||
apply_preset_day: "Appliquer horaire pour la journée",
|
apply_preset_day: "Appliquer horaire pour la journée",
|
||||||
apply_preset_week: "Appliquer horaire pour la semaine",
|
apply_preset_week: "Appliquer horaire pour la semaine",
|
||||||
|
save_successful: "feuilles de temps enregistrées",
|
||||||
nav_button: {
|
nav_button: {
|
||||||
calendar_date_picker: "Calendrier",
|
calendar_date_picker: "Calendrier",
|
||||||
current_week: "Semaine actuelle",
|
current_week: "Semaine actuelle",
|
||||||
|
|
@ -359,6 +361,7 @@ export default {
|
||||||
SHIFT_TYPE_REQUIRED: "Type requis",
|
SHIFT_TYPE_REQUIRED: "Type requis",
|
||||||
TIMESHEET_NOT_FOUND: "Aucune feuille de temps ne correspond au détails fournis",
|
TIMESHEET_NOT_FOUND: "Aucune feuille de temps ne correspond au détails fournis",
|
||||||
UPDATE_ERROR: "Une erreur est survenu lors de la mise à jour",
|
UPDATE_ERROR: "Une erreur est survenu lors de la mise à jour",
|
||||||
|
ERROR_SAVING_SHIFTS: "les changements aux feuilles de temps n'ont pas été enregistrés",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
setup
|
setup
|
||||||
lang="ts"
|
lang="ts"
|
||||||
>
|
>
|
||||||
/* eslint-disable */
|
|
||||||
import ShiftList from 'src/modules/timesheets/components/shift-list.vue';
|
import ShiftList from 'src/modules/timesheets/components/shift-list.vue';
|
||||||
import ShiftListScrollable from 'src/modules/timesheets/components/shift-list-scrollable.vue';
|
import ShiftListScrollable from 'src/modules/timesheets/components/shift-list-scrollable.vue';
|
||||||
import LoadingOverlay from 'src/modules/shared/components/loading-overlay.vue';
|
import LoadingOverlay from 'src/modules/shared/components/loading-overlay.vue';
|
||||||
|
|
@ -13,14 +12,15 @@
|
||||||
import ShiftListWeeklyOverview from 'src/modules/timesheets/components/shift-list-weekly-overview.vue';
|
import ShiftListWeeklyOverview from 'src/modules/timesheets/components/shift-list-weekly-overview.vue';
|
||||||
import ShiftListWeeklyOverviewMobile from 'src/modules/timesheets/components/mobile/shift-list-weekly-overview-mobile.vue';
|
import ShiftListWeeklyOverviewMobile from 'src/modules/timesheets/components/mobile/shift-list-weekly-overview-mobile.vue';
|
||||||
|
|
||||||
|
import { useI18n } from 'vue-i18n';
|
||||||
import { computed, onMounted } from 'vue';
|
import { computed, onMounted } from 'vue';
|
||||||
import { useShiftApi } from 'src/modules/timesheets/composables/use-shift-api';
|
import { useShiftApi } from 'src/modules/timesheets/composables/use-shift-api';
|
||||||
import { useTimesheetApi } from 'src/modules/timesheets/composables/use-timesheet-api';
|
import { useTimesheetApi } from 'src/modules/timesheets/composables/use-timesheet-api';
|
||||||
import { useExpensesStore } from 'src/stores/expense-store';
|
import { useExpensesStore } from 'src/stores/expense-store';
|
||||||
import { useTimesheetStore } from 'src/stores/timesheet-store';
|
import { useTimesheetStore } from 'src/stores/timesheet-store';
|
||||||
import { date } from 'quasar';
|
import { date, Notify } from 'quasar';
|
||||||
|
|
||||||
|
|
||||||
|
const { t } = useI18n();
|
||||||
const expenses_store = useExpensesStore();
|
const expenses_store = useExpensesStore();
|
||||||
const timesheet_store = useTimesheetStore();
|
const timesheet_store = useTimesheetStore();
|
||||||
const timesheet_api = useTimesheetApi();
|
const timesheet_api = useTimesheetApi();
|
||||||
|
|
@ -41,13 +41,25 @@
|
||||||
sum + timesheet.weekly_expenses.expenses
|
sum + timesheet.weekly_expenses.expenses
|
||||||
+ timesheet.weekly_expenses.on_call
|
+ timesheet.weekly_expenses.on_call
|
||||||
+ timesheet.weekly_expenses.per_diem,
|
+ timesheet.weekly_expenses.per_diem,
|
||||||
0) //initial value
|
0 //initial value
|
||||||
);
|
));
|
||||||
|
|
||||||
const { mode = 'normal' } = defineProps<{
|
const { mode = 'normal' } = defineProps<{
|
||||||
mode?: 'approval' | 'normal';
|
mode?: 'approval' | 'normal';
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
|
const onClickSaveTimesheets = async () => {
|
||||||
|
if (mode === 'normal') {
|
||||||
|
await shift_api.saveShiftChanges();
|
||||||
|
Notify.create({
|
||||||
|
message: t('timesheet.save_successful'),
|
||||||
|
color: 'accent',
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
await shift_api.saveShiftChanges(timesheet_store.current_pay_period_overview?.email);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
if (mode === 'normal')
|
if (mode === 'normal')
|
||||||
await timesheet_api.getTimesheetsByDate(date.formatDate(new Date(), 'YYYY-MM-DD'));
|
await timesheet_api.getTimesheetsByDate(date.formatDate(new Date(), 'YYYY-MM-DD'));
|
||||||
|
|
@ -97,7 +109,10 @@
|
||||||
v-if="!$q.platform.is.mobile"
|
v-if="!$q.platform.is.mobile"
|
||||||
class="col-xs-6 col-md-4 col-xl-3 q-pa-md"
|
class="col-xs-6 col-md-4 col-xl-3 q-pa-md"
|
||||||
>
|
>
|
||||||
<ShiftListWeeklyOverview mode="off-hours" :timesheet-mode="mode" />
|
<ShiftListWeeklyOverview
|
||||||
|
mode="off-hours"
|
||||||
|
:timesheet-mode="mode"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -116,7 +131,10 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- mobile expenses button -->
|
<!-- mobile expenses button -->
|
||||||
<div v-if="($q.platform.is.mobile && ($q.screen.width < $q.screen.height))" class="col q-pl-lg">
|
<div
|
||||||
|
v-if="($q.platform.is.mobile && ($q.screen.width < $q.screen.height))"
|
||||||
|
class="col q-pl-lg"
|
||||||
|
>
|
||||||
<q-btn
|
<q-btn
|
||||||
push
|
push
|
||||||
rounded
|
rounded
|
||||||
|
|
@ -150,7 +168,7 @@
|
||||||
icon="upload"
|
icon="upload"
|
||||||
:label="$t('shared.label.save')"
|
:label="$t('shared.label.save')"
|
||||||
:class="$q.platform.is.mobile && ($q.screen.width < $q.screen.height) ? 'full-width' : 'q-ml-md'"
|
:class="$q.platform.is.mobile && ($q.screen.width < $q.screen.height) ? 'full-width' : 'q-ml-md'"
|
||||||
@click="shift_api.saveShiftChanges"
|
@click="onClickSaveTimesheets"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -204,7 +222,7 @@
|
||||||
:label="$t('shared.label.save')"
|
:label="$t('shared.label.save')"
|
||||||
class="col-auto absolute-bottom shadow-up-10"
|
class="col-auto absolute-bottom shadow-up-10"
|
||||||
style="height: 50px;"
|
style="height: 50px;"
|
||||||
@click="shift_api.saveShiftChanges"
|
@click="onClickSaveTimesheets"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<ExpenseDialog
|
<ExpenseDialog
|
||||||
|
|
|
||||||
|
|
@ -18,11 +18,11 @@ export const useShiftApi = () => {
|
||||||
timesheet_store.is_loading = false;
|
timesheet_store.is_loading = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const saveShiftChanges = async () => {
|
const saveShiftChanges = async (employee_email?: string) => {
|
||||||
timesheet_store.is_loading = true;
|
timesheet_store.is_loading = true;
|
||||||
|
|
||||||
const update_success = await shift_store.updateShifts();
|
const update_success = await shift_store.updateShifts(employee_email);
|
||||||
const create_success = await shift_store.createNewShifts();
|
const create_success = await shift_store.createNewShifts(employee_email);
|
||||||
|
|
||||||
if (create_success || update_success){
|
if (create_success || update_success){
|
||||||
await timesheet_store.getTimesheetsByOptionalEmployeeEmail(auth_store.user?.email ?? '');
|
await timesheet_store.getTimesheetsByOptionalEmployeeEmail(auth_store.user?.email ?? '');
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,6 @@ export const useShiftStore = defineStore('shift_store', () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Notify.create('No shifts to update')
|
|
||||||
return false;
|
return false;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Notify.create('Error updating shifts');
|
Notify.create('Error updating shifts');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user