Skip to content

Commit

Permalink
moved doubleEntrySideFromSimObjectType.
Browse files Browse the repository at this point in the history
  • Loading branch information
77it committed Mar 30, 2024
1 parent e84cee5 commit c366e44
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 32 deletions.
2 changes: 1 addition & 1 deletion src/engine/ledger/ledger.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { isNullOrWhiteSpace } from '../../lib/string_utils.js';

import { SimObject } from '../simobject/simobject.js';
import { simObjectToDto, simObjectToJsonDumpDto, splitPrincipal, toBigInt } from '../simobject/utils/simobject_utils.js';
import { doubleEntrySideFromSimObjectType } from '../simobject/utils/doubleentryside_from_simobject_type.js';
import { doubleEntrySideFromSimObjectType } from '../simobject/enums/doubleentryside_enum.js';
import { SimObjectTypes_enum } from '../simobject/enums/simobject_types_enum.js';
import { SimObjectDebugTypes_enum, SimObjectDebugTypes_enum_validation } from '../simobject/enums/simobject_debugtypes_enum.js';
import { SimObjectErrorDebugTypes_enum, SimObjectErrorDebugTypes_enum_validation } from '../simobject/enums/simobject_errordebugtypes_enum.js';
Expand Down
29 changes: 27 additions & 2 deletions src/engine/simobject/enums/doubleentryside_enum.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
export { DoubleEntrySide_enum, DoubleEntrySide_enum_validation, doubleEntrySideFromSimObjectType };

import { deepFreeze, ensureArrayValuesAreUnique } from '../../../lib/obj_utils.js';

// the values are always positive, also debts and costs, then this is the sign/side (debit/credit, left/right) and the type (BS/IS) of the voice
export const DoubleEntrySide_enum =
const DoubleEntrySide_enum =
{
// see https://en.wikipedia.org/wiki/Debits_and_credits#The_five_accounting_elements

Expand All @@ -19,4 +21,27 @@ export const DoubleEntrySide_enum =
};
deepFreeze(DoubleEntrySide_enum);

export const DoubleEntrySide_enum_validation = ensureArrayValuesAreUnique(Object.values(DoubleEntrySide_enum));
// export array of DoubleEntrySide_enum, after ensuring that all values are unique
const DoubleEntrySide_enum_validation = ensureArrayValuesAreUnique(Object.values(DoubleEntrySide_enum));

/**
* Convert a SimObject type to a DoubleEntrySide enum
* @param {string} type
* @returns {string} DoubleEntrySide enum
*/
function doubleEntrySideFromSimObjectType (type) {
const _type = type.toUpperCase();

if (_type.startsWith('BS_CASH__') || _type.startsWith('BS_CREDIT__') || _type.startsWith('BS_EQUITYINSTRUMENTS') || _type.startsWith('BS_GOOD__'))
return DoubleEntrySide_enum.BALANCESHEET_DEBIT;
else if (_type.startsWith('BS_EQUITY__') || _type.startsWith('BS_LIABILITY__'))
return DoubleEntrySide_enum.BALANCESHEET_CREDIT;
else if (_type.startsWith('IS_INCOME__') || _type.startsWith('IS_PROFITLOSS__'))
return DoubleEntrySide_enum.INCOMESTATEMENT_CREDIT;
else if (_type.startsWith('IS_EXPENSE__'))
return DoubleEntrySide_enum.INCOMESTATEMENT_DEBIT;
else if (_type.startsWith('MEMO'))
return DoubleEntrySide_enum.MEMO;
else
throw new Error(`doubleEntrySideFromSimObjectType: unknown type ${_type}`);
}
25 changes: 0 additions & 25 deletions src/engine/simobject/utils/doubleentryside_from_simobject_type.js

This file was deleted.

3 changes: 1 addition & 2 deletions src/modules/_utils/leger_utils.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// TODO funzione di modules/utils che crea una voce di cassa a completamento dello sbilancio corrente (es VsCash)

import { SimObjectTypes_enum } from '../../engine/simobject/enums/simobject_types_enum.js';
import { Ledger } from '../../engine/ledger/ledger.js';
import { BS_CASH__BANKACCOUNT_FINANCIALACCOUNT__NAME } from '../../config/engine.js';
Expand All @@ -13,5 +11,6 @@ const CASH_DEFAULT_NAME = BS_CASH__BANKACCOUNT_FINANCIALACCOUNT__NAME;
* @param {Ledger} p.ledger
*/
export function squareTrnWithCash ({ ledger }) {
// TODO funzione di modules/utils che crea una voce di cassa a completamento dello sbilancio corrente (es VsCash)
xxx; // read the current ledger unbalanced amount and create a cash entry to balance it
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// run it with `deno bench`

import { doubleEntrySideFromSimObjectType } from '../../../../src/engine/simobject/utils/doubleentryside_from_simobject_type.js';
import { doubleEntrySideFromSimObjectType } from '../../../../src/engine/simobject/enums/doubleentryside_enum.js';
import { SimObjectTypes_enum } from '../../../../src/engine/simobject/enums/simobject_types_enum.js';
import { DoubleEntrySide_enum } from '../../../../src/engine/simobject/enums/doubleentryside_enum.js';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { assert, assertFalse, assertEquals, assertNotEquals, assertThrows } from '../../../deps.js';

import { doubleEntrySideFromSimObjectType } from '../../../../src/engine/simobject/utils/doubleentryside_from_simobject_type.js';
import { doubleEntrySideFromSimObjectType } from '../../../../src/engine/simobject/enums/doubleentryside_enum.js';
import { SimObjectTypes_enum } from '../../../../src/engine/simobject/enums/simobject_types_enum.js';
import { DoubleEntrySide_enum } from '../../../../src/engine/simobject/enums/doubleentryside_enum.js';

Expand Down

0 comments on commit c366e44

Please sign in to comment.