7658-devToTest_2428 #508
|
@ -33,7 +33,6 @@ function exprBuilder(param, value) {
|
||||||
url="Agencies"
|
url="Agencies"
|
||||||
order="name"
|
order="name"
|
||||||
:expr-builder="exprBuilder"
|
:expr-builder="exprBuilder"
|
||||||
auto-load
|
|
||||||
>
|
>
|
||||||
<template #body="{ rows }">
|
<template #body="{ rows }">
|
||||||
<CardList
|
<CardList
|
||||||
|
|
|
@ -3,14 +3,15 @@ import { computed, onMounted, onUnmounted, ref } from 'vue';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { useStateStore } from 'stores/useStateStore';
|
import { useStateStore } from 'stores/useStateStore';
|
||||||
import CardSummary from 'components/ui/CardSummary.vue';
|
|
||||||
import VnLv from 'components/ui/VnLv.vue';
|
|
||||||
import { QIcon } from 'quasar';
|
import { QIcon } from 'quasar';
|
||||||
import { dashIfEmpty, toCurrency, toDate, toHour } from 'src/filters';
|
import { dashIfEmpty, toCurrency, toDate, toHour } from 'src/filters';
|
||||||
|
import { openBuscaman } from 'src/utils/buscaman';
|
||||||
|
import CardSummary from 'components/ui/CardSummary.vue';
|
||||||
import WorkerDescriptorProxy from 'pages/Worker/Card/WorkerDescriptorProxy.vue';
|
import WorkerDescriptorProxy from 'pages/Worker/Card/WorkerDescriptorProxy.vue';
|
||||||
import CustomerDescriptorProxy from 'pages/Customer/Card/CustomerDescriptorProxy.vue';
|
import CustomerDescriptorProxy from 'pages/Customer/Card/CustomerDescriptorProxy.vue';
|
||||||
import TicketDescriptorProxy from 'pages/Ticket/Card/TicketDescriptorProxy.vue';
|
import TicketDescriptorProxy from 'pages/Ticket/Card/TicketDescriptorProxy.vue';
|
||||||
import { openBuscaman } from 'src/utils/buscaman';
|
import VnLv from 'components/ui/VnLv.vue';
|
||||||
|
import VnTitle from 'src/components/common/VnTitle.vue';
|
||||||
|
|
||||||
const $props = defineProps({
|
const $props = defineProps({
|
||||||
id: {
|
id: {
|
||||||
|
@ -127,8 +128,14 @@ const ticketColumns = ref([
|
||||||
<span>{{ `${entity?.route.id} - ${entity?.route?.description}` }}</span>
|
<span>{{ `${entity?.route.id} - ${entity?.route?.description}` }}</span>
|
||||||
</template>
|
</template>
|
||||||
<template #body="{ entity }">
|
<template #body="{ entity }">
|
||||||
|
<QCard class="vn-max">
|
||||||
|
<VnTitle
|
||||||
|
:url="`#/route/${entityId}/basic-data`"
|
||||||
|
:text="t('globals.pageTitles.basicData')"
|
||||||
|
/>
|
||||||
|
</QCard>
|
||||||
|
|
||||||
<QCard class="vn-one">
|
<QCard class="vn-one">
|
||||||
<VnLv :label="t('ID')" :value="entity?.route.id" />
|
|
||||||
<VnLv
|
<VnLv
|
||||||
:label="t('route.summary.date')"
|
:label="t('route.summary.date')"
|
||||||
:value="toDate(entity?.route.created)"
|
:value="toDate(entity?.route.created)"
|
||||||
|
@ -153,24 +160,6 @@ const ticketColumns = ref([
|
||||||
:label="t('route.summary.cost')"
|
:label="t('route.summary.cost')"
|
||||||
:value="toCurrency(entity.route?.cost)"
|
:value="toCurrency(entity.route?.cost)"
|
||||||
/>
|
/>
|
||||||
</QCard>
|
|
||||||
<QCard class="vn-one">
|
|
||||||
<VnLv
|
|
||||||
:label="t('route.summary.started')"
|
|
||||||
:value="toHour(entity?.route.started)"
|
|
||||||
/>
|
|
||||||
<VnLv
|
|
||||||
:label="t('route.summary.finished')"
|
|
||||||
:value="toHour(entity?.route.finished)"
|
|
||||||
/>
|
|
||||||
<VnLv
|
|
||||||
:label="t('route.summary.kmStart')"
|
|
||||||
:value="dashIfEmpty(entity?.route?.kmStart)"
|
|
||||||
/>
|
|
||||||
<VnLv
|
|
||||||
:label="t('route.summary.kmEnd')"
|
|
||||||
:value="dashIfEmpty(entity?.route?.kmEnd)"
|
|
||||||
/>
|
|
||||||
<VnLv
|
<VnLv
|
||||||
:label="t('route.summary.volume')"
|
:label="t('route.summary.volume')"
|
||||||
:value="`${dashIfEmpty(entity?.route?.m3)} / ${dashIfEmpty(
|
:value="`${dashIfEmpty(entity?.route?.m3)} / ${dashIfEmpty(
|
||||||
|
@ -192,19 +181,32 @@ const ticketColumns = ref([
|
||||||
/>
|
/>
|
||||||
</QCard>
|
</QCard>
|
||||||
<QCard class="vn-one">
|
<QCard class="vn-one">
|
||||||
<div class="header">
|
<VnLv
|
||||||
{{ t('globals.description') }}
|
:label="t('route.summary.started')"
|
||||||
</div>
|
:value="toHour(entity?.route.started)"
|
||||||
<p>
|
/>
|
||||||
{{ dashIfEmpty(entity?.route?.description) }}
|
<VnLv
|
||||||
</p>
|
:label="t('route.summary.finished')"
|
||||||
|
:value="toHour(entity?.route.finished)"
|
||||||
|
/>
|
||||||
|
<VnLv
|
||||||
|
:label="t('route.summary.kmStart')"
|
||||||
|
:value="dashIfEmpty(entity?.route?.kmStart)"
|
||||||
|
/>
|
||||||
|
<VnLv
|
||||||
|
:label="t('route.summary.kmEnd')"
|
||||||
|
:value="dashIfEmpty(entity?.route?.kmEnd)"
|
||||||
|
/>
|
||||||
|
<VnLv
|
||||||
|
:label="t('globals.description')"
|
||||||
|
:value="dashIfEmpty(entity?.route?.description)"
|
||||||
|
/>
|
||||||
</QCard>
|
</QCard>
|
||||||
|
|
||||||
<QCard class="vn-max">
|
<QCard class="vn-max">
|
||||||
<a class="header" :href="`#/route/${entityId}/tickets`">
|
<VnTitle
|
||||||
{{ t('route.summary.tickets') }}
|
:url="`#/route/${entityId}/tickets`"
|
||||||
<QIcon name="open_in_new" color="primary" />
|
:text="t('route.summary.tickets')"
|
||||||
</a>
|
/>
|
||||||
<QTable
|
<QTable
|
||||||
:columns="ticketColumns"
|
:columns="ticketColumns"
|
||||||
:rows="entity?.tickets"
|
:rows="entity?.tickets"
|
||||||
|
|
|
@ -105,13 +105,7 @@ function downloadPdfs() {
|
||||||
</RightMenu>
|
</RightMenu>
|
||||||
<div class="column items-center">
|
<div class="column items-center">
|
||||||
<div class="list">
|
<div class="list">
|
||||||
<VnPaginate
|
<VnPaginate data-key="CmrList" :url="`Routes/cmrs`" order="cmrFk DESC">
|
||||||
data-key="CmrList"
|
|
||||||
:url="`Routes/cmrs`"
|
|
||||||
order="cmrFk DESC"
|
|
||||||
limit="null"
|
|
||||||
auto-load
|
|
||||||
>
|
|
||||||
<template #body="{ rows }">
|
<template #body="{ rows }">
|
||||||
<QTable
|
<QTable
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
|
|
|
@ -208,16 +208,6 @@ function navigateToRouteSummary(event, row) {
|
||||||
{{ t('Create invoiceIn') }}
|
{{ t('Create invoiceIn') }}
|
||||||
</QTooltip>
|
</QTooltip>
|
||||||
</QBtn>
|
</QBtn>
|
||||||
<QBtn
|
|
||||||
icon="vn:invoice-in-create"
|
|
||||||
color="primary"
|
|
||||||
:disable="!selectedRows?.length"
|
|
||||||
@click="printVariables()"
|
|
||||||
>
|
|
||||||
<QTooltip>
|
|
||||||
{{ t('printVariables') }}
|
|
||||||
</QTooltip>
|
|
||||||
</QBtn>
|
|
||||||
</QCard>
|
</QCard>
|
||||||
</div>
|
</div>
|
||||||
<VnPaginate
|
<VnPaginate
|
||||||
|
@ -225,7 +215,6 @@ function navigateToRouteSummary(event, row) {
|
||||||
data-key="RouteAutonomousList"
|
data-key="RouteAutonomousList"
|
||||||
url="AgencyTerms/filter"
|
url="AgencyTerms/filter"
|
||||||
:limit="20"
|
:limit="20"
|
||||||
auto-load
|
|
||||||
>
|
>
|
||||||
<template #body="{ rows }">
|
<template #body="{ rows }">
|
||||||
<div class="q-pa-md">
|
<div class="q-pa-md">
|
||||||
|
|
|
@ -1,32 +1,34 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import VnPaginate from 'components/ui/VnPaginate.vue';
|
|
||||||
import { useStateStore } from 'stores/useStateStore';
|
import { useStateStore } from 'stores/useStateStore';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { computed, onMounted, onUnmounted, ref } from 'vue';
|
import { computed, onMounted, ref } from 'vue';
|
||||||
import { dashIfEmpty, toHour } from 'src/filters';
|
import { dashIfEmpty, toHour } from 'src/filters';
|
||||||
import VnSelect from 'components/common/VnSelect.vue';
|
|
||||||
import FetchData from 'components/FetchData.vue';
|
|
||||||
import { useValidator } from 'composables/useValidator';
|
import { useValidator } from 'composables/useValidator';
|
||||||
|
import { useSession } from 'composables/useSession';
|
||||||
|
import { useSummaryDialog } from 'src/composables/useSummaryDialog';
|
||||||
|
import { useArrayData } from 'composables/useArrayData';
|
||||||
|
import { useQuasar } from 'quasar';
|
||||||
|
|
||||||
|
import axios from 'axios';
|
||||||
|
import RouteSearchbar from 'pages/Route/Card/RouteSearchbar.vue';
|
||||||
|
import FetchData from 'components/FetchData.vue';
|
||||||
|
import TableVisibleColumns from 'src/components/common/TableVisibleColumns.vue';
|
||||||
|
import RouteSummary from 'pages/Route/Card/RouteSummary.vue';
|
||||||
|
import RouteFilter from 'pages/Route/Card/RouteFilter.vue';
|
||||||
|
import RouteListTicketsDialog from 'pages/Route/Card/RouteListTicketsDialog.vue';
|
||||||
|
import RightMenu from 'src/components/common/RightMenu.vue';
|
||||||
|
|
||||||
|
import VnPaginate from 'components/ui/VnPaginate.vue';
|
||||||
|
import VnSelect from 'components/common/VnSelect.vue';
|
||||||
import VnInputDate from 'components/common/VnInputDate.vue';
|
import VnInputDate from 'components/common/VnInputDate.vue';
|
||||||
import VnInput from 'components/common/VnInput.vue';
|
import VnInput from 'components/common/VnInput.vue';
|
||||||
import VnInputTime from 'components/common/VnInputTime.vue';
|
import VnInputTime from 'components/common/VnInputTime.vue';
|
||||||
import axios from 'axios';
|
import VnLv from 'src/components/ui/VnLv.vue';
|
||||||
import RouteSearchbar from 'pages/Route/Card/RouteSearchbar.vue';
|
|
||||||
import TableVisibleColumns from 'src/components/common/TableVisibleColumns.vue';
|
|
||||||
import RouteFilter from 'pages/Route/Card/RouteFilter.vue';
|
|
||||||
import RouteSummary from 'pages/Route/Card/RouteSummary.vue';
|
|
||||||
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
import { useSession } from 'composables/useSession';
|
|
||||||
import { useSummaryDialog } from 'src/composables/useSummaryDialog';
|
|
||||||
import RouteListTicketsDialog from 'pages/Route/Card/RouteListTicketsDialog.vue';
|
|
||||||
import { useQuasar } from 'quasar';
|
|
||||||
import { useArrayData } from 'composables/useArrayData';
|
|
||||||
import RightMenu from 'src/components/common/RightMenu.vue';
|
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const { validate } = useValidator();
|
const { validate } = useValidator();
|
||||||
const { viewSummary } = useSummaryDialog();
|
const { viewSummary } = useSummaryDialog();
|
||||||
const stateStore = useStateStore();
|
|
||||||
const quasar = useQuasar();
|
const quasar = useQuasar();
|
||||||
const session = useSession();
|
const session = useSession();
|
||||||
const paginate = ref();
|
const paginate = ref();
|
||||||
|
@ -211,6 +213,10 @@ onMounted(async () => {
|
||||||
<QBtn flat :label="t('Cancel')" v-close-popup class="text-primary" />
|
<QBtn flat :label="t('Cancel')" v-close-popup class="text-primary" />
|
||||||
<QBtn color="primary" v-close-popup @click="cloneRoutes">
|
<QBtn color="primary" v-close-popup @click="cloneRoutes">
|
||||||
{{ t('globals.clone') }}
|
{{ t('globals.clone') }}
|
||||||
|
<VnLv
|
||||||
|
:label="t('route.summary.packages')"
|
||||||
|
:value="getTotalPackages(entity.tickets)"
|
||||||
|
/>
|
||||||
</QBtn>
|
</QBtn>
|
||||||
</QCardActions>
|
</QCardActions>
|
||||||
</QCard>
|
</QCard>
|
||||||
|
@ -270,7 +276,6 @@ onMounted(async () => {
|
||||||
url="Routes/filter"
|
url="Routes/filter"
|
||||||
:order="['created ASC', 'started ASC', 'id ASC']"
|
:order="['created ASC', 'started ASC', 'id ASC']"
|
||||||
:limit="20"
|
:limit="20"
|
||||||
auto-load
|
|
||||||
>
|
>
|
||||||
<template #body="{ rows }">
|
<template #body="{ rows }">
|
||||||
<div class="q-pa-md route-table">
|
<div class="q-pa-md route-table">
|
||||||
|
|
|
@ -194,7 +194,6 @@ function navigateToRoadmapSummary(event, row) {
|
||||||
url="Roadmaps"
|
url="Roadmaps"
|
||||||
:limit="20"
|
:limit="20"
|
||||||
:filter="filter"
|
:filter="filter"
|
||||||
auto-load
|
|
||||||
>
|
>
|
||||||
<template #body="{ rows }">
|
<template #body="{ rows }">
|
||||||
<div class="q-pa-md">
|
<div class="q-pa-md">
|
||||||
|
|
|
@ -141,7 +141,7 @@ const setOrderedPriority = async () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const sortRoutes = async () => {
|
const sortRoutes = async () => {
|
||||||
await axios.get(`Routes/${route.params?.id}/guessPriority/`);
|
await axios.patch(`Routes/${route.params?.id}/guessPriority/`);
|
||||||
refreshKey.value++;
|
refreshKey.value++;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue