{{ t(`params.${tag.label}`) }}:
diff --git a/src/pages/Zone/Card/ZoneEventExclusionForm.vue b/src/pages/Zone/Card/ZoneEventExclusionForm.vue
index 582a8bbad..89a6e02f8 100644
--- a/src/pages/Zone/Card/ZoneEventExclusionForm.vue
+++ b/src/pages/Zone/Card/ZoneEventExclusionForm.vue
@@ -68,7 +68,7 @@ const arrayData = useArrayData('ZoneEvents');
const exclusionGeoCreate = async () => {
const params = {
zoneFk: parseInt(route.params.id),
- date: dated,
+ date: dated.value,
geoIds: tickedNodes.value,
};
await axios.post('Zones/exclusionGeo', params);
@@ -101,9 +101,17 @@ const exclusionCreate = async () => {
const existsEvent = data.events.find(
(event) => toDateFormat(event.dated) === toDateFormat(dated.value),
);
+ const existsGeoEvent = data.geoExclusions.find(
+ (event) => toDateFormat(event.dated) === toDateFormat(dated.value),
+ );
if (existsEvent) {
await axios.delete(`Zones/${existsEvent?.zoneFk}/events/${existsEvent?.id}`);
}
+ if (existsGeoEvent) {
+ await axios.delete(
+ `Zones/${existsGeoEvent?.zoneFk}/exclusions/${existsGeoEvent?.zoneExclusionFk}`,
+ );
+ }
if (isNew.value || props.event?.type) await axios.post(`${url}`, [body]);
else await axios.put(`${url}/${props.event?.id}`, body);
@@ -122,8 +130,21 @@ const onSubmit = async () => {
const deleteEvent = async () => {
if (!props.event) return;
- const exclusionId = props.event?.zoneExclusionFk || props.event?.id;
- await axios.delete(`Zones/${route.params.id}/exclusions/${exclusionId}`);
+ if (!props.event.created) {
+ 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();
};
@@ -135,7 +156,7 @@ const refetchEvents = async () => {
};
onMounted(() => {
- if (props.event) {
+ if (props.event && props.event.dated) {
dated.value = props.event?.dated;
excludeType.value =
props.eventType === 'geoExclusion' ? 'specificLocations' : 'all';
diff --git a/src/pages/Zone/Card/ZoneEventInclusionForm.vue b/src/pages/Zone/Card/ZoneEventInclusionForm.vue
index 8b02c2d84..fad51765c 100644
--- a/src/pages/Zone/Card/ZoneEventInclusionForm.vue
+++ b/src/pages/Zone/Card/ZoneEventInclusionForm.vue
@@ -56,6 +56,7 @@ const isNew = computed(() => props.isNewMode);
const eventInclusionFormData = ref({ wdays: [] });
const dated = ref(props.date || Date.vnNew());
const _inclusionType = ref('indefinitely');
+const hasDeletedEvent = ref(false);
const inclusionType = computed({
get: () => _inclusionType.value,
set: (val) => {
@@ -84,7 +85,7 @@ const createEvent = async () => {
}
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
? moment(eventInclusionFormData.value.dated)
: moment(dated.value);
@@ -92,7 +93,7 @@ const createEvent = async () => {
const { data } = await axios.get(`Zones/getEventsFiltered`, {
params: {
- zoneFk: id,
+ zoneFk: zoneId,
started: today,
ended: lastDay,
},
@@ -106,15 +107,19 @@ const createEvent = async () => {
await axios.delete(
`Zones/${existsExclusion?.zoneFk}/exclusions/${existsExclusion?.id}`,
);
+ await refetchEvents();
+ hasDeletedEvent.value = true;
}
- if (isNew.value)
- await axios.post(`Zones/${id}/events`, eventInclusionFormData.value);
+ delete eventInclusionFormData.value.id;
+ if (isNew.value || hasDeletedEvent.value)
+ await axios.post(`Zones/${zoneId}/events`, eventInclusionFormData.value);
else
await axios.put(
- `Zones/${id}/events/${props.event?.id}`,
+ `Zones/${zoneId}/events/${props.event?.id}`,
eventInclusionFormData.value,
);
+ hasDeletedEvent.value = false;
}
quasar.notify({
message: t('globals.dataSaved'),
diff --git a/test/cypress/integration/ticket/ticketSale.spec.js b/test/cypress/integration/ticket/ticketSale.spec.js
index 0ae599e15..6b2104392 100644
--- a/test/cypress/integration/ticket/ticketSale.spec.js
+++ b/test/cypress/integration/ticket/ticketSale.spec.js
@@ -2,7 +2,7 @@
const firstRow = 'tbody > :nth-child(1)';
describe('TicketSale', () => {
- describe.skip('#23', () => {
+ describe.skip('Ticket #23', () => {
beforeEach(() => {
cy.login('claimManager');
cy.viewport(1920, 1080);