Ansichtsausweis Verbrauch
This commit is contained in:
@@ -3,10 +3,13 @@ import { generate } from "@pdfme/generator";
|
|||||||
import VerbrauchsausweisWohnen2016Template from "../../lib/pdf/templates/GEG24_Verbrauchsausweis.json";
|
import VerbrauchsausweisWohnen2016Template from "../../lib/pdf/templates/GEG24_Verbrauchsausweis.json";
|
||||||
import { convertAusweisData } from "#lib/AusweisData";
|
import { convertAusweisData } from "#lib/AusweisData";
|
||||||
import { variable } from "#lib/pdf/plugins/variables";
|
import { variable } from "#lib/pdf/plugins/variables";
|
||||||
import { text, image } from "@pdfme/schemas"
|
import { text, image } from "@pdfme/schemas";
|
||||||
import { createCaller } from "#lib/caller";
|
import { createCaller } from "#lib/caller";
|
||||||
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
|
||||||
import { Template } from "@pdfme/common";
|
import { Schema, Template } from "@pdfme/common";
|
||||||
|
import { Moment } from "moment";
|
||||||
|
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016";
|
||||||
|
import moment from "moment";
|
||||||
|
|
||||||
const base64 = Astro.url.searchParams.get("base64");
|
const base64 = Astro.url.searchParams.get("base64");
|
||||||
let ausweis: Partial<VerbrauchsausweisWohnenClient> | null = null;
|
let ausweis: Partial<VerbrauchsausweisWohnenClient> | null = null;
|
||||||
@@ -24,30 +27,153 @@ if (base64) {
|
|||||||
const caller = createCaller(Astro);
|
const caller = createCaller(Astro);
|
||||||
|
|
||||||
ausweis = await caller.v1.verbrauchsausweisWohnen.get({
|
ausweis = await caller.v1.verbrauchsausweisWohnen.get({
|
||||||
uid: uidAusweis
|
uid: uidAusweis,
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const template = VerbrauchsausweisWohnen2016Template as Template;
|
const template = VerbrauchsausweisWohnen2016Template as Template;
|
||||||
|
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis);
|
||||||
|
|
||||||
template.schemas.push({})
|
let inputs: Record<string, string> = {};
|
||||||
template.schemas.push({})
|
|
||||||
template.schemas[2]["energie_1"] = {
|
// Verbrauchszeiträume
|
||||||
position: {
|
const addVerbrauchszeitraum = (() => {
|
||||||
x: 15,
|
let row = 0;
|
||||||
y: 140
|
let columnWidth = [16, 16, 80, 12, 18, 18, 18, 12];
|
||||||
},
|
|
||||||
height: 5,
|
const getPosition = (column: number) => {
|
||||||
width: 14,
|
return {
|
||||||
type: "text",
|
position: {
|
||||||
fontSize: 8,
|
x:
|
||||||
verticalAlign: "middle"
|
15 +
|
||||||
|
columnWidth.reduce(
|
||||||
|
(a, c, i) => (i >= column ? a : a + c),
|
||||||
|
0
|
||||||
|
),
|
||||||
|
y: 141 + row * 5,
|
||||||
|
},
|
||||||
|
height: 5,
|
||||||
|
width: 14,
|
||||||
|
type: "text",
|
||||||
|
fontSize: 8,
|
||||||
|
verticalAlign: "middle",
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
schema: Schema,
|
||||||
|
start: Moment,
|
||||||
|
end: Moment,
|
||||||
|
energietraeger: string,
|
||||||
|
primaerenergiefaktor: number,
|
||||||
|
energieverbrauch: number,
|
||||||
|
anteilWarmwasser: number,
|
||||||
|
klimafaktor: number
|
||||||
|
) => {
|
||||||
|
inputs[`verbrauchszeitraum_${row}_start`] = start.format("MM.YYYY");
|
||||||
|
inputs[`verbrauchszeitraum_${row}_end`] = end.format("MM.YYYY");
|
||||||
|
inputs[`verbrauchszeitraum_${row}_energietraeger`] = energietraeger;
|
||||||
|
inputs[`verbrauchszeitraum_${row}_primaerenergiefaktor`] =
|
||||||
|
primaerenergiefaktor.toString();
|
||||||
|
inputs[`verbrauchszeitraum_${row}_energieverbrauch`] =
|
||||||
|
energieverbrauch.toString();
|
||||||
|
inputs[`verbrauchszeitraum_${row}_anteil_warmwasser`] = Math.round(
|
||||||
|
anteilWarmwasser * energieverbrauch
|
||||||
|
).toString();
|
||||||
|
inputs[`verbrauchszeitraum_${row}_anteil_heizung`] = Math.round(
|
||||||
|
(1 - anteilWarmwasser) *
|
||||||
|
energieverbrauch
|
||||||
|
).toString();
|
||||||
|
inputs[`verbrauchszeitraum_${row}_klimafaktor`] =
|
||||||
|
klimafaktor.toString();
|
||||||
|
|
||||||
|
schema[`verbrauchszeitraum_${row}_start`] = getPosition(0);
|
||||||
|
schema[`verbrauchszeitraum_${row}_end`] = getPosition(1);
|
||||||
|
schema[`verbrauchszeitraum_${row}_energietraeger`] = getPosition(2);
|
||||||
|
schema[`verbrauchszeitraum_${row}_primaerenergiefaktor`] =
|
||||||
|
getPosition(3);
|
||||||
|
schema[`verbrauchszeitraum_${row}_energieverbrauch`] = getPosition(4);
|
||||||
|
schema[`verbrauchszeitraum_${row}_anteil_warmwasser`] = getPosition(5);
|
||||||
|
schema[`verbrauchszeitraum_${row}_anteil_heizung`] = getPosition(6);
|
||||||
|
schema[`verbrauchszeitraum_${row}_klimafaktor`] = getPosition(7);
|
||||||
|
|
||||||
|
row++;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
addVerbrauchszeitraum(
|
||||||
|
template.schemas[2],
|
||||||
|
moment(ausweis.startdatum),
|
||||||
|
moment(ausweis.startdatum).add("1", "year"),
|
||||||
|
ausweis.gebaeude_aufnahme_allgemein?.brennstoff_1,
|
||||||
|
berechnungen?.primaerfaktorww,
|
||||||
|
berechnungen?.verbrauch_1_kwh,
|
||||||
|
ausweis.anteil_warmwasser_1 / 100,
|
||||||
|
berechnungen?.klimafaktoren[0].klimafaktor
|
||||||
|
);
|
||||||
|
|
||||||
|
addVerbrauchszeitraum(
|
||||||
|
template.schemas[2],
|
||||||
|
moment(ausweis.startdatum).add("1", "year"),
|
||||||
|
moment(ausweis.startdatum).add("2", "years"),
|
||||||
|
ausweis.gebaeude_aufnahme_allgemein?.brennstoff_1,
|
||||||
|
berechnungen?.primaerfaktorww,
|
||||||
|
berechnungen?.verbrauch_2_kwh,
|
||||||
|
ausweis.anteil_warmwasser_1 / 100,
|
||||||
|
berechnungen?.klimafaktoren[1].klimafaktor
|
||||||
|
);
|
||||||
|
|
||||||
|
addVerbrauchszeitraum(
|
||||||
|
template.schemas[2],
|
||||||
|
moment(ausweis.startdatum).add("2", "years"),
|
||||||
|
moment(ausweis.startdatum).add("3", "years"),
|
||||||
|
ausweis.gebaeude_aufnahme_allgemein?.brennstoff_1,
|
||||||
|
berechnungen?.primaerfaktorww,
|
||||||
|
berechnungen?.verbrauch_3_kwh,
|
||||||
|
ausweis.anteil_warmwasser_1 / 100,
|
||||||
|
berechnungen?.klimafaktoren[2].klimafaktor
|
||||||
|
);
|
||||||
|
|
||||||
|
if (ausweis.zusaetzliche_heizquelle) {
|
||||||
|
addVerbrauchszeitraum(
|
||||||
|
template.schemas[2],
|
||||||
|
moment(ausweis.startdatum),
|
||||||
|
moment(ausweis.startdatum).add("1", "year"),
|
||||||
|
ausweis.gebaeude_aufnahme_allgemein?.brennstoff_2,
|
||||||
|
berechnungen?.primaerfaktorww_1,
|
||||||
|
berechnungen?.verbrauch_4_kwh,
|
||||||
|
ausweis.anteil_warmwasser_2 / 100,
|
||||||
|
berechnungen?.klimafaktoren[0].klimafaktor
|
||||||
|
);
|
||||||
|
|
||||||
|
addVerbrauchszeitraum(
|
||||||
|
template.schemas[2],
|
||||||
|
moment(ausweis.startdatum).add("1", "year"),
|
||||||
|
moment(ausweis.startdatum).add("2", "years"),
|
||||||
|
ausweis.gebaeude_aufnahme_allgemein?.brennstoff_2,
|
||||||
|
berechnungen?.primaerfaktorww_1,
|
||||||
|
berechnungen?.verbrauch_5_kwh,
|
||||||
|
ausweis.anteil_warmwasser_2 / 100,
|
||||||
|
berechnungen?.klimafaktoren[1].klimafaktor
|
||||||
|
);
|
||||||
|
|
||||||
|
addVerbrauchszeitraum(
|
||||||
|
template.schemas[2],
|
||||||
|
moment(ausweis.startdatum).add("2", "years"),
|
||||||
|
moment(ausweis.startdatum).add("3", "years"),
|
||||||
|
ausweis.gebaeude_aufnahme_allgemein?.brennstoff_2,
|
||||||
|
berechnungen?.primaerfaktorww_1,
|
||||||
|
berechnungen?.verbrauch_6_kwh,
|
||||||
|
ausweis.anteil_warmwasser_2 / 100,
|
||||||
|
berechnungen?.klimafaktoren[1].klimafaktor
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const pdf = await generate({
|
const pdf = await generate({
|
||||||
template,
|
template,
|
||||||
plugins: { text, image, variable },
|
plugins: { text, image, variable },
|
||||||
inputs: [{...convertAusweisData(ausweis), energie_1: "Hallo"}],
|
inputs: [{ ...convertAusweisData(ausweis), ...inputs }],
|
||||||
options: {
|
options: {
|
||||||
author: "IB Cornelsen",
|
author: "IB Cornelsen",
|
||||||
creationDate: new Date(),
|
creationDate: new Date(),
|
||||||
|
|||||||
Reference in New Issue
Block a user