fix: auto-increment settings.

This commit is contained in:
Ahmed Bouhuolia
2020-12-12 13:26:36 +02:00
parent 4c8346ac3d
commit e9e4ddaee0
6 changed files with 43 additions and 20 deletions

View File

@@ -49,7 +49,7 @@ export default () => {
app.use('/invite', Container.get(InviteUsers).nonAuthRouter());
app.use('/licenses', Container.get(Licenses).router());
app.use('/subscription', Container.get(Subscription).router());
app.use('/ping', Container.get(Ping).router());
app.use('/organization', Container.get(Organization).router());
// - Settings routes.
@@ -63,9 +63,9 @@ export default () => {
settings.use(EnsureTenantIsInitialized);
settings.use(SettingsMiddleware);
settings.use('/settings', Container.get(Settings).router());
settings.use('/', Container.get(Settings).router());
app.use('/', settings);
app.use('/settings', settings);
// - Dashboard routes.
// ---------------------------
@@ -81,6 +81,8 @@ export default () => {
dashboard.use(EnsureConfiguredMiddleware);
dashboard.use(EnsureTenantIsSeeded);
dashboard.use('/ping', Container.get(Ping).router());
dashboard.use('/users', Container.get(Users).router());
dashboard.use('/invite', Container.get(InviteUsers).authRouter());
dashboard.use('/currencies', Container.get(Currencies).router());

View File

@@ -11,7 +11,7 @@ export interface IMetadata {
export interface IMetaQuery {
key: string,
group: string,
group?: string,
};
export interface IMetableStore {

View File

@@ -4,6 +4,7 @@ import {
IMetableStoreStorage,
} from 'interfaces';
import MetableStore from './MetableStore';
import { isBlank } from 'utils';
export default class MetableDBStore extends MetableStore implements IMetableStoreStorage{
model: Model;
@@ -26,10 +27,29 @@ export default class MetableDBStore extends MetableStore implements IMetableStor
this.model = null;
this.extraQuery = (query, meta) => {
query.where('key', meta[this.KEY_COLUMN]);
const whereQuery = {
key: meta[this.KEY_COLUMN],
...this.transfromMetaExtraColumns(meta),
};
query.where(whereQuery);
};
}
/**
* Transformes meta query.
* @param {IMetadata} meta
*/
private transfromMetaExtraColumns(meta: IMetadata) {
return this.extraColumns.reduce((obj, column) => {
const metaValue = meta[column];
if (!isBlank(metaValue)) {
obj[column] = metaValue;
}
return obj;
}, {});
}
/**
* Set model of this metadata collection.
* @param {Object} model -
@@ -116,14 +136,9 @@ export default class MetableDBStore extends MetableStore implements IMetableStor
const insertData = {
[this.KEY_COLUMN]: meta.key,
[this.VALUE_COLUMN]: meta.value,
...this.extraColumns.reduce((obj, column) => {
if (typeof meta[column] !== 'undefined') {
obj[column] = meta[column];
}
return obj;
}, {}),
...this.transfromMetaExtraColumns(meta),
};
const insertOper = this.model.query()
.insert(insertData)
.then(() => {
@@ -155,7 +170,7 @@ export default class MetableDBStore extends MetableStore implements IMetableStor
* @param {String} valueType -
* @return {String|Number|Boolean} -
*/
static formatMetaValue(value: string|number|boolean, valueType: striung|false) {
static formatMetaValue(value: string|number|boolean, valueType: string|false) {
let parsedValue: string|number|boolean;
switch (valueType) {

View File

@@ -19,7 +19,7 @@ export class ManualJournalSubscriber {
* @param {{ tenantId: number, manualJournal: IManualJournal }}
*/
@On(events.manualJournals.onCreated)
public async onManualJournalCreated({ tenantId, manualJournal }) {
public async handleWriteJournalEntries({ tenantId, manualJournal }) {
const manualJournalsService = Container.get(ManualJournalsService);
await manualJournalsService
@@ -31,7 +31,7 @@ export class ManualJournalSubscriber {
* @param {{ tenantId: number, manualJournal: IManualJournal }}
*/
@On(events.manualJournals.onEdited)
public async onManualJournalEdited({ tenantId, manualJournal }) {
public async handleRewriteJournalEntries({ tenantId, manualJournal }) {
const manualJournalsService = Container.get(ManualJournalsService);
await manualJournalsService
@@ -43,7 +43,7 @@ export class ManualJournalSubscriber {
* @param {{ tenantId: number, manualJournalId: number }}
*/
@On(events.manualJournals.onDeleted)
public async onManualJournalDeleted({ tenantId, manualJournalId, }) {
public async handleRevertJournalEntries({ tenantId, manualJournalId, }) {
const manualJournalsService = Container.get(ManualJournalsService);
await manualJournalsService
@@ -55,9 +55,10 @@ export class ManualJournalSubscriber {
*/
@On(events.manualJournals.onCreated)
public async handleJournalNextNumberIncrement({ tenantId }) {
await this.settingsService.incrementNextNumber(tenantId, {
const query = {
group: 'manual_journals',
key: 'next_number',
});
};
await this.settingsService.incrementNextNumber(tenantId, query);
}
}

View File

@@ -64,7 +64,7 @@ export default class SaleInvoiceSubscriber {
public async handleInvoiceNextNumberIncrement({ tenantId, saleInvoiceId, saleInvoice }) {
await this.settingsService.incrementNextNumber(tenantId, {
key: 'next_number',
group: 'sales_invoices'
group: 'sales_invoices',
});
}
}

View File

@@ -223,6 +223,10 @@ const formatNumber = (balance, { noCents = false, divideOn1000 = false }) => {
return formattedBalance + '';
};
const isBlank = (value) => {
return _.isEmpty(value) && !_.isNumber(value) || _.isNaN(value);
}
export {
hashPassword,
origin,
@@ -241,5 +245,6 @@ export {
getDefinedOptions,
entriesAmountDiff,
convertEmptyStringToNull,
formatNumber
formatNumber,
isBlank
};