refactoring: custom views service.

fix: constraints of delete item from storage.
fix: constraints of delete item category from storage.
fix: localize database seeds files.
fix: view meta data in accounts list response.
This commit is contained in:
Ahmed Bouhuolia
2020-10-05 19:09:56 +02:00
parent 0114ed9f8b
commit 99e6fe273f
64 changed files with 1593 additions and 1103 deletions

View File

@@ -8,6 +8,7 @@ import {
} from 'lib/ViewRolesBuilder';
import { flatToNestedArray } from 'utils';
import DependencyGraph from 'lib/DependencyGraph';
import TenantManagerSubscriber from 'subscribers/tenantManager';
export default class Account extends TenantModel {
/**
@@ -24,6 +25,13 @@ export default class Account extends TenantModel {
return ['createdAt', 'updatedAt'];
}
/**
*
*/
static get resourceable() {
return true;
}
/**
* Model modifiers.
*/
@@ -106,4 +114,55 @@ export default class Account extends TenantModel {
accounts, { itemId: 'id', parentItemId: 'parentAccountId' }
);
}
/**
* Model defined fields.
*/
static get fields() {
return {
name: {
label: 'Name',
column: 'name',
},
type: {
label: 'Account type',
column: 'account_type_id',
relation: 'account_types.id',
relationColumn: 'account_types.key',
},
description: {
label: 'Description',
column: 'description',
},
code: {
label: 'Account code',
column: 'code',
},
root_type: {
label: 'Type',
column: 'account_type_id',
relation: 'account_types.id',
relationColumn: 'account_types.root_type',
},
created_at: {
column: 'created_at',
columnType: 'date',
},
active: {
column: 'active',
},
balance: {
column: 'amount',
columnType: 'number'
},
currency: {
column: 'currency_code',
},
normal: {
column: 'account_type_id',
relation: 'account_types.id',
relationColumn: 'account_types.normal'
},
};
}
}

View File

@@ -59,10 +59,6 @@ export default class Expense extends TenantModel {
viewRolesBuilder(query, conditionals, expression) {
viewRolesBuilder(conditionals, expression)(query);
},
orderBy(query) {
}
};
}
@@ -72,7 +68,6 @@ export default class Expense extends TenantModel {
static get relationMappings() {
const Account = require('models/Account');
const ExpenseCategory = require('models/ExpenseCategory');
const SystemUser = require('system/models/SystemUser');
return {
paymentAccount: {
@@ -91,14 +86,44 @@ export default class Expense extends TenantModel {
to: 'expense_transaction_categories.expenseId',
},
},
};
}
/**
* Model defined fields.
*/
static get fields() {
return {
payment_date: {
column: 'payment_date',
},
payment_account: {
column: 'payment_account_id',
relation: 'accounts.id',
},
amount: {
column: 'total_amount',
},
currency_code: {
column: 'currency_code',
},
reference_no: {
column: 'reference_no'
},
description: {
column: 'description',
},
published: {
column: 'published',
},
user: {
relation: Model.BelongsToOneRelation,
modelClass: SystemUser.default,
join: {
from: 'expenses_transactions.userId',
to: 'users.id',
}
}
column: 'user_id',
relation: 'users.id',
relationColumn: 'users.id',
},
created_at: {
column: 'created_at',
},
};
}
}

View File

@@ -95,4 +95,67 @@ export default class Item extends TenantModel {
},
};
}
static get fields() {
return {
type: {
column: 'type',
},
name: {
column: 'name',
},
sellable: {
column: 'sellable',
},
purchasable: {
column: 'purchasable',
},
sell_price: {
column: 'sell_price'
},
cost_price: {
column: 'cost_price',
},
currency_code: {
column: 'currency_code',
},
cost_account: {
column: 'cost_account_id',
relation: 'accounts.id',
},
sell_account: {
column: 'sell_account_id',
relation: 'accounts.id',
},
inventory_account: {
column: 'inventory_account_id',
relation: 'accounts.id',
},
sell_description: {
column: 'sell_description',
},
purchase_description: {
column: 'purchase_description',
},
quantity_on_hand: {
column: 'quantity_on_hand',
},
note: {
column: 'note',
},
category: {
column: 'category_id',
relation: 'categories.id',
},
user: {
column: 'user_id',
relation: 'users.id',
relationColumn: 'users.id',
},
created_at: {
column: 'created_at',
}
};
}
}

View File

@@ -10,6 +10,10 @@ export default class ItemCategory extends TenantModel {
return 'items_categories';
}
static get resourceable() {
return true;
}
/**
* Timestamps columns.
*/
@@ -37,4 +41,43 @@ export default class ItemCategory extends TenantModel {
},
};
}
static get fields() {
return {
name: {
column: 'name',
},
description: {
column: 'description',
},
parent_category_id: {
column: 'parent_category_id',
relation: 'items_categories.id',
relationColumn: 'items_categories.id',
},
user: {
column: 'user_id',
relation: 'users.id',
relationColumn: 'users.id',
},
cost_account: {
column: 'cost_account_id',
relation: 'accounts.id',
},
sell_account: {
column: 'sell_account_id',
relation: 'accounts.id',
},
inventory_account: {
column: 'inventory_account_id',
relation: 'accounts.id',
},
cost_method: {
column: 'cost_method',
},
created_at: {
column: 'created_at',
},
};
}
}

View File

@@ -50,4 +50,41 @@ export default class ManualJournal extends TenantModel {
}
};
}
/**
* Model defined fields.
*/
static get fields() {
return {
date: {
column: 'date',
},
journal_number: {
column: 'journal_number',
},
reference: {
column: 'reference',
},
status: {
column: 'status',
},
amount: {
column: 'amount',
},
description: {
column: 'description',
},
user: {
column: 'user_id',
relation: 'users.id',
relationColumn: 'users.id',
},
journal_type: {
column: 'journal_type',
},
created_at: {
column: 'created_at',
},
};
}
}