fix: import accounts issue

This commit is contained in:
Ahmed Bouhuolia
2024-03-22 20:45:05 +02:00
parent 858e3541cb
commit 973d1832bd
14 changed files with 125 additions and 48 deletions

View File

@@ -349,7 +349,7 @@ export default class AccountsController extends BaseController {
// Filter query.
const filter = {
sortOrder: 'desc',
columnSortBy: 'created_at',
columnSortBy: 'createdAt',
inactiveMode: false,
structure: IAccountsStructureType.Tree,
...this.matchedQueryData(req),

View File

@@ -1,3 +1,4 @@
export interface IModel {
name: string;
tableName: string;
@@ -35,6 +36,8 @@ export interface IModelMetaFieldCommon {
fieldType: IModelColumnType;
customQuery?: Function;
required?: boolean;
importHint?: string;
order?: number;
}
export interface IModelMetaFieldNumber {

View File

@@ -15,6 +15,7 @@ export default {
unique: true,
required: true,
importable: true,
order: 1,
},
description: {
name: 'account.field.description',
@@ -37,6 +38,7 @@ export default {
importable: true,
minLength: 3,
maxLength: 6,
importHint: 'Unique number to identify the account.',
},
rootType: {
name: 'account.field.root_type',
@@ -73,6 +75,7 @@ export default {
})),
required: true,
importable: true,
order: 2,
},
active: {
name: 'account.field.active',
@@ -81,11 +84,11 @@ export default {
filterable: false,
importable: true,
},
openingBalance: {
balance: {
name: 'account.field.balance',
column: 'amount',
fieldType: 'number',
importable: true,
importable: false,
},
currencyCode: {
name: 'account.field.currency',
@@ -99,6 +102,7 @@ export default {
column: 'parent_account_id',
fieldType: 'relation',
to: { model: 'Account', to: 'id' },
importable: false,
},
createdAt: {
name: 'account.field.created_at',

View File

@@ -61,20 +61,38 @@ export class ImportFileUploadService {
resource: _resourceName,
columns: coumnsStringified,
});
const resourceColumns = this.resourceService.getResourceImportableFields(
const resourceColumnsMap = this.resourceService.getResourceImportableFields(
tenantId,
_resourceName
);
const resourceColumnsTransformeed = Object.entries(resourceColumns).map(
([key, { name }]: [string, IModelMetaField]) => ({ key, name })
);
const resourceColumns = this.getResourceColumns(resourceColumnsMap);
return {
import: {
importId: importFile.importId,
resource: importFile.resource,
},
sheetColumns,
resourceColumns: resourceColumnsTransformeed,
resourceColumns,
};
}
getResourceColumns(resourceColumns: { [key: string]: IModelMetaField }) {
return Object.entries(resourceColumns)
.map(
([key, { name, importHint, required, order }]: [
string,
IModelMetaField
]) => ({
key,
name,
required,
hint: importHint,
order,
})
)
.sort((a, b) =>
a.order && b.order ? a.order - b.order : a.order ? -1 : b.order ? 1 : 0
);
}
}

View File

@@ -25,7 +25,12 @@ export interface ImportFileUploadPOJO {
resource: string;
};
sheetColumns: string[];
resourceColumns: { key: string; name: string }[];
resourceColumns: {
key: string;
name: string;
required?: boolean;
hint?: string;
}[];
}
export interface ImportFileMapPOJO {
@@ -45,7 +50,6 @@ export interface ImportFilePreviewPOJO {
unmappedColumnsCount: number;
}
export interface ImportOperSuccess {
data: unknown;
index: number;
@@ -54,4 +58,4 @@ export interface ImportOperSuccess {
export interface ImportOperError {
error: ImportInsertError;
index: number;
}
}