mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-19 14:20:31 +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('/invite', Container.get(InviteUsers).nonAuthRouter());
|
||||||
app.use('/licenses', Container.get(Licenses).router());
|
app.use('/licenses', Container.get(Licenses).router());
|
||||||
app.use('/subscription', Container.get(Subscription).router());
|
app.use('/subscription', Container.get(Subscription).router());
|
||||||
app.use('/ping', Container.get(Ping).router());
|
|
||||||
app.use('/organization', Container.get(Organization).router());
|
app.use('/organization', Container.get(Organization).router());
|
||||||
|
|
||||||
// - Settings routes.
|
// - Settings routes.
|
||||||
@@ -63,9 +63,9 @@ export default () => {
|
|||||||
settings.use(EnsureTenantIsInitialized);
|
settings.use(EnsureTenantIsInitialized);
|
||||||
settings.use(SettingsMiddleware);
|
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.
|
// - Dashboard routes.
|
||||||
// ---------------------------
|
// ---------------------------
|
||||||
@@ -81,6 +81,8 @@ export default () => {
|
|||||||
dashboard.use(EnsureConfiguredMiddleware);
|
dashboard.use(EnsureConfiguredMiddleware);
|
||||||
dashboard.use(EnsureTenantIsSeeded);
|
dashboard.use(EnsureTenantIsSeeded);
|
||||||
|
|
||||||
|
dashboard.use('/ping', Container.get(Ping).router());
|
||||||
|
|
||||||
dashboard.use('/users', Container.get(Users).router());
|
dashboard.use('/users', Container.get(Users).router());
|
||||||
dashboard.use('/invite', Container.get(InviteUsers).authRouter());
|
dashboard.use('/invite', Container.get(InviteUsers).authRouter());
|
||||||
dashboard.use('/currencies', Container.get(Currencies).router());
|
dashboard.use('/currencies', Container.get(Currencies).router());
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export interface IMetadata {
|
|||||||
|
|
||||||
export interface IMetaQuery {
|
export interface IMetaQuery {
|
||||||
key: string,
|
key: string,
|
||||||
group: string,
|
group?: string,
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface IMetableStore {
|
export interface IMetableStore {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import {
|
|||||||
IMetableStoreStorage,
|
IMetableStoreStorage,
|
||||||
} from 'interfaces';
|
} from 'interfaces';
|
||||||
import MetableStore from './MetableStore';
|
import MetableStore from './MetableStore';
|
||||||
|
import { isBlank } from 'utils';
|
||||||
|
|
||||||
export default class MetableDBStore extends MetableStore implements IMetableStoreStorage{
|
export default class MetableDBStore extends MetableStore implements IMetableStoreStorage{
|
||||||
model: Model;
|
model: Model;
|
||||||
@@ -26,8 +27,27 @@ export default class MetableDBStore extends MetableStore implements IMetableStor
|
|||||||
this.model = null;
|
this.model = null;
|
||||||
|
|
||||||
this.extraQuery = (query, meta) => {
|
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;
|
||||||
|
}, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -116,14 +136,9 @@ export default class MetableDBStore extends MetableStore implements IMetableStor
|
|||||||
const insertData = {
|
const insertData = {
|
||||||
[this.KEY_COLUMN]: meta.key,
|
[this.KEY_COLUMN]: meta.key,
|
||||||
[this.VALUE_COLUMN]: meta.value,
|
[this.VALUE_COLUMN]: meta.value,
|
||||||
|
...this.transfromMetaExtraColumns(meta),
|
||||||
...this.extraColumns.reduce((obj, column) => {
|
|
||||||
if (typeof meta[column] !== 'undefined') {
|
|
||||||
obj[column] = meta[column];
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
}, {}),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const insertOper = this.model.query()
|
const insertOper = this.model.query()
|
||||||
.insert(insertData)
|
.insert(insertData)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
@@ -155,7 +170,7 @@ export default class MetableDBStore extends MetableStore implements IMetableStor
|
|||||||
* @param {String} valueType -
|
* @param {String} valueType -
|
||||||
* @return {String|Number|Boolean} -
|
* @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;
|
let parsedValue: string|number|boolean;
|
||||||
|
|
||||||
switch (valueType) {
|
switch (valueType) {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export class ManualJournalSubscriber {
|
|||||||
* @param {{ tenantId: number, manualJournal: IManualJournal }}
|
* @param {{ tenantId: number, manualJournal: IManualJournal }}
|
||||||
*/
|
*/
|
||||||
@On(events.manualJournals.onCreated)
|
@On(events.manualJournals.onCreated)
|
||||||
public async onManualJournalCreated({ tenantId, manualJournal }) {
|
public async handleWriteJournalEntries({ tenantId, manualJournal }) {
|
||||||
const manualJournalsService = Container.get(ManualJournalsService);
|
const manualJournalsService = Container.get(ManualJournalsService);
|
||||||
|
|
||||||
await manualJournalsService
|
await manualJournalsService
|
||||||
@@ -31,7 +31,7 @@ export class ManualJournalSubscriber {
|
|||||||
* @param {{ tenantId: number, manualJournal: IManualJournal }}
|
* @param {{ tenantId: number, manualJournal: IManualJournal }}
|
||||||
*/
|
*/
|
||||||
@On(events.manualJournals.onEdited)
|
@On(events.manualJournals.onEdited)
|
||||||
public async onManualJournalEdited({ tenantId, manualJournal }) {
|
public async handleRewriteJournalEntries({ tenantId, manualJournal }) {
|
||||||
const manualJournalsService = Container.get(ManualJournalsService);
|
const manualJournalsService = Container.get(ManualJournalsService);
|
||||||
|
|
||||||
await manualJournalsService
|
await manualJournalsService
|
||||||
@@ -43,7 +43,7 @@ export class ManualJournalSubscriber {
|
|||||||
* @param {{ tenantId: number, manualJournalId: number }}
|
* @param {{ tenantId: number, manualJournalId: number }}
|
||||||
*/
|
*/
|
||||||
@On(events.manualJournals.onDeleted)
|
@On(events.manualJournals.onDeleted)
|
||||||
public async onManualJournalDeleted({ tenantId, manualJournalId, }) {
|
public async handleRevertJournalEntries({ tenantId, manualJournalId, }) {
|
||||||
const manualJournalsService = Container.get(ManualJournalsService);
|
const manualJournalsService = Container.get(ManualJournalsService);
|
||||||
|
|
||||||
await manualJournalsService
|
await manualJournalsService
|
||||||
@@ -55,9 +55,10 @@ export class ManualJournalSubscriber {
|
|||||||
*/
|
*/
|
||||||
@On(events.manualJournals.onCreated)
|
@On(events.manualJournals.onCreated)
|
||||||
public async handleJournalNextNumberIncrement({ tenantId }) {
|
public async handleJournalNextNumberIncrement({ tenantId }) {
|
||||||
await this.settingsService.incrementNextNumber(tenantId, {
|
const query = {
|
||||||
group: 'manual_journals',
|
group: 'manual_journals',
|
||||||
key: 'next_number',
|
key: 'next_number',
|
||||||
});
|
};
|
||||||
|
await this.settingsService.incrementNextNumber(tenantId, query);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -64,7 +64,7 @@ export default class SaleInvoiceSubscriber {
|
|||||||
public async handleInvoiceNextNumberIncrement({ tenantId, saleInvoiceId, saleInvoice }) {
|
public async handleInvoiceNextNumberIncrement({ tenantId, saleInvoiceId, saleInvoice }) {
|
||||||
await this.settingsService.incrementNextNumber(tenantId, {
|
await this.settingsService.incrementNextNumber(tenantId, {
|
||||||
key: 'next_number',
|
key: 'next_number',
|
||||||
group: 'sales_invoices'
|
group: 'sales_invoices',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -223,6 +223,10 @@ const formatNumber = (balance, { noCents = false, divideOn1000 = false }) => {
|
|||||||
return formattedBalance + '';
|
return formattedBalance + '';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const isBlank = (value) => {
|
||||||
|
return _.isEmpty(value) && !_.isNumber(value) || _.isNaN(value);
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
hashPassword,
|
hashPassword,
|
||||||
origin,
|
origin,
|
||||||
@@ -241,5 +245,6 @@ export {
|
|||||||
getDefinedOptions,
|
getDefinedOptions,
|
||||||
entriesAmountDiff,
|
entriesAmountDiff,
|
||||||
convertEmptyStringToNull,
|
convertEmptyStringToNull,
|
||||||
formatNumber
|
formatNumber,
|
||||||
|
isBlank
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user