mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-17 13:20:31 +00:00
fix: import accounts issue
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user