diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue
index b3e4d2a9a..7bcecdf2b 100644
--- a/src/components/VnTable/VnTable.vue
+++ b/src/components/VnTable/VnTable.vue
@@ -476,6 +476,7 @@ async function renderInput(rowId, field, clickedElement) {
await destroyInput(rowId, field, clickedElement);
},
keydown: async (event) => {
+ await column?.cellEvent?.['keydown']?.(event, row);
switch (event.key) {
case 'Tab':
await handleTabKey(event, rowId, field);
diff --git a/src/components/common/VnSelectExpense.vue b/src/components/common/VnSelectExpense.vue
index 406715b84..c44e983b5 100644
--- a/src/components/common/VnSelectExpense.vue
+++ b/src/components/common/VnSelectExpense.vue
@@ -1,7 +1,6 @@
diff --git a/src/pages/InvoiceIn/Card/InvoiceInVat.vue b/src/pages/InvoiceIn/Card/InvoiceInVat.vue
index aa9c671d9..6b55970d3 100644
--- a/src/pages/InvoiceIn/Card/InvoiceInVat.vue
+++ b/src/pages/InvoiceIn/Card/InvoiceInVat.vue
@@ -9,6 +9,8 @@ import FetchData from 'src/components/FetchData.vue';
import { getExchange } from 'src/composables/getExchange';
import VnTable from 'src/components/VnTable/VnTable.vue';
import VnSelectExpense from 'src/components/common/VnSelectExpense.vue';
+import axios from 'axios';
+import { useAccountShortToStandard } from 'src/composables/useAccountShortToStandard';
const { t } = useI18n();
const arrayData = useArrayData();
@@ -48,6 +50,22 @@ const columns = computed(() => [
isEditable: true,
create: true,
width: '250px',
+ cellEvent: {
+ keydown: async (evt, row) => {
+ if (evt.key !== 'Tab') return;
+ const val = evt.target.value;
+ if (!val || isNaN(val)) return;
+ row.expenseFk = (
+ await axios.get(`Expenses`, {
+ params: {
+ filter: JSON.stringify({
+ where: { id: useAccountShortToStandard(val) },
+ }),
+ },
+ })
+ ).data[0].id;
+ },
+ },
},
{
name: 'taxableBase',
@@ -104,13 +122,13 @@ const columns = computed(() => [
optionLabel: (row) => `${row.id}: ${row.transaction}`,
filterOptions: ['id', 'transaction'],
},
- format: (row) => {
+ format: (row, dashIfEmpty) => {
const transType = sageTransactionTypes.value.find(
(t) => t.id === row.transactionTypeSageFk,
);
return transType
? `${transType.id}: ${transType.transaction}`
- : row.transactionTypeSageFk;
+ : dashIfEmpty(row.transactionTypeSageFk);
},
sortable: true,
align: 'left',