138 lines
4.1 KiB
Vue
138 lines
4.1 KiB
Vue
<script setup>
|
|
import { toCurrency } from 'src/filters';
|
|
import { getValueFromPath } from 'src/composables/getValueFromPath';
|
|
|
|
const { row, visibleProblems = null } = defineProps({
|
|
row: { type: Object, required: true },
|
|
visibleProblems: { type: Array },
|
|
});
|
|
|
|
function showProblem(problem) {
|
|
const val = getValueFromPath(row, problem);
|
|
if (!visibleProblems) return val;
|
|
return !!(visibleProblems?.includes(problem) && val);
|
|
}
|
|
</script>
|
|
<template>
|
|
<span class="q-gutter-x-xs">
|
|
<router-link
|
|
v-if="showProblem('claim.claimFk')"
|
|
:to="{ name: 'ClaimBasicData', params: { id: row.claim?.claimFk } }"
|
|
class="link"
|
|
>
|
|
<QIcon name="vn:claims" size="xs">
|
|
<QTooltip>
|
|
{{ $t('ticketSale.claim') }}:
|
|
{{ row.claim?.claimFk }}
|
|
</QTooltip>
|
|
</QIcon>
|
|
</router-link>
|
|
<QIcon
|
|
v-if="showProblem('reserved')"
|
|
color="primary"
|
|
name="vn:reserva"
|
|
size="xs"
|
|
data-cy="ticketSaleReservedIcon"
|
|
>
|
|
<QTooltip>
|
|
{{ t('ticketSale.reserved') }}
|
|
</QTooltip>
|
|
</QIcon>
|
|
<QIcon
|
|
v-if="showProblem('isDeleted')"
|
|
color="primary"
|
|
name="vn:deletedTicket"
|
|
size="xs"
|
|
data-cy="ticketDeletedIcon"
|
|
>
|
|
<QTooltip>
|
|
{{ t('Ticket deleted') }}
|
|
</QTooltip>
|
|
</QIcon>
|
|
<QIcon
|
|
v-if="showProblem('hasRisk')"
|
|
name="vn:risk"
|
|
:color="row.hasHighRisk ? 'negative' : 'primary'"
|
|
size="xs"
|
|
>
|
|
<QTooltip>
|
|
{{ $t('salesTicketsTable.risk') }}:
|
|
{{ toCurrency(row.risk - (row.credit ?? 0)) }}
|
|
</QTooltip>
|
|
</QIcon>
|
|
<QIcon
|
|
v-if="showProblem('hasComponentLack')"
|
|
name="vn:components"
|
|
color="primary"
|
|
size="xs"
|
|
>
|
|
<QTooltip>{{ $t('salesTicketsTable.componentLack') }}</QTooltip>
|
|
</QIcon>
|
|
<QIcon
|
|
v-if="showProblem('hasItemDelay')"
|
|
color="primary"
|
|
size="xs"
|
|
name="vn:hasItemDelay"
|
|
>
|
|
<QTooltip>
|
|
{{ $t('ticket.summary.hasItemDelay') }}
|
|
</QTooltip>
|
|
</QIcon>
|
|
<QIcon
|
|
v-if="showProblem('hasItemLost')"
|
|
color="primary"
|
|
size="xs"
|
|
name="vn:hasItemLost"
|
|
>
|
|
<QTooltip>
|
|
{{ $t('salesTicketsTable.hasItemLost') }}
|
|
</QTooltip>
|
|
</QIcon>
|
|
<QIcon
|
|
v-if="showProblem('hasItemShortage')"
|
|
name="vn:unavailable"
|
|
color="primary"
|
|
size="xs"
|
|
>
|
|
<QTooltip>{{ $t('salesTicketsTable.notVisible') }}</QTooltip>
|
|
</QIcon>
|
|
<QIcon
|
|
v-if="showProblem('hasRounding')"
|
|
color="primary"
|
|
name="sync_problem"
|
|
size="xs"
|
|
>
|
|
<QTooltip>
|
|
{{ $t('ticketList.rounding') }}
|
|
</QTooltip>
|
|
</QIcon>
|
|
<QIcon
|
|
v-if="showProblem('hasTicketRequest')"
|
|
name="vn:buyrequest"
|
|
color="primary"
|
|
size="xs"
|
|
>
|
|
<QTooltip>{{ $t('salesTicketsTable.purchaseRequest') }}</QTooltip>
|
|
</QIcon>
|
|
<QIcon
|
|
v-if="showProblem('isTaxDataChecked')"
|
|
name="vn:no036"
|
|
color="primary"
|
|
size="xs"
|
|
>
|
|
<QTooltip>{{ $t('salesTicketsTable.noVerifiedData') }}</QTooltip>
|
|
</QIcon>
|
|
<QIcon v-if="showProblem('isFreezed')" name="vn:frozen" color="primary" size="xs">
|
|
<QTooltip>{{ $t('salesTicketsTable.clientFrozen') }}</QTooltip>
|
|
</QIcon>
|
|
<QIcon
|
|
v-if="showProblem('isTooLittle')"
|
|
name="vn:isTooLittle"
|
|
color="primary"
|
|
size="xs"
|
|
>
|
|
<QTooltip>{{ $t('salesTicketsTable.tooLittle') }}</QTooltip>
|
|
</QIcon>
|
|
</span>
|
|
</template>
|