mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 20:30:33 +00:00
fix: auto-increment settings.
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -11,7 +11,7 @@ export interface IMetadata {
|
||||
|
||||
export interface IMetaQuery {
|
||||
key: string,
|
||||
group: string,
|
||||
group?: string,
|
||||
};
|
||||
|
||||
export interface IMetableStore {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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',
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user