get dev #509
4
.github/workflows/dev-pipeline.yml
vendored
4
.github/workflows/dev-pipeline.yml
vendored
@@ -26,8 +26,8 @@ jobs:
|
||||
export PATH=$HOME/.nvm/versions/node/v22.14.0/bin:$PATH
|
||||
echo $PATH
|
||||
cd ~/online-energieausweis
|
||||
git reset --hard origin/main
|
||||
git reset --hard origin/dev
|
||||
git clean -f -d
|
||||
git pull origin main
|
||||
git pull origin dev
|
||||
git status
|
||||
make prod
|
||||
@@ -2,20 +2,27 @@
|
||||
|
||||
FILE_NAME=data-dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br
|
||||
FILE_NAME_COMPLETE=full-dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br
|
||||
# Wir exportieren die Datenbank und komprimieren sie.
|
||||
docker exec -t online-energieausweis-database-1 pg_dump --data-only -U main main | brotli --best > $FILE_NAME
|
||||
docker exec -t online-energieausweis-database-1 pg_dumpall -c -U main | brotli --best > $FILE_NAME_COMPLETE
|
||||
|
||||
# Das wird benötigt für AWS Ionos Kompatibilität.
|
||||
export AWS_REQUEST_CHECKSUM_CALCULATION=when_required
|
||||
export AWS_RESPONSE_CHECKSUM_VALIDATION=when_required
|
||||
|
||||
# Wir exportieren die Datenbank und komprimieren sie.
|
||||
# IMPORTANT: Dieser Befehl benötigt das `ionos` Profil, sonst wird er nicht funktionieren.
|
||||
# Das Profil kann mit `aws configure --profile ionos` erstellt werden.
|
||||
# Den Key dafür findet man auf https://dcd.ionos.com/latest/?lang=en#/key-management
|
||||
docker exec -t online-energieausweis-database-1 pg_dump --data-only -U main main | brotli --best > $FILE_NAME
|
||||
|
||||
aws s3 cp $FILE_NAME s3://ibc-db-backup/ --profile ionos --endpoint-url https://s3-eu-central-1.ionoscloud.com --storage-class STANDARD
|
||||
|
||||
echo "Uploaded $FILE_NAME"
|
||||
|
||||
docker exec -t online-energieausweis-database-1 pg_dumpall -c -U main | brotli --best > $FILE_NAME_COMPLETE
|
||||
|
||||
aws s3 cp $FILE_NAME_COMPLETE s3://ibc-db-backup/ --profile ionos --endpoint-url https://s3-eu-central-1.ionoscloud.com --storage-class STANDARD
|
||||
|
||||
echo "Uploaded $FILE_NAME_COMPLETE"
|
||||
|
||||
# Wir entfernen das Backup
|
||||
rm $FILE_NAME
|
||||
rm $FILE_NAME_COMPLETE
|
||||
@@ -60,42 +60,12 @@ function vergleichsWertNichtWohngebaeude(ausweis: VerbrauchsausweisGewerbeClient
|
||||
* @param Ausweis ausweis Ein Ausweis dessen Energiebedarf berechnet werden soll
|
||||
* @return VerbrauchsausweisGewerbeCalculationResult
|
||||
*/
|
||||
export async function endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient) {
|
||||
export async function endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, klimafaktoren: { month: number, year: number, klimafaktor: number }[]) {
|
||||
if (!aufnahme || !objekt || !ausweis) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const nutzflaeche = aufnahme.nutzflaeche || 0;
|
||||
|
||||
let startdatum = moment(ausweis.startdatum);
|
||||
|
||||
let klimafaktoren: Awaited<ReturnType<typeof getKlimafaktoren>> = [{
|
||||
month: startdatum.month(),
|
||||
year: startdatum.year(),
|
||||
klimafaktor: 1
|
||||
},
|
||||
{
|
||||
month: startdatum.month(),
|
||||
year: startdatum.year() + 1,
|
||||
klimafaktor: 1
|
||||
},
|
||||
{
|
||||
month: startdatum.month(),
|
||||
year: startdatum.year() + 2,
|
||||
klimafaktor: 1
|
||||
}];
|
||||
|
||||
try {
|
||||
const response = await getKlimafaktorenServer(objekt.plz as string, moment(ausweis.startdatum).toDate(), moment(ausweis.startdatum).add(2, "years").toDate())
|
||||
|
||||
if (response) {
|
||||
klimafaktoren = response
|
||||
}
|
||||
} catch (e) {
|
||||
// TODO: Entweder setzen wir hier mit falschen Klimafaktoren fort, oder wir geben null zurück.
|
||||
// Im Moment setzen wir einfach fort, aber das ist nicht unbedingt die beste Lösung.
|
||||
// return null
|
||||
}
|
||||
|
||||
// Endenergieverbrauch
|
||||
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
import moment from "moment";
|
||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "./VerbrauchsausweisGewerbe_2016.js";
|
||||
import { Aufnahme, Objekt, VerbrauchsausweisGewerbe } from "#lib/server/prisma.js";
|
||||
import { getKlimafaktoren } from "#lib/Klimafaktoren.js";
|
||||
|
||||
export async function endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Server(
|
||||
ausweis: VerbrauchsausweisGewerbe,
|
||||
aufnahme: Aufnahme,
|
||||
objekt: Objekt,
|
||||
) {
|
||||
const klimafaktoren = await getKlimafaktoren(
|
||||
objekt.plz as string,
|
||||
moment(ausweis.startdatum).toDate(),
|
||||
moment(ausweis.startdatum).add(2, "years").toDate()
|
||||
) || [];
|
||||
|
||||
return await endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis, aufnahme, objekt, klimafaktoren)
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import moment from "moment";
|
||||
import { getKlimafaktorenServer } from "#lib/server/klimafaktoren.js";
|
||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "./VerbrauchsausweisGewerbe_2016.js";
|
||||
import { Aufnahme, Objekt, VerbrauchsausweisGewerbe } from "#lib/server/prisma.js";
|
||||
|
||||
export async function endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Server(
|
||||
ausweis: VerbrauchsausweisGewerbe,
|
||||
aufnahme: Aufnahme,
|
||||
objekt: Objekt,
|
||||
) {
|
||||
const klimafaktoren = await getKlimafaktorenServer(
|
||||
objekt.plz as string,
|
||||
moment(ausweis.startdatum).toDate(),
|
||||
moment(ausweis.startdatum).add(2, "years").toDate()
|
||||
) || [];
|
||||
|
||||
return await endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis, aufnahme, objekt, klimafaktoren)
|
||||
}
|
||||
@@ -1,9 +1,6 @@
|
||||
import { AufnahmeClient, ObjektClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||
import { getKlimafaktoren } from "#lib/Klimafaktoren.js";
|
||||
import { getHeizwertfaktor } from "#lib/server/Heizwertfaktor.js";
|
||||
import { Enums } from "#lib/client/prisma.js";
|
||||
import moment from "moment";
|
||||
import { getKlimafaktorenServer } from "#lib/server/klimafaktoren.js";
|
||||
|
||||
export function energetischeNutzflaecheVerbrauchsausweisWohnen_2016(
|
||||
ausweis: VerbrauchsausweisWohnenClient,
|
||||
@@ -25,43 +22,13 @@ export function energetischeNutzflaecheVerbrauchsausweisWohnen_2016(
|
||||
export async function endEnergieVerbrauchVerbrauchsausweis_2016(
|
||||
ausweis: VerbrauchsausweisWohnenClient,
|
||||
aufnahme: AufnahmeClient,
|
||||
objekt: ObjektClient
|
||||
objekt: ObjektClient,
|
||||
klimafaktoren: {month: number, year: number, klimafaktor: number}[]
|
||||
) {
|
||||
if (!aufnahme || !objekt || !ausweis) {
|
||||
return null;
|
||||
}
|
||||
|
||||
let startdatum = moment(ausweis.startdatum);
|
||||
|
||||
let klimafaktoren: Awaited<ReturnType<typeof getKlimafaktoren>> = [{
|
||||
month: startdatum.month(),
|
||||
year: startdatum.year(),
|
||||
klimafaktor: 1
|
||||
},
|
||||
{
|
||||
month: startdatum.month(),
|
||||
year: startdatum.year() + 1,
|
||||
klimafaktor: 1
|
||||
},
|
||||
{
|
||||
month: startdatum.month(),
|
||||
year: startdatum.year() + 2,
|
||||
klimafaktor: 1
|
||||
}];
|
||||
|
||||
try {
|
||||
const response = await getKlimafaktorenServer(objekt.plz as string, moment(ausweis.startdatum).toDate(), moment(ausweis.startdatum).add(2, "years").toDate())
|
||||
|
||||
if (response) {
|
||||
klimafaktoren = response
|
||||
}
|
||||
} catch (e) {
|
||||
// TODO: Entweder setzen wir hier mit falschen Klimafaktoren fort, oder wir geben null zurück.
|
||||
// Im Moment setzen wir einfach fort, aber das ist nicht unbedingt die beste Lösung.
|
||||
// return null
|
||||
}
|
||||
|
||||
|
||||
// Endenergieverbrauch
|
||||
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
|
||||
let brennstoff_1 = getHeizwertfaktor(
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import {
|
||||
VerbrauchsausweisWohnenClient,
|
||||
AufnahmeClient,
|
||||
ObjektClient,
|
||||
} from "#components/Ausweis/types.js";
|
||||
import { getKlimafaktoren } from "#lib/Klimafaktoren.js";
|
||||
import moment from "moment";
|
||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "./VerbrauchsausweisWohnen_2016.js";
|
||||
|
||||
export async function endEnergieVerbrauchVerbrauchsausweis_2016_Client(
|
||||
ausweis: VerbrauchsausweisWohnenClient,
|
||||
aufnahme: AufnahmeClient,
|
||||
objekt: ObjektClient,
|
||||
) {
|
||||
const klimafaktoren = await getKlimafaktoren(
|
||||
objekt.plz as string,
|
||||
moment(ausweis.startdatum).toDate(),
|
||||
moment(ausweis.startdatum).add(2, "years").toDate()
|
||||
) || [];
|
||||
|
||||
return await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt, klimafaktoren)
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import {
|
||||
VerbrauchsausweisWohnenClient,
|
||||
AufnahmeClient,
|
||||
ObjektClient,
|
||||
} from "#components/Ausweis/types.js";
|
||||
import moment from "moment";
|
||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "./VerbrauchsausweisWohnen_2016.js";
|
||||
import { getKlimafaktorenServer } from "#lib/server/klimafaktoren.js";
|
||||
|
||||
export async function endEnergieVerbrauchVerbrauchsausweis_2016_Server(
|
||||
ausweis: VerbrauchsausweisWohnenClient,
|
||||
aufnahme: AufnahmeClient,
|
||||
objekt: ObjektClient,
|
||||
) {
|
||||
const klimafaktoren = await getKlimafaktorenServer(
|
||||
objekt.plz as string,
|
||||
moment(ausweis.startdatum).toDate(),
|
||||
moment(ausweis.startdatum).add(2, "years").toDate()
|
||||
) || [];
|
||||
|
||||
return await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt, klimafaktoren)
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
import type { VerbrauchsausweisWohnen } from "#lib/client/prisma";
|
||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "./VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
||||
import { AufnahmeClient, ObjektClient } from "#components/Ausweis/types.js";
|
||||
|
||||
export async function endEnergieVerbrauch(ausweis: VerbrauchsausweisWohnen, aufnahme: AufnahmeClient, objekt: ObjektClient): Promise<number> {
|
||||
const result = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt);
|
||||
|
||||
if (!result) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return result.endEnergieVerbrauchGesamt;
|
||||
}
|
||||
@@ -18,8 +18,6 @@ export const getKlimafaktoren = memoize(async (date: Date, plz: string) => {
|
||||
});
|
||||
return response;
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -4,8 +4,8 @@ import { PDFDocument, StandardFonts } from "pdf-lib";
|
||||
import { xml2pdf } from "./elements/xml2pdf.js";
|
||||
import moment from "moment";
|
||||
import { Enums, Heizungsstatus } from "#lib/server/prisma.js";
|
||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
||||
import { copyPage } from "./utils/copyPage.js";
|
||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Server } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016_Client.js";
|
||||
|
||||
/* -------------------------------- Pdf Tools ------------------------------- */
|
||||
|
||||
@@ -18,7 +18,7 @@ export async function pdfDatenblattVerbrauchsausweisGewerbe(ausweis: Verbrauchsa
|
||||
|
||||
// const template = VerbrauchsausweisWohnen2016Template as Template;
|
||||
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis, aufnahme, objekt);
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Server(ausweis, aufnahme, objekt);
|
||||
|
||||
const height = pages[0].getHeight()
|
||||
const width = pages[0].getWidth()
|
||||
|
||||
@@ -6,6 +6,7 @@ import { xml2pdf } from "./elements/xml2pdf.js";
|
||||
import moment from "moment";
|
||||
import { Enums, Heizungsstatus } from "#lib/server/prisma.js";
|
||||
import { copyPage } from "./utils/copyPage.js";
|
||||
import { endEnergieVerbrauchVerbrauchsausweis_2016_Server } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016_Server.js";
|
||||
|
||||
/* -------------------------------- Pdf Tools ------------------------------- */
|
||||
|
||||
@@ -19,7 +20,7 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
|
||||
|
||||
// const template = VerbrauchsausweisWohnen2016Template as Template;
|
||||
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt);
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016_Server(ausweis, aufnahme, objekt);
|
||||
|
||||
const height = pages[0].getHeight()
|
||||
const width = pages[0].getWidth()
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
|
||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
||||
import { getEmpfehlungen } from "#lib/XML/getEmpfehlungen.js";
|
||||
import { Enums } from "#lib/server/prisma.js";
|
||||
import * as fs from "fs"
|
||||
@@ -9,6 +8,7 @@ import { addCheckMark } from "./utils/checkbox.js";
|
||||
import { addText } from "./utils/text.js";
|
||||
import { addAnsichtsausweisLabel, addDatumGEG } from "./utils/helpers.js";
|
||||
import { getS3File } from "#lib/s3.js";
|
||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Server } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016_Client.js";
|
||||
|
||||
|
||||
export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: BildClient[], user: BenutzerClient, vorschau = true) {
|
||||
@@ -18,7 +18,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
||||
|
||||
// const template = VerbrauchsausweisWohnen2016Template as Template;
|
||||
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis, aufnahme, objekt);
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Server(ausweis, aufnahme, objekt);
|
||||
|
||||
const empfehlungen = getEmpfehlungen(ausweis, aufnahme, objekt)
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ import { addCheckMark } from "./utils/checkbox.js";
|
||||
import { addText } from "./utils/text.js";
|
||||
import { addAnsichtsausweisLabel, addDatumGEG } from "./utils/helpers.js";
|
||||
import { getS3File } from "#lib/s3.js";
|
||||
import { endEnergieVerbrauchVerbrauchsausweis_2016_Server } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016_Server.js";
|
||||
|
||||
/* -------------------------------- Pdf Tools ------------------------------- */
|
||||
|
||||
@@ -19,7 +20,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
||||
|
||||
// const template = VerbrauchsausweisWohnen2016Template as Template;
|
||||
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt);
|
||||
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016_Server(ausweis, aufnahme, objekt);
|
||||
console.log(berechnungen?.klimafaktoren);
|
||||
|
||||
const empfehlungen = getEmpfehlungen(ausweis, aufnahme, objekt)
|
||||
|
||||
Reference in New Issue
Block a user