From ad50da4214a67a4ee1c27fcad7c47664006e9d18 Mon Sep 17 00:00:00 2001 From: "a.bouhuolia" Date: Sun, 21 Mar 2021 16:26:26 +0200 Subject: [PATCH] fix(Setup): fix seed setup settings to the storage. --- .../seeds/core/20200810121807_seed_views.js | 23 ++++++++------- .../core/20200810121808_seed_views_roles.js | 4 +++ server/src/lib/Metable/MetableStore.ts | 2 +- server/src/models/Expense.js | 28 +++++++++++++++++++ server/src/services/Items/ItemsService.ts | 1 + server/src/services/Setup/SetupService.ts | 5 ++-- .../system/seeds/seed_subscriptions_plans.js | 7 ----- 7 files changed, 47 insertions(+), 23 deletions(-) diff --git a/server/src/database/seeds/core/20200810121807_seed_views.js b/server/src/database/seeds/core/20200810121807_seed_views.js index 481cb125f..941880b92 100644 --- a/server/src/database/seeds/core/20200810121807_seed_views.js +++ b/server/src/database/seeds/core/20200810121807_seed_views.js @@ -11,17 +11,17 @@ exports.up = (knex) => { // Inserts seed entries return knex('views').insert([ // Accounts. - { id: 15, name: i18n.__('Inactive'), roles_logic_expression: '1', resource_model: 'Account', predefined: true }, - { id: 1, name: i18n.__('Assets'), roles_logic_expression: '1', resource_model: 'Account', predefined: true }, - { id: 2, name: i18n.__('Liabilities'), roles_logic_expression: '1', resource_model: 'Account', predefined: true }, - { id: 3, name: i18n.__('Equity'), roles_logic_expression: '1', resource_model: 'Account', predefined: true }, - { id: 4, name: i18n.__('Income'), roles_logic_expression: '1', resource_model: 'Account', predefined: true }, - { id: 5, name: i18n.__('Expenses'), roles_logic_expression: '1', resource_model: 'Account', predefined: true }, + { id: 15, name: i18n.__('Inactive'), slug: 'inactive', roles_logic_expression: '1', resource_model: 'Account', predefined: true }, + { id: 1, name: i18n.__('Assets'), slug: 'assets', roles_logic_expression: '1', resource_model: 'Account', predefined: true }, + { id: 2, name: i18n.__('Liabilities'), slug: 'liabilities', roles_logic_expression: '1', resource_model: 'Account', predefined: true }, + { id: 3, name: i18n.__('Equity'), slug: 'equity', roles_logic_expression: '1', resource_model: 'Account', predefined: true }, + { id: 4, name: i18n.__('Income'), slug: 'income', roles_logic_expression: '1', resource_model: 'Account', predefined: true }, + { id: 5, name: i18n.__('Expenses'), slug: 'expenses', roles_logic_expression: '1', resource_model: 'Account', predefined: true }, // Items. - { id: 6, name: i18n.__('Services'), roles_logic_expression: '1', resource_model: 'Item', predefined: true }, - { id: 7, name: i18n.__('Inventory'), roles_logic_expression: '1', resource_model: 'Item', predefined: true }, - { id: 8, name: i18n.__('Non-Inventory'), roles_logic_expression: '1', resource_model: 'Item', predefined: true }, + { id: 6, name: i18n.__('Services'), slug: 'services', roles_logic_expression: '1', resource_model: 'Item', predefined: true }, + { id: 7, name: i18n.__('Inventory'), slug: 'inventory', roles_logic_expression: '1', resource_model: 'Item', predefined: true }, + { id: 8, name: i18n.__('Non-Inventory'), slug: 'non-inventory', roles_logic_expression: '1', resource_model: 'Item', predefined: true }, // Manual Journals { id: 9, name: i18n.__('Journal'), roles_logic_expression: '1', resource_model: 'ManualJournal', predefined: true }, @@ -29,9 +29,8 @@ exports.up = (knex) => { { id: 11, name: i18n.__('Reconciliation'), roles_logic_expression: '1', resource_model: 'ManualJournal', predefined: true }, // Expenses. - { id: 12, name: i18n.__('Interest'), roles_logic_expression: '1', resource_model: 'Expense', predefined: false, }, - { id: 13, name: i18n.__('Depreciation'), roles_logic_expression: '1', resource_model: 'Expense', predefined: false, }, - { id: 14, name: i18n.__('Payroll'), roles_logic_expression: '1', resource_model: 'Expense', predefined: false }, + { id: 12, name: i18n.__('Draft'), slug: 'draft', roles_logic_expression: '1', resource_model: 'Expense', predefined: true, }, + { id: 13, name: i18n.__('Published'), slug: 'published', roles_logic_expression: '1', resource_model: 'Expense', predefined: true, }, // Sales invoices. { id: 16, name: 'Draft', slug: 'draft', roles_logic_expression: '1', resource_model: 'SaleInvoice', predefined: true, }, diff --git a/server/src/database/seeds/core/20200810121808_seed_views_roles.js b/server/src/database/seeds/core/20200810121808_seed_views_roles.js index 674a823d1..58d88ee66 100644 --- a/server/src/database/seeds/core/20200810121808_seed_views_roles.js +++ b/server/src/database/seeds/core/20200810121808_seed_views_roles.js @@ -18,6 +18,10 @@ exports.up = (knex) => { { field_key: 'type', index: 1, comparator: 'equals', value: 'inventory', view_id: 7 }, { field_key: 'type', index: 1, comparator: 'equals', value: 'non-inventory', view_id: 8 }, + // Expenses. + { field_key: 'status', index: 1, comparator: 'equals', value: 'draft', view_id: 12 }, + { field_key: 'status', index: 1, comparator: 'equals', value: 'published', view_id: 13 }, + // Manual Journals. { field_key: 'journal_type', index: 1, comparator: 'equals', value: 'Journal', view_id: 9 }, { field_key: 'journal_type', index: 1, comparator: 'equals', value: 'CreditNote', view_id: 10 }, diff --git a/server/src/lib/Metable/MetableStore.ts b/server/src/lib/Metable/MetableStore.ts index e2809b054..709cfbdd5 100644 --- a/server/src/lib/Metable/MetableStore.ts +++ b/server/src/lib/Metable/MetableStore.ts @@ -104,7 +104,7 @@ export default class MetableStore implements IMetableStore { const metadata = query; metadata.forEach((meta: IMetadata) => { - this.set(meta.key, meta.value); + this.set(meta); }); return; } diff --git a/server/src/models/Expense.js b/server/src/models/Expense.js index 2e9ef3222..c95d9e57f 100644 --- a/server/src/models/Expense.js +++ b/server/src/models/Expense.js @@ -79,6 +79,14 @@ export default class Expense extends TenantModel { viewRolesBuilder(query, conditionals, expression) { viewRolesBuilder(conditionals, expression)(query); }, + + filterByDraft(query) { + query.where('published_at', null); + }, + + filterByPublished(query) { + query.whereNot('published_at', null); + }, }; } @@ -165,6 +173,26 @@ export default class Expense extends TenantModel { label: "Published", column: "published_at", }, + status: { + label: 'Status', + options: [ + { key: 'draft', label: 'Draft' }, + { key: 'published', label: 'Published' }, + ], + query: (query, role) => { + switch (role.value) { + case 'draft': + query.modify('filterByDraft'); + break; + case 'published': + query.modify('filterByPublished'); + break; + } + }, + sortQuery(query, role) { + query.modify('sortByStatus', role.order); + }, + }, created_at: { label: "Created at", column: "created_at", diff --git a/server/src/services/Items/ItemsService.ts b/server/src/services/Items/ItemsService.ts index 1ea28d375..c325f0241 100644 --- a/server/src/services/Items/ItemsService.ts +++ b/server/src/services/Items/ItemsService.ts @@ -566,6 +566,7 @@ export default class ItemsService implements IItemsService { dynamicFilter.buildQuery()(builder); }) .pagination(itemsFilter.page - 1, itemsFilter.pageSize); + return { items: results, pagination, diff --git a/server/src/services/Setup/SetupService.ts b/server/src/services/Setup/SetupService.ts index 80c3683ae..9a0838e8c 100644 --- a/server/src/services/Setup/SetupService.ts +++ b/server/src/services/Setup/SetupService.ts @@ -52,9 +52,8 @@ export default class SetupService { const settings = this.tenancy.settings(tenantId); // Can't continue if app is already configured. - if (settings.get('app_configured')) { - return; - } + if (settings.get('app_configured')) { return; } + settings.set([ ...this.transformSetupDTOToOptions(organizationSetupDTO) .filter((option) => typeof option.value !== 'undefined') diff --git a/server/src/system/seeds/seed_subscriptions_plans.js b/server/src/system/seeds/seed_subscriptions_plans.js index 7c3810662..53f070dc5 100644 --- a/server/src/system/seeds/seed_subscriptions_plans.js +++ b/server/src/system/seeds/seed_subscriptions_plans.js @@ -11,12 +11,9 @@ exports.seed = (knex) => { price: 0, active: true, currency: 'LYD', - trial_period: 7, trial_interval: 'days', - index: 1, - voucher_required: true, }, { name: 'Starter', @@ -24,10 +21,8 @@ exports.seed = (knex) => { price: 500, active: true, currency: 'LYD', - invoice_period: 12, invoice_interval: 'month', - index: 2, }, { @@ -36,10 +31,8 @@ exports.seed = (knex) => { price: 1000, active: true, currency: 'LYD', - invoice_period: 12, invoice_interval: 'month', - index: 3, }, ]);