diff --git a/src/pages/Ticket/Card/BasicData/TicketBasicDataForm.vue b/src/pages/Ticket/Card/BasicData/TicketBasicDataForm.vue
index f5ce8a0f3..ee5f5b8d4 100644
--- a/src/pages/Ticket/Card/BasicData/TicketBasicDataForm.vue
+++ b/src/pages/Ticket/Card/BasicData/TicketBasicDataForm.vue
@@ -16,12 +16,9 @@ import { useAcl } from 'src/composables/useAcl';
import { useValidator } from 'src/composables/useValidator';
import { toTimeFormat } from 'filters/date.js';
-const $props = defineProps({
- formData: {
- type: Object,
- required: true,
- default: () => ({}),
- },
+const formData = defineModel({
+ type: Object,
+ required: true,
});
const emit = defineEmits(['updateForm']);
@@ -40,7 +37,6 @@ const agenciesOptions = ref([]);
const zonesOptions = ref([]);
const addresses = ref([]);
const zoneSelectRef = ref();
-const formData = ref($props.formData);
watch(
() => formData.value,
@@ -69,75 +65,44 @@ const zoneWhere = computed(() => {
: {};
});
-const getLanded = async (params) => {
- try {
- const validParams =
- shipped.value && addressId.value && agencyModeId.value && warehouseId.value;
- if (!validParams) return;
+async function getLanded(params) {
+ getDate(`Agencies/getLanded`, params);
+}
- formData.value.zoneFk = null;
- zonesOptions.value = [];
- const { data } = await axios.get(`Agencies/getLanded`, { params });
- if (data) {
- formData.value.zoneFk = data.zoneFk;
- formData.value.landed = data.landed;
- formData.value.shipped = params.shipped;
- }
- } catch (error) {
- console.error(error);
- notify(t('basicData.noDeliveryZoneAvailable'), 'negative');
+async function getShipped(params) {
+ getDate(`Agencies/getShipped`, params);
+}
+
+async function getDate(query, params) {
+ for (const param in params) {
+ if (!params[param]) return;
}
-};
-const getShipped = async (params) => {
- try {
- const validParams =
- landed.value && addressId.value && agencyModeId.value && warehouseId.value;
- if (!validParams) return;
+ formData.value.zoneFk = null;
+ zonesOptions.value = [];
+ const { data } = await axios.get(query, { params });
+ if (!data) return notify(t('basicData.noDeliveryZoneAvailable'), 'negative');
- formData.value.zoneFk = null;
- zonesOptions.value = [];
- const { data } = await axios.get(`Agencies/getShipped`, { params });
- if (data) {
- formData.value.zoneFk = data.zoneFk;
- formData.value.landed = params.landed;
- formData.value.shipped = data.shipped;
- } else {
- notify(t('basicData.noDeliveryZoneAvailable'), 'negative');
- }
- } catch (error) {
- console.error(error);
- notify(t('basicData.noDeliveryZoneAvailable'), 'negative');
- }
-};
+ formData.value.zoneFk = data.zoneFk;
+ if (data.landed) formData.value.landed = data.landed;
+ if (data.shipped) formData.value.shipped = data.shipped;
+}
const onChangeZone = async (zoneId) => {
- try {
- formData.value.agencyModeFk = null;
- const { data } = await axios.get(`Zones/${zoneId}`);
- formData.value.agencyModeFk = data.agencyModeFk;
- } catch (error) {
- console.error(error);
- }
+ formData.value.agencyModeFk = null;
+ const { data } = await axios.get(`Zones/${zoneId}`);
+ formData.value.agencyModeFk = data.agencyModeFk;
};
const onChangeAddress = async (addressId) => {
- try {
- formData.value.nickname = null;
- const { data } = await axios.get(`Addresses/${addressId}`);
- formData.value.nickname = data.nickname;
- } catch (error) {
- console.error(error);
- }
+ formData.value.nickname = null;
+ const { data } = await axios.get(`Addresses/${addressId}`);
+ formData.value.nickname = data.nickname;
};
const getClientDefaultAddress = async (clientId) => {
- try {
- const { data } = await axios.get(`Clients/${clientId}`);
- if (data) addressId.value = data.defaultAddressFk;
- } catch (error) {
- console.error(error);
- }
+ const { data } = await axios.get(`Clients/${clientId}`);
+ if (data) addressId.value = data.defaultAddressFk;
};
const clientAddressesList = async (value) => {
@@ -189,18 +154,26 @@ const clientId = computed({
},
});
-const landed = computed({
- get: () => formData.value?.landed,
- set: (val) => {
- formData.value.landed = val;
- getShipped({
- landed: val,
+function addDateParams(obj) {
+ return {
+ ...obj,
+ ...{
addressFk: formData.value?.addressFk,
agencyModeFk: formData.value?.agencyModeFk,
warehouseFk: formData.value?.warehouseFk,
- });
- },
-});
+ },
+ };
+}
+
+async function setLanded(landed) {
+ if (!landed) return;
+ getShipped(addDateParams({ landed }));
+}
+
+async function setShipped(shipped) {
+ if (!shipped) return;
+ getLanded(addDateParams({ shipped }));
+}
const agencyModeId = computed({
get: () => formData.value.agencyModeFk,
@@ -248,21 +221,6 @@ const warehouseId = computed({
},
});
-const shipped = computed({
- get: () => formData.value?.shipped,
- set: (val) => {
- if (new Date(formData.value?.shipped).toDateString() != val.toDateString())
- val.setHours(0, 0, 0, 0);
- formData.value.shipped = val;
- getLanded({
- shipped: val,
- addressFk: formData.value?.addressFk,
- agencyModeFk: formData.value?.agencyModeFk,
- warehouseFk: formData.value?.warehouseFk,
- });
- },
-});
-
const onFormModelInit = () => {
if (formData.value?.clientFk) clientAddressesList(formData.value?.clientFk);
};
@@ -463,18 +421,21 @@ async function getZone(options) {
v-model="formData.shipped"
:required="true"
:rules="validate('basicData.shipped')"
+ @update:model-value="setShipped"
/>
diff --git a/src/pages/Ticket/Card/BasicData/TicketBasicDataView.vue b/src/pages/Ticket/Card/BasicData/TicketBasicDataView.vue
index 92640f898..851593bff 100644
--- a/src/pages/Ticket/Card/BasicData/TicketBasicDataView.vue
+++ b/src/pages/Ticket/Card/BasicData/TicketBasicDataView.vue
@@ -70,60 +70,51 @@ const isFormInvalid = () => {
};
const getPriceDifference = async () => {
- try {
- const params = {
- landed: formData.value.landed,
- addressId: formData.value.addressFk,
- agencyModeId: formData.value.agencyModeFk,
- zoneId: formData.value.zoneFk,
- warehouseId: formData.value.warehouseFk,
- shipped: formData.value.shipped,
- };
- const { data } = await axios.post(
- `tickets/${formData.value.id}/priceDifference`,
- params
- );
- formData.value.sale = data;
- } catch (error) {
- console.error(error);
- }
+ const params = {
+ landed: formData.value.landed,
+ addressId: formData.value.addressFk,
+ agencyModeId: formData.value.agencyModeFk,
+ zoneId: formData.value.zoneFk,
+ warehouseId: formData.value.warehouseFk,
+ shipped: formData.value.shipped,
+ };
+ const { data } = await axios.post(
+ `tickets/${formData.value.id}/priceDifference`,
+ params
+ );
+ formData.value.sale = data;
};
const submit = async () => {
- try {
- if (!formData.value.option)
- return notify(t('basicData.chooseAnOption'), 'negative');
+ if (!formData.value.option) return notify(t('basicData.chooseAnOption'), 'negative');
- const params = {
- clientFk: formData.value.clientFk,
- nickname: formData.value.nickname,
- agencyModeFk: formData.value.agencyModeFk,
- addressFk: formData.value.addressFk,
- zoneFk: formData.value.zoneFk,
- warehouseFk: formData.value.warehouseFk,
- companyFk: formData.value.companyFk,
- shipped: formData.value.shipped,
- landed: formData.value.landed,
- isDeleted: formData.value.isDeleted,
- option: formData.value.option,
- isWithoutNegatives: formData.value.withoutNegatives,
- withWarningAccept: formData.value.withWarningAccept,
- keepPrice: false,
- };
+ const params = {
+ clientFk: formData.value.clientFk,
+ nickname: formData.value.nickname,
+ agencyModeFk: formData.value.agencyModeFk,
+ addressFk: formData.value.addressFk,
+ zoneFk: formData.value.zoneFk,
+ warehouseFk: formData.value.warehouseFk,
+ companyFk: formData.value.companyFk,
+ shipped: formData.value.shipped,
+ landed: formData.value.landed,
+ isDeleted: formData.value.isDeleted,
+ option: formData.value.option,
+ isWithoutNegatives: formData.value.withoutNegatives,
+ withWarningAccept: formData.value.withWarningAccept,
+ keepPrice: false,
+ };
- const { data } = await axios.post(
- `tickets/${formData.value.id}/componentUpdate`,
- params
- );
+ const { data } = await axios.post(
+ `tickets/${formData.value.id}/componentUpdate`,
+ params
+ );
- if (!data) return;
+ if (!data) return;
- const ticketToMove = data.id;
- notify(t('basicData.unroutedTicket'), 'positive');
- router.push({ name: 'TicketSummary', params: { id: ticketToMove } });
- } catch (error) {
- console.error(error);
- }
+ const ticketToMove = data.id;
+ notify(t('basicData.unroutedTicket'), 'positive');
+ router.push({ name: 'TicketSummary', params: { id: ticketToMove } });
};
const submitWithNegatives = async () => {
@@ -167,7 +158,7 @@ onBeforeMount(async () => await getTicketData());
(formData = $event)"
- :form-data="formData"
+ v-model="formData"
/>