@@ -13,6 +13,7 @@ import {
1313 ChevronRightIcon ,
1414 ChevronDoubleRightIcon ,
1515 ClockIcon ,
16+ DocumentTextIcon ,
1617} from ' @heroicons/vue/20/solid' ;
1718import DateRangePicker from ' @/packages/ui/src/Input/DateRangePicker.vue' ;
1819import BillableIcon from ' @/packages/ui/src/Icons/BillableIcon.vue' ;
@@ -84,6 +85,7 @@ const selectedMembers = ref<string[]>([]);
8485const selectedTasks = ref <string []>([]);
8586const selectedClients = ref <string []>([]);
8687const billable = ref <' true' | ' false' | null >(null );
88+ const invoiced = ref <' true' | ' false' | null >(null );
8789const roundingEnabled = ref <boolean >(false );
8890const roundingType = ref <TimeEntryRoundingType >(' nearest' );
8991const roundingMinutes = ref <number >(15 );
@@ -114,6 +116,7 @@ function getFilterAttributes() {
114116 client_ids: selectedClients .value .length > 0 ? selectedClients .value : undefined ,
115117 tag_ids: selectedTags .value .length > 0 ? selectedTags .value : undefined ,
116118 billable: billable .value !== null ? billable .value : undefined ,
119+ invoiced: invoiced .value !== null ? invoiced .value : undefined ,
117120 rounding_type: roundingEnabled .value ? roundingType .value : undefined ,
118121 rounding_minutes: roundingEnabled .value ? roundingMinutes .value : undefined ,
119122 };
@@ -344,6 +347,32 @@ async function downloadExport(format: ExportFormat) {
344347 :icon =" BillableIcon" ></ReportingFilterBadge >
345348 </template >
346349 </SelectDropdown >
350+ <SelectDropdown
351+ v-model =" invoiced"
352+ :get-key-from-item =" (item) => item.value"
353+ :get-name-for-item =" (item) => item.label"
354+ :items =" [
355+ {
356+ label: 'Both',
357+ value: null,
358+ },
359+ {
360+ label: 'Invoiced',
361+ value: 'true',
362+ },
363+ {
364+ label: 'Not invoiced',
365+ value: 'false',
366+ },
367+ ]"
368+ @changed =" updateFilteredTimeEntries" >
369+ <template #trigger >
370+ <ReportingFilterBadge
371+ :active =" invoiced !== null"
372+ :title =" invoiced === 'false' ? 'Not invoiced' : 'Invoiced'"
373+ :icon =" DocumentTextIcon" ></ReportingFilterBadge >
374+ </template >
375+ </SelectDropdown >
347376 <ReportingRoundingControls
348377 v-model:enabled =" roundingEnabled"
349378 v-model:type =" roundingType"
0 commit comments