From 5185820a32f6f7459e845611382c61f275b78bf1 Mon Sep 17 00:00:00 2001 From: 18alantom <2.alan.tom@gmail.com> Date: Tue, 16 Aug 2022 17:02:35 +0530 Subject: [PATCH] fix: add patch to set/unset roundoff --- backend/patches/fixRoundOffAccount.ts | 55 +++++++++++++++++++++++++++ backend/patches/index.ts | 6 +++ 2 files changed, 61 insertions(+) create mode 100644 backend/patches/fixRoundOffAccount.ts diff --git a/backend/patches/fixRoundOffAccount.ts b/backend/patches/fixRoundOffAccount.ts new file mode 100644 index 00000000..59f5c280 --- /dev/null +++ b/backend/patches/fixRoundOffAccount.ts @@ -0,0 +1,55 @@ +import { ModelNameEnum } from '../../models/types'; +import { DatabaseManager } from '../database/manager'; + +const FIELDNAME = 'roundOffAccount'; + +async function execute(dm: DatabaseManager) { + const accounts = await dm.db!.getSingleValues(FIELDNAME); + if (!accounts.length) { + await testAndSetRoundOffAccount(dm); + } + + await dm.db!.delete(ModelNameEnum.AccountingSettings, FIELDNAME); + + let isSet = false; + for (const { parent, value } of accounts) { + if (parent !== ModelNameEnum.AccountingSettings) { + continue; + } + + isSet = await setRoundOffAccountIfExists(value as string, dm); + if (isSet) { + break; + } + } + + if (!isSet) { + await testAndSetRoundOffAccount(dm); + } +} + +async function testAndSetRoundOffAccount(dm: DatabaseManager) { + const isSet = await setRoundOffAccountIfExists('Round Off', dm); + if (!isSet) { + await setRoundOffAccountIfExists('Rounded Off', dm); + } + + return; +} + +async function setRoundOffAccountIfExists( + roundOffAccount: string, + dm: DatabaseManager +) { + const exists = await dm.db!.exists(ModelNameEnum.Account, roundOffAccount); + if (!exists) { + return false; + } + + await dm.db!.insert(ModelNameEnum.AccountingSettings, { + roundOffAccount, + }); + return true; +} + +export default { execute, beforeMigrate: true }; diff --git a/backend/patches/index.ts b/backend/patches/index.ts index e39ec057..796bff8c 100644 --- a/backend/patches/index.ts +++ b/backend/patches/index.ts @@ -1,5 +1,6 @@ import { Patch } from '../database/types'; import addUOMs from './addUOMs'; +import fixRoundOffAccount from './fixRoundOffAccount'; import testPatch from './testPatch'; import updateSchemas from './updateSchemas'; @@ -16,4 +17,9 @@ export default [ version: '0.6.0-beta.0', patch: addUOMs, }, + { + name: 'fixRoundOffAccount', + version: '0.6.3-beta.0', + patch: fixRoundOffAccount + }, ] as Patch[];