mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-14 19:22:14 +01:00
add billable rate updates for time entries in the past to projects and project members, fixes ST-304
This commit is contained in:
@@ -8,6 +8,8 @@ import { useFocus } from '@vueuse/core';
|
||||
import { useProjectMembersStore } from '@/utils/useProjectMembers';
|
||||
import BillableRateInput from '@/Components/Common/BillableRateInput.vue';
|
||||
import { UserIcon } from '@heroicons/vue/24/solid';
|
||||
import ProjectMemberBillableRateModal from '@/Components/Common/ProjectMember/ProjectMemberBillableRateModal.vue';
|
||||
import InputLabel from '@/Components/InputLabel.vue';
|
||||
const { updateProjectMember } = useProjectMembersStore();
|
||||
|
||||
const show = defineModel('show', { default: false });
|
||||
@@ -21,8 +23,15 @@ const props = defineProps<{
|
||||
const projectMemberBody = ref<UpdateProjectMemberBody>({
|
||||
billable_rate: props.projectMember.billable_rate,
|
||||
});
|
||||
|
||||
const showBillableRateModal = ref(false);
|
||||
async function submit() {
|
||||
if (
|
||||
props.projectMember.billable_rate !==
|
||||
projectMemberBody.value.billable_rate
|
||||
) {
|
||||
showBillableRateModal.value = true;
|
||||
return;
|
||||
}
|
||||
await updateProjectMember(props.projectMember.id, projectMemberBody.value);
|
||||
show.value = false;
|
||||
projectMemberBody.value = {
|
||||
@@ -30,6 +39,14 @@ async function submit() {
|
||||
};
|
||||
}
|
||||
|
||||
async function submitBillableRate(billableRateUpdateTimeEntries: boolean) {
|
||||
projectMemberBody.value.billable_rate_update_time_entries =
|
||||
billableRateUpdateTimeEntries;
|
||||
await updateProjectMember(props.projectMember.id, projectMemberBody.value);
|
||||
show.value = false;
|
||||
showBillableRateModal.value = false;
|
||||
}
|
||||
|
||||
watch(
|
||||
() => show.value,
|
||||
(value) => {
|
||||
@@ -55,6 +72,11 @@ useFocus(projectNameInput, { initialValue: true });
|
||||
</template>
|
||||
|
||||
<template #content>
|
||||
<ProjectMemberBillableRateModal
|
||||
member-name="props.name"
|
||||
v-model:show="showBillableRateModal"
|
||||
@close="showBillableRateModal = false"
|
||||
@submit="submitBillableRate"></ProjectMemberBillableRateModal>
|
||||
<div class="grid grid-cols-3 items-center space-x-4">
|
||||
<div
|
||||
class="col-span-3 sm:col-span-2 space-x-2 flex items-center">
|
||||
@@ -62,6 +84,9 @@ useFocus(projectNameInput, { initialValue: true });
|
||||
<span>{{ props.name }}</span>
|
||||
</div>
|
||||
<div class="col-span-3 sm:col-span-1 flex-1">
|
||||
<InputLabel
|
||||
for="billable_rate"
|
||||
value="Billable Rate"></InputLabel>
|
||||
<BillableRateInput
|
||||
@keydown.enter="submit"
|
||||
name="billable_rate"
|
||||
|
||||
Reference in New Issue
Block a user