Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 8388-fixInvoiceIn
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
c3299d967b
|
@ -1,15 +1,15 @@
|
|||
<script setup>
|
||||
import {useDialogPluginComponent} from 'quasar';
|
||||
import {useI18n} from 'vue-i18n';
|
||||
import {computed, ref} from 'vue';
|
||||
import { useDialogPluginComponent } from 'quasar';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { computed, ref } from 'vue';
|
||||
import VnInput from 'components/common/VnInput.vue';
|
||||
import axios from 'axios';
|
||||
import useNotify from "composables/useNotify";
|
||||
import useNotify from 'composables/useNotify';
|
||||
|
||||
const MESSAGE_MAX_LENGTH = 160;
|
||||
|
||||
const {t} = useI18n();
|
||||
const {notify} = useNotify();
|
||||
const { t } = useI18n();
|
||||
const { notify } = useNotify();
|
||||
const props = defineProps({
|
||||
title: {
|
||||
type: String,
|
||||
|
@ -34,7 +34,7 @@ const props = defineProps({
|
|||
});
|
||||
|
||||
const emit = defineEmits([...useDialogPluginComponent.emits, 'sent']);
|
||||
const {dialogRef, onDialogHide} = useDialogPluginComponent();
|
||||
const { dialogRef, onDialogHide } = useDialogPluginComponent();
|
||||
|
||||
const smsRules = [
|
||||
(val) => (val && val.length > 0) || t("The message can't be empty"),
|
||||
|
@ -43,10 +43,10 @@ const smsRules = [
|
|||
t("The message it's too long"),
|
||||
];
|
||||
|
||||
const message = ref('');
|
||||
const message = ref(t('routeDelay'));
|
||||
|
||||
const charactersRemaining = computed(
|
||||
() => MESSAGE_MAX_LENGTH - new Blob([message.value]).size
|
||||
() => MESSAGE_MAX_LENGTH - new Blob([message.value]).size,
|
||||
);
|
||||
|
||||
const charactersChipColor = computed(() => {
|
||||
|
@ -114,7 +114,7 @@ const onSubmit = async () => {
|
|||
<QTooltip>
|
||||
{{
|
||||
t(
|
||||
'Special characters like accents counts as a multiple'
|
||||
'Special characters like accents counts as a multiple',
|
||||
)
|
||||
}}
|
||||
</QTooltip>
|
||||
|
@ -144,7 +144,10 @@ const onSubmit = async () => {
|
|||
max-width: 450px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<i18n>
|
||||
en:
|
||||
routeDelay: "Your order has been delayed in transit.\nDelivery will take place throughout the day.\nWe apologize for the inconvenience and appreciate your patience."
|
||||
es:
|
||||
Message: Mensaje
|
||||
Send: Enviar
|
||||
|
@ -153,4 +156,5 @@ es:
|
|||
The destination can't be empty: El destinatario no puede estar vacio
|
||||
The message can't be empty: El mensaje no puede estar vacio
|
||||
The message it's too long: El mensaje es demasiado largo
|
||||
</i18n>
|
||||
routeDelay: "Retraso en ruta.\nInformamos que la ruta que lleva su pedido ha sufrido un retraso y la entrega se hará a lo largo del día.\nDisculpe las molestias."
|
||||
</i18n>
|
||||
|
|
|
@ -15,7 +15,7 @@ const editDownloadDisabled = ref(false);
|
|||
const $props = defineProps({
|
||||
defaultDmsCode: {
|
||||
type: String,
|
||||
default: 'InvoiceIn',
|
||||
default: 'invoiceIn',
|
||||
},
|
||||
disable: {
|
||||
type: Boolean,
|
||||
|
|
|
@ -561,9 +561,7 @@ watch(
|
|||
}}:
|
||||
</span>
|
||||
<VnLogValue
|
||||
:value="
|
||||
value.val.val
|
||||
"
|
||||
:value="value.val"
|
||||
:name="value.name"
|
||||
/>
|
||||
</QItem>
|
||||
|
@ -616,7 +614,7 @@ watch(
|
|||
{{ prop.nameI18n }}:
|
||||
</span>
|
||||
<VnLogValue
|
||||
:value="prop.val.val"
|
||||
:value="prop.val"
|
||||
:name="prop.name"
|
||||
/>
|
||||
<span
|
||||
|
@ -647,7 +645,7 @@ watch(
|
|||
</span>
|
||||
<span v-if="log.action == 'update'">
|
||||
<VnLogValue
|
||||
:value="prop.old.val"
|
||||
:value="prop.old"
|
||||
:name="prop.name"
|
||||
/>
|
||||
<span
|
||||
|
@ -658,7 +656,7 @@ watch(
|
|||
</span>
|
||||
→
|
||||
<VnLogValue
|
||||
:value="prop.val.val"
|
||||
:value="prop.val"
|
||||
:name="prop.name"
|
||||
/>
|
||||
<span
|
||||
|
@ -670,7 +668,7 @@ watch(
|
|||
</span>
|
||||
<span v-else="prop.old.val">
|
||||
<VnLogValue
|
||||
:value="prop.val.val"
|
||||
:value="prop.val"
|
||||
:name="prop.name"
|
||||
/>
|
||||
<span
|
||||
|
|
|
@ -5,18 +5,24 @@ import { computed } from 'vue';
|
|||
const descriptorStore = useDescriptorStore();
|
||||
|
||||
const $props = defineProps({
|
||||
name: { type: [String], default: undefined },
|
||||
value: { type: Object, default: () => {} },
|
||||
name: { type: String, default: undefined },
|
||||
});
|
||||
|
||||
const descriptor = computed(() => descriptorStore.has($props.name));
|
||||
</script>
|
||||
<template>
|
||||
<VnJsonValue v-bind="$attrs" />
|
||||
<QIcon
|
||||
name="launch"
|
||||
class="link"
|
||||
v-if="$attrs.value && descriptor"
|
||||
:data-cy="'iconLaunch-' + $props.name"
|
||||
/>
|
||||
<component :is="descriptor" :id="$attrs.value" v-if="$attrs.value && descriptor" />
|
||||
<VnJsonValue :value="value.val" />
|
||||
<span
|
||||
v-if="(value.id || typeof value.val == 'number') && descriptor"
|
||||
style="margin-left: 2px"
|
||||
>
|
||||
<QIcon
|
||||
name="launch"
|
||||
class="link"
|
||||
:data-cy="'iconLaunch-' + $props.name"
|
||||
style="padding-bottom: 2px"
|
||||
/>
|
||||
<component :is="descriptor" :id="value.id ?? value.val" />
|
||||
</span>
|
||||
</template>
|
||||
|
|
|
@ -884,7 +884,7 @@ components:
|
|||
openCard: View
|
||||
openSummary: Summary
|
||||
viewSummary: Summary
|
||||
cardDescriptor:
|
||||
vnDescriptor:
|
||||
mainList: Main list
|
||||
summary: Summary
|
||||
moreOptions: More options
|
||||
|
|
|
@ -968,7 +968,7 @@ components:
|
|||
openCard: Ficha
|
||||
openSummary: Detalles
|
||||
viewSummary: Vista previa
|
||||
cardDescriptor:
|
||||
vnDescriptor:
|
||||
mainList: Listado principal
|
||||
summary: Resumen
|
||||
moreOptions: Más opciones
|
||||
|
|
|
@ -648,7 +648,7 @@ onMounted(() => {
|
|||
:url="`Entries/${entityId}/getBuyList`"
|
||||
search-url="EntryBuys"
|
||||
save-url="Buys/crud"
|
||||
:filter="filter"
|
||||
:filter="editableMode ? filter : {}"
|
||||
:disable-option="{ card: true }"
|
||||
v-model:selected="selectedRows"
|
||||
@on-fetch="() => footerFetchDataRef.fetch()"
|
||||
|
|
|
@ -147,7 +147,7 @@ async function deleteEntry() {
|
|||
<template>
|
||||
<EntityDescriptor
|
||||
:url="`Entries/${entityId}`"
|
||||
:user-filter="entryFilter"
|
||||
:filter="entryFilter"
|
||||
title="supplier.nickname"
|
||||
data-key="Entry"
|
||||
width="lg-width"
|
||||
|
|
|
@ -116,6 +116,7 @@ const filter = computed(() => ({
|
|||
hour: 0,
|
||||
minute: 0,
|
||||
second: 0,
|
||||
milliseconds: 0,
|
||||
}),
|
||||
m3: { neq: null },
|
||||
},
|
||||
|
|
|
@ -198,20 +198,7 @@ const getLocale = (label) => {
|
|||
<QItemSection>
|
||||
<VnSelect
|
||||
dense
|
||||
filled
|
||||
:label="t('globals.params.departmentFk')"
|
||||
v-model="params.department"
|
||||
option-label="name"
|
||||
option-value="name"
|
||||
url="Departments"
|
||||
/>
|
||||
</QItemSection>
|
||||
</QItem>
|
||||
<QItem>
|
||||
<QItemSection>
|
||||
<VnSelect
|
||||
dense
|
||||
filled
|
||||
rounded
|
||||
:label="t('globals.params.packing')"
|
||||
v-model="params.packing"
|
||||
url="ItemPackingTypes"
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
<script setup>
|
||||
import ParkingDescriptor from './ParkingDescriptor.vue';
|
||||
import ParkingSummary from './ParkingSummary.vue';
|
||||
</script>
|
||||
<template>
|
||||
<QPopupProxy style="max-width: 10px">
|
||||
<ParkingDescriptor
|
||||
v-if="$attrs.id"
|
||||
v-bind="$attrs.id"
|
||||
:summary="ParkingSummary"
|
||||
:proxy-render="true"
|
||||
/>
|
||||
</QPopupProxy>
|
||||
</template>
|
|
@ -197,7 +197,11 @@ const entriesTotals = computed(() => {
|
|||
|
||||
entriesTableRows.value.forEach((row) => {
|
||||
for (const key in totals) {
|
||||
totals[key] += row[key] || 0;
|
||||
if (key === 'cc') {
|
||||
totals[key] += Math.ceil(row[key] || 0);
|
||||
} else {
|
||||
totals[key] += row[key] || 0;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ defineExpose({ states });
|
|||
/>
|
||||
<VnSelect
|
||||
:label="t('travel.warehouseOut')"
|
||||
v-model="params.warehouseOut"
|
||||
v-model="params.warehouseOutFk"
|
||||
@update:model-value="searchFn()"
|
||||
url="warehouses"
|
||||
:use-like="false"
|
||||
|
@ -128,6 +128,7 @@ en:
|
|||
ref: Reference
|
||||
agency: Agency
|
||||
warehouseInFk: Warehouse In
|
||||
warehouseOutFk: Warehouse Out
|
||||
shipped: Shipped
|
||||
shipmentHour: Shipment Hour
|
||||
warehouseOut: Warehouse Out
|
||||
|
@ -141,6 +142,7 @@ es:
|
|||
ref: Referencia
|
||||
agency: Agencia
|
||||
warehouseInFk: Alm.Entrada
|
||||
warehouseOutFk: Alm.Salida
|
||||
shipped: F.Envío
|
||||
shipmentHour: Hora de envío
|
||||
warehouseOut: Alm.Salida
|
||||
|
|
|
@ -11,7 +11,7 @@ export const useDescriptorStore = defineStore('descriptorStore', () => {
|
|||
const files = import.meta.glob(`/src/**/*DescriptorProxy.vue`);
|
||||
const moduleParser = {
|
||||
account: 'user',
|
||||
client: 'customer',
|
||||
customer: 'client',
|
||||
};
|
||||
for (const file in files) {
|
||||
const name = file.split('/').at(-1).slice(0, -19).toLowerCase();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
describe('RouteAutonomous', () => {
|
||||
describe.skip('RouteAutonomous', () => {
|
||||
const getLinkSelector = (colField) =>
|
||||
`tr:first-child > [data-col-field="${colField}"] > .no-padding > .link`;
|
||||
|
||||
|
|
Loading…
Reference in New Issue