reset
This commit is contained in:
parent
3744c7d961
commit
1d2f9dabfe
231
accounts.json
Normal file
231
accounts.json
Normal file
@ -0,0 +1,231 @@
|
||||
[
|
||||
{
|
||||
"number": 1000,
|
||||
"name": "Aktiva",
|
||||
"qualifiedName": "Aktiva",
|
||||
"type": "meta",
|
||||
"balance": 7885.58,
|
||||
"localBalance": 0,
|
||||
"description": "Meta-Konto für das Vermögen",
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 1100,
|
||||
"name": "Barvermögen",
|
||||
"qualifiedName": "Aktiva:Barvermögen",
|
||||
"type": "meta",
|
||||
"balance": 7885.58,
|
||||
"localBalance": 0,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 1110,
|
||||
"name": "Bargeld",
|
||||
"qualifiedName": "Aktiva:Barvermögen:Bargeld",
|
||||
"type": "default",
|
||||
"balance": 1048.42,
|
||||
"localBalance": 1048.42,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 1120,
|
||||
"name": "Girokonto",
|
||||
"qualifiedName": "Aktiva:Barvermögen:Girokonto",
|
||||
"type": "default",
|
||||
"balance": 2105.16,
|
||||
"localBalance": 2105.16,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 1130,
|
||||
"name": "Sparkonto",
|
||||
"qualifiedName": "Aktiva:Barvermögen:Sparkonto",
|
||||
"type": "default",
|
||||
"balance": 4732,
|
||||
"localBalance": 4732,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 4000,
|
||||
"name": "Erträge",
|
||||
"qualifiedName": "Erträge",
|
||||
"type": "meta",
|
||||
"balance": -7090.64,
|
||||
"localBalance": 0,
|
||||
"description": "Meta-Konto für alle Einnahmen",
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 4100,
|
||||
"name": "Gehalt",
|
||||
"qualifiedName": "Erträge:Gehalt",
|
||||
"type": "default",
|
||||
"balance": -5458.64,
|
||||
"localBalance": -5458.64,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 4200,
|
||||
"name": "Kindergeld",
|
||||
"qualifiedName": "Erträge:Kindergeld",
|
||||
"type": "default",
|
||||
"balance": -1000,
|
||||
"localBalance": -1000,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 4300,
|
||||
"name": "BAföG",
|
||||
"qualifiedName": "Erträge:BAföG",
|
||||
"type": "default",
|
||||
"balance": 0,
|
||||
"localBalance": 0,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 4400,
|
||||
"name": "Stipendium",
|
||||
"qualifiedName": "Erträge:Stipendium",
|
||||
"type": "default",
|
||||
"balance": 0,
|
||||
"localBalance": 0,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 4500,
|
||||
"name": "Unterhalt",
|
||||
"qualifiedName": "Erträge:Unterhalt",
|
||||
"type": "default",
|
||||
"balance": -600,
|
||||
"localBalance": -600,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 4800,
|
||||
"name": "Zinsen",
|
||||
"qualifiedName": "Erträge:Zinsen",
|
||||
"type": "default",
|
||||
"balance": -32,
|
||||
"localBalance": -32,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 4900,
|
||||
"name": "Sonstiges",
|
||||
"qualifiedName": "Erträge:Sonstiges",
|
||||
"type": "default",
|
||||
"balance": 0,
|
||||
"localBalance": 0,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 6000,
|
||||
"name": "Aufwendungen",
|
||||
"qualifiedName": "Aufwendungen",
|
||||
"type": "meta",
|
||||
"balance": 3699.18,
|
||||
"localBalance": 0,
|
||||
"description": "Meta-Konto für alle Ausgaben",
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 6100,
|
||||
"name": "Miete",
|
||||
"qualifiedName": "Aufwendungen:Miete",
|
||||
"type": "meta",
|
||||
"balance": 2240,
|
||||
"localBalance": 0,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 6110,
|
||||
"name": "Kaltmiete",
|
||||
"qualifiedName": "Aufwendungen:Miete:Kaltmiete",
|
||||
"type": "default",
|
||||
"balance": 1920,
|
||||
"localBalance": 1920,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 6120,
|
||||
"name": "Nebenkosten",
|
||||
"qualifiedName": "Aufwendungen:Miete:Nebenkosten",
|
||||
"type": "default",
|
||||
"balance": 320,
|
||||
"localBalance": 320,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 6200,
|
||||
"name": "Telekommunikation",
|
||||
"qualifiedName": "Aufwendungen:Telekommunikation",
|
||||
"type": "meta",
|
||||
"balance": 219.6,
|
||||
"localBalance": 0,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 6210,
|
||||
"name": "Festnetz",
|
||||
"qualifiedName": "Aufwendungen:Telekommunikation:Festnetz",
|
||||
"type": "default",
|
||||
"balance": 139.8,
|
||||
"localBalance": 139.8,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 6220,
|
||||
"name": "Mobilfunk",
|
||||
"qualifiedName": "Aufwendungen:Telekommunikation:Mobilfunk",
|
||||
"type": "default",
|
||||
"balance": 79.8,
|
||||
"localBalance": 79.8,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 6300,
|
||||
"name": "Semesterbeitrag",
|
||||
"qualifiedName": "Aufwendungen:Semesterbeitrag",
|
||||
"type": "default",
|
||||
"balance": 246,
|
||||
"localBalance": 246,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 6400,
|
||||
"name": "Lebensmittel",
|
||||
"qualifiedName": "Aufwendungen:Lebensmittel",
|
||||
"type": "default",
|
||||
"balance": 724.58,
|
||||
"localBalance": 724.58,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 6500,
|
||||
"name": "Mitgliedschaften",
|
||||
"qualifiedName": "Aufwendungen:Mitgliedschaften",
|
||||
"type": "default",
|
||||
"balance": 79,
|
||||
"localBalance": 79,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 6900,
|
||||
"name": "Sonstiges",
|
||||
"qualifiedName": "Aufwendungen:Sonstiges",
|
||||
"type": "default",
|
||||
"balance": 190,
|
||||
"localBalance": 190,
|
||||
"subaccounts": []
|
||||
},
|
||||
{
|
||||
"number": 9000,
|
||||
"name": "Anfangsbestand",
|
||||
"qualifiedName": "Anfangsbestand",
|
||||
"type": "default",
|
||||
"balance": -4494.12,
|
||||
"localBalance": -4494.12,
|
||||
"description": "Konto für Anfangsbestand zum 01.11.2023",
|
||||
"subaccounts": []
|
||||
}
|
||||
]
|
||||
@ -5,11 +5,43 @@ const databaseFile = "mytest.db"
|
||||
fs.readFile(databaseFile, (err, data) => {
|
||||
if (err) {
|
||||
fs.openSync(databaseFile, 'w');
|
||||
create_initial_accounts()
|
||||
}
|
||||
})
|
||||
// DB
|
||||
const db = require('better-sqlite3')(databaseFile);
|
||||
|
||||
function create_initial_accounts() {
|
||||
fs.readFile("accounts.json", "utf8", (err, jsonString) => {
|
||||
if (err) {
|
||||
console.log("Error reading the JSON file:", err);
|
||||
response.send("error")
|
||||
}
|
||||
try {
|
||||
account_data = JSON.parse(jsonString);
|
||||
for (let i = 0; i < account_data.length; i++) {
|
||||
account = account_data[i]
|
||||
console.log(account_data[i]["qualifiedName"])
|
||||
parentAccount = account["qualifiedName"].split(":")
|
||||
parentAccount.pop()
|
||||
parentAccount = parentAccount.join(":")
|
||||
if (parentAccount == "") {
|
||||
parentAccount = undefined
|
||||
}
|
||||
const new_acc = db
|
||||
.prepare(
|
||||
`INSERT INTO accounts (number, name, qualifiedName, description, type, parentAccount) VALUES (?, ?, ? ,?, ?, ?)`,
|
||||
)
|
||||
.run(account["number"], account["name"], account["qualifiedName"], "Initial Account", account["type"], parentAccount);
|
||||
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
console.log("Error parsing JSON string:", err);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Bootstrap the db
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS accounts (
|
||||
@ -39,4 +71,4 @@ FOREIGN KEY (transaction_id) REFERENCES transactions (transaction_id) FOREIGN KE
|
||||
|
||||
|
||||
|
||||
module.exports = db
|
||||
module.exports = { db, create_initial_accounts }
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
const express = require("express");
|
||||
const router = express.Router();
|
||||
|
||||
const db = require("../dependencies");
|
||||
const {db} = require("../dependencies");
|
||||
const {send_sse_update} = require("../sse")
|
||||
|
||||
// Fix if balance is null
|
||||
@ -53,6 +53,7 @@ router.get("/", (req, res) => {
|
||||
LEFT JOIN (SELECT SUM(amount) as localBalance, account_name FROM transaction_entries GROUP BY account_name) te ON te.account_name = qualifiedName
|
||||
LEFT JOIN (SELECT SUM(amount) as balance, account_name FROM transaction_entries GROUP BY account_name) tf ON tf.account_name = qualifiedName`;
|
||||
const accs = db.prepare(base_query).all();
|
||||
console.log(accs)
|
||||
|
||||
var real_accs = [];
|
||||
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
const db = require("../dependencies");
|
||||
const {db, create_initial_accounts} = require("../dependencies");
|
||||
const {send_sse_update} = require("../sse")
|
||||
|
||||
router.post("/reset", (req, res) => {
|
||||
db.exec("DELETE FROM accounts; DELETE FROM transaction_entries; DELETE FROM transactions")
|
||||
db.exec("DELETE FROM transaction_entries; DELETE FROM transactions; DELETE FROM accounts")
|
||||
create_initial_accounts()
|
||||
|
||||
res.status(204).send()
|
||||
send_sse_update()
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
const db = require("../dependencies");
|
||||
const {db} = require("../dependencies");
|
||||
const {send_sse_update} = require("../sse")
|
||||
|
||||
router.get("/", (req, res) => {
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
POST http://localhost:3000/api/v1/accounts/
|
||||
{"number":2000,"name":"Meintest","description":"Hallo","type":"default","parentAccount":"meins"}
|
||||
{"number":2000,"name":"Meintest","description":"Hallo","type":"default","parentAccount":"Aktiva"}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user