Merge branch 'master' into test
gitea/salix-front/pipeline/head This commit looks good Details

This commit is contained in:
Guillermo Bonet 2025-04-15 11:01:53 +02:00
commit a7ccc68ab7
4 changed files with 33 additions and 30 deletions

View File

@ -232,7 +232,7 @@ fr:
pt: Portugais pt: Portugais
pt: pt:
Send SMS: Enviar SMS Send SMS: Enviar SMS
CustomerDefaultLanguage: Este cliente utiliza o <strong>{locale}</strong> como seu idioma padrão CustomerDefaultLanguage: Este cliente utiliza o {locale} como seu idioma padrão
Language: Linguagem Language: Linguagem
Phone: Móvel Phone: Móvel
Subject: Assunto Subject: Assunto

View File

@ -4,7 +4,6 @@ import { useI18n } from 'vue-i18n';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { QBtn, useQuasar } from 'quasar'; import { QBtn, useQuasar } from 'quasar';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue'; import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
import { toDateTimeFormat } from 'src/filters/date'; import { toDateTimeFormat } from 'src/filters/date';
import VnTable from 'src/components/VnTable/VnTable.vue'; import VnTable from 'src/components/VnTable/VnTable.vue';
@ -74,12 +73,11 @@ const tableRef = ref();
<template> <template>
<VnTable <VnTable
ref="tableRef" ref="tableRef"
data-key="ClientSamples" data-key="CustomerSamples"
auto-load auto-load
:filter="filter" :user-filter="filter"
url="ClientSamples" url="ClientSamples"
:columns="columns" :columns="columns"
:pagination="{ rowsPerPage: 12 }"
:disable-option="{ card: true }" :disable-option="{ card: true }"
:right-search="false" :right-search="false"
:rows="rows" :rows="rows"

View File

@ -130,8 +130,21 @@ const onSubmit = async () => {
const deleteEvent = async () => { const deleteEvent = async () => {
if (!props.event) return; if (!props.event) return;
const exclusionId = props.event?.zoneExclusionFk || props.event?.id; if (!props.event.created) {
await axios.delete(`Zones/${route.params.id}/exclusions/${exclusionId}`); const filter = {
where: {
dated: dated.value,
},
};
const params = { filter: JSON.stringify(filter) };
const { data: res } = await axios.get(`Zones/${route.params.id}/exclusions`, {
params,
});
if (res) await axios.delete(`Zones/${route.params.id}/exclusions/${res[0].id}`);
} else {
const exclusionId = props.event?.zoneExclusionFk || props.event?.id;
await axios.delete(`Zones/${route.params.id}/exclusions/${exclusionId}`);
}
await refetchEvents(); await refetchEvents();
}; };
@ -143,7 +156,7 @@ const refetchEvents = async () => {
}; };
onMounted(() => { onMounted(() => {
if (props.event) { if (props.event && props.event.dated) {
dated.value = props.event?.dated; dated.value = props.event?.dated;
excludeType.value = excludeType.value =
props.eventType === 'geoExclusion' ? 'specificLocations' : 'all'; props.eventType === 'geoExclusion' ? 'specificLocations' : 'all';

View File

@ -56,6 +56,7 @@ const isNew = computed(() => props.isNewMode);
const eventInclusionFormData = ref({ wdays: [] }); const eventInclusionFormData = ref({ wdays: [] });
const dated = ref(props.date || Date.vnNew()); const dated = ref(props.date || Date.vnNew());
const _inclusionType = ref('indefinitely'); const _inclusionType = ref('indefinitely');
const hasDeletedEvent = ref(false);
const inclusionType = computed({ const inclusionType = computed({
get: () => _inclusionType.value, get: () => _inclusionType.value,
set: (val) => { set: (val) => {
@ -84,7 +85,7 @@ const createEvent = async () => {
} }
const zoneIds = props.zoneIds?.length ? props.zoneIds : [route.params.id]; const zoneIds = props.zoneIds?.length ? props.zoneIds : [route.params.id];
for (const id of zoneIds) { for (const zoneId of zoneIds) {
let today = eventInclusionFormData.value.dated let today = eventInclusionFormData.value.dated
? moment(eventInclusionFormData.value.dated) ? moment(eventInclusionFormData.value.dated)
: moment(dated.value); : moment(dated.value);
@ -92,7 +93,7 @@ const createEvent = async () => {
const { data } = await axios.get(`Zones/getEventsFiltered`, { const { data } = await axios.get(`Zones/getEventsFiltered`, {
params: { params: {
zoneFk: id, zoneFk: zoneId,
started: today, started: today,
ended: lastDay, ended: lastDay,
}, },
@ -106,28 +107,19 @@ const createEvent = async () => {
await axios.delete( await axios.delete(
`Zones/${existsExclusion?.zoneFk}/exclusions/${existsExclusion?.id}`, `Zones/${existsExclusion?.zoneFk}/exclusions/${existsExclusion?.id}`,
); );
await refetchEvents();
hasDeletedEvent.value = true;
} }
const {
dated: formDated,
started,
ended,
type,
weekDays,
wdays,
} = eventInclusionFormData.value;
const payload = { delete eventInclusionFormData.value.id;
dated: formDated, if (isNew.value || hasDeletedEvent.value)
started, await axios.post(`Zones/${zoneId}/events`, eventInclusionFormData.value);
ended, else
type, await axios.put(
weekDays, `Zones/${zoneId}/events/${props.event?.id}`,
wdays, eventInclusionFormData.value,
}; );
hasDeletedEvent.value = false;
if (isNew.value || props.eventType === 'exclusion')
await axios.post(`Zones/${id}/events`, payload);
else await axios.put(`Zones/${id}/events/${props.event?.id}`, payload);
} }
quasar.notify({ quasar.notify({
message: t('globals.dataSaved'), message: t('globals.dataSaved'),