{{ t('Add contact') }}
diff --git a/src/pages/Customer/Card/CustomerCreditContracts.vue b/src/pages/Customer/Card/CustomerCreditContracts.vue
index 0ff074793c..a49faeb8dc 100644
--- a/src/pages/Customer/Card/CustomerCreditContracts.vue
+++ b/src/pages/Customer/Card/CustomerCreditContracts.vue
@@ -75,7 +75,7 @@ const updateData = () => {
{
color="primary"
fab
icon="add"
- shortcut="+"
+ v-shortcut="'+'"
/>
{{ t('New contract') }}
diff --git a/src/pages/Customer/Card/CustomerDescriptor.vue b/src/pages/Customer/Card/CustomerDescriptor.vue
index ce402541d2..a646ad299e 100644
--- a/src/pages/Customer/Card/CustomerDescriptor.vue
+++ b/src/pages/Customer/Card/CustomerDescriptor.vue
@@ -1,5 +1,5 @@
-
+
diff --git a/src/pages/Department/Card/DepartmentCard.vue b/src/pages/Department/Card/DepartmentCard.vue
index 8597e37cff..64ea24d42d 100644
--- a/src/pages/Department/Card/DepartmentCard.vue
+++ b/src/pages/Department/Card/DepartmentCard.vue
@@ -7,7 +7,7 @@ import DepartmentDescriptor from 'pages/Department/Card/DepartmentDescriptor.vue
class="q-pa-md column items-center"
v-bind="{ ...$attrs }"
data-key="Department"
- base-url="Departments"
+ url="Departments"
:descriptor="DepartmentDescriptor"
/>
-
\ No newline at end of file
+
diff --git a/src/pages/Department/Card/DepartmentDescriptor.vue b/src/pages/Department/Card/DepartmentDescriptor.vue
index b219ccfe12..ecd7fa36c6 100644
--- a/src/pages/Department/Card/DepartmentDescriptor.vue
+++ b/src/pages/Department/Card/DepartmentDescriptor.vue
@@ -5,7 +5,6 @@ import { useI18n } from 'vue-i18n';
import { useVnConfirm } from 'composables/useVnConfirm';
import VnLv from 'src/components/ui/VnLv.vue';
import CardDescriptor from 'src/components/ui/CardDescriptor.vue';
-import useCardDescription from 'src/composables/useCardDescription';
import axios from 'axios';
import useNotify from 'src/composables/useNotify.js';
@@ -32,15 +31,6 @@ const entityId = computed(() => {
return $props.id || route.params.id;
});
-const department = ref();
-
-const data = ref(useCardDescription());
-
-const setData = (entity) => {
- if (!entity) return;
- data.value = useCardDescription(entity.name, entity.id);
-};
-
const removeDepartment = async () => {
await axios.post(`/Departments/${entityId.value}/removeChild`, entityId.value);
router.push({ name: 'WorkerDepartment' });
@@ -54,17 +44,9 @@ const { openConfirmationModal } = useVnConfirm();
ref="DepartmentDescriptorRef"
module="Department"
:url="`Departments/${entityId}`"
- :title="data.title"
- :subtitle="data.subtitle"
:summary="$props.summary"
:to-module="{ name: 'WorkerDepartment' }"
- @on-fetch="
- (data) => {
- department = data;
- setData(data);
- }
- "
- data-key="department"
+ data-key="Department"
>
diff --git a/src/pages/Department/Card/DepartmentSummary.vue b/src/pages/Department/Card/DepartmentSummary.vue
index d41f8622b0..49c46b236b 100644
--- a/src/pages/Department/Card/DepartmentSummary.vue
+++ b/src/pages/Department/Card/DepartmentSummary.vue
@@ -27,7 +27,7 @@ onMounted(async () => {
{
>
-
-
-
-
- {{ scope.opt?.name }}
-
- {{ scope.opt?.nickname }}, {{ scope.opt?.id }}
-
-
-
-
-
+ />
import VnCardBeta from 'components/common/VnCardBeta.vue';
import EntryDescriptor from './EntryDescriptor.vue';
-import filter from './EntryFilter.js'
+import filter from './EntryFilter.js';
diff --git a/src/pages/Entry/Card/EntryNotes.vue b/src/pages/Entry/Card/EntryNotes.vue
index 55cac04379..459c3b069a 100644
--- a/src/pages/Entry/Card/EntryNotes.vue
+++ b/src/pages/Entry/Card/EntryNotes.vue
@@ -17,7 +17,7 @@ const selected = ref([]);
const sortEntryObservationOptions = (data) => {
entryObservationsOptions.value = [...data].sort((a, b) =>
- a.description.localeCompare(b.description)
+ a.description.localeCompare(b.description),
);
};
@@ -142,7 +142,7 @@ const columns = computed(() => [
fab
color="primary"
icon="add"
- shortcut="+"
+ v-shortcut="'+'"
@click="entryObservationsRef.insert()"
/>
diff --git a/src/pages/Entry/EntryBuysTableDialog.vue b/src/pages/Entry/EntryBuysTableDialog.vue
index a2d8c9117f..86a9b018f4 100644
--- a/src/pages/Entry/EntryBuysTableDialog.vue
+++ b/src/pages/Entry/EntryBuysTableDialog.vue
@@ -134,6 +134,7 @@ function downloadCSV(rows) {
@click="
openReport(`Entries/${entityId}/labelSupplier`)
"
+ data-cy="printLabelsBtn"
/>
diff --git a/src/pages/Entry/EntryCreate.vue b/src/pages/Entry/EntryCreate.vue
index 1e84901588..358f7631c3 100644
--- a/src/pages/Entry/EntryCreate.vue
+++ b/src/pages/Entry/EntryCreate.vue
@@ -13,6 +13,7 @@ import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
import { useStateStore } from 'stores/useStateStore';
import { useState } from 'src/composables/useState';
import { toDate } from 'src/filters';
+import VnSelectSupplier from 'src/components/common/VnSelectSupplier.vue';
const state = useState();
const { t } = useI18n();
@@ -26,7 +27,6 @@ const newEntryForm = reactive({
travelFk: Number(route.query?.travelFk) || null,
companyFk: user.value.companyFk || null,
});
-const suppliersOptions = ref([]);
const travelsOptions = ref([]);
const companiesOptions = ref([]);
@@ -36,13 +36,6 @@ const redirectToEntryBasicData = (_, { id }) => {
- (suppliersOptions = data)"
- auto-load
- />
{
>
-
-
-
-
- {{ scope.opt?.nickname }}
-
- #{{ scope.opt?.id }}
-
-
-
-
-
+ />
{
es:
- Supplier: Proveedor
Travel: Envío
Company: Empresa
diff --git a/src/pages/Entry/EntryFilter.vue b/src/pages/Entry/EntryFilter.vue
index bc8b40aaaa..0f632c0ef3 100644
--- a/src/pages/Entry/EntryFilter.vue
+++ b/src/pages/Entry/EntryFilter.vue
@@ -7,6 +7,7 @@ import VnSelect from 'src/components/common/VnSelect.vue';
import VnInput from 'src/components/common/VnInput.vue';
import FetchData from 'components/FetchData.vue';
import VnInputDate from 'src/components/common/VnInputDate.vue';
+import VnSelectSupplier from 'src/components/common/VnSelectSupplier.vue';
const { t } = useI18n();
const props = defineProps({
@@ -115,34 +116,14 @@ const companiesOptions = ref([]);
-
-
-
-
-
- {{ scope.opt?.name}}
-
-
- {{ `#${scope.opt?.id } , ${ scope.opt?.nickname}` }}
-
-
-
-
-
+ />
@@ -202,4 +183,4 @@ const companiesOptions = ref([]);
-
\ No newline at end of file
+
diff --git a/src/pages/Entry/EntryLatestBuysFilter.vue b/src/pages/Entry/EntryLatestBuysFilter.vue
index 59dddce26c..235f29dfbc 100644
--- a/src/pages/Entry/EntryLatestBuysFilter.vue
+++ b/src/pages/Entry/EntryLatestBuysFilter.vue
@@ -7,6 +7,7 @@ import VnInputDate from 'src/components/common/VnInputDate.vue';
import VnInput from 'components/common/VnInput.vue';
import VnSelect from 'components/common/VnSelect.vue';
import ItemsFilterPanel from 'src/components/ItemsFilterPanel.vue';
+import VnSelectSupplier from 'src/components/common/VnSelectSupplier.vue';
const { t } = useI18n();
@@ -18,7 +19,6 @@ defineProps({
});
const itemTypeWorkersOptions = ref([]);
-const suppliersOptions = ref([]);
const tagValues = ref([]);
@@ -30,13 +30,6 @@ const tagValues = ref([]);
:filter="{ fields: ['id', 'nickname'], order: 'nickname ASC', limit: 30 }"
@on-fetch="(data) => (itemTypeWorkersOptions = data)"
/>
- (suppliersOptions = data)"
- />
@@ -57,31 +50,14 @@ const tagValues = ref([]);
-
-
-
-
-
- {{ scope.opt?.name}}
-
-
- {{ `#${scope.opt?.id } , ${ scope.opt?.nickname}` }}
-
-
-
-
-
+ />
diff --git a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue
index 498e673031..a3beabdb66 100644
--- a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue
+++ b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue
@@ -13,6 +13,7 @@ import VnInput from 'src/components/common/VnInput.vue';
import VnDms from 'src/components/common/VnDms.vue';
import VnConfirm from 'src/components/ui/VnConfirm.vue';
import axios from 'axios';
+import VnSelectSupplier from 'src/components/common/VnSelectSupplier.vue';
const { t } = useI18n();
@@ -115,27 +116,12 @@ function deleteFile(dmsFk) {
>
-
-
-
-
- {{
- `${scope.opt.id} - ${scope.opt.nickname}`
- }}
-
-
-
-
+ :required="true"
+ />
{
diff --git a/src/pages/InvoiceIn/Card/InvoiceInCard.vue b/src/pages/InvoiceIn/Card/InvoiceInCard.vue
index 8aa35f4d86..34cc26437a 100644
--- a/src/pages/InvoiceIn/Card/InvoiceInCard.vue
+++ b/src/pages/InvoiceIn/Card/InvoiceInCard.vue
@@ -1,47 +1,18 @@
diff --git a/src/pages/InvoiceIn/Card/InvoiceInDescriptor.vue b/src/pages/InvoiceIn/Card/InvoiceInDescriptor.vue
index da7bd4426b..acd55c0fa4 100644
--- a/src/pages/InvoiceIn/Card/InvoiceInDescriptor.vue
+++ b/src/pages/InvoiceIn/Card/InvoiceInDescriptor.vue
@@ -7,6 +7,7 @@ import { toCurrency, toDate } from 'src/filters';
import VnLv from 'src/components/ui/VnLv.vue';
import CardDescriptor from 'components/ui/CardDescriptor.vue';
import SupplierDescriptorProxy from 'src/pages/Supplier/Card/SupplierDescriptorProxy.vue';
+import filter from './InvoiceInFilter.js';
import InvoiceInDescriptorMenu from './InvoiceInDescriptorMenu.vue';
const $props = defineProps({ id: { type: Number, default: null } });
@@ -16,33 +17,10 @@ const { t } = useI18n();
const cardDescriptorRef = ref();
const entityId = computed(() => $props.id || +currentRoute.value.params.id);
const totalAmount = ref();
-
-const filter = {
- include: [
- {
- relation: 'supplier',
- scope: {
- include: {
- relation: 'contacts',
- scope: {
- where: {
- email: { neq: null },
- },
- },
- },
- },
- },
- {
- relation: 'invoiceInDueDay',
- },
- {
- relation: 'company',
- },
- {
- relation: 'currency',
- },
- ],
-};
+const config = ref();
+const cplusRectificationTypes = ref([]);
+const siiTypeInvoiceIns = ref([]);
+const invoiceCorrectionTypes = ref([]);
const invoiceInCorrection = reactive({ correcting: [], corrected: null });
const routes = reactive({
getSupplier: (id) => {
diff --git a/src/pages/InvoiceIn/Card/InvoiceInDescriptorMenu.vue b/src/pages/InvoiceIn/Card/InvoiceInDescriptorMenu.vue
index 5d521d1fc1..c3ab635c84 100644
--- a/src/pages/InvoiceIn/Card/InvoiceInDescriptorMenu.vue
+++ b/src/pages/InvoiceIn/Card/InvoiceInDescriptorMenu.vue
@@ -226,6 +226,7 @@ const createInvoiceInCorrection = async () => {
v-ripple
clickable
@click="triggerMenu('correct')"
+ data-cy="createCorrectiveItem"
>
{{ t('invoiceIn.descriptorMenu.createCorrective') }}... [
code != 'EUR';
function taxRate(invoiceInTax) {
const sageTaxTypeId = invoiceInTax.taxTypeSageFk;
const taxRateSelection = sageTaxTypes.value.find(
- (transaction) => transaction.id == sageTaxTypeId
+ (transaction) => transaction.id == sageTaxTypeId,
);
const taxTypeSage = taxRateSelection?.rate ?? 0;
const taxableBase = invoiceInTax?.taxableBase ?? 0;
@@ -131,14 +131,14 @@ function autocompleteExpense(evt, row, col) {
const param = isNaN(val) ? row[col.model] : val;
const lookup = expenses.value.find(
- ({ id }) => id == useAccountShortToStandard(param)
+ ({ id }) => id == useAccountShortToStandard(param),
);
expenseRef.value.vnSelectDialogRef.vnSelectRef.toggleOption(lookup);
}
-const taxableBaseTotal = computed(() => {
- return getTotal(invoiceInFormRef.value.formData, 'taxableBase', );
+const taxableBaseTotal = computed(() => {
+ return getTotal(invoiceInFormRef.value.formData, 'taxableBase');
});
const taxRateTotal = computed(() => {
@@ -147,13 +147,9 @@ const taxRateTotal = computed(() => {
});
});
-
const combinedTotal = computed(() => {
return +taxableBaseTotal.value + +taxRateTotal.value;
});
-
-
-
{
row.taxableBase = await getExchange(
val,
row.currencyFk,
- invoiceIn.issued
+ invoiceIn.issued,
);
}
"
@@ -426,7 +422,7 @@ const combinedTotal = computed(() => {
color="primary"
icon="add"
size="lg"
- shortcut="+"
+ v-shortcut="'+'"
round
@click="invoiceInFormRef.insert()"
>
diff --git a/src/pages/InvoiceIn/InvoiceInCreate.vue b/src/pages/InvoiceIn/InvoiceInCreate.vue
index c809e032bc..f6939169fc 100644
--- a/src/pages/InvoiceIn/InvoiceInCreate.vue
+++ b/src/pages/InvoiceIn/InvoiceInCreate.vue
@@ -12,6 +12,7 @@ import { useStateStore } from 'stores/useStateStore';
import { useState } from 'src/composables/useState';
import VnInputDate from 'src/components/common/VnInputDate.vue';
import VnInput from 'src/components/common/VnInput.vue';
+import VnSelectSupplier from 'src/components/common/VnSelectSupplier.vue';
const state = useState();
const { t } = useI18n();
@@ -60,28 +61,12 @@ const redirectToInvoiceInBasicData = (__, { id }) => {
>
-
-
-
-
- {{ scope.opt?.nickname }}
-
- #{{ scope.opt?.id }}
-
-
-
-
-
+ />
{
es:
- Supplier: Proveedor
Travel: Envío
Company: Empresa
diff --git a/src/pages/InvoiceIn/InvoiceInFilter.vue b/src/pages/InvoiceIn/InvoiceInFilter.vue
index 43b91c93f2..e010a1edb3 100644
--- a/src/pages/InvoiceIn/InvoiceInFilter.vue
+++ b/src/pages/InvoiceIn/InvoiceInFilter.vue
@@ -6,6 +6,7 @@ import VnInputDate from 'components/common/VnInputDate.vue';
import VnInputNumber from 'src/components/common/VnInputNumber.vue';
import { dateRange } from 'src/filters';
import { date } from 'quasar';
+import VnSelectSupplier from 'src/components/common/VnSelectSupplier.vue';
defineProps({ dataKey: { type: String, required: true } });
const dateFormat = 'YYYY-MM-DDTHH:mm:ss.SSSZ';
@@ -65,29 +66,12 @@ function handleDaysAgo(params, daysAgo) {
-
-
-
-
-
- {{ scope.opt?.name}}
-
-
- {{ `#${scope.opt?.id } , ${ scope.opt?.nickname}` }}
-
-
-
-
-
+ />
diff --git a/src/pages/InvoiceIn/InvoiceInList.vue b/src/pages/InvoiceIn/InvoiceInList.vue
index 251dfcd92b..e1723e3b17 100644
--- a/src/pages/InvoiceIn/InvoiceInList.vue
+++ b/src/pages/InvoiceIn/InvoiceInList.vue
@@ -14,6 +14,7 @@ import VnInput from 'src/components/common/VnInput.vue';
import VnInputDate from 'src/components/common/VnInputDate.vue';
import FetchData from 'src/components/FetchData.vue';
import VnSection from 'src/components/common/VnSection.vue';
+import VnSelectSupplier from 'src/components/common/VnSelectSupplier.vue';
const user = useState().getUser();
const { viewSummary } = useSummaryDialog();
@@ -148,7 +149,9 @@ const cols = computed(() => [
-
-
-
-
- {{ scope.opt?.nickname }}
-
- #{{ scope.opt?.id }}, {{ scope.opt?.name }}
-
-
-
-
-
+ />
import InvoiceOutDescriptor from './InvoiceOutDescriptor.vue';
import VnCardBeta from 'components/common/VnCardBeta.vue';
+import filter from './InvoiceOutFilter.js';
diff --git a/src/pages/InvoiceOut/Card/InvoiceOutDescriptor.vue b/src/pages/InvoiceOut/Card/InvoiceOutDescriptor.vue
index 209f1531e1..de614e9fc4 100644
--- a/src/pages/InvoiceOut/Card/InvoiceOutDescriptor.vue
+++ b/src/pages/InvoiceOut/Card/InvoiceOutDescriptor.vue
@@ -8,8 +8,8 @@ import CustomerDescriptorProxy from 'pages/Customer/Card/CustomerDescriptorProxy
import VnLv from 'src/components/ui/VnLv.vue';
import InvoiceOutDescriptorMenu from './InvoiceOutDescriptorMenu.vue';
-import useCardDescription from 'src/composables/useCardDescription';
import { toCurrency, toDate } from 'src/filters';
+import filter from './InvoiceOutFilter.js';
const $props = defineProps({
id: {
@@ -26,30 +26,11 @@ const entityId = computed(() => {
return $props.id || route.params.id;
});
-const filter = {
- include: [
- {
- relation: 'company',
- scope: {
- fields: ['id', 'code'],
- },
- },
- {
- relation: 'client',
- scope: {
- fields: ['id', 'name', 'email'],
- },
- },
- ],
-};
-
const descriptor = ref();
function ticketFilter(invoice) {
return JSON.stringify({ refFk: invoice.ref });
}
-const data = ref(useCardDescription());
-const setData = (entity) => (data.value = useCardDescription(entity.ref, entity.id));
@@ -58,10 +39,8 @@ const setData = (entity) => (data.value = useCardDescription(entity.ref, entity.
module="InvoiceOut"
:url="`InvoiceOuts/${entityId}`"
:filter="filter"
- :title="data.title"
- :subtitle="data.subtitle"
- @on-fetch="setData"
- data-key="invoiceOutData"
+ title="ref"
+ data-key="InvoiceOut"
width="lg-width"
>
diff --git a/src/pages/InvoiceOut/Card/InvoiceOutFilter.js b/src/pages/InvoiceOut/Card/InvoiceOutFilter.js
new file mode 100644
index 0000000000..48b20faf69
--- /dev/null
+++ b/src/pages/InvoiceOut/Card/InvoiceOutFilter.js
@@ -0,0 +1,16 @@
+export default {
+ include: [
+ {
+ relation: 'company',
+ scope: {
+ fields: ['id', 'code'],
+ },
+ },
+ {
+ relation: 'client',
+ scope: {
+ fields: ['id', 'name', 'email'],
+ },
+ },
+ ],
+};
diff --git a/src/pages/InvoiceOut/InvoiceOutList.vue b/src/pages/InvoiceOut/InvoiceOutList.vue
index b121bc6ea1..9398ded648 100644
--- a/src/pages/InvoiceOut/InvoiceOutList.vue
+++ b/src/pages/InvoiceOut/InvoiceOutList.vue
@@ -368,7 +368,7 @@ watchEffect(selectedRows);
{
class="cursor-pointer fill-icon-on-hover"
color="primary"
icon="add_circle"
- shortcut="+"
+ v-shortcut="'+'"
flat
>
diff --git a/src/pages/Item/Card/ItemBasicData.vue b/src/pages/Item/Card/ItemBasicData.vue
index 4c96401f3b..7e56450242 100644
--- a/src/pages/Item/Card/ItemBasicData.vue
+++ b/src/pages/Item/Card/ItemBasicData.vue
@@ -54,9 +54,8 @@ const onIntrastatCreated = (response, formData) => {
auto-load
/>
diff --git a/src/pages/Item/Card/ItemCard.vue b/src/pages/Item/Card/ItemCard.vue
index 2546982eb7..610b77a02a 100644
--- a/src/pages/Item/Card/ItemCard.vue
+++ b/src/pages/Item/Card/ItemCard.vue
@@ -5,7 +5,7 @@ import ItemDescriptor from './ItemDescriptor.vue';
diff --git a/src/pages/Item/Card/ItemDescriptor.vue b/src/pages/Item/Card/ItemDescriptor.vue
index c6fee8540e..7e7057a90c 100644
--- a/src/pages/Item/Card/ItemDescriptor.vue
+++ b/src/pages/Item/Card/ItemDescriptor.vue
@@ -7,7 +7,6 @@ import CardDescriptor from 'src/components/ui/CardDescriptor.vue';
import VnLv from 'src/components/ui/VnLv.vue';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
import ItemDescriptorImage from 'src/pages/Item/Card/ItemDescriptorImage.vue';
-import useCardDescription from 'src/composables/useCardDescription';
import axios from 'axios';
import { dashIfEmpty } from 'src/filters';
import { useArrayData } from 'src/composables/useArrayData';
@@ -55,10 +54,8 @@ onMounted(async () => {
mounted.value = true;
});
-const data = ref(useCardDescription());
const setData = async (entity) => {
if (!entity) return;
- data.value = useCardDescription(entity.name, entity.id);
await updateStock();
};
@@ -90,10 +87,8 @@ const updateStock = async () => {
{
inventoriedDate.value =
(await axios.get('Configs/findOne')).data?.inventoried || today;
- if (query.warehouseFk) ref.warehouseFk = query.warehouseFk;
+ if (query.warehouseFk) ref.warehouseFk = +query.warehouseFk;
else if (!ref.warehouseFk && user.value) ref.warehouseFk = user.value.warehouseFk;
if (ref.date) showWhatsBeforeInventory.value = true;
ref.itemFk = route.params.id;
@@ -143,7 +143,7 @@ onMounted(async () => {
const fetchItemBalances = async () => await arrayDataItemBalances.fetch({});
const getBadgeAttrs = (_date) => {
- const isSameDate = date.isSameDate(today.value, _date);
+ const isSameDate = date.isSameDate(today, _date);
const attrs = {
'text-color': isSameDate ? 'black' : 'white',
color: isSameDate ? 'warning' : 'transparent',
@@ -153,8 +153,6 @@ const getBadgeAttrs = (_date) => {
const scrollToToday = async () => {
await nextTick();
- const today = Date.vnNew();
- today.setHours(0, 0, 0, 0);
const todayCell = document.querySelector(`td[data-date="${today.toISOString()}"]`);
if (todayCell) {
todayCell.scrollIntoView({ behavior: 'smooth', block: 'center' });
diff --git a/src/pages/Item/Card/ItemTags.vue b/src/pages/Item/Card/ItemTags.vue
index 5876cf8dc1..ed23ab5a68 100644
--- a/src/pages/Item/Card/ItemTags.vue
+++ b/src/pages/Item/Card/ItemTags.vue
@@ -175,7 +175,7 @@ const insertTag = (rows) => {
@click="insertTag(rows)"
color="primary"
icon="add"
- shortcut="+"
+ v-shortcut="'+'"
fab
>
diff --git a/src/pages/Item/ItemListFilter.vue b/src/pages/Item/ItemListFilter.vue
index c805a95ea6..22e948e06d 100644
--- a/src/pages/Item/ItemListFilter.vue
+++ b/src/pages/Item/ItemListFilter.vue
@@ -12,6 +12,7 @@ import { QCheckbox } from 'quasar';
import { useArrayData } from 'composables/useArrayData';
import { useValidator } from 'src/composables/useValidator';
import axios from 'axios';
+import VnSelectSupplier from 'src/components/common/VnSelectSupplier.vue';
const { t } = useI18n();
@@ -246,34 +247,14 @@ onMounted(async () => {
-
-
-
-
-
- {{ scope.opt?.name }}
-
-
- {{ `#${scope.opt?.id} , ${scope.opt?.nickname}` }}
-
-
-
-
-
+ />
diff --git a/src/pages/Item/ItemType/Card/ItemTypeBasicData.vue b/src/pages/Item/ItemType/Card/ItemTypeBasicData.vue
index b4032ff8a5..475dffd8b9 100644
--- a/src/pages/Item/ItemType/Card/ItemTypeBasicData.vue
+++ b/src/pages/Item/ItemType/Card/ItemTypeBasicData.vue
@@ -40,12 +40,7 @@ const itemPackingTypesOptions = ref([]);
}"
auto-load
/>
-
+
diff --git a/src/pages/Item/ItemType/Card/ItemTypeCard.vue b/src/pages/Item/ItemType/Card/ItemTypeCard.vue
index fa51e428e0..84e810de51 100644
--- a/src/pages/Item/ItemType/Card/ItemTypeCard.vue
+++ b/src/pages/Item/ItemType/Card/ItemTypeCard.vue
@@ -1,12 +1,14 @@
diff --git a/src/pages/Item/ItemType/Card/ItemTypeDescriptor.vue b/src/pages/Item/ItemType/Card/ItemTypeDescriptor.vue
index 09d3dbce57..0f71ad1f1a 100644
--- a/src/pages/Item/ItemType/Card/ItemTypeDescriptor.vue
+++ b/src/pages/Item/ItemType/Card/ItemTypeDescriptor.vue
@@ -1,12 +1,11 @@
-
-
-
-
+
+
+
{{ entity.worker?.firstName }}
-
+
-
diff --git a/src/pages/Item/ItemType/Card/ItemTypeFilter.js b/src/pages/Item/ItemType/Card/ItemTypeFilter.js
new file mode 100644
index 0000000000..5651d368d8
--- /dev/null
+++ b/src/pages/Item/ItemType/Card/ItemTypeFilter.js
@@ -0,0 +1,8 @@
+export default {
+ include: [
+ { relation: 'worker' },
+ { relation: 'category' },
+ { relation: 'itemPackingType' },
+ { relation: 'temperature' },
+ ],
+};
diff --git a/src/pages/Item/ItemType/Card/ItemTypeSummary.vue b/src/pages/Item/ItemType/Card/ItemTypeSummary.vue
index 9ba774ca46..3b63c4b63e 100644
--- a/src/pages/Item/ItemType/Card/ItemTypeSummary.vue
+++ b/src/pages/Item/ItemType/Card/ItemTypeSummary.vue
@@ -3,7 +3,7 @@ import { ref, computed, onUpdated } from 'vue';
import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
-
+import filter from './ItemTypeFilter.js';
import CardSummary from 'components/ui/CardSummary.vue';
import VnLv from 'src/components/ui/VnLv.vue';
import VnToSummary from 'src/components/ui/VnToSummary.vue';
@@ -21,15 +21,6 @@ const $props = defineProps({
},
});
-const itemTypeFilter = {
- include: [
- { relation: 'worker' },
- { relation: 'category' },
- { relation: 'itemPackingType' },
- { relation: 'temperature' },
- ],
-};
-
const entityId = computed(() => $props.id || route.params.id);
const summaryRef = ref();
const itemType = ref();
@@ -43,8 +34,8 @@ async function setItemTypeData(data) {
setItemTypeData(data)"
class="full-width"
>
diff --git a/src/pages/Item/ItemTypeList.vue b/src/pages/Item/ItemTypeList.vue
index 93e98a8ae8..d4030e1d89 100644
--- a/src/pages/Item/ItemTypeList.vue
+++ b/src/pages/Item/ItemTypeList.vue
@@ -5,6 +5,9 @@ import VnTable from 'components/VnTable/VnTable.vue';
import FetchData from 'components/FetchData.vue';
import WorkerDescriptorProxy from '../Worker/Card/WorkerDescriptorProxy.vue';
import VnSection from 'src/components/common/VnSection.vue';
+import VnInput from 'src/components/common/VnInput.vue';
+import VnSelectWorker from 'src/components/common/VnSelectWorker.vue';
+import VnSelect from 'src/components/common/VnSelect.vue';
const { t } = useI18n();
const tableRef = ref();
@@ -60,20 +63,17 @@ const columns = computed(() => [
label: t('code'),
isTitle: true,
cardVisible: true,
- create: true,
},
{
align: 'left',
name: 'name',
label: t('globals.name'),
cardVisible: true,
- create: true,
},
{
align: 'left',
label: t('worker'),
name: 'workerFk',
- create: true,
component: 'select',
attrs: {
url: 'Workers/search',
@@ -100,7 +100,6 @@ const columns = computed(() => [
align: 'left',
name: 'categoryFk',
label: t('ItemCategory'),
- create: true,
component: 'select',
attrs: {
options: itemCategoriesOptions.value,
@@ -112,7 +111,6 @@ const columns = computed(() => [
align: 'left',
name: 'Temperature',
label: t('Temperature'),
- create: true,
component: 'select',
attrs: {
options: temperatureOptions.value,
@@ -180,6 +178,29 @@ const columns = computed(() => [
+
+
+
+
+
+
+
diff --git a/src/pages/Monitor/Ticket/MonitorTickets.vue b/src/pages/Monitor/Ticket/MonitorTickets.vue
index e6b4631a00..3b5dccb56f 100644
--- a/src/pages/Monitor/Ticket/MonitorTickets.vue
+++ b/src/pages/Monitor/Ticket/MonitorTickets.vue
@@ -293,7 +293,7 @@ const columns = computed(() => [
title: t('globals.preview'),
icon: 'preview',
color: 'primary',
- action: (row) => viewSummary(row.id, TicketSummary),
+ action: (row) => viewSummary(row.id, TicketSummary, 'lg-width'),
isPrimary: true,
attrs: {
flat: true,
diff --git a/src/pages/Monitor/locale/en.yml b/src/pages/Monitor/locale/en.yml
index 21324087c4..496c8761a1 100644
--- a/src/pages/Monitor/locale/en.yml
+++ b/src/pages/Monitor/locale/en.yml
@@ -38,6 +38,7 @@ salesTicketsTable:
payMethod: Pay method
department: Department
packing: ITP
+ hasItemLost: Item lost
searchBar:
label: Search tickets
info: Search tickets by id or alias
diff --git a/src/pages/Monitor/locale/es.yml b/src/pages/Monitor/locale/es.yml
index 30afb1904b..f6a29879f0 100644
--- a/src/pages/Monitor/locale/es.yml
+++ b/src/pages/Monitor/locale/es.yml
@@ -39,6 +39,7 @@ salesTicketsTable:
payMethod: Método de pago
department: Departamento
packing: ITP
+ hasItemLost: Artículo perdido
searchBar:
label: Buscar tickets
info: Buscar tickets por identificador o alias
diff --git a/src/pages/Order/Card/CatalogFilterValueDialog.vue b/src/pages/Order/Card/CatalogFilterValueDialog.vue
index b91e7d229b..d1bd48c9e9 100644
--- a/src/pages/Order/Card/CatalogFilterValueDialog.vue
+++ b/src/pages/Order/Card/CatalogFilterValueDialog.vue
@@ -110,7 +110,7 @@ const getSelectedTagValues = async (tag) => {
{
});
addressList.value = data;
if (addressList.value?.length === 1) {
- state.get(ORDER_MODEL).addressFk = addressList.value[0].id;
+ state.get('Order').addressFk = addressList.value[0].id;
}
};
@@ -91,9 +90,8 @@ const onClientChange = async (clientId) => {
import VnCardBeta from 'components/common/VnCardBeta.vue';
import OrderDescriptor from 'pages/Order/Card/OrderDescriptor.vue';
+import filter from './OrderFilter.js';
diff --git a/src/pages/Order/Card/OrderCatalog.vue b/src/pages/Order/Card/OrderCatalog.vue
index d7efdb7266..4b3992f213 100644
--- a/src/pages/Order/Card/OrderCatalog.vue
+++ b/src/pages/Order/Card/OrderCatalog.vue
@@ -22,7 +22,6 @@ const catalogParams = {
};
const arrayData = useArrayData(dataKey, {
url: 'Orders/CatalogFilter',
- limit: 50,
userParams: catalogParams,
});
const store = arrayData.store;
@@ -66,7 +65,7 @@ function extractValueTags(items) {
.filter((k) => /^value\d+$/.test(k))
.map((v) => x[v])
.filter((v) => v)
- .sort()
+ .sort(),
);
tagValue.value = resultValueTags;
}
@@ -76,7 +75,7 @@ watch(
(val) => {
extractTags(val);
},
- { immediate: true }
+ { immediate: true },
);
diff --git a/src/pages/Order/Card/OrderCatalogFilter.vue b/src/pages/Order/Card/OrderCatalogFilter.vue
index 262f503fd1..76e6089834 100644
--- a/src/pages/Order/Card/OrderCatalogFilter.vue
+++ b/src/pages/Order/Card/OrderCatalogFilter.vue
@@ -184,7 +184,7 @@ function addOrder(value, field, params) {
{{
t(
categoryList.find((c) => c.id == customTag.value)?.name ||
- ''
+ '',
)
}}
@@ -296,7 +296,7 @@ function addOrder(value, field, params) {
state.get('orderData'));
+const orderData = computed(() => state.get('Order'));
const prices = ref((props.item.prices || []).map((item) => ({ ...item, quantity: 0 })));
const isLoading = ref(false);
@@ -44,7 +44,7 @@ const addToOrder = async () => {
state.set('orderTotal', orderTotal);
const rows = orderData.value.rows.push(...items) || [];
- state.set('orderData', {
+ state.set('Order', {
...orderData.value,
rows,
});
diff --git a/src/pages/Order/Card/OrderDescriptor.vue b/src/pages/Order/Card/OrderDescriptor.vue
index 0d5f0146f7..1752efe7bd 100644
--- a/src/pages/Order/Card/OrderDescriptor.vue
+++ b/src/pages/Order/Card/OrderDescriptor.vue
@@ -4,8 +4,7 @@ import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n';
import { toCurrency, toDate } from 'src/filters';
import { useState } from 'src/composables/useState';
-import useCardDescription from 'src/composables/useCardDescription';
-
+import filter from './OrderFilter.js';
import CardDescriptor from 'components/ui/CardDescriptor.vue';
import VnLv from 'src/components/ui/VnLv.vue';
import FetchData from 'components/FetchData.vue';
@@ -24,44 +23,15 @@ const $props = defineProps({
const route = useRoute();
const state = useState();
const { t } = useI18n();
-const data = ref(useCardDescription());
const getTotalRef = ref();
const entityId = computed(() => {
return $props.id || route.params.id;
});
-const filter = {
- include: [
- { relation: 'agencyMode', scope: { fields: ['name'] } },
- {
- relation: 'address',
- scope: { fields: ['nickname'] },
- },
- { relation: 'rows', scope: { fields: ['id'] } },
- {
- relation: 'client',
- scope: {
- fields: [
- 'salesPersonFk',
- 'name',
- 'isActive',
- 'isFreezed',
- 'isTaxDataChecked',
- ],
- include: {
- relation: 'salesPersonUser',
- scope: { fields: ['id', 'name'] },
- },
- },
- },
- ],
-};
-
const setData = (entity) => {
if (!entity) return;
getTotalRef.value && getTotalRef.value.fetch();
- data.value = useCardDescription(entity?.client?.name, entity?.id);
state.set('orderTotal', total);
};
@@ -88,10 +58,9 @@ const total = ref(0);
:url="`Orders/${entityId}`"
:filter="filter"
module="Order"
- :title="data.title"
- :subtitle="data.subtitle"
+ title="client.name"
@on-fetch="setData"
- data-key="orderData"
+ data-key="Order"
>
$props.id || route.params.id);
const summary = ref();
const quasar = useQuasar();
-const descriptorData = useArrayData('orderData');
+const descriptorData = useArrayData('Order');
const detailsColumns = ref([
{
name: 'item',
diff --git a/src/pages/Order/OrderList.vue b/src/pages/Order/OrderList.vue
index 6e4f0aac8b..21cb5ed7e9 100644
--- a/src/pages/Order/OrderList.vue
+++ b/src/pages/Order/OrderList.vue
@@ -81,7 +81,7 @@ const columns = computed(() => [
label: t('module.created'),
component: 'date',
cardVisible: true,
- format: (row) => toDateTimeFormat(row?.landed),
+ format: (row) => toDateTimeFormat(row?.created),
columnField: {
component: null,
},
diff --git a/src/pages/Parking/Card/ParkingBasicData.vue b/src/pages/Parking/Card/ParkingBasicData.vue
index 8e3433a5b9..fcc9dbd24d 100644
--- a/src/pages/Parking/Card/ParkingBasicData.vue
+++ b/src/pages/Parking/Card/ParkingBasicData.vue
@@ -1,23 +1,13 @@
(sectors = data)"
auto-load
/>
-
+
-
-
+
+
-
-
+
+
import VnCardBeta from 'components/common/VnCardBeta.vue';
import ParkingDescriptor from 'pages/Parking/Card/ParkingDescriptor.vue';
+import filter from './ParkingFilter.js';
diff --git a/src/pages/Parking/Card/ParkingDescriptor.vue b/src/pages/Parking/Card/ParkingDescriptor.vue
index d36ea16fc2..0b7642c1ce 100644
--- a/src/pages/Parking/Card/ParkingDescriptor.vue
+++ b/src/pages/Parking/Card/ParkingDescriptor.vue
@@ -1,10 +1,9 @@
-
-
-
+
+
+
diff --git a/src/pages/Parking/Card/ParkingFilter.js b/src/pages/Parking/Card/ParkingFilter.js
new file mode 100644
index 0000000000..fd1855c453
--- /dev/null
+++ b/src/pages/Parking/Card/ParkingFilter.js
@@ -0,0 +1,4 @@
+export default {
+ fields: ['id', 'sectorFk', 'code', 'pickingOrder', 'row', 'column'],
+ include: [{ relation: 'sector', scope: { fields: ['id', 'description'] } }],
+};
diff --git a/src/pages/Parking/ParkingExprBuilder.js b/src/pages/Parking/ParkingExprBuilder.js
new file mode 100644
index 0000000000..16d2262c8f
--- /dev/null
+++ b/src/pages/Parking/ParkingExprBuilder.js
@@ -0,0 +1,10 @@
+export default (param, value) => {
+ switch (param) {
+ case 'code':
+ return { [param]: { like: `%${value}%` } };
+ case 'sectorFk':
+ return { [param]: value };
+ case 'search':
+ return { or: [{ code: { like: `%${value}%` } }, { id: value }] };
+ }
+};
diff --git a/src/pages/Parking/ParkingList.vue b/src/pages/Parking/ParkingList.vue
index bce87126ea..fe6c93ba53 100644
--- a/src/pages/Parking/ParkingList.vue
+++ b/src/pages/Parking/ParkingList.vue
@@ -9,6 +9,7 @@ import CardList from 'components/ui/CardList.vue';
import VnLv from 'components/ui/VnLv.vue';
import ParkingFilter from './ParkingFilter.vue';
import ParkingSummary from './Card/ParkingSummary.vue';
+import exprBuilder from './ParkingExprBuilder.js';
import VnSection from 'src/components/common/VnSection.vue';
const stateStore = useStateStore();
@@ -23,19 +24,7 @@ onUnmounted(() => (stateStore.rightDrawer = false));
const filter = {
fields: ['id', 'sectorFk', 'code', 'pickingOrder'],
};
-
-function exprBuilder(param, value) {
- switch (param) {
- case 'code':
- return { [param]: { like: `%${value}%` } };
- case 'sectorFk':
- return { [param]: value };
- case 'search':
- return { or: [{ code: { like: `%${value}%` } }, { id: value }] };
- }
-}
-
(warehouses = data)"
auto-load
/>
-
+
diff --git a/src/pages/Route/Agency/Card/AgencyCard.vue b/src/pages/Route/Agency/Card/AgencyCard.vue
index 35685790a6..7dc31f8ba3 100644
--- a/src/pages/Route/Agency/Card/AgencyCard.vue
+++ b/src/pages/Route/Agency/Card/AgencyCard.vue
@@ -3,5 +3,5 @@ import AgencyDescriptor from 'pages/Route/Agency/Card/AgencyDescriptor.vue';
import VnCardBeta from 'src/components/common/VnCardBeta.vue';
-
+
diff --git a/src/pages/Route/Agency/Card/AgencyModes.vue b/src/pages/Route/Agency/Card/AgencyModes.vue
index 4fb81914a4..13f6011e4f 100644
--- a/src/pages/Route/Agency/Card/AgencyModes.vue
+++ b/src/pages/Route/Agency/Card/AgencyModes.vue
@@ -16,7 +16,7 @@ const routeId = route.params.id;
@@ -47,7 +47,7 @@ const routeId = route.params.id;
- es:
+ es:
isOwn: Tiene propietario
isAnyVolumeAllowed: Permite cualquier volumen
Search agency: Buscar agencia
diff --git a/src/pages/Route/Agency/Card/AgencyWorkcenter.vue b/src/pages/Route/Agency/Card/AgencyWorkcenter.vue
index 7103ea9ced..9a92138687 100644
--- a/src/pages/Route/Agency/Card/AgencyWorkcenter.vue
+++ b/src/pages/Route/Agency/Card/AgencyWorkcenter.vue
@@ -57,7 +57,7 @@ async function deleteWorCenter(id) {
ref="paginate"
data-key="AgencyWorkCenters"
url="AgencyWorkCenters"
- :filter="{ where: { agencyFk: routeId } }"
+ :user-filter="{ where: { agencyFk: routeId } }"
order="id"
auto-load
>
@@ -88,7 +88,7 @@ async function deleteWorCenter(id) {
-
+
{
afterEach(() => {
vi.clearAllMocks();
});
- const generateParams = (formData) => ({
+ const generateParams = (formData, filter = {}) => ({
params: {
+ filter: JSON.stringify(filter),
warehouseFk: formData.warehouseId,
addressFk: formData.addressId,
landed: formData.landed,
@@ -23,10 +26,15 @@ describe('getAgencies', () => {
addressId: '456',
landed: 'true',
};
+ const filter = {
+ fields: ['nickname', 'street', 'city', 'id'],
+ where: { isActive: true },
+ order: 'nickname ASC',
+ };
- await getAgencies(formData);
+ await getAgencies(formData, null, filter);
- expect(axios.get).toHaveBeenCalledWith('Agencies/getAgenciesWithWarehouse', generateParams(formData));
+ expect(axios.get).toHaveBeenCalledWith('Agencies/getAgenciesWithWarehouse', generateParams(formData, filter));
});
it('should not call API when formData is missing required landed field', async () => {
@@ -52,4 +60,23 @@ describe('getAgencies', () => {
expect(axios.get).not.toHaveBeenCalled();
});
+
+ it('should return options and agency when default agency is found', async () => {
+ const formData = { warehouseId: '123', addressId: '456', landed: 'true' };
+ const client = { defaultAddress: { agencyModeFk: 'Agency1' } };
+
+ const { options, agency } = await getAgencies(formData, client);
+
+ expect(options).toEqual(response.data);
+ expect(agency).toEqual(response.data[0]);
+ });
+
+ it('should return options and agency when client is not provided', async () => {
+ const formData = { warehouseId: '123', addressId: '456', landed: 'true' };
+
+ const { options, agency } = await getAgencies(formData);
+
+ expect(options).toEqual(response.data);
+ expect(agency).toBeNull();
+ });
});
diff --git a/src/pages/Route/Agency/composables/getAgencies.js b/src/pages/Route/Agency/composables/getAgencies.js
index 7299d7e23b..850f874560 100644
--- a/src/pages/Route/Agency/composables/getAgencies.js
+++ b/src/pages/Route/Agency/composables/getAgencies.js
@@ -1,12 +1,26 @@
import axios from 'axios';
+import agency from 'src/router/modules/agency';
-export async function getAgencies(formData) {
+export async function getAgencies(formData, client, _filter = {}) {
if (!formData.warehouseId || !formData.addressId || !formData.landed) return;
+
+ const filter = {
+ ..._filter
+ };
+
+ let defaultAgency = null;
let params = {
+ filter: JSON.stringify(filter),
warehouseFk: formData.warehouseId,
addressFk: formData.addressId,
landed: formData.landed,
};
- return await axios.get('Agencies/getAgenciesWithWarehouse', { params });
+ const { data } = await axios.get('Agencies/getAgenciesWithWarehouse', { params });
+
+ if(data && client) {
+ defaultAgency = data.find((agency) => agency.agencyModeFk === client.defaultAddress.agencyModeFk );
+ };
+
+ return {options: data, agency: defaultAgency}
}
diff --git a/src/pages/Route/Card/RouteAutonomousFilter.vue b/src/pages/Route/Card/RouteAutonomousFilter.vue
index 0b807b7b36..37745594c4 100644
--- a/src/pages/Route/Card/RouteAutonomousFilter.vue
+++ b/src/pages/Route/Card/RouteAutonomousFilter.vue
@@ -6,6 +6,7 @@ import VnFilterPanel from 'components/ui/VnFilterPanel.vue';
import VnSelect from 'components/common/VnSelect.vue';
import VnInputDate from 'components/common/VnInputDate.vue';
import VnInput from 'components/common/VnInput.vue';
+import VnSelectSupplier from 'src/components/common/VnSelectSupplier.vue';
const { t } = useI18n();
const props = defineProps({
@@ -19,7 +20,6 @@ const emit = defineEmits(['search']);
const agencyList = ref([]);
const agencyAgreementList = ref([]);
-const supplierList = ref([]);
const exprBuilder = (param, value) => {
switch (param) {
@@ -58,14 +58,6 @@ const exprBuilder = (param, value) => {
@on-fetch="(data) => (agencyAgreementList = data)"
auto-load
/>
- (supplierList = data)"
- auto-load
- />
{
/>
-
+
-
import RouteDescriptor from 'pages/Route/Card/RouteDescriptor.vue';
import VnCardBeta from 'src/components/common/VnCardBeta.vue';
+import filter from './RouteFilter.js';
diff --git a/src/pages/Route/Card/RouteDescriptor.vue b/src/pages/Route/Card/RouteDescriptor.vue
index 14d9663626..a8c6cc18bf 100644
--- a/src/pages/Route/Card/RouteDescriptor.vue
+++ b/src/pages/Route/Card/RouteDescriptor.vue
@@ -1,12 +1,11 @@
-
-
-
-
+
+
+
-
+
diff --git a/src/pages/Route/Card/RouteFilter.js b/src/pages/Route/Card/RouteFilter.js
new file mode 100644
index 0000000000..16d200c99c
--- /dev/null
+++ b/src/pages/Route/Card/RouteFilter.js
@@ -0,0 +1,41 @@
+export default {
+ fields: [
+ 'code',
+ 'id',
+ 'workerFk',
+ 'agencyModeFk',
+ 'created',
+ 'm3',
+ 'warehouseFk',
+ 'description',
+ 'vehicleFk',
+ 'kmStart',
+ 'kmEnd',
+ 'started',
+ 'finished',
+ 'cost',
+ 'zoneFk',
+ 'isOk',
+ ],
+ include: [
+ { relation: 'agencyMode', scope: { fields: ['id', 'name'] } },
+ {
+ relation: 'vehicle',
+ scope: { fields: ['id', 'm3'] },
+ },
+ { relation: 'zone', scope: { fields: ['id', 'name'] } },
+ {
+ relation: 'worker',
+ scope: {
+ fields: ['id'],
+ include: {
+ relation: 'user',
+ scope: {
+ fields: ['id'],
+ include: { relation: 'emailUser', scope: { fields: ['email'] } },
+ },
+ },
+ },
+ },
+ ],
+};
diff --git a/src/pages/Route/Card/RouteFilter.vue b/src/pages/Route/Card/RouteFilter.vue
index 72bfed1da7..21858102be 100644
--- a/src/pages/Route/Card/RouteFilter.vue
+++ b/src/pages/Route/Card/RouteFilter.vue
@@ -100,7 +100,7 @@ const emit = defineEmits(['search']);
{
if (isNew) {
axios.post(`Routes/${response?.id}/updateWorkCenter`);
@@ -84,11 +45,10 @@ const onSave = (data, response) => {
sort-by="id ASC"
/>
{
import { useI18n } from 'vue-i18n';
-import { useRoute, useRouter } from 'vue-router';
+import { useRouter } from 'vue-router';
import VnRow from 'components/ui/VnRow.vue';
import FormModel from 'components/FormModel.vue';
import VnInputDate from 'components/common/VnInputDate.vue';
import VnInput from 'components/common/VnInput.vue';
import VnInputTime from 'components/common/VnInputTime.vue';
-import VnSelect from 'components/common/VnSelect.vue';
-import FetchData from 'components/FetchData.vue';
-import { ref } from 'vue';
+import VnSelectSupplier from 'src/components/common/VnSelectSupplier.vue';
const { t } = useI18n();
const router = useRouter();
-const route = useRoute();
-const supplierList = ref([]);
-const filter = { include: [{ relation: 'supplier' }] };
const onSave = (data, response) => {
router.push({ name: 'RoadmapSummary', params: { id: response?.id } });
};
- (supplierList = data)"
- />
@@ -56,27 +42,14 @@ const onSave = (data, response) => {
/>