Merge branch 'dev' into 8606-FixZoneModule
gitea/salix-front/pipeline/pr-dev This commit looks good
Details
gitea/salix-front/pipeline/pr-dev This commit looks good
Details
This commit is contained in:
commit
5e7989aa0a
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "salix-front",
|
"name": "salix-front",
|
||||||
"version": "25.08.0",
|
"version": "25.10.0",
|
||||||
"description": "Salix frontend",
|
"description": "Salix frontend",
|
||||||
"productName": "Salix",
|
"productName": "Salix",
|
||||||
"author": "Verdnatura",
|
"author": "Verdnatura",
|
||||||
|
|
|
@ -106,7 +106,7 @@ const isLoading = ref(false);
|
||||||
const isResetting = ref(false);
|
const isResetting = ref(false);
|
||||||
const hasChanges = ref(!$props.observeFormChanges);
|
const hasChanges = ref(!$props.observeFormChanges);
|
||||||
const originalData = computed(() => state.get(modelValue));
|
const originalData = computed(() => state.get(modelValue));
|
||||||
const formData = ref({});
|
const formData = ref();
|
||||||
const defaultButtons = computed(() => ({
|
const defaultButtons = computed(() => ({
|
||||||
save: {
|
save: {
|
||||||
dataCy: 'saveDefaultBtn',
|
dataCy: 'saveDefaultBtn',
|
||||||
|
|
|
@ -5,6 +5,18 @@ defineProps({ row: { type: Object, required: true } });
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<span class="q-gutter-x-xs">
|
<span class="q-gutter-x-xs">
|
||||||
|
<router-link
|
||||||
|
v-if="row.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
|
<QIcon
|
||||||
v-if="row?.risk"
|
v-if="row?.risk"
|
||||||
name="vn:risk"
|
name="vn:risk"
|
||||||
|
@ -56,7 +68,7 @@ defineProps({ row: { type: Object, required: true } });
|
||||||
<QTooltip>{{ $t('salesTicketsTable.purchaseRequest') }}</QTooltip>
|
<QTooltip>{{ $t('salesTicketsTable.purchaseRequest') }}</QTooltip>
|
||||||
</QIcon>
|
</QIcon>
|
||||||
<QIcon
|
<QIcon
|
||||||
v-if="!row?.isTaxDataChecked === 0"
|
v-if="row?.isTaxDataChecked !== 0"
|
||||||
name="vn:no036"
|
name="vn:no036"
|
||||||
color="primary"
|
color="primary"
|
||||||
size="xs"
|
size="xs"
|
||||||
|
|
|
@ -783,7 +783,7 @@ function cardClick(_, row) {
|
||||||
<QCardSection
|
<QCardSection
|
||||||
vertical
|
vertical
|
||||||
class="no-margin no-padding"
|
class="no-margin no-padding"
|
||||||
:class="colsMap.tableActions ? '' : 'fit'"
|
:class="colsMap.tableActions ? 'w-80' : 'fit'"
|
||||||
>
|
>
|
||||||
<!-- Chips -->
|
<!-- Chips -->
|
||||||
<QCardSection
|
<QCardSection
|
||||||
|
@ -822,11 +822,11 @@ function cardClick(_, row) {
|
||||||
col, index
|
col, index
|
||||||
) of splittedColumns.cardVisible"
|
) of splittedColumns.cardVisible"
|
||||||
:key="col.name"
|
:key="col.name"
|
||||||
|
class="fields"
|
||||||
>
|
>
|
||||||
<VnLv :label="col.label + ':'">
|
<VnLv :label="col.label + ':'">
|
||||||
<template #value>
|
<template #value>
|
||||||
<span
|
<span
|
||||||
class="q-pl-xs"
|
|
||||||
@click="stopEventPropagation($event)"
|
@click="stopEventPropagation($event)"
|
||||||
>
|
>
|
||||||
<slot
|
<slot
|
||||||
|
@ -861,6 +861,7 @@ function cardClick(_, row) {
|
||||||
:key="index"
|
:key="index"
|
||||||
:title="btn.title"
|
:title="btn.title"
|
||||||
:icon="btn.icon"
|
:icon="btn.icon"
|
||||||
|
data-cy="cardBtn"
|
||||||
class="q-pa-xs"
|
class="q-pa-xs"
|
||||||
:class="
|
:class="
|
||||||
btn.isPrimary
|
btn.isPrimary
|
||||||
|
|
|
@ -57,6 +57,7 @@ describe('FormModel', () => {
|
||||||
vm.state.set(model, formInitialData);
|
vm.state.set(model, formInitialData);
|
||||||
expect(vm.hasChanges).toBe(false);
|
expect(vm.hasChanges).toBe(false);
|
||||||
|
|
||||||
|
await vm.$nextTick();
|
||||||
vm.formData.mockKey = 'newVal';
|
vm.formData.mockKey = 'newVal';
|
||||||
await vm.$nextTick();
|
await vm.$nextTick();
|
||||||
expect(vm.hasChanges).toBe(true);
|
expect(vm.hasChanges).toBe(true);
|
||||||
|
@ -94,8 +95,12 @@ describe('FormModel', () => {
|
||||||
it('should call axios.patch with the right data', async () => {
|
it('should call axios.patch with the right data', async () => {
|
||||||
const spy = vi.spyOn(axios, 'patch').mockResolvedValue({ data: {} });
|
const spy = vi.spyOn(axios, 'patch').mockResolvedValue({ data: {} });
|
||||||
const { vm } = mount({ propsData: { url, model } });
|
const { vm } = mount({ propsData: { url, model } });
|
||||||
vm.formData.mockKey = 'newVal';
|
|
||||||
|
vm.formData = {};
|
||||||
await vm.$nextTick();
|
await vm.$nextTick();
|
||||||
|
vm.formData = { mockKey: 'newVal' };
|
||||||
|
await vm.$nextTick();
|
||||||
|
|
||||||
await vm.save();
|
await vm.save();
|
||||||
expect(spy).toHaveBeenCalled();
|
expect(spy).toHaveBeenCalled();
|
||||||
vm.formData.mockKey = 'mockVal';
|
vm.formData.mockKey = 'mockVal';
|
||||||
|
|
|
@ -11,7 +11,7 @@ export async function useCau(res, message) {
|
||||||
const { config, headers, request, status, statusText, data } = res || {};
|
const { config, headers, request, status, statusText, data } = res || {};
|
||||||
const { params, url, method, signal, headers: confHeaders } = config || {};
|
const { params, url, method, signal, headers: confHeaders } = config || {};
|
||||||
const { message: resMessage, code, name } = data?.error || {};
|
const { message: resMessage, code, name } = data?.error || {};
|
||||||
delete confHeaders.Authorization;
|
delete confHeaders?.Authorization;
|
||||||
|
|
||||||
const additionalData = {
|
const additionalData = {
|
||||||
path: location.hash,
|
path: location.hash,
|
||||||
|
|
|
@ -233,7 +233,7 @@ function handleLocation(data, location) {
|
||||||
postcode: data.postalCode,
|
postcode: data.postalCode,
|
||||||
city: data.city,
|
city: data.city,
|
||||||
province: data.province,
|
province: data.province,
|
||||||
country: data.province.country,
|
country: data.province?.country,
|
||||||
}"
|
}"
|
||||||
@update:model-value="(location) => handleLocation(data, location)"
|
@update:model-value="(location) => handleLocation(data, location)"
|
||||||
></VnLocation>
|
></VnLocation>
|
||||||
|
|
|
@ -6,6 +6,8 @@ import VnLv from 'components/ui/VnLv.vue';
|
||||||
import { dashIfEmpty, toDate } from 'src/filters';
|
import { dashIfEmpty, toDate } from 'src/filters';
|
||||||
import RouteDescriptorMenu from 'pages/Route/Card/RouteDescriptorMenu.vue';
|
import RouteDescriptorMenu from 'pages/Route/Card/RouteDescriptorMenu.vue';
|
||||||
import filter from './RouteFilter.js';
|
import filter from './RouteFilter.js';
|
||||||
|
import useCardDescription from 'src/composables/useCardDescription';
|
||||||
|
import axios from 'axios';
|
||||||
|
|
||||||
const $props = defineProps({
|
const $props = defineProps({
|
||||||
id: {
|
id: {
|
||||||
|
@ -16,7 +18,6 @@ const $props = defineProps({
|
||||||
});
|
});
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { t } = useI18n();
|
|
||||||
const zone = ref();
|
const zone = ref();
|
||||||
const zoneId = ref();
|
const zoneId = ref();
|
||||||
const entityId = computed(() => {
|
const entityId = computed(() => {
|
||||||
|
@ -50,9 +51,9 @@ onMounted(async () => {
|
||||||
width="lg-width"
|
width="lg-width"
|
||||||
>
|
>
|
||||||
<template #body="{ entity }">
|
<template #body="{ entity }">
|
||||||
<VnLv :label="t('Date')" :value="toDate(entity?.dated)" />
|
<VnLv :label="$t('Date')" :value="toDate(entity?.dated)" />
|
||||||
<VnLv :label="t('Agency')" :value="entity?.agencyMode?.name" />
|
<VnLv :label="$t('Agency')" :value="entity?.agencyMode?.name" />
|
||||||
<VnLv :label="t('Zone')" :value="zone" />
|
<VnLv :label="$t('Zone')" :value="zone" />
|
||||||
<VnLv
|
<VnLv
|
||||||
:label="$t('Volume')"
|
:label="$t('Volume')"
|
||||||
:value="`${dashIfEmpty(entity?.m3)} / ${dashIfEmpty(
|
:value="`${dashIfEmpty(entity?.m3)} / ${dashIfEmpty(
|
||||||
|
|
|
@ -14,7 +14,6 @@ export default {
|
||||||
'started',
|
'started',
|
||||||
'finished',
|
'finished',
|
||||||
'cost',
|
'cost',
|
||||||
'zoneFk',
|
|
||||||
'isOk',
|
'isOk',
|
||||||
],
|
],
|
||||||
include: [
|
include: [
|
||||||
|
@ -23,7 +22,6 @@ export default {
|
||||||
relation: 'vehicle',
|
relation: 'vehicle',
|
||||||
scope: { fields: ['id', 'm3'] },
|
scope: { fields: ['id', 'm3'] },
|
||||||
},
|
},
|
||||||
{ relation: 'zone', scope: { fields: ['id', 'name'] } },
|
|
||||||
{
|
{
|
||||||
relation: 'worker',
|
relation: 'worker',
|
||||||
scope: {
|
scope: {
|
||||||
|
|
|
@ -28,52 +28,6 @@ const defaultInitialData = {
|
||||||
isOk: false,
|
isOk: false,
|
||||||
};
|
};
|
||||||
const maxDistance = ref();
|
const maxDistance = ref();
|
||||||
|
|
||||||
const routeFilter = {
|
|
||||||
fields: [
|
|
||||||
'id',
|
|
||||||
'workerFk',
|
|
||||||
'agencyModeFk',
|
|
||||||
'dated',
|
|
||||||
'm3',
|
|
||||||
'warehouseFk',
|
|
||||||
'description',
|
|
||||||
'vehicleFk',
|
|
||||||
'kmStart',
|
|
||||||
'kmEnd',
|
|
||||||
'started',
|
|
||||||
'finished',
|
|
||||||
'cost',
|
|
||||||
'isOk',
|
|
||||||
],
|
|
||||||
include: [
|
|
||||||
{ relation: 'agencyMode', scope: { fields: ['id', 'name'] } },
|
|
||||||
{
|
|
||||||
relation: 'vehicle',
|
|
||||||
scope: { fields: ['id', 'm3'] },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
relation: 'ticket',
|
|
||||||
scope: {
|
|
||||||
fields: ['id', 'name', 'zoneFk'],
|
|
||||||
include: { relation: 'zone', scope: { fields: ['id', 'name'] } },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
relation: 'worker',
|
|
||||||
scope: {
|
|
||||||
fields: ['id'],
|
|
||||||
include: {
|
|
||||||
relation: 'user',
|
|
||||||
scope: {
|
|
||||||
fields: ['id'],
|
|
||||||
include: { relation: 'emailUser', scope: { fields: ['email'] } },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
const onSave = (data, response) => {
|
const onSave = (data, response) => {
|
||||||
if (isNew) {
|
if (isNew) {
|
||||||
axios.post(`Routes/${response?.id}/updateWorkCenter`);
|
axios.post(`Routes/${response?.id}/updateWorkCenter`);
|
||||||
|
|
|
@ -16,6 +16,7 @@ import useNotify from 'src/composables/useNotify.js';
|
||||||
import { useState } from 'src/composables/useState';
|
import { useState } from 'src/composables/useState';
|
||||||
import { toDateTimeFormat } from 'src/filters/date.js';
|
import { toDateTimeFormat } from 'src/filters/date.js';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
import TicketProblems from 'src/components/TicketProblems.vue';
|
||||||
|
|
||||||
const state = useState();
|
const state = useState();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
@ -286,71 +287,7 @@ watch(
|
||||||
</span>
|
</span>
|
||||||
</QTooltip>
|
</QTooltip>
|
||||||
</QIcon>
|
</QIcon>
|
||||||
<QIcon
|
<TicketProblems :row />
|
||||||
v-if="row.isTaxDataChecked === 0"
|
|
||||||
color="primary"
|
|
||||||
name="vn:no036"
|
|
||||||
size="xs"
|
|
||||||
>
|
|
||||||
<QTooltip>
|
|
||||||
{{ t('futureTickets.noVerified') }}
|
|
||||||
</QTooltip>
|
|
||||||
</QIcon>
|
|
||||||
<QIcon
|
|
||||||
v-if="row.hasTicketRequest"
|
|
||||||
color="primary"
|
|
||||||
name="vn:buyrequest"
|
|
||||||
size="xs"
|
|
||||||
>
|
|
||||||
<QTooltip>
|
|
||||||
{{ t('futureTickets.purchaseRequest') }}
|
|
||||||
</QTooltip>
|
|
||||||
</QIcon>
|
|
||||||
<QIcon
|
|
||||||
v-if="row.itemShortage"
|
|
||||||
color="primary"
|
|
||||||
name="vn:unavailable"
|
|
||||||
size="xs"
|
|
||||||
>
|
|
||||||
<QTooltip>
|
|
||||||
{{ t('ticketSale.noVisible') }}
|
|
||||||
</QTooltip>
|
|
||||||
</QIcon>
|
|
||||||
<QIcon
|
|
||||||
v-if="row.isFreezed"
|
|
||||||
color="primary"
|
|
||||||
name="vn:frozen"
|
|
||||||
size="xs"
|
|
||||||
>
|
|
||||||
<QTooltip>
|
|
||||||
{{ t('futureTickets.clientFrozen') }}
|
|
||||||
</QTooltip>
|
|
||||||
</QIcon>
|
|
||||||
<QIcon v-if="row.risk" color="primary" name="vn:risk" size="xs">
|
|
||||||
<QTooltip>
|
|
||||||
{{ t('futureTickets.risk') }}: {{ row.risk }}
|
|
||||||
</QTooltip>
|
|
||||||
</QIcon>
|
|
||||||
<QIcon
|
|
||||||
v-if="row.hasComponentLack"
|
|
||||||
color="primary"
|
|
||||||
name="vn:components"
|
|
||||||
size="xs"
|
|
||||||
>
|
|
||||||
<QTooltip>
|
|
||||||
{{ t('futureTickets.componentLack') }}
|
|
||||||
</QTooltip>
|
|
||||||
</QIcon>
|
|
||||||
<QIcon
|
|
||||||
v-if="row.hasRounding"
|
|
||||||
color="primary"
|
|
||||||
name="sync_problem"
|
|
||||||
size="xs"
|
|
||||||
>
|
|
||||||
<QTooltip>
|
|
||||||
{{ t('futureTickets.rounding') }}
|
|
||||||
</QTooltip>
|
|
||||||
</QIcon>
|
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
<template #column-id="{ row }">
|
<template #column-id="{ row }">
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
import { onMounted, ref, computed, watch } from 'vue';
|
import { onMounted, ref, computed, watch } from 'vue';
|
||||||
import { QBtn } from 'quasar';
|
import { QBtn } from 'quasar';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
|
import { useRoute } from 'vue-router';
|
||||||
|
|
||||||
import SupplierDescriptorProxy from 'src/pages/Supplier/Card/SupplierDescriptorProxy.vue';
|
import SupplierDescriptorProxy from 'src/pages/Supplier/Card/SupplierDescriptorProxy.vue';
|
||||||
import TravelDescriptorProxy from 'src/pages/Travel/Card/TravelDescriptorProxy.vue';
|
import TravelDescriptorProxy from 'src/pages/Travel/Card/TravelDescriptorProxy.vue';
|
||||||
|
@ -22,6 +23,8 @@ import VnPopup from 'src/components/common/VnPopup.vue';
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const { openReport } = usePrintService();
|
const { openReport } = usePrintService();
|
||||||
|
const route = useRoute();
|
||||||
|
const tableParams = ref();
|
||||||
|
|
||||||
const shippedFrom = ref(Date.vnNew());
|
const shippedFrom = ref(Date.vnNew());
|
||||||
const landedTo = ref(Date.vnNew());
|
const landedTo = ref(Date.vnNew());
|
||||||
|
@ -143,7 +146,7 @@ const columns = computed(() => [
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: t('globals.pageTitles.supplier'),
|
label: t('extraCommunity.cargoShip'),
|
||||||
field: 'cargoSupplierNickname',
|
field: 'cargoSupplierNickname',
|
||||||
name: 'cargoSupplierNickname',
|
name: 'cargoSupplierNickname',
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
@ -171,7 +174,7 @@ const columns = computed(() => [
|
||||||
? value.reduce((sum, entry) => {
|
? value.reduce((sum, entry) => {
|
||||||
return sum + (entry.invoiceAmount || 0);
|
return sum + (entry.invoiceAmount || 0);
|
||||||
}, 0)
|
}, 0)
|
||||||
: 0
|
: 0,
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -200,7 +203,7 @@ const columns = computed(() => [
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: t('kg'),
|
label: t('extraCommunity.kg'),
|
||||||
field: 'kg',
|
field: 'kg',
|
||||||
name: 'kg',
|
name: 'kg',
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
@ -208,7 +211,7 @@ const columns = computed(() => [
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: t('physicKg'),
|
label: t('extraCommunity.physicKg'),
|
||||||
field: 'loadedKg',
|
field: 'loadedKg',
|
||||||
name: 'loadedKg',
|
name: 'loadedKg',
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
@ -232,7 +235,7 @@ const columns = computed(() => [
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: t('shipped'),
|
label: t('extraCommunity.shipped'),
|
||||||
field: 'shipped',
|
field: 'shipped',
|
||||||
name: 'shipped',
|
name: 'shipped',
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
@ -249,7 +252,7 @@ const columns = computed(() => [
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: t('landed'),
|
label: t('extraCommunity.landed'),
|
||||||
field: 'landed',
|
field: 'landed',
|
||||||
name: 'landed',
|
name: 'landed',
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
@ -258,7 +261,7 @@ const columns = computed(() => [
|
||||||
format: (value) => toDate(value),
|
format: (value) => toDate(value),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: t('notes'),
|
label: t('extraCommunity.notes'),
|
||||||
field: '',
|
field: '',
|
||||||
name: 'notes',
|
name: 'notes',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
@ -284,7 +287,7 @@ watch(
|
||||||
if (!arrayData.store.data) return;
|
if (!arrayData.store.data) return;
|
||||||
onStoreDataChange();
|
onStoreDataChange();
|
||||||
},
|
},
|
||||||
{ deep: true, immediate: true }
|
{ deep: true, immediate: true },
|
||||||
);
|
);
|
||||||
|
|
||||||
const openReportPdf = () => {
|
const openReportPdf = () => {
|
||||||
|
@ -451,13 +454,24 @@ const getColor = (percentage) => {
|
||||||
for (const { value, className } of travelKgPercentages.value)
|
for (const { value, className } of travelKgPercentages.value)
|
||||||
if (percentage > value) return className;
|
if (percentage > value) return className;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const filteredEntries = (entries) => {
|
||||||
|
if (!tableParams?.value?.entrySupplierFk) return entries;
|
||||||
|
return entries?.filter(
|
||||||
|
(entry) => entry.supplierFk === tableParams?.value?.entrySupplierFk,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
watch(route, () => {
|
||||||
|
tableParams.value = JSON.parse(route.query.table);
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<VnSearchbar
|
<VnSearchbar
|
||||||
data-key="ExtraCommunity"
|
data-key="ExtraCommunity"
|
||||||
:limit="20"
|
:limit="20"
|
||||||
:label="t('searchExtraCommunity')"
|
:label="t('extraCommunity.searchExtraCommunity')"
|
||||||
/>
|
/>
|
||||||
<RightMenu>
|
<RightMenu>
|
||||||
<template #right-panel>
|
<template #right-panel>
|
||||||
|
@ -521,7 +535,7 @@ const getColor = (percentage) => {
|
||||||
? tableColumnComponents[col.name].event(
|
? tableColumnComponents[col.name].event(
|
||||||
rows[props.rowIndex][col.field],
|
rows[props.rowIndex][col.field],
|
||||||
col.field,
|
col.field,
|
||||||
props.rowIndex
|
props.rowIndex,
|
||||||
)
|
)
|
||||||
: {}
|
: {}
|
||||||
"
|
"
|
||||||
|
@ -546,7 +560,7 @@ const getColor = (percentage) => {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
link: ['id', 'cargoSupplierNickname'].includes(
|
link: ['id', 'cargoSupplierNickname'].includes(
|
||||||
col.name
|
col.name,
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
]"
|
]"
|
||||||
|
@ -564,9 +578,8 @@ const getColor = (percentage) => {
|
||||||
</component>
|
</component>
|
||||||
</QTd>
|
</QTd>
|
||||||
</QTr>
|
</QTr>
|
||||||
|
|
||||||
<QTr
|
<QTr
|
||||||
v-for="(entry, index) in props.row.entries"
|
v-for="(entry, index) in filteredEntries(props.row.entries)"
|
||||||
:key="index"
|
:key="index"
|
||||||
:props="props"
|
:props="props"
|
||||||
class="bg-vn-secondary-row cursor-pointer"
|
class="bg-vn-secondary-row cursor-pointer"
|
||||||
|
@ -598,7 +611,7 @@ const getColor = (percentage) => {
|
||||||
name="warning"
|
name="warning"
|
||||||
color="negative"
|
color="negative"
|
||||||
size="md"
|
size="md"
|
||||||
:title="t('requiresInspection')"
|
:title="t('extraCommunity.requiresInspection')"
|
||||||
>
|
>
|
||||||
</QIcon>
|
</QIcon>
|
||||||
</QTd>
|
</QTd>
|
||||||
|
@ -709,24 +722,3 @@ const getColor = (percentage) => {
|
||||||
width: max-content;
|
width: max-content;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<i18n>
|
|
||||||
en:
|
|
||||||
searchExtraCommunity: Search for extra community shipping
|
|
||||||
kg: BI. KG
|
|
||||||
physicKg: Phy. KG
|
|
||||||
shipped: W. shipped
|
|
||||||
landed: W. landed
|
|
||||||
requiresInspection: Requires inspection
|
|
||||||
BIP: Boder Inspection Point
|
|
||||||
notes: Notes
|
|
||||||
es:
|
|
||||||
searchExtraCommunity: Buscar por envío extra comunitario
|
|
||||||
kg: KG Bloq.
|
|
||||||
physicKg: KG físico
|
|
||||||
shipped: F. envío
|
|
||||||
landed: F. llegada
|
|
||||||
notes: Notas
|
|
||||||
Open as PDF: Abrir como PDF
|
|
||||||
requiresInspection: Requiere inspección
|
|
||||||
BIP: Punto de Inspección Fronteriza
|
|
||||||
</i18n>
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ warehouses();
|
||||||
<VnFilterPanel :data-key="props.dataKey" :search-button="true">
|
<VnFilterPanel :data-key="props.dataKey" :search-button="true">
|
||||||
<template #tags="{ tag, formatFn }">
|
<template #tags="{ tag, formatFn }">
|
||||||
<div class="q-gutter-x-xs">
|
<div class="q-gutter-x-xs">
|
||||||
<strong>{{ t(`params.${tag.label}`) }}: </strong>
|
<strong>{{ t(`extraCommunity.filter.${tag.label}`) }}: </strong>
|
||||||
<span>{{ formatFn(tag.value) }}</span>
|
<span>{{ formatFn(tag.value) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -92,7 +92,7 @@ warehouses();
|
||||||
<QItem>
|
<QItem>
|
||||||
<QItemSection>
|
<QItemSection>
|
||||||
<VnInput
|
<VnInput
|
||||||
:label="t('params.reference')"
|
:label="t('extraCommunity.filter.reference')"
|
||||||
v-model="params.reference"
|
v-model="params.reference"
|
||||||
is-outlined
|
is-outlined
|
||||||
/>
|
/>
|
||||||
|
@ -103,7 +103,7 @@ warehouses();
|
||||||
<QInput
|
<QInput
|
||||||
v-model="params.totalEntries"
|
v-model="params.totalEntries"
|
||||||
type="number"
|
type="number"
|
||||||
:label="t('params.totalEntries')"
|
:label="t('extraCommunity.filter.totalEntries')"
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
rounded
|
rounded
|
||||||
|
@ -133,10 +133,10 @@ warehouses();
|
||||||
<QItem>
|
<QItem>
|
||||||
<QItemSection>
|
<QItemSection>
|
||||||
<VnSelect
|
<VnSelect
|
||||||
:label="t('params.agencyModeFk')"
|
:label="t('extraCommunity.filter.agencyModeFk')"
|
||||||
v-model="params.agencyModeFk"
|
v-model="params.agencyModeFk"
|
||||||
:options="agenciesOptions"
|
:options="agenciesOptions"
|
||||||
option-value="agencyFk"
|
option-value="id"
|
||||||
option-label="name"
|
option-label="name"
|
||||||
hide-selected
|
hide-selected
|
||||||
dense
|
dense
|
||||||
|
@ -148,7 +148,7 @@ warehouses();
|
||||||
<QItem>
|
<QItem>
|
||||||
<QItemSection>
|
<QItemSection>
|
||||||
<VnInputDate
|
<VnInputDate
|
||||||
:label="t('params.shippedFrom')"
|
:label="t('extraCommunity.filter.shippedFrom')"
|
||||||
v-model="params.shippedFrom"
|
v-model="params.shippedFrom"
|
||||||
@update:model-value="searchFn()"
|
@update:model-value="searchFn()"
|
||||||
is-outlined
|
is-outlined
|
||||||
|
@ -158,7 +158,7 @@ warehouses();
|
||||||
<QItem>
|
<QItem>
|
||||||
<QItemSection>
|
<QItemSection>
|
||||||
<VnInputDate
|
<VnInputDate
|
||||||
:label="t('params.landedTo')"
|
:label="t('extraCommunity.filter.landedTo')"
|
||||||
v-model="params.landedTo"
|
v-model="params.landedTo"
|
||||||
@update:model-value="searchFn()"
|
@update:model-value="searchFn()"
|
||||||
is-outlined
|
is-outlined
|
||||||
|
@ -168,7 +168,7 @@ warehouses();
|
||||||
<QItem v-if="warehousesByContinent[params.continent]">
|
<QItem v-if="warehousesByContinent[params.continent]">
|
||||||
<QItemSection>
|
<QItemSection>
|
||||||
<VnSelect
|
<VnSelect
|
||||||
:label="t('params.warehouseOutFk')"
|
:label="t('extraCommunity.filter.warehouseOutFk')"
|
||||||
v-model="params.warehouseOutFk"
|
v-model="params.warehouseOutFk"
|
||||||
:options="warehousesByContinent[params.continent]"
|
:options="warehousesByContinent[params.continent]"
|
||||||
option-value="id"
|
option-value="id"
|
||||||
|
@ -183,7 +183,7 @@ warehouses();
|
||||||
<QItem v-else>
|
<QItem v-else>
|
||||||
<QItemSection>
|
<QItemSection>
|
||||||
<VnSelect
|
<VnSelect
|
||||||
:label="t('params.warehouseOutFk')"
|
:label="t('extraCommunity.filter.warehouseOutFk')"
|
||||||
v-model="params.warehouseOutFk"
|
v-model="params.warehouseOutFk"
|
||||||
:options="warehousesOptions"
|
:options="warehousesOptions"
|
||||||
option-value="id"
|
option-value="id"
|
||||||
|
@ -198,7 +198,7 @@ warehouses();
|
||||||
<QItem>
|
<QItem>
|
||||||
<QItemSection>
|
<QItemSection>
|
||||||
<VnSelect
|
<VnSelect
|
||||||
:label="t('params.warehouseInFk')"
|
:label="t('extraCommunity.filter.warehouseInFk')"
|
||||||
v-model="params.warehouseInFk"
|
v-model="params.warehouseInFk"
|
||||||
:options="warehousesOptions"
|
:options="warehousesOptions"
|
||||||
option-value="id"
|
option-value="id"
|
||||||
|
@ -213,6 +213,7 @@ warehouses();
|
||||||
<QItem>
|
<QItem>
|
||||||
<QItemSection>
|
<QItemSection>
|
||||||
<VnSelectSupplier
|
<VnSelectSupplier
|
||||||
|
:label="t('extraCommunity.cargoShip')"
|
||||||
v-model="params.cargoSupplierFk"
|
v-model="params.cargoSupplierFk"
|
||||||
hide-selected
|
hide-selected
|
||||||
dense
|
dense
|
||||||
|
@ -221,10 +222,21 @@ warehouses();
|
||||||
/>
|
/>
|
||||||
</QItemSection>
|
</QItemSection>
|
||||||
</QItem>
|
</QItem>
|
||||||
|
<QItem>
|
||||||
|
<QItemSection>
|
||||||
|
<VnSelectSupplier
|
||||||
|
v-model="params.entrySupplierFk"
|
||||||
|
hide-selected
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
rounded
|
||||||
|
/>
|
||||||
|
</QItemSection>
|
||||||
|
</QItem>
|
||||||
<QItem>
|
<QItem>
|
||||||
<QItemSection>
|
<QItemSection>
|
||||||
<VnSelect
|
<VnSelect
|
||||||
:label="t('params.continent')"
|
:label="t('extraCommunity.filter.continent')"
|
||||||
v-model="params.continent"
|
v-model="params.continent"
|
||||||
:options="continentsOptions"
|
:options="continentsOptions"
|
||||||
option-value="code"
|
option-value="code"
|
||||||
|
@ -240,30 +252,3 @@ warehouses();
|
||||||
</template>
|
</template>
|
||||||
</VnFilterPanel>
|
</VnFilterPanel>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<i18n>
|
|
||||||
en:
|
|
||||||
params:
|
|
||||||
id: Id
|
|
||||||
reference: Reference
|
|
||||||
totalEntries: Total entries
|
|
||||||
agencyModeFk: Agency
|
|
||||||
warehouseInFk: Warehouse In
|
|
||||||
warehouseOutFk: Warehouse Out
|
|
||||||
shippedFrom: Shipped from
|
|
||||||
landedTo: Landed to
|
|
||||||
cargoSupplierFk: Supplier
|
|
||||||
continent: Continent out
|
|
||||||
es:
|
|
||||||
params:
|
|
||||||
id: Id
|
|
||||||
reference: Referencia
|
|
||||||
totalEntries: Ent. totales
|
|
||||||
agencyModeFk: Agencia
|
|
||||||
warehouseInFk: Alm. entrada
|
|
||||||
warehouseOutFk: Alm. salida
|
|
||||||
shippedFrom: Llegada desde
|
|
||||||
landedTo: Llegada hasta
|
|
||||||
cargoSupplierFk: Proveedor
|
|
||||||
continent: Cont. Salida
|
|
||||||
</i18n>
|
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
extraCommunity:
|
||||||
|
cargoShip: Cargo ship
|
||||||
|
searchExtraCommunity: Search for extra community shipping
|
||||||
|
kg: BI. KG
|
||||||
|
physicKg: Phy. KG
|
||||||
|
shipped: W. shipped
|
||||||
|
landed: W. landed
|
||||||
|
requiresInspection: Requires inspection
|
||||||
|
BIP: Boder Inspection Point
|
||||||
|
notes: Notes
|
||||||
|
filter:
|
||||||
|
id: Id
|
||||||
|
reference: Reference
|
||||||
|
totalEntries: Total entries
|
||||||
|
agencyModeFk: Agency
|
||||||
|
warehouseInFk: Warehouse In
|
||||||
|
warehouseOutFk: Warehouse Out
|
||||||
|
shippedFrom: Shipped from
|
||||||
|
landedTo: Landed to
|
||||||
|
cargoSupplierFk: Cargo supplier
|
||||||
|
continent: Continent out
|
||||||
|
entrySupplierFk: Supplier
|
|
@ -0,0 +1,23 @@
|
||||||
|
extraCommunity:
|
||||||
|
cargoShip: Carguera
|
||||||
|
searchExtraCommunity: Buscar por envío extra comunitario
|
||||||
|
kg: KG Bloq.
|
||||||
|
physicKg: KG físico
|
||||||
|
shipped: F. envío
|
||||||
|
landed: F. llegada
|
||||||
|
notes: Notas
|
||||||
|
Open as PDF: Abrir como PDF
|
||||||
|
requiresInspection: Requiere inspección
|
||||||
|
BIP: Punto de Inspección Fronteriza
|
||||||
|
filter:
|
||||||
|
id: Id
|
||||||
|
reference: Referencia
|
||||||
|
totalEntries: Ent. totales
|
||||||
|
agencyModeFk: Agencia
|
||||||
|
warehouseInFk: Alm. entrada
|
||||||
|
warehouseOutFk: Alm. salida
|
||||||
|
shippedFrom: Llegada desde
|
||||||
|
landedTo: Llegada hasta
|
||||||
|
cargoSupplierFk: Carguera
|
||||||
|
continent: Cont. Salida
|
||||||
|
entrySupplierFk: Proveedor
|
|
@ -10,9 +10,7 @@ describe('EntryMy when is supplier', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should open buyLabel when is supplier', () => {
|
it('should open buyLabel when is supplier', () => {
|
||||||
cy.get(
|
cy.dataCy('cardBtn').eq(2).click();
|
||||||
'[to="/null/3"] > .q-card > :nth-child(2) > .q-btn > .q-btn__content > .q-icon'
|
|
||||||
).click();
|
|
||||||
cy.dataCy('printLabelsBtn').click();
|
cy.dataCy('printLabelsBtn').click();
|
||||||
cy.window().its('open').should('be.called');
|
cy.window().its('open').should('be.called');
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue