Merge branch 'main' into UMBE
This commit is contained in:
@@ -6,7 +6,6 @@ import node from "@astrojs/node";
|
||||
import mdx from "@astrojs/mdx";
|
||||
import astroTypesafeAPI from "astro-typesafe-api"
|
||||
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
integrations: [svelte(), tailwind(), mdx(), astroTypesafeAPI()],
|
||||
|
||||
15
bun.lock
15
bun.lock
@@ -32,7 +32,7 @@
|
||||
"js-interpolate": "^1.3.2",
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
"jwt-decode": "^4.0.0",
|
||||
"mime-types": "^2.1.35",
|
||||
"mime": "^4.0.6",
|
||||
"moment": "^2.30.1",
|
||||
"moment-timezone": "^0.5.46",
|
||||
"nodemailer": "^6.10.0",
|
||||
@@ -64,7 +64,6 @@
|
||||
"@types/is-base64": "^1.1.3",
|
||||
"@types/js-cookie": "^3.0.6",
|
||||
"@types/jsonwebtoken": "^9.0.7",
|
||||
"@types/mime-types": "^2.1.4",
|
||||
"@types/nodemailer": "^6.4.17",
|
||||
"@types/papaparse": "^5.3.15",
|
||||
"@types/siema": "^1.4.11",
|
||||
@@ -772,8 +771,6 @@
|
||||
|
||||
"@types/mime": ["@types/mime@1.3.5", "", {}, "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="],
|
||||
|
||||
"@types/mime-types": ["@types/mime-types@2.1.4", "", {}, "sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w=="],
|
||||
|
||||
"@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="],
|
||||
|
||||
"@types/nlcst": ["@types/nlcst@2.0.3", "", { "dependencies": { "@types/unist": "*" } }, "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA=="],
|
||||
@@ -1856,7 +1853,7 @@
|
||||
|
||||
"micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
|
||||
|
||||
"mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="],
|
||||
"mime": ["mime@4.0.6", "", { "bin": { "mime": "bin/cli.js" } }, "sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A=="],
|
||||
|
||||
"mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="],
|
||||
|
||||
@@ -2868,6 +2865,8 @@
|
||||
|
||||
"node-mocks-http/depd": ["depd@1.1.2", "", {}, "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="],
|
||||
|
||||
"node-mocks-http/mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="],
|
||||
|
||||
"normalize-package-data/semver": ["semver@5.7.2", "", { "bin": { "semver": "bin/semver" } }, "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="],
|
||||
|
||||
"npm-packlist/glob": ["glob@8.1.0", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^5.0.1", "once": "^1.3.0" } }, "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ=="],
|
||||
@@ -2938,6 +2937,8 @@
|
||||
|
||||
"send/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="],
|
||||
|
||||
"send/mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="],
|
||||
|
||||
"serve-static/send": ["send@0.19.0", "", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" } }, "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw=="],
|
||||
|
||||
"soap/strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="],
|
||||
@@ -3022,6 +3023,8 @@
|
||||
|
||||
"express/send/encodeurl": ["encodeurl@1.0.2", "", {}, "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="],
|
||||
|
||||
"express/send/mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="],
|
||||
|
||||
"finalhandler/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="],
|
||||
|
||||
"form-render/@ant-design/icons/@ant-design/colors": ["@ant-design/colors@6.0.0", "", { "dependencies": { "@ctrl/tinycolor": "^3.4.0" } }, "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ=="],
|
||||
@@ -3094,6 +3097,8 @@
|
||||
|
||||
"serve-static/send/encodeurl": ["encodeurl@1.0.2", "", {}, "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="],
|
||||
|
||||
"serve-static/send/mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="],
|
||||
|
||||
"tsx/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.0", "", { "os": "aix", "cpu": "ppc64" }, "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ=="],
|
||||
|
||||
"tsx/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.0", "", { "os": "android", "cpu": "arm" }, "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g=="],
|
||||
|
||||
@@ -35,6 +35,14 @@ export default defineConfig({
|
||||
on("task", {
|
||||
async verbrauchsausweisWohnen(query) {
|
||||
return await prisma.verbrauchsausweisWohnen.findFirst(query)
|
||||
},
|
||||
async plz() {
|
||||
const total = await prisma.postleitzahlen.count()
|
||||
const result = await prisma.postleitzahlen.findFirst({
|
||||
skip: Math.floor(Math.random() * total)
|
||||
})
|
||||
|
||||
return result?.plz
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
"js-interpolate": "^1.3.2",
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
"jwt-decode": "^4.0.0",
|
||||
"mime-types": "^2.1.35",
|
||||
"mime": "^4.0.6",
|
||||
"moment": "^2.30.1",
|
||||
"moment-timezone": "^0.5.46",
|
||||
"nodemailer": "^6.10.0",
|
||||
@@ -78,7 +78,6 @@
|
||||
"@types/is-base64": "^1.1.3",
|
||||
"@types/js-cookie": "^3.0.6",
|
||||
"@types/jsonwebtoken": "^9.0.7",
|
||||
"@types/mime-types": "^2.1.4",
|
||||
"@types/nodemailer": "^6.4.17",
|
||||
"@types/papaparse": "^5.3.15",
|
||||
"@types/siema": "^1.4.11",
|
||||
|
||||
44
prisma/migrations/20250330225209_/migration.sql
Normal file
44
prisma/migrations/20250330225209_/migration.sql
Normal file
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `ausstellungsdatum` on the `Aufnahme` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `ausweisart` on the `Aufnahme` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `boxpruefung` on the `Aufnahme` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `brennstoff_1` on the `Aufnahme` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `brennstoff_2` on the `Aufnahme` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `energieeffizienzklasse` on the `Aufnahme` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `uid` on the `Bild` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `keller_beheizt` on the `VerbrauchsausweisWohnen` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- DropIndex
|
||||
DROP INDEX "Bild_uid_key";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Aufnahme" DROP COLUMN "ausstellungsdatum",
|
||||
DROP COLUMN "ausweisart",
|
||||
DROP COLUMN "boxpruefung",
|
||||
DROP COLUMN "brennstoff_1",
|
||||
DROP COLUMN "brennstoff_2",
|
||||
DROP COLUMN "energieeffizienzklasse";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "ausstellungsdatum" TIMESTAMP(3),
|
||||
ADD COLUMN "boxpruefung" BOOLEAN DEFAULT false,
|
||||
ADD COLUMN "energieeffizienzklasse" VARCHAR(5);
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Bild" DROP COLUMN "uid";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "VerbrauchsausweisGewerbe" ADD COLUMN "ausstellungsdatum" TIMESTAMP(3),
|
||||
ADD COLUMN "boxpruefung" BOOLEAN DEFAULT false,
|
||||
ADD COLUMN "energieeffizienzklasse" VARCHAR(5);
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "VerbrauchsausweisWohnen" DROP COLUMN "keller_beheizt",
|
||||
ADD COLUMN "ausstellungsdatum" TIMESTAMP(3),
|
||||
ADD COLUMN "boxpruefung" BOOLEAN DEFAULT false,
|
||||
ADD COLUMN "brennstoff_1" VARCHAR(50),
|
||||
ADD COLUMN "brennstoff_2" VARCHAR(50),
|
||||
ADD COLUMN "energieeffizienzklasse" VARCHAR(5);
|
||||
22
prisma/migrations/20250331182241_nachweise/migration.sql
Normal file
22
prisma/migrations/20250331182241_nachweise/migration.sql
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `updated_at` to the `BedarfsausweisGewerbe` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `updated_at` to the `GEGNachweisGewerbe` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `updated_at` to the `GEGNachweisWohnen` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "BedarfsausweisGewerbe" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
ADD COLUMN "nachweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
|
||||
ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "GEGNachweisGewerbe" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
ADD COLUMN "nachweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
|
||||
ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "GEGNachweisWohnen" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
ADD COLUMN "nachweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
|
||||
ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL;
|
||||
@@ -16,8 +16,6 @@ model Aufnahme {
|
||||
id String @id @unique @db.VarChar(8)
|
||||
benutzer_id String?
|
||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||
/// @zod.describe("Art des korrespondierenden Ausweises, wie z.B. VerbrauchsausweisWohnen")
|
||||
ausweisart Ausweisart?
|
||||
/// @zod.describe("Art des Gebäudes und seiner primären Nutzungsart")
|
||||
gebaeudetyp String? @db.VarChar
|
||||
/// @zod.describe("Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil")
|
||||
@@ -56,20 +54,8 @@ model Aufnahme {
|
||||
/// @zod.describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen")
|
||||
alternative_kuehlung Boolean?
|
||||
|
||||
/// @zod.describe("Genutzer Brennstoff der primären Energiequelle")
|
||||
brennstoff_1 String? @db.VarChar(50)
|
||||
/// @zod.describe("Genutzer Brennstoff der sekundären Energiequelle")
|
||||
brennstoff_2 String? @db.VarChar(50)
|
||||
|
||||
boxpruefung Boolean? @default(false)
|
||||
|
||||
/// @zod.describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes")
|
||||
energieeffizienzklasse String? @db.VarChar(5)
|
||||
|
||||
/// @zod.describe("Datum an dem der Kunde den Ausweis erstellt hat")
|
||||
/// @zod.describe("Datum an dem der Kunde die Aufnahme erstellt hat")
|
||||
erstellungsdatum DateTime? @default(now())
|
||||
/// @zod.describe("Datum an dem der Aussteller den Ausweis ausgestellt hat")
|
||||
ausstellungsdatum DateTime?
|
||||
|
||||
/// @zod.describe("Falls das Gebäude über eine Zentralbeheizung verfügt, sollte dieser Wert auf true stehen")
|
||||
zentralheizung Boolean?
|
||||
|
||||
@@ -25,6 +25,11 @@ model BedarfsausweisGewerbe {
|
||||
bauteilaktivierung Boolean? @default(false)
|
||||
klimatisierung Boolean? @default(false)
|
||||
|
||||
nachweistyp AusweisTyp @default(Standard)
|
||||
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")
|
||||
benutzer_id String?
|
||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||
|
||||
@@ -11,6 +11,12 @@ model BedarfsausweisWohnen {
|
||||
alternative_lueftung Boolean?
|
||||
alternative_kuehlung Boolean?
|
||||
|
||||
/// @zod.describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes")
|
||||
energieeffizienzklasse String? @db.VarChar(5)
|
||||
/// @zod.describe("Datum an dem der Aussteller den Ausweis ausgestellt hat")
|
||||
ausstellungsdatum DateTime?
|
||||
boxpruefung Boolean? @default(false)
|
||||
|
||||
anzahl_vollgeschosse Int?
|
||||
geschosshoehe Float?
|
||||
anzahl_gauben Int?
|
||||
|
||||
@@ -16,6 +16,11 @@ model GEGNachweisGewerbe {
|
||||
/// @zod.describe("Beschreibung des Bauvorhabens")
|
||||
beschreibung String? @db.Text
|
||||
|
||||
nachweistyp AusweisTyp @default(Standard)
|
||||
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")
|
||||
benutzer_id String?
|
||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||
|
||||
@@ -16,6 +16,11 @@ model GEGNachweisWohnen {
|
||||
/// @zod.describe("Beschreibung des Bauvorhabens")
|
||||
beschreibung String? @db.Text
|
||||
|
||||
nachweistyp AusweisTyp @default(Standard)
|
||||
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @updatedAt
|
||||
|
||||
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")
|
||||
benutzer_id String?
|
||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||
|
||||
@@ -5,9 +5,7 @@ model VerbrauchsausweisGewerbe {
|
||||
ausstellgrund Ausstellgrund?
|
||||
registriernummer String? @db.VarChar
|
||||
zusaetzliche_heizquelle Boolean?
|
||||
brennstoff_1 String? @db.VarChar(50)
|
||||
einheit_1 String? @db.VarChar(50)
|
||||
brennstoff_2 String? @db.VarChar(50)
|
||||
einheit_2 String? @db.VarChar(50)
|
||||
startdatum DateTime? @db.Timestamp(6)
|
||||
verbrauch_1 Int?
|
||||
@@ -17,6 +15,17 @@ model VerbrauchsausweisGewerbe {
|
||||
verbrauch_5 Int?
|
||||
verbrauch_6 Int?
|
||||
|
||||
/// @zod.describe("Genutzer Brennstoff der primären Energiequelle")
|
||||
brennstoff_1 String? @db.VarChar(50)
|
||||
/// @zod.describe("Genutzer Brennstoff der sekundären Energiequelle")
|
||||
brennstoff_2 String? @db.VarChar(50)
|
||||
|
||||
/// @zod.describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes")
|
||||
energieeffizienzklasse String? @db.VarChar(5)
|
||||
/// @zod.describe("Datum an dem der Aussteller den Ausweis ausgestellt hat")
|
||||
ausstellungsdatum DateTime?
|
||||
boxpruefung Boolean? @default(false)
|
||||
|
||||
strom_1 Int?
|
||||
strom_2 Int?
|
||||
strom_3 Int?
|
||||
|
||||
@@ -13,6 +13,18 @@ model VerbrauchsausweisWohnen {
|
||||
einheit_1 String? @db.VarChar(50)
|
||||
/// @zod.describe("Einheit des Energieträgers der sekundären Heizquelle")
|
||||
einheit_2 String? @db.VarChar(50)
|
||||
|
||||
/// @zod.describe("Genutzer Brennstoff der primären Energiequelle")
|
||||
brennstoff_1 String? @db.VarChar(50)
|
||||
/// @zod.describe("Genutzer Brennstoff der sekundären Energiequelle")
|
||||
brennstoff_2 String? @db.VarChar(50)
|
||||
|
||||
/// @zod.describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes")
|
||||
energieeffizienzklasse String? @db.VarChar(5)
|
||||
/// @zod.describe("Datum an dem der Aussteller den Ausweis ausgestellt hat")
|
||||
ausstellungsdatum DateTime?
|
||||
boxpruefung Boolean? @default(false)
|
||||
|
||||
startdatum DateTime? @db.Timestamptz(6)
|
||||
/// @zod.describe("Energieverbrauch der primären Heizquelle im ersten der drei Verbrauchsjahre")
|
||||
verbrauch_1 Int?
|
||||
@@ -30,8 +42,6 @@ model VerbrauchsausweisWohnen {
|
||||
warmwasser_enthalten Boolean?
|
||||
/// @zod.describe("Falls der Warmwasser Anteil am Verbrauch bekannt ist, sollte dieser Wert auf true stehen")
|
||||
warmwasser_anteil_bekannt Boolean?
|
||||
/// @zod.describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen")
|
||||
keller_beheizt Boolean?
|
||||
/// @zod.describe("Der Faktor mit dem die Wohnfläche erhöht wird wenn die beheizte Gesamtfläche (energetische Nutzfläche) unbekannt ist.")
|
||||
faktorKeller Float?
|
||||
|
||||
|
||||
@@ -5,6 +5,15 @@ export const createCaller = createCallerFactory({
|
||||
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
|
||||
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
||||
"unterlage": await import("../src/pages/api/unterlage.ts"),
|
||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
||||
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
||||
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
||||
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
||||
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
|
||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||
"admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"),
|
||||
"admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"),
|
||||
"admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"),
|
||||
@@ -12,31 +21,22 @@ export const createCaller = createCallerFactory({
|
||||
"admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"),
|
||||
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
||||
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
||||
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
||||
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
||||
"bedarfsausweis-gewerbe/[uid]": await import("../src/pages/api/bedarfsausweis-gewerbe/[uid].ts"),
|
||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
||||
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
|
||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
||||
"geg-nachweis-gewerbe/[uid]": await import("../src/pages/api/geg-nachweis-gewerbe/[uid].ts"),
|
||||
"geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"),
|
||||
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
||||
"geg-nachweis-wohnen/[uid]": await import("../src/pages/api/geg-nachweis-wohnen/[uid].ts"),
|
||||
"geg-nachweis-wohnen/[id]": await import("../src/pages/api/geg-nachweis-wohnen/[id].ts"),
|
||||
"geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"),
|
||||
"objekt": await import("../src/pages/api/objekt/index.ts"),
|
||||
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
||||
"verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"),
|
||||
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
||||
"rechnung/[id]": await import("../src/pages/api/rechnung/[id].ts"),
|
||||
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
|
||||
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
|
||||
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
||||
"user": await import("../src/pages/api/user/index.ts"),
|
||||
"user/self": await import("../src/pages/api/user/self.ts"),
|
||||
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
||||
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
||||
"verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"),
|
||||
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
||||
"user": await import("../src/pages/api/user/index.ts"),
|
||||
"user/self": await import("../src/pages/api/user/self.ts"),
|
||||
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
|
||||
"aufnahme/[id]/bilder": await import("../src/pages/api/aufnahme/[id]/bilder.ts"),
|
||||
"aufnahme/[id]": await import("../src/pages/api/aufnahme/[id]/index.ts"),
|
||||
|
||||
@@ -57,9 +57,6 @@ export async function ausweisSpeichern(
|
||||
alternative_warmwasser: aufnahme.alternative_warmwasser,
|
||||
aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt,
|
||||
aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt,
|
||||
ausweisart: aufnahme.ausweisart,
|
||||
brennstoff_1: aufnahme.brennstoff_1,
|
||||
brennstoff_2: aufnahme.brennstoff_2,
|
||||
brennwert_kessel: aufnahme.brennwert_kessel,
|
||||
dachgeschoss: aufnahme.dachgeschoss,
|
||||
dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt,
|
||||
@@ -70,7 +67,6 @@ export async function ausweisSpeichern(
|
||||
einfach_verglasung: aufnahme.einfach_verglasung,
|
||||
einheiten: aufnahme.einheiten,
|
||||
einzelofen: aufnahme.einzelofen,
|
||||
energieeffizienzklasse: aufnahme.energieeffizienzklasse,
|
||||
fenster_dicht: aufnahme.fenster_dicht,
|
||||
fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht,
|
||||
flaeche: aufnahme.flaeche,
|
||||
@@ -119,10 +115,7 @@ export async function ausweisSpeichern(
|
||||
alternative_warmwasser: aufnahme.alternative_warmwasser,
|
||||
aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt,
|
||||
aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt,
|
||||
ausweisart: aufnahme.ausweisart,
|
||||
baujahr_klima: aufnahme.baujahr_klima,
|
||||
brennstoff_1: aufnahme.brennstoff_1,
|
||||
brennstoff_2: aufnahme.brennstoff_2,
|
||||
brennwert_kessel: aufnahme.brennwert_kessel,
|
||||
dachgeschoss: aufnahme.dachgeschoss,
|
||||
dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt,
|
||||
@@ -133,7 +126,6 @@ export async function ausweisSpeichern(
|
||||
einfach_verglasung: aufnahme.einfach_verglasung,
|
||||
einheiten: aufnahme.einheiten,
|
||||
einzelofen: aufnahme.einzelofen,
|
||||
energieeffizienzklasse: aufnahme.energieeffizienzklasse,
|
||||
erstellungsdatum: aufnahme.erstellungsdatum,
|
||||
fenster_dicht: aufnahme.fenster_dicht,
|
||||
fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht,
|
||||
|
||||
@@ -4,10 +4,10 @@ import { exclude } from "#lib/exclude.js";
|
||||
import Cookies from "js-cookie";
|
||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||
import { AufnahmeClient, BedarfsausweisWohnenClient, BildClient, ObjektClient, UnterlageClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
|
||||
import { Enums } from "#lib/client/prisma.js";
|
||||
import { BedarfsausweisGewerbe, Enums, GEGNachweisGewerbe, GEGNachweisWohnen } from "#lib/client/prisma.js";
|
||||
|
||||
export async function nachweisSpeichern(
|
||||
nachweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient,
|
||||
nachweis: BedarfsausweisGewerbe | GEGNachweisWohnen | GEGNachweisGewerbe,
|
||||
objekt: ObjektClient,
|
||||
aufnahme: AufnahmeClient,
|
||||
bilder: BildClient[],
|
||||
@@ -58,9 +58,6 @@ export async function nachweisSpeichern(
|
||||
alternative_warmwasser: aufnahme.alternative_warmwasser,
|
||||
aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt,
|
||||
aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt,
|
||||
ausweisart: aufnahme.ausweisart,
|
||||
brennstoff_1: aufnahme.brennstoff_1,
|
||||
brennstoff_2: aufnahme.brennstoff_2,
|
||||
brennwert_kessel: aufnahme.brennwert_kessel,
|
||||
dachgeschoss: aufnahme.dachgeschoss,
|
||||
dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt,
|
||||
@@ -71,7 +68,6 @@ export async function nachweisSpeichern(
|
||||
einfach_verglasung: aufnahme.einfach_verglasung,
|
||||
einheiten: aufnahme.einheiten,
|
||||
einzelofen: aufnahme.einzelofen,
|
||||
energieeffizienzklasse: aufnahme.energieeffizienzklasse,
|
||||
fenster_dicht: aufnahme.fenster_dicht,
|
||||
fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht,
|
||||
flaeche: aufnahme.flaeche,
|
||||
@@ -120,10 +116,7 @@ export async function nachweisSpeichern(
|
||||
alternative_warmwasser: aufnahme.alternative_warmwasser,
|
||||
aussenwand_gedaemmt: aufnahme.aussenwand_gedaemmt,
|
||||
aussenwand_min_12cm_gedaemmt: aufnahme.aussenwand_min_12cm_gedaemmt,
|
||||
ausweisart: aufnahme.ausweisart,
|
||||
baujahr_klima: aufnahme.baujahr_klima,
|
||||
brennstoff_1: aufnahme.brennstoff_1,
|
||||
brennstoff_2: aufnahme.brennstoff_2,
|
||||
brennwert_kessel: aufnahme.brennwert_kessel,
|
||||
dachgeschoss: aufnahme.dachgeschoss,
|
||||
dachgeschoss_gedaemmt: aufnahme.dachgeschoss_gedaemmt,
|
||||
@@ -134,7 +127,6 @@ export async function nachweisSpeichern(
|
||||
einfach_verglasung: aufnahme.einfach_verglasung,
|
||||
einheiten: aufnahme.einheiten,
|
||||
einzelofen: aufnahme.einzelofen,
|
||||
energieeffizienzklasse: aufnahme.energieeffizienzklasse,
|
||||
erstellungsdatum: aufnahme.erstellungsdatum,
|
||||
fenster_dicht: aufnahme.fenster_dicht,
|
||||
fenster_teilweise_undicht: aufnahme.fenster_teilweise_undicht,
|
||||
@@ -203,7 +195,7 @@ export async function nachweisSpeichern(
|
||||
} else {
|
||||
const { id } = await putRoute.fetch({
|
||||
nachweis,
|
||||
uid_aufnahme: aufnahme.id
|
||||
aufnahme_id: aufnahme.id
|
||||
}, {
|
||||
headers: {
|
||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
import Overlay from "#components/Overlay.svelte";
|
||||
import EmbeddedAuthFlowModule from "#modules/EmbeddedAuthFlowModule.svelte";
|
||||
|
||||
import { AusweisTyp, Enums } from "#lib/client/prisma.js";
|
||||
import { AusweisTyp, BedarfsausweisGewerbe, Enums, GEGNachweisGewerbe, GEGNachweisWohnen } from "#lib/client/prisma.js";
|
||||
import { openWindowWithPost } from "#lib/helpers/window.js";
|
||||
import { PRICES } from "#lib/constants.js";
|
||||
import { nachweisSpeichern } from "#client/lib/nachweisSpeichern.js";
|
||||
|
||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | GEGNachweisWohnenClient;
|
||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | BedarfsausweisGewerbe | GEGNachweisWohnen | GEGNachweisGewerbe;
|
||||
export let bilder: BildClient[];
|
||||
export let unterlagen: UnterlageClient[] = [];
|
||||
export let user: BenutzerClient | null;
|
||||
@@ -46,16 +46,27 @@
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
openWindowWithPost("/kundendaten", {
|
||||
ausweis: { ...ausweis, ausweistyp },
|
||||
objekt,
|
||||
aufnahme,
|
||||
bilder,
|
||||
unterlagen,
|
||||
ausweisart,
|
||||
ausweistyp
|
||||
}, "")
|
||||
if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisGewerbe || ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
|
||||
openWindowWithPost("/kundendaten", {
|
||||
ausweis: { ...ausweis, nachweistyp: ausweistyp },
|
||||
objekt,
|
||||
aufnahme,
|
||||
bilder,
|
||||
unterlagen,
|
||||
ausweisart,
|
||||
ausweistyp
|
||||
}, "")
|
||||
} else {
|
||||
openWindowWithPost("/kundendaten", {
|
||||
ausweis: { ...ausweis, ausweistyp },
|
||||
objekt,
|
||||
aufnahme,
|
||||
bilder,
|
||||
unterlagen,
|
||||
ausweisart,
|
||||
ausweistyp
|
||||
}, "")
|
||||
}
|
||||
}
|
||||
|
||||
let loginAction: () => any = ausweisAbschicken;
|
||||
@@ -71,7 +82,7 @@
|
||||
|
||||
let result: Awaited<ReturnType<typeof ausweisSpeichern>> | Awaited<ReturnType<typeof nachweisSpeichern>> | null = null;
|
||||
if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisGewerbe || ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
|
||||
result = await nachweisSpeichern({ ...ausweis, ausweistyp }, objekt, aufnahme, bilder, unterlagen, ausweisart)
|
||||
result = await nachweisSpeichern({ ...ausweis, nachweistyp: ausweistyp }, objekt, aufnahme, bilder, unterlagen, ausweisart)
|
||||
ausweis.id = result.nachweis_id;
|
||||
} else {
|
||||
result = await ausweisSpeichern({ ...ausweis, ausweistyp }, objekt, aufnahme, bilder, ausweisart)
|
||||
|
||||
@@ -24,8 +24,14 @@
|
||||
Verbrauchsausweis Gewerbe
|
||||
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen}
|
||||
Bedarfsausweis Wohnen
|
||||
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe}
|
||||
Bedarfsausweis Gewerbe
|
||||
{:else if ausweisart === Enums.Ausweisart.GEGNachweisWohnen}
|
||||
GEG Nachweis Wohngebäude
|
||||
{:else if ausweisart === Enums.Ausweisart.GEGNachweisGewerbe}
|
||||
GEG Nachweis Gewerbegebäude
|
||||
{/if}
|
||||
{#if ausweistyp === Enums.AusweisTyp.Beratung}
|
||||
{#if ausweistyp === Enums.AusweisTyp.Beratung}
|
||||
mit Beratung
|
||||
{:else if ausweistyp === Enums.AusweisTyp.Offline}
|
||||
offline
|
||||
|
||||
@@ -79,11 +79,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
$: {
|
||||
console.log(aufnahme.brennstoff_1);
|
||||
|
||||
}
|
||||
|
||||
$: abweichung = auditVerbrauchAbweichung(ausweis, aufnahme);
|
||||
</script>
|
||||
|
||||
@@ -234,7 +229,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
class="rounded-e-none"
|
||||
name="brennstoff_1"
|
||||
data-cy="brennstoff_1"
|
||||
bind:value={aufnahme.brennstoff_1}
|
||||
bind:value={ausweis.brennstoff_1}
|
||||
required
|
||||
>
|
||||
<option disabled selected value={null}>Bitte auswählen</option>
|
||||
@@ -267,11 +262,11 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
name="einheit_1"
|
||||
data-cy="einheit_1"
|
||||
bind:value={ausweis.einheit_1}
|
||||
disabled={!aufnahme.brennstoff_1}
|
||||
disabled={!ausweis.brennstoff_1}
|
||||
required
|
||||
>
|
||||
<option disabled selected >Bitte auswählen</option>
|
||||
{#each fuelMap.hasOwnProperty(aufnahme.brennstoff_1) ? fuelMap[aufnahme.brennstoff_1] : [] as unit}
|
||||
{#each fuelMap.hasOwnProperty(ausweis.brennstoff_1) ? fuelMap[ausweis.brennstoff_1] : [] as unit}
|
||||
<option value={unit}>{unit}</option>
|
||||
{/each}
|
||||
</select>
|
||||
@@ -425,7 +420,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
class="rounded-e-none"
|
||||
name="brennstoff_2"
|
||||
data-cy="brennstoff_2"
|
||||
bind:value={aufnahme.brennstoff_2}
|
||||
bind:value={ausweis.brennstoff_2}
|
||||
required
|
||||
>
|
||||
<option disabled selected
|
||||
@@ -460,13 +455,13 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
name="einheit_2"
|
||||
data-cy="einheit_2"
|
||||
bind:value={ausweis.einheit_2}
|
||||
disabled={!aufnahme.brennstoff_2}
|
||||
disabled={!ausweis.brennstoff_2}
|
||||
required
|
||||
>
|
||||
<option disabled selected
|
||||
>Bitte auswählen</option
|
||||
>
|
||||
{#each fuelMap.hasOwnProperty(aufnahme.brennstoff_2) ? fuelMap[aufnahme.brennstoff_2] : [] as unit}
|
||||
{#each fuelMap.hasOwnProperty(ausweis.brennstoff_2) ? fuelMap[ausweis.brennstoff_2] : [] as unit}
|
||||
<option value={unit}>{unit}</option>
|
||||
{/each}
|
||||
</select>
|
||||
|
||||
@@ -233,7 +233,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
<select
|
||||
class="rounded-e-none"
|
||||
name="brennstoff_1"
|
||||
bind:value={aufnahme.brennstoff_1}
|
||||
bind:value={ausweis.brennstoff_1}
|
||||
required
|
||||
>
|
||||
<option disabled selected value>Bitte auswählen</option>
|
||||
@@ -273,11 +273,11 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
class="rounded-s-none"
|
||||
name="einheit_1"
|
||||
bind:value={ausweis.einheit_1}
|
||||
disabled={!aufnahme.brennstoff_1}
|
||||
disabled={!ausweis.brennstoff_1}
|
||||
required
|
||||
>
|
||||
<option disabled selected value>Bitte auswählen</option>
|
||||
{#each fuelMap.hasOwnProperty(aufnahme.brennstoff_1) ? fuelMap[aufnahme.brennstoff_1] : [] as unit}
|
||||
{#each fuelMap.hasOwnProperty(ausweis.brennstoff_1) ? fuelMap[ausweis.brennstoff_1] : [] as unit}
|
||||
<option value={unit}>{unit}</option>
|
||||
{/each}
|
||||
</select>
|
||||
@@ -436,7 +436,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
<select
|
||||
class="rounded-e-none"
|
||||
name="brennstoff_2"
|
||||
bind:value={aufnahme.brennstoff_2}
|
||||
bind:value={ausweis.brennstoff_2}
|
||||
required
|
||||
data-cy="brennstoff_2"
|
||||
>
|
||||
@@ -480,13 +480,13 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
name="einheit_2"
|
||||
data-cy="einheit_2"
|
||||
bind:value={ausweis.einheit_2}
|
||||
disabled={!aufnahme.brennstoff_2}
|
||||
disabled={!ausweis.brennstoff_2}
|
||||
required
|
||||
>
|
||||
<option disabled selected
|
||||
>Bitte auswählen</option
|
||||
>
|
||||
{#each fuelMap.hasOwnProperty(aufnahme.brennstoff_2) ? fuelMap[aufnahme.brennstoff_2] : [] as unit}
|
||||
{#each fuelMap.hasOwnProperty(ausweis.brennstoff_2) ? fuelMap[ausweis.brennstoff_2] : [] as unit}
|
||||
<option value={unit}>{unit}</option>
|
||||
{/each}
|
||||
</select>
|
||||
|
||||
@@ -107,7 +107,7 @@ export const UUidWithPrefix = z.string().refine((value) => {
|
||||
return false;
|
||||
})
|
||||
|
||||
export function getAusweisartFromUUID(id: string): Enums.Ausweisart | null {
|
||||
export function getAusweisartFromId(id: string): Enums.Ausweisart | null {
|
||||
if (!UUidWithPrefix.safeParse(id).success) {
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import moment from "moment";
|
||||
import {
|
||||
AufnahmeClient,
|
||||
getAusweisartFromUUID,
|
||||
getAusweisartFromId,
|
||||
ObjektClient,
|
||||
BildClient,
|
||||
VerbrauchsausweisWohnenClient,
|
||||
@@ -31,7 +31,7 @@
|
||||
async function ausweisAusstellen(uid: string) {
|
||||
try {
|
||||
await api.admin.ausstellen.GET.fetch({
|
||||
uid_ausweis: uid
|
||||
id_ausweis: uid
|
||||
}, {
|
||||
headers: {
|
||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
|
||||
|
||||
const ausweisArt = getAusweisartFromUUID(ausweis.id)
|
||||
const ausweisArt = getAusweisartFromId(ausweis.id)
|
||||
|
||||
let verbrauchWWGesamt_1 = "";
|
||||
let verbrauchWWGesamt_2 = "";
|
||||
@@ -141,7 +141,7 @@
|
||||
Abgeschlossen = 2;
|
||||
}
|
||||
|
||||
if (aufnahme.boxpruefung) {
|
||||
if (ausweis.boxpruefung) {
|
||||
symbolPruefung = "/images/dashboard/kreishaken.png";
|
||||
} else {
|
||||
symbolPruefung = "/images/dashboard/kreiskreuz.png";
|
||||
@@ -205,7 +205,7 @@
|
||||
" x " +
|
||||
aufnahme.flaeche +
|
||||
" m² Energetische Nutzfläche (Keller " +
|
||||
ausweis.keller_beheizt +
|
||||
aufnahme.keller +
|
||||
" ) in m²";
|
||||
table3Z1 = aufnahme.flaeche;
|
||||
table3Z2 = calculations?.energetischeNutzflaeche;
|
||||
@@ -229,8 +229,8 @@
|
||||
" kWh/" +
|
||||
ausweis.einheit_1 +
|
||||
" >> Verbrauch 1 " +
|
||||
aufnahme.brennstoff_1 +
|
||||
" in kWh";
|
||||
ausweis.brennstoff_1 +
|
||||
" in kWh";
|
||||
tooltip4Z2 =
|
||||
"(" +
|
||||
ausweis.verbrauch_4 +
|
||||
@@ -249,7 +249,7 @@
|
||||
" kWh/" +
|
||||
ausweis.einheit_2 +
|
||||
" >> Verbrauch 2 " +
|
||||
aufnahme.brennstoff_2 +
|
||||
ausweis.brennstoff_2 +
|
||||
" in kWh";
|
||||
table4Z1 = calculations?.energieVerbrauchGesamt_1;
|
||||
table4Z2 = calculations?.energieVerbrauchGesamt_2;
|
||||
@@ -764,7 +764,7 @@
|
||||
<div slot="tooltip">
|
||||
<span>{aufnahme.prueftext}</span>
|
||||
</div>
|
||||
{#if aufnahme.boxpruefung}
|
||||
{#if ausweis.boxpruefung}
|
||||
<CheckCircled size={22}></CheckCircled>
|
||||
{:else}
|
||||
<CrossCircled size={22}></CrossCircled>
|
||||
@@ -880,7 +880,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Informationen des Nutzers</td>
|
||||
<td>{aufnahme.boxpruefung}</td>
|
||||
<td>{ausweis.boxpruefung}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>UID</td>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { AufnahmeKomplettClient, BedarfsausweisWohnenClient, BenutzerClient, getAusweisartFromUUID, RechnungClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||
import { AufnahmeKomplettClient, BedarfsausweisWohnenClient, BenutzerClient, getAusweisartFromId, RechnungClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||
import moment from "moment";
|
||||
import { dialogs } from "svelte-dialogs";
|
||||
import {
|
||||
@@ -24,7 +24,7 @@
|
||||
export let benutzer: BenutzerClient;
|
||||
const progress = ausweis.ausgestellt ? 100 : ausweis.bestellt ? 66 : 33;
|
||||
|
||||
const ausweisart = getAusweisartFromUUID(ausweis.id);
|
||||
const ausweisart = getAusweisartFromId(ausweis.id);
|
||||
|
||||
const id = ausweis.alte_ausweis_id || ausweis.id;
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
async function ausweisAusstellen() {
|
||||
try {
|
||||
await api.admin.ausstellen.GET.fetch({
|
||||
uid_ausweis: ausweis.id
|
||||
id_ausweis: ausweis.id
|
||||
}, {
|
||||
headers: {
|
||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { AufnahmeKomplettClient, GEGNachweisWohnenClient, getAusweisartFromUUID } from "#components/Ausweis/types.js";
|
||||
import { AufnahmeKomplettClient, GEGNachweisWohnenClient, getAusweisartFromId } from "#components/Ausweis/types.js";
|
||||
import {
|
||||
CrossCircled,
|
||||
DotsVertical,
|
||||
Pencil2,
|
||||
QuestionMarkCircled,
|
||||
@@ -12,7 +11,7 @@
|
||||
export let aufnahme: AufnahmeKomplettClient;
|
||||
export let objekt: Objekt;
|
||||
|
||||
const ausweisart = getAusweisartFromUUID(nachweis.uid);
|
||||
const ausweisart = getAusweisartFromId(nachweis.id);
|
||||
|
||||
let hilfeModal: HTMLDialogElement;
|
||||
</script>
|
||||
|
||||
@@ -4,14 +4,15 @@
|
||||
import HelpLabel from "#components/labels/HelpLabel.svelte";
|
||||
|
||||
export let kategorie: string = "";
|
||||
export let files: UnterlageClient[] = [];
|
||||
export let files: Unterlage[] = [];
|
||||
export let max: number = Infinity;
|
||||
export let min: number = 1;
|
||||
export let name: string = "";
|
||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | GEGNachweisWohnenClient;
|
||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | BedarfsausweisGewerbe | GEGNachweisWohnen | GEGNachweisGewerbe;
|
||||
export let objekt: ObjektClient;
|
||||
import mime from "mime-types";
|
||||
import mime from "mime"
|
||||
import { api } from "astro-typesafe-api/client";
|
||||
import { BedarfsausweisGewerbe, GEGNachweisGewerbe, GEGNachweisWohnen, Unterlage } from "#lib/client/prisma.js";
|
||||
|
||||
|
||||
function getAllFiles(this: HTMLInputElement) {
|
||||
@@ -40,16 +41,16 @@
|
||||
return;
|
||||
}
|
||||
|
||||
const mimeType = mime.types[file.name.split(".").pop() as string]
|
||||
const mimeType = mime.getType(file.name.split(".").pop() as string)
|
||||
|
||||
const { uid } = await api.unterlage.PUT.fetch({
|
||||
const { id } = await api.unterlage.PUT.fetch({
|
||||
data: reader.result as string,
|
||||
kategorie,
|
||||
mime: mimeType,
|
||||
name: file.name
|
||||
})
|
||||
|
||||
files.push({ uid, kategorie, name: file.name, mime: mimeType });
|
||||
files.push({ id, kategorie, name: file.name, mime: mimeType, aufnahme_id: null });
|
||||
files = files;
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
import { auditHeizungGebaeudeBaujahr } from "../Verbrauchsausweis/audits/HeizungGebaeudeBaujahr.js";
|
||||
import { addNotification, deleteNotification } from "#components/Notifications/shared.js";
|
||||
import TagInput from "../TagInput.svelte";
|
||||
import { Enums } from "#lib/client/prisma.js";
|
||||
import { BedarfsausweisGewerbe, Enums, GEGNachweisGewerbe, GEGNachweisWohnen } from "#lib/client/prisma.js";
|
||||
import {
|
||||
AufnahmeClient,
|
||||
ObjektClient,
|
||||
@@ -15,8 +15,8 @@
|
||||
} from "../Ausweis/types.js";
|
||||
|
||||
export let objekt: ObjektClient;
|
||||
export let ausweis:
|
||||
GEGNachweisWohnenClient;
|
||||
export let nachweis:
|
||||
BedarfsausweisGewerbe | GEGNachweisWohnen | GEGNachweisGewerbe;
|
||||
export let aufnahme: AufnahmeClient;
|
||||
|
||||
export let ausweisart: Enums.Ausweisart;
|
||||
@@ -38,7 +38,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
|
||||
class="rounded-e-none"
|
||||
name="ausstellgrund"
|
||||
placeholder="Anlass"
|
||||
bind:value={ausweis.ausstellgrund}
|
||||
bind:value={nachweis.ausstellgrund}
|
||||
required
|
||||
data-cy="ausstellgrund"
|
||||
>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<script lang="ts">
|
||||
import HelpLabel from "#components/labels/HelpLabel.svelte";
|
||||
import type { Enums } from "#lib/client/prisma.js";
|
||||
import { tryCatch } from "#lib/tryCatch.js";
|
||||
|
||||
export let max: number = 2;
|
||||
export let min: number = 1;
|
||||
@@ -15,6 +16,7 @@
|
||||
VerbrauchsausweisWohnenClient,
|
||||
} from "./Ausweis/types.js";
|
||||
import { api } from "astro-typesafe-api/client";
|
||||
import { addNotification } from "./Notifications/shared.js";
|
||||
|
||||
export let images: BildClient[] = [];
|
||||
export let ausweis:
|
||||
@@ -79,17 +81,27 @@
|
||||
// Get the scaled-down data from the canvas in the desired output format and quality
|
||||
const dataURL = canvas.toDataURL("image/jpeg", 0.8);
|
||||
|
||||
const { id } = await api.bild.PUT.fetch({
|
||||
const [result, error] = await tryCatch(api.bild.PUT.fetch({
|
||||
data: dataURL,
|
||||
kategorie,
|
||||
name: file.name
|
||||
})
|
||||
}))
|
||||
|
||||
images.push({ id, kategorie });
|
||||
images = images;
|
||||
if (error) {
|
||||
addNotification({
|
||||
message: "Das hat nicht geklappt.",
|
||||
type: "error",
|
||||
timeout: 3000,
|
||||
subtext: "Bild konnte nicht hochgeladen werden, bitte versuchen sie es erneut.",
|
||||
dismissable: true
|
||||
})
|
||||
} else {
|
||||
images.push({ id: result.id, kategorie });
|
||||
images = images;
|
||||
|
||||
if (i == Math.min(files.length, max) - 1) {
|
||||
this.value = "";
|
||||
if (i == Math.min(files.length, max) - 1) {
|
||||
this.value = "";
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
||||
<div class="justify-self-start pl-2"></div>
|
||||
<a href="{ref}/angebot-anfragen/bedarfsausweis-gewerbe-anfragen"><button class="bestellbutton" type="button">jetzt<br>anfragen</button></a>
|
||||
<a href="{ref}/angebot-anfragen/bedarfsausweis-gewerbe-anfragen"><button class="bestellbutton" type="button">jetzt<br>anfragen</button></a>
|
||||
<a href="{ref}/angebot-anfragen/bedarfsausweis-gewerbe-anfragen?ausweistyp={Enums.AusweisTyp.Standard}"><button class="bestellbutton" type="button">jetzt<br>anfragen</button></a>
|
||||
<a href="{ref}/angebot-anfragen/bedarfsausweis-gewerbe-anfragen?ausweistyp={Enums.AusweisTyp.Beratung}"><button class="bestellbutton" type="button">jetzt<br>anfragen</button></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -80,6 +80,6 @@
|
||||
@apply text-[1.25rem] sm:text-[1.5rem] font-bold text-black;
|
||||
}
|
||||
|
||||
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
||||
.price{@apply text-[1.25rem] sm:text-[2rem]}
|
||||
|
||||
</style>
|
||||
@@ -53,12 +53,12 @@
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
||||
<div class="justify-self-start pl-2"></div>
|
||||
<a href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude/"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
<a href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude/"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
<a href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude/"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
<a href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Standard}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
<a href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Beratung}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
<a href="{ref}/energieausweis-erstellen/bedarfsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Offline}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
<script>
|
||||
import { PRICES } from "#lib/constants";
|
||||
import { Enums } from "#lib/client/prisma";
|
||||
export let bullets;
|
||||
export let title;
|
||||
export let ref = "";
|
||||
|
||||
bullets = [
|
||||
const bullets = [
|
||||
["Prüfung durch Dipl. Ing.<br>Registrierung beim DiBt<br>rechtssicher nach GEG",true, true, true],
|
||||
["Originalausweis als PDF per <span class='text-nowrap'>E-Mail</span><br>Originalausweis per Post (zubuchbar)",true, true, true],
|
||||
["Bearbeitung innerhalb 24 Stunden<br>Selbsteingabe",true, true, false],
|
||||
@@ -17,7 +15,6 @@
|
||||
["telefonische Beratung<br>persönlicher Energieberater",false, true, true],
|
||||
["Dokumentenupload (Verbrauchsabrechnungen)",false, false, true],
|
||||
["Eingabe durch Dipl. Ing.",false, false, true],
|
||||
|
||||
]
|
||||
|
||||
|
||||
@@ -55,12 +52,12 @@
|
||||
|
||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
||||
<div class="justify-self-start pl-2"></div>
|
||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe/"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe/"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe/"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe?ausweistyp={Enums.AusweisTyp.Standard}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe?ausweistyp={Enums.AusweisTyp.Beratung}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-gewerbe?ausweistyp={Enums.AusweisTyp.Offline}"><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
<script lang="ts">
|
||||
import { VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "#lib/client/prisma.js";
|
||||
import moment from "moment";
|
||||
|
||||
export let addYear: number;
|
||||
export let heizquelle: number;
|
||||
export let aufnahme;
|
||||
export let ausweis;
|
||||
export let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe;
|
||||
</script>
|
||||
|
||||
{#if ausweis.startdatum}
|
||||
Bitte geben Sie Ihren
|
||||
{#if heizquelle == 1}
|
||||
{#if aufnahme.brennstoff_1}<b>
|
||||
{aufnahme.brennstoff_1}
|
||||
{#if ausweis.brennstoff_1}<b>
|
||||
{ausweis.brennstoff_1}
|
||||
</b>{/if}
|
||||
Verbrauch {#if ausweis.einheit_1}
|
||||
in <b>{ausweis.einheit_1} </b>{/if}
|
||||
{:else if heizquelle == 2}
|
||||
{#if aufnahme.brennstoff_2}<b>
|
||||
{aufnahme.brennstoff_2}
|
||||
{#if ausweis.brennstoff_2}<b>
|
||||
{ausweis.brennstoff_2}
|
||||
</b>{/if}
|
||||
Verbräuche {#if ausweis.einheit_2}
|
||||
in <b>{ausweis.einheit_2} </b>{/if}
|
||||
|
||||
@@ -8,123 +8,116 @@ import moment from "moment";
|
||||
|
||||
describe("Verbrauchsausweis erstellen Schritt 1", () => {
|
||||
it("erstellt einen neuen Verbrauchsausweis Wohngebäude.", () => {
|
||||
cy.visit("/angebot-anfragen/geg-nachweis-gewerbe-anfragen");
|
||||
cy.task("plz").then(plz => {
|
||||
cy.visit("/angebot-anfragen/geg-nachweis-gewerbe-anfragen");
|
||||
|
||||
cy.wait(2000);
|
||||
cy.wait(2000);
|
||||
|
||||
// Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind.
|
||||
cy.get("select[data-cy='ausstellgrund']")
|
||||
.select(
|
||||
faker.number.int({
|
||||
min: 1,
|
||||
max: [Enums.Ausstellgrund.Modernisierung, Enums.Ausstellgrund.Neubau].length - 1,
|
||||
})
|
||||
)
|
||||
// Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind.
|
||||
cy.get("select[data-cy='ausstellgrund']")
|
||||
.select(
|
||||
faker.number.int({
|
||||
min: 1,
|
||||
max: [Enums.Ausstellgrund.Modernisierung, Enums.Ausstellgrund.Neubau].length - 1,
|
||||
})
|
||||
)
|
||||
|
||||
// Gebäudetyp
|
||||
cy.get("select[name='gebaeudetyp']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudetyp']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
// Gebäudetyp
|
||||
cy.get("select[name='gebaeudetyp']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudetyp']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
// Sanierungsstatus
|
||||
cy.get("select[name='saniert']").select(
|
||||
Math.random() > 0.5 ? "true" : "false"
|
||||
);
|
||||
|
||||
// Jetzt Füllen wir das Baujahr vom Gebäude aus.
|
||||
cy.get("input[name='baujahr_gebaeude']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
// Sanierungsstatus
|
||||
cy.get("select[name='saniert']").select(
|
||||
Math.random() > 0.5 ? "true" : "false"
|
||||
);
|
||||
|
||||
// Jetzt Füllen wir das Baujahr der Heizung aus.
|
||||
cy.get("input[name='baujahr_heizung']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
// Jetzt Füllen wir das Baujahr vom Gebäude aus.
|
||||
cy.get("input[name='baujahr_gebaeude']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
);
|
||||
|
||||
// Jetzt Füllen wir das Baujahr der Heizung aus.
|
||||
cy.get("input[name='baujahr_heizung']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
);
|
||||
|
||||
// Adresse
|
||||
cy.get("input[name='adresse']").type(faker.location.streetAddress());
|
||||
|
||||
// Postleitzahl
|
||||
cy.get("input[name='plz']").type(
|
||||
plz as string
|
||||
);
|
||||
|
||||
// Adresse
|
||||
cy.get("input[name='adresse']").type(faker.location.streetAddress());
|
||||
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
||||
cy.get("[data-cy='plz-container']").find("button").first().click()
|
||||
|
||||
// Postleitzahl
|
||||
cy.get("input[name='plz']").type(
|
||||
faker.location.zipCode({
|
||||
format: "#####",
|
||||
})
|
||||
);
|
||||
// Gebäudeteil
|
||||
cy.get("select[name='gebaeudeteil']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudeteil']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
// Keller
|
||||
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: Object.values(Enums.Heizungsstatus).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
||||
cy.get("[data-cy='plz-container']").find("button").first().click()
|
||||
// Dachgeschoss
|
||||
cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: Object.values(Enums.Heizungsstatus).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
cy.get("[data-cy='beschreibung']").type(faker.lorem.paragraphs({ min: 2, max: 10 }))
|
||||
|
||||
// Nutzflaeche
|
||||
cy.get("input[name='nutzflaeche']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
// Wärmedämmung Bilder
|
||||
cy.get("input[type='file'][name='plaene']").should("have.attr", "type", "file").attachFile("images/daemmung/1.jpeg", { subjectType: "input" }).attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
cy.get("input[type='file'][name='unterlagen']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" }).attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Keller
|
||||
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: Object.values(Enums.Heizungsstatus).length,
|
||||
min: 1
|
||||
}));
|
||||
// Jetzt können wir den Verbrauchsausweis erstellen.
|
||||
cy.get("form[data-cy='nachweis'] button[data-cy='weiter']").click({ force: true });
|
||||
|
||||
// Dachgeschoss
|
||||
cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: Object.values(Enums.Heizungsstatus).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
cy.get("[data-cy='beschreibung']").type(faker.lorem.paragraphs({ min: 2, max: 10 }))
|
||||
cy.url().should("contain", "/kundendaten");
|
||||
|
||||
// Wärmedämmung Bilder
|
||||
cy.get("input[type='file'][name='plaene']").should("have.attr", "type", "file").attachFile("images/daemmung/1.jpeg", { subjectType: "input" }).attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
cy.get("input[type='file'][name='unterlagen']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" }).attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
const email = faker.internet.email();
|
||||
const passwort = "test1234";
|
||||
const vorname = faker.person.firstName();
|
||||
const nachname = faker.person.lastName();
|
||||
const telefon = faker.phone.number()
|
||||
|
||||
// Jetzt können wir den Verbrauchsausweis erstellen.
|
||||
cy.get("form[data-cy='nachweis'] button[data-cy='weiter']").click({ force: true });
|
||||
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||
|
||||
cy.url().should("contain", "/kundendaten");
|
||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||
// Rechnung
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz as string);
|
||||
cy.get("[data-cy='plz-container']").children().first().click()
|
||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||
|
||||
const email = faker.internet.email();
|
||||
const passwort = "test1234";
|
||||
const vorname = faker.person.firstName();
|
||||
const nachname = faker.person.lastName();
|
||||
const telefon = faker.phone.number()
|
||||
cy.get("button[data-cy='bestellen']").click();
|
||||
|
||||
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||
const plz = faker.location.zipCode("#####")
|
||||
cy.intercept({ method: "PUT", url: "**/api/rechnung/anfordern" }).as("anfordern")
|
||||
cy["form:signup"](email, passwort, vorname, nachname)
|
||||
cy.wait("@anfordern")
|
||||
|
||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||
// Rechnung
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz);
|
||||
cy.get("[data-cy='plz-container']").children().first().click()
|
||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||
|
||||
cy.get("button[data-cy='bestellen']").click();
|
||||
|
||||
cy.get("a[data-cy='registrieren']").should("be.visible").click();
|
||||
|
||||
// Wir sind jetzt registriert und können uns nun einloggen.
|
||||
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
|
||||
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
|
||||
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
||||
|
||||
cy.get("form[name='signup'] button[type='submit']").click();
|
||||
cy.get("form[name='login'] button[type='submit']").click();
|
||||
|
||||
cy.url().should("contain", "/einpreisung/success")
|
||||
cy.url().should("contain", "/einpreisung/success")
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
@@ -8,118 +8,111 @@ import moment from "moment";
|
||||
|
||||
describe("Verbrauchsausweis erstellen Schritt 1", () => {
|
||||
it("erstellt einen neuen Verbrauchsausweis Wohngebäude.", () => {
|
||||
cy.visit("/angebot-anfragen/geg-nachweis-wohnen-anfragen");
|
||||
cy.task("plz").then(plz => {
|
||||
cy.visit("/angebot-anfragen/geg-nachweis-wohnen-anfragen");
|
||||
|
||||
cy.wait(2000);
|
||||
cy.wait(2000);
|
||||
|
||||
// Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind.
|
||||
cy.get("select[data-cy='ausstellgrund']")
|
||||
.select(
|
||||
faker.number.int({
|
||||
min: 1,
|
||||
max: [Enums.Ausstellgrund.Modernisierung, Enums.Ausstellgrund.Neubau].length - 1,
|
||||
})
|
||||
)
|
||||
// Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind.
|
||||
cy.get("select[data-cy='ausstellgrund']")
|
||||
.select(
|
||||
faker.number.int({
|
||||
min: 1,
|
||||
max: [Enums.Ausstellgrund.Modernisierung, Enums.Ausstellgrund.Neubau].length - 1,
|
||||
})
|
||||
)
|
||||
|
||||
// Gebäudetyp
|
||||
cy.get("select[name='gebaeudetyp']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudetyp']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
// Gebäudetyp
|
||||
cy.get("select[name='gebaeudetyp']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudetyp']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
// Jetzt Füllen wir das Baujahr vom Gebäude aus.
|
||||
cy.get("input[name='baujahr_gebaeude']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
);
|
||||
|
||||
// Jetzt Füllen wir das Baujahr der Heizung aus.
|
||||
cy.get("input[name='baujahr_heizung']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
);
|
||||
|
||||
// Adresse
|
||||
cy.get("input[name='adresse']").type(faker.location.streetAddress());
|
||||
|
||||
// Postleitzahl
|
||||
cy.get("input[name='plz']").type(
|
||||
plz as string
|
||||
);
|
||||
|
||||
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
||||
cy.get("[data-cy='plz-container']").find("button").first().click()
|
||||
|
||||
// Gebäudeteil
|
||||
cy.get("select[name='gebaeudeteil']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudeteil']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
// Keller
|
||||
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: Object.values(Enums.Heizungsstatus).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
// Dachgeschoss
|
||||
cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: Object.values(Enums.Heizungsstatus).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
cy.get("[data-cy='beschreibung']").type(faker.lorem.paragraphs({ min: 2, max: 10 }))
|
||||
|
||||
// Wärmedämmung Bilder
|
||||
cy.get("input[type='file'][name='plaene']").should("have.attr", "type", "file").attachFile("images/daemmung/1.jpeg", { subjectType: "input" }).attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
cy.get("input[type='file'][name='unterlagen']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" }).attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Jetzt können wir den Verbrauchsausweis erstellen.
|
||||
cy.get("form[data-cy='nachweis'] button[data-cy='weiter']").click({ force: true });
|
||||
|
||||
cy.url().should("contain", "/kundendaten");
|
||||
|
||||
const email = faker.internet.email();
|
||||
const passwort = "test1234";
|
||||
const vorname = faker.person.firstName();
|
||||
const nachname = faker.person.lastName();
|
||||
const telefon = faker.phone.number()
|
||||
|
||||
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||
|
||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||
// Rechnung
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz as string);
|
||||
cy.get("[data-cy='plz-container']").children().first().click()
|
||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||
|
||||
cy.get("button[data-cy='bestellen']").click();
|
||||
|
||||
cy.intercept({ method: "PUT", url: "**/api/rechnung/anfordern" }).as("anfordern")
|
||||
cy["form:signup"](email, passwort, vorname, nachname)
|
||||
cy.wait("@anfordern")
|
||||
|
||||
cy.url().should("contain", "/einpreisung/success")
|
||||
});
|
||||
|
||||
// Jetzt Füllen wir das Baujahr vom Gebäude aus.
|
||||
cy.get("input[name='baujahr_gebaeude']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
);
|
||||
|
||||
// Jetzt Füllen wir das Baujahr der Heizung aus.
|
||||
cy.get("input[name='baujahr_heizung']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
);
|
||||
|
||||
// Adresse
|
||||
cy.get("input[name='adresse']").type(faker.location.streetAddress());
|
||||
|
||||
// Postleitzahl
|
||||
cy.get("input[name='plz']").type(
|
||||
faker.location.zipCode({
|
||||
format: "#####",
|
||||
})
|
||||
);
|
||||
|
||||
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
||||
cy.get("[data-cy='plz-container']").find("button").first().click()
|
||||
|
||||
// Nutzflaeche
|
||||
cy.get("input[name='nutzflaeche']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
|
||||
// Keller
|
||||
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: Object.values(Enums.Heizungsstatus).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
// Dachgeschoss
|
||||
cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: Object.values(Enums.Heizungsstatus).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
cy.get("[data-cy='beschreibung']").type(faker.lorem.paragraphs({ min: 2, max: 10 }))
|
||||
|
||||
// Wärmedämmung Bilder
|
||||
cy.get("input[type='file'][name='plaene']").should("have.attr", "type", "file").attachFile("images/daemmung/1.jpeg", { subjectType: "input" }).attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
cy.get("input[type='file'][name='unterlagen']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" }).attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Jetzt können wir den Verbrauchsausweis erstellen.
|
||||
cy.get("form[data-cy='nachweis'] button[data-cy='weiter']").click({ force: true });
|
||||
|
||||
cy.url().should("contain", "/kundendaten");
|
||||
|
||||
const email = faker.internet.email();
|
||||
const passwort = "test1234";
|
||||
const vorname = faker.person.firstName();
|
||||
const nachname = faker.person.lastName();
|
||||
const telefon = faker.phone.number()
|
||||
|
||||
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||
const plz = faker.location.zipCode("#####")
|
||||
|
||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||
// Rechnung
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz);
|
||||
cy.get("[data-cy='plz-container']").children().first().click()
|
||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||
|
||||
cy.get("button[data-cy='bestellen']").click();
|
||||
|
||||
cy.get("a[data-cy='registrieren']").should("be.visible").click();
|
||||
|
||||
// Wir sind jetzt registriert und können uns nun einloggen.
|
||||
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
|
||||
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
|
||||
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
||||
|
||||
cy.get("form[name='signup'] button[type='submit']").click();
|
||||
cy.get("form[name='login'] button[type='submit']").click();
|
||||
|
||||
cy.url().should("contain", "/einpreisung/success")
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,312 +1,296 @@
|
||||
import fuelList from "#components/Ausweis/brennstoffListe.js";
|
||||
import { faker } from "@faker-js/faker";
|
||||
import { type Enums } from "#lib/client/prisma.js";
|
||||
import { Enums } from "#lib/client/prisma.js";
|
||||
import "cypress-file-upload"
|
||||
import moment from "moment";
|
||||
|
||||
describe("Verbrauchsausweis erstellen Schritt 1", () => {
|
||||
const ausstellgrund = (["Modernisierung", "Neubau", "Sonstiges", "Verkauf", "Vermietung"] as Enums.Ausstellgrund[]);
|
||||
const heizungsstatus = (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]);
|
||||
|
||||
it("erstellt einen neuen Verbrauchsausweis Wohngebäude.", () => {
|
||||
cy.visit("/energieausweis-erstellen/verbrauchsausweis-gewerbe");
|
||||
cy.task("plz").then(plz => {
|
||||
cy.visit("/energieausweis-erstellen/verbrauchsausweis-gewerbe");
|
||||
|
||||
cy.wait(1000);
|
||||
cy.wait(1000);
|
||||
|
||||
// Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind.
|
||||
cy.get("select[data-cy='ausstellgrund']")
|
||||
.select(
|
||||
faker.number.int({
|
||||
min: 1,
|
||||
max: (["Modernisierung", "Neubau", "Sonstiges", "Verkauf", "Vermietung"] as Enums.Ausstellgrund[]).length,
|
||||
})
|
||||
)
|
||||
// Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind.
|
||||
cy.get("select[data-cy='ausstellgrund']")
|
||||
.select(
|
||||
faker.number.int({
|
||||
min: 1,
|
||||
max: (["Modernisierung", "Neubau", "Sonstiges", "Verkauf", "Vermietung"] as Enums.Ausstellgrund[]).length,
|
||||
})
|
||||
)
|
||||
|
||||
// Jetzt Füllen wir das Baujahr vom Gebäude aus.
|
||||
cy.get("input[name='baujahr_gebaeude']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
// Jetzt Füllen wir das Baujahr vom Gebäude aus.
|
||||
cy.get("input[name='baujahr_gebaeude']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
);
|
||||
|
||||
// Jetzt Füllen wir das Baujahr der Heizung aus.
|
||||
cy.get("input[name='baujahr_heizung']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
);
|
||||
|
||||
// // Anzahl Einheiten
|
||||
// cy.get("input[name='einheiten']")
|
||||
// .should("have.attr", "type", "number")
|
||||
// .type(faker.number.int({ min: 1, max: 5 }).toString());
|
||||
|
||||
// Sanierungsstatus
|
||||
cy.get("select[name='saniert']").select(
|
||||
Math.random() > 0.5 ? "true" : "false"
|
||||
);
|
||||
|
||||
// Jetzt Füllen wir das Baujahr der Heizung aus.
|
||||
cy.get("input[name='baujahr_heizung']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
// Adresse
|
||||
cy.get("input[name='adresse']").type(faker.location.streetAddress());
|
||||
|
||||
// Postleitzahl
|
||||
cy.get("input[name='plz']").type(
|
||||
plz as string
|
||||
);
|
||||
|
||||
// // Anzahl Einheiten
|
||||
// cy.get("input[name='einheiten']")
|
||||
// .should("have.attr", "type", "number")
|
||||
// .type(faker.number.int({ min: 1, max: 5 }).toString());
|
||||
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
||||
cy.get("[data-cy='plz-container']").find("button").first().click()
|
||||
|
||||
// Sanierungsstatus
|
||||
cy.get("select[name='saniert']").select(
|
||||
Math.random() > 0.5 ? "true" : "false"
|
||||
);
|
||||
// // Flaeche
|
||||
// cy.get("input[name='flaeche']")
|
||||
// .should("have.attr", "type", "number")
|
||||
// .type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
|
||||
// Adresse
|
||||
cy.get("input[name='adresse']").type(faker.location.streetAddress());
|
||||
// Nutzlaeche
|
||||
cy.get("input[name='nutzflaeche']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
|
||||
// Postleitzahl
|
||||
cy.get("input[name='plz']").type(
|
||||
faker.location.zipCode({
|
||||
format: "#####",
|
||||
})
|
||||
);
|
||||
// Keller
|
||||
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", Object.keys(Enums.Heizungsstatus).length).parent().select(faker.number.int({
|
||||
max: Object.keys(Enums.Heizungsstatus).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
||||
cy.get("[data-cy='plz-container']").find("button").first().click()
|
||||
// Dachgeschoss
|
||||
cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", Object.keys(Enums.Heizungsstatus).length).parent().select(faker.number.int({
|
||||
max: Object.keys(Enums.Heizungsstatus).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
// // Flaeche
|
||||
// cy.get("input[name='flaeche']")
|
||||
// .should("have.attr", "type", "number")
|
||||
// .type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
// Brennstoff und Einheit 1
|
||||
const brennstoffKombo = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||
|
||||
// Nutzlaeche
|
||||
cy.get("input[name='nutzflaeche']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
|
||||
// Keller
|
||||
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", heizungsstatus.length).parent().select(faker.number.int({
|
||||
max: heizungsstatus.length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
// Dachgeschoss
|
||||
cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", heizungsstatus.length).parent().select(faker.number.int({
|
||||
max: heizungsstatus.length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
// Brennstoff und Einheit 1
|
||||
const brennstoffKombo = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||
|
||||
cy.get("select[name='brennstoff_1']").select(brennstoffKombo[0]);
|
||||
cy.get("select[name='einheit_1']").select(brennstoffKombo[1]);
|
||||
|
||||
let availableDates = [];
|
||||
const startDate = moment()
|
||||
.subtract(4, "years")
|
||||
.subtract(6, "months");
|
||||
const endDate = moment().subtract(3, "years");
|
||||
|
||||
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
||||
availableDates.push({
|
||||
year: m.year(),
|
||||
month: m.month(),
|
||||
});
|
||||
}
|
||||
|
||||
// Verbrauchszeitraum
|
||||
cy.get("select[name='energieverbrauch_zeitraum_jahr']").select(availableDates[0].year.toString());
|
||||
cy.get("select[name='energieverbrauch_zeitraum_monat']").select(availableDates[0].month.toString());
|
||||
|
||||
// Verbrauch
|
||||
cy.get("input[name='verbrauch_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
cy.get("input[name='verbrauch_2']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
cy.get("input[name='verbrauch_3']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
cy.get("select[name='brennstoff_1']").select(brennstoffKombo[0]);
|
||||
cy.get("select[name='einheit_1']").select(brennstoffKombo[1]);
|
||||
|
||||
let availableDates = [];
|
||||
const startDate = moment()
|
||||
.subtract(4, "years")
|
||||
.subtract(6, "months");
|
||||
const endDate = moment().subtract(3, "years");
|
||||
|
||||
const zusaetzlicheHeizquelle = Math.random() > 0.5;
|
||||
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
||||
availableDates.push({
|
||||
year: m.year(),
|
||||
month: m.month(),
|
||||
});
|
||||
}
|
||||
|
||||
if (zusaetzlicheHeizquelle) {
|
||||
cy.get("[data-cy='zusaetzliche_heizquelle']").check();
|
||||
|
||||
// Brennstoff und Einheit 2
|
||||
const brennstoffKombo2 = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||
|
||||
cy.get("[data-cy='brennstoff_2']").select(brennstoffKombo2[0], { force: true });
|
||||
cy.get("[data-cy='einheit_2']").select(brennstoffKombo2[1], { force: true });
|
||||
// Verbrauchszeitraum
|
||||
cy.get("select[name='energieverbrauch_zeitraum_jahr']").select(availableDates[0].year.toString());
|
||||
cy.get("select[name='energieverbrauch_zeitraum_monat']").select(availableDates[0].month.toString());
|
||||
|
||||
// Verbrauch
|
||||
cy.get("input[name='verbrauch_4']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_5']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_6']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
}
|
||||
cy.get("input[name='verbrauch_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
cy.get("input[name='verbrauch_2']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
cy.get("input[name='verbrauch_3']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
|
||||
// Gebäudestrom
|
||||
cy.get("input[name='strom_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
cy.get("input[name='strom_2']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
cy.get("input[name='strom_3']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
|
||||
const zusaetzlicheHeizquelle = Math.random() > 0.5;
|
||||
|
||||
// Stromverbrauch Enthält
|
||||
if (Math.random() > 0.5) cy.get("input[name='stromverbrauch_enthaelt_heizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='stromverbrauch_enthaelt_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='stromverbrauch_enthaelt_lueftung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='stromverbrauch_enthaelt_beleuchtung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='stromverbrauch_enthaelt_kuehlung']").check();
|
||||
if (zusaetzlicheHeizquelle) {
|
||||
cy.get("[data-cy='zusaetzliche_heizquelle']").check();
|
||||
|
||||
// Warmwasser enthalten und bekannt
|
||||
const warmwasserEnthalten = Math.random() > 0.5;
|
||||
const anteilBekannt = Math.random() > 0.5;
|
||||
// Brennstoff und Einheit 2
|
||||
const brennstoffKombo2 = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||
|
||||
if (warmwasserEnthalten) {
|
||||
cy.get("input[name='warmwasser_enthalten']").check();
|
||||
cy.get("[data-cy='brennstoff_2']").select(brennstoffKombo2[0], { force: true });
|
||||
cy.get("[data-cy='einheit_2']").select(brennstoffKombo2[1], { force: true });
|
||||
|
||||
if (anteilBekannt) {
|
||||
// Der Anteil ist bekannt, wir müssen ihn also angeben.
|
||||
cy.get("input[name='warmwasser_anteil_bekannt']").check();
|
||||
// Verbrauch
|
||||
cy.get("input[name='verbrauch_4']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_5']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_6']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
}
|
||||
|
||||
cy.get("input[name='anteil_warmwasser_1']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||
// Gebäudestrom
|
||||
cy.get("input[name='strom_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
cy.get("input[name='strom_2']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
cy.get("input[name='strom_3']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||
|
||||
// Stromverbrauch Enthält
|
||||
if (Math.random() > 0.5) cy.get("input[name='stromverbrauch_enthaelt_heizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='stromverbrauch_enthaelt_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='stromverbrauch_enthaelt_lueftung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='stromverbrauch_enthaelt_beleuchtung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='stromverbrauch_enthaelt_kuehlung']").check();
|
||||
|
||||
// Warmwasser enthalten und bekannt
|
||||
const warmwasserEnthalten = Math.random() > 0.5;
|
||||
const anteilBekannt = Math.random() > 0.5;
|
||||
|
||||
if (warmwasserEnthalten) {
|
||||
cy.get("input[name='warmwasser_enthalten']").check();
|
||||
|
||||
if (anteilBekannt) {
|
||||
// Der Anteil ist bekannt, wir müssen ihn also angeben.
|
||||
cy.get("input[name='warmwasser_anteil_bekannt']").check();
|
||||
|
||||
cy.get("input[name='anteil_warmwasser_1']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||
|
||||
if (zusaetzlicheHeizquelle) {
|
||||
// Zusätzliche Heizquelle existiert, also müssen wir auch hier den Anteil angeben.
|
||||
cy.get("input[name='anteil_warmwasser_1']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Thermische Kühlung enthalten
|
||||
const kuehlungEnthalten = Math.random() > 0.5;
|
||||
|
||||
if (kuehlungEnthalten) {
|
||||
cy.get("input[name='kuehlung_enthalten']").check();
|
||||
|
||||
cy.get("input[name='anteil_kuehlung_1']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||
|
||||
if (zusaetzlicheHeizquelle) {
|
||||
// Zusätzliche Heizquelle existiert, also müssen wir auch hier den Anteil angeben.
|
||||
cy.get("input[name='anteil_warmwasser_1']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||
cy.get("input[name='anteil_kuehlung_2']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Thermische Kühlung enthalten
|
||||
const kuehlungEnthalten = Math.random() > 0.5;
|
||||
// Alternative Energieversorgungssysteme
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_heizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_lueftung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_kuehlung']").check();
|
||||
|
||||
if (kuehlungEnthalten) {
|
||||
cy.get("input[name='kuehlung_enthalten']").check();
|
||||
// Gebäudetyp
|
||||
cy.get("select[name='gebaeudetyp']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option:not([disabled])');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudetyp']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
cy.get("input[name='anteil_kuehlung_1']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||
// Gebäudeteil
|
||||
cy.get("select[name='gebaeudeteil']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudeteil']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
if (zusaetzlicheHeizquelle) {
|
||||
// Zusätzliche Heizquelle existiert, also müssen wir auch hier den Anteil angeben.
|
||||
cy.get("input[name='anteil_kuehlung_2']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||
}
|
||||
}
|
||||
// Lüftung
|
||||
cy.get("select[name='lueftung']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='lueftung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
// Alternative Energieversorgungssysteme
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_heizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_lueftung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_kuehlung']").check();
|
||||
// Kühlung
|
||||
cy.get("select[name='kuehlung']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='kuehlung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
// Gebäudetyp
|
||||
cy.get("select[name='gebaeudetyp']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option:not([disabled])');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudetyp']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
// Leerstand
|
||||
cy.get("input[name='leerstand']").should("have.attr", "type", "number").type(faker.number.int({ min: 0, max: 30 }).toString());
|
||||
|
||||
// Gebäudeteil
|
||||
cy.get("select[name='gebaeudeteil']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudeteil']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
// Heizungsanlage Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='zentralheizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='einzelofen']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='durchlauf_erhitzer']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='standard_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='solarsystem_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='waermepumpe']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='niedertemperatur_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='brennwert_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='warmwasser_rohre_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='heizungsrohre_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='zirkulation']").check();
|
||||
// if (Math.random() > 0.5) cy.get("input[name='raum_temperatur_regler']").check();
|
||||
|
||||
// Lüftung
|
||||
cy.get("select[name='lueftung']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='lueftung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
// Heizungsanlage Bilder
|
||||
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Kühlung
|
||||
cy.get("select[name='kuehlung']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='kuehlung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
// Fenster Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='einfach_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='doppel_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='isolier_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='dreifach_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='fenster_dicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='fenster_teilweise_undicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='tueren_dicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='tueren_undicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='rolllaeden_kaesten_gedaemmt']").check();
|
||||
|
||||
// Leerstand
|
||||
cy.get("input[name='leerstand']").should("have.attr", "type", "number").type(faker.number.int({ min: 0, max: 30 }).toString());
|
||||
// Fenster Bilder
|
||||
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Heizungsanlage Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='zentralheizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='einzelofen']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='durchlauf_erhitzer']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='standard_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='solarsystem_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='waermepumpe']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='niedertemperatur_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='brennwert_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='warmwasser_rohre_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='heizungsrohre_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='zirkulation']").check();
|
||||
// if (Math.random() > 0.5) cy.get("input[name='raum_temperatur_regler']").check();
|
||||
// Wärmedämmung Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='aussenwand_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='keller_wand_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='keller_decke_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='dachgeschoss_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_min_12cm_gedaemmt']").check();
|
||||
|
||||
// Heizungsanlage Bilder
|
||||
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/2.jpeg", { subjectType: "input" });
|
||||
// Wärmedämmung Bilder
|
||||
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Fenster Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='einfach_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='doppel_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='isolier_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='dreifach_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='fenster_dicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='fenster_teilweise_undicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='tueren_dicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='tueren_undicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='rolllaeden_kaesten_gedaemmt']").check();
|
||||
// Gebäude Bild
|
||||
cy.get("input[name='gebaeude_image']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" });
|
||||
|
||||
// Fenster Bilder
|
||||
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/2.jpeg", { subjectType: "input" });
|
||||
cy.get("form[data-cy='ausweis'] button[data-cy='weiter']").click({ force: true });
|
||||
|
||||
// Wärmedämmung Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='aussenwand_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='keller_wand_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='keller_decke_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='dachgeschoss_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_min_12cm_gedaemmt']").check();
|
||||
cy.url().should("contain", "/kundendaten");
|
||||
|
||||
// Wärmedämmung Bilder
|
||||
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
const email = faker.internet.email();
|
||||
const passwort = "test1234";
|
||||
const vorname = faker.person.firstName();
|
||||
const nachname = faker.person.lastName();
|
||||
const telefon = faker.phone.number()
|
||||
|
||||
// Gebäude Bild
|
||||
cy.get("input[name='gebaeude_image']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" });
|
||||
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||
|
||||
cy.get("form[data-cy='ausweis'] button[data-cy='weiter']").click({ force: true });
|
||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||
// Rechnung
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz as string);
|
||||
cy.get("[data-cy='plz-container']").children().first().click()
|
||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||
|
||||
cy.url().should("contain", "/kundendaten");
|
||||
cy.get("[data-cy='paypal']").click()
|
||||
|
||||
const email = faker.internet.email();
|
||||
const passwort = "test1234";
|
||||
const vorname = faker.person.firstName();
|
||||
const nachname = faker.person.lastName();
|
||||
const telefon = faker.phone.number()
|
||||
cy.get("button[data-cy='bestellen']").click();
|
||||
|
||||
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||
const plz = faker.location.zipCode("#####")
|
||||
cy["form:signup"](email, passwort, vorname, nachname)
|
||||
|
||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||
// Rechnung
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz);
|
||||
cy.get("[data-cy='plz-container']").children().first().click()
|
||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||
|
||||
cy.get("[data-cy='paypal']").click()
|
||||
|
||||
cy.get("button[data-cy='bestellen']").click();
|
||||
|
||||
cy.get("a[data-cy='registrieren']").should("be.visible").click();
|
||||
|
||||
// Wir sind jetzt registriert und können uns nun einloggen.
|
||||
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
|
||||
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
|
||||
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
||||
|
||||
cy.intercept({ method: "PUT", url: "**/api/user" }).as("signup")
|
||||
cy.get("form[name='signup'] button[type='submit']").click();
|
||||
cy.wait("@signup")
|
||||
cy.get("form[name='login'] button[type='submit']").click();
|
||||
|
||||
cy.origin('https://www.mollie.com', () => {
|
||||
// Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus
|
||||
cy.get("input[type='radio'][name='final_state'][value='paid']").check();
|
||||
// Da wird unser Test fehlschlagen, da die localhost domain von Mollie aus nicht erreichbar ist.
|
||||
cy.origin('https://www.mollie.com', () => {
|
||||
// Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus
|
||||
cy.get("input[type='radio'][name='final_state'][value='paid']").check();
|
||||
// Da wird unser Test fehlschlagen, da die localhost domain von Mollie aus nicht erreichbar ist.
|
||||
})
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2,14 +2,17 @@ import fuelList from "#components/Ausweis/brennstoffListe.js";
|
||||
import { faker } from "@faker-js/faker";
|
||||
import "cypress-file-upload"
|
||||
import moment from "moment";
|
||||
import { Aufnahme, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/client/prisma.js";
|
||||
import { Aufnahme, Benutzer, Enums, Objekt, Rechnung, VerbrauchsausweisWohnen } from "#lib/client/prisma.js";
|
||||
|
||||
describe("Verbrauchsausweis für Wohngebäude bearbeiten", async () => {
|
||||
it("bearbeitet einen bereits existierenden Verbrauchsausweis für Wohngebäude", () => {
|
||||
cy.task("verbrauchsausweisWohnen", {
|
||||
where: {
|
||||
ausgestellt: false,
|
||||
bestellt: false
|
||||
bestellt: false,
|
||||
benutzer: {
|
||||
email: "user@ib-cornelsen.de"
|
||||
}
|
||||
},
|
||||
include: {
|
||||
aufnahme: {
|
||||
@@ -17,261 +20,171 @@ describe("Verbrauchsausweis für Wohngebäude bearbeiten", async () => {
|
||||
objekt: true
|
||||
}
|
||||
},
|
||||
benutzer: true
|
||||
benutzer: true,
|
||||
rechnung: true
|
||||
}
|
||||
}).then((ausweis: VerbrauchsausweisWohnen & { aufnahme: Aufnahme & { objekt: Objekt } }) => {
|
||||
}).then((ausweis: VerbrauchsausweisWohnen & { benutzer: Benutzer, aufnahme: Aufnahme & { objekt: Objekt }, rechnung: Rechnung | null }) => {
|
||||
cy.login("user@ib-cornelsen.de", "passwort");
|
||||
|
||||
cy.visit(`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id=${ausweis.id}`);
|
||||
|
||||
cy.wait(2000);
|
||||
|
||||
|
||||
// Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind.
|
||||
cy.get("select[data-cy='ausstellgrund']")
|
||||
.find("option:selected").should("have.value", ausweis.ausstellgrund)
|
||||
|
||||
// Jetzt Füllen wir das Baujahr vom Gebäude aus.
|
||||
cy.get("input[name='baujahr_gebaeude']")
|
||||
.should("have.value", ausweis.aufnahme.baujahr_gebaeude[0])
|
||||
// // Jetzt Füllen wir das Baujahr vom Gebäude aus.
|
||||
// cy.get("input[name='baujahr_gebaeude']")
|
||||
// .should("have.value", ausweis.aufnahme.baujahr_gebaeude[0])
|
||||
|
||||
// Jetzt Füllen wir das Baujahr der Heizung aus.
|
||||
cy.get("input[name='baujahr_heizung']")
|
||||
.should("have.value", ausweis.aufnahme.baujahr_heizung[0])
|
||||
// // Jetzt Füllen wir das Baujahr der Heizung aus.
|
||||
// cy.get("input[name='baujahr_heizung']")
|
||||
// .should("have.value", ausweis.aufnahme.baujahr_heizung[0])
|
||||
|
||||
// Anzahl Einheiten
|
||||
cy.get("input[name='einheiten']")
|
||||
.should("have.value", ausweis.aufnahme.einheiten)
|
||||
|
||||
// Sanierungsstatus
|
||||
cy.get("select[name='saniert']").find("option:selected").should("have.value", ausweis.aufnahme.saniert)
|
||||
cy.get("select[name='saniert']").find("option:selected").should("have.value", (ausweis.aufnahme.saniert || false).toString())
|
||||
|
||||
// Adresse
|
||||
cy.get("input[name='adresse']").should("have.value", ausweis.aufnahme.objekt.adresse);
|
||||
|
||||
// Postleitzahl
|
||||
cy.get("input[name='plz']").type(
|
||||
faker.location.zipCode({
|
||||
format: "#####",
|
||||
})
|
||||
);
|
||||
|
||||
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
||||
cy.get("[data-cy='plz-container']").find("button").first().click()
|
||||
cy.get("input[name='plz']").should("have.value", ausweis.aufnahme.objekt.plz);
|
||||
cy.get("input[name='ort']").should("have.value", ausweis.aufnahme.objekt.ort);
|
||||
|
||||
// Flaeche
|
||||
cy.get("input[name='flaeche']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
.should("have.value", ausweis.aufnahme.flaeche)
|
||||
|
||||
// Nutzflaeche
|
||||
cy.get("input[name='nutzflaeche']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
.should("have.value", ausweis.aufnahme.nutzflaeche)
|
||||
|
||||
// Keller
|
||||
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length,
|
||||
min: 1
|
||||
}));
|
||||
cy.get("select[name='keller']").find("option:selected").should("have.value", ausweis.aufnahme.keller)
|
||||
|
||||
// Dachgeschoss
|
||||
cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length,
|
||||
min: 1
|
||||
}));
|
||||
cy.get("select[name='dachgeschoss']").find("option:selected").should("have.value", ausweis.aufnahme.dachgeschoss)
|
||||
|
||||
// Brennstoff und Einheit 1
|
||||
const brennstoffKombo = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||
|
||||
cy.get("select[name='brennstoff_1']").select(brennstoffKombo[0]);
|
||||
cy.get("select[name='einheit_1']").select(brennstoffKombo[1]);
|
||||
|
||||
let availableDates = [];
|
||||
const startDate = moment()
|
||||
.subtract(4, "years")
|
||||
.subtract(6, "months");
|
||||
const endDate = moment().subtract(3, "years");
|
||||
|
||||
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
||||
availableDates.push({
|
||||
year: m.year(),
|
||||
month: m.month(),
|
||||
});
|
||||
}
|
||||
cy.get("select[name='brennstoff_1']").should("have.value", ausweis.brennstoff_1)
|
||||
cy.get("select[name='einheit_1']").should("have.value", ausweis.einheit_1)
|
||||
|
||||
// Verbrauchszeitraum
|
||||
cy.get("select[name='energieverbrauch_zeitraum_jahr']").select(availableDates[0].year.toString());
|
||||
cy.get("select[name='energieverbrauch_zeitraum_monat']").select(availableDates[0].month.toString());
|
||||
cy.get("select[name='energieverbrauch_zeitraum_jahr']").find("option:selected").should("have.value", moment(ausweis.startdatum).get("year"))
|
||||
cy.get("select[name='energieverbrauch_zeitraum_monat']").find("option:selected").should("have.value", moment(ausweis.startdatum).get("m") + 1)
|
||||
|
||||
|
||||
// Verbrauch
|
||||
cy.get("input[name='verbrauch_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_2']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_3']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_1']").should("have.value", ausweis.verbrauch_1);
|
||||
cy.get("input[name='verbrauch_2']").should("have.value", ausweis.verbrauch_2);
|
||||
cy.get("input[name='verbrauch_3']").should("have.value", ausweis.verbrauch_3);
|
||||
|
||||
|
||||
const zusaetzlicheHeizquelle = Math.random() > 0.5;
|
||||
|
||||
if (zusaetzlicheHeizquelle) {
|
||||
cy.get("[data-cy='zusaetzliche_heizquelle']").check();
|
||||
if (ausweis.zusaetzliche_heizquelle) {
|
||||
cy.get("[data-cy='zusaetzliche_heizquelle']").should("be.checked");
|
||||
|
||||
// Brennstoff und Einheit 2
|
||||
const brennstoffKombo2 = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||
|
||||
cy.get("[data-cy='brennstoff_2']").select(brennstoffKombo2[0], { force: true });
|
||||
cy.get("[data-cy='einheit_2']").select(brennstoffKombo2[1], { force: true });
|
||||
cy.get("[data-cy='brennstoff_2']").find("option:selected").should("have.value", ausweis.brennstoff_2);
|
||||
cy.get("[data-cy='einheit_2']").find("option:selected").should("have.value", ausweis.einheit_2);
|
||||
|
||||
// Verbrauch
|
||||
cy.get("input[name='verbrauch_4']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_5']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_6']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_4']").should("have.value", ausweis.verbrauch_4);
|
||||
cy.get("input[name='verbrauch_5']").should("have.value", ausweis.verbrauch_5);
|
||||
cy.get("input[name='verbrauch_6']").should("have.value", ausweis.verbrauch_6);
|
||||
}
|
||||
|
||||
// Warmwasser enthalten und bekannt
|
||||
const warmwasserEnthalten = Math.random() > 0.5;
|
||||
const anteilBekannt = Math.random() > 0.5;
|
||||
if (ausweis.warmwasser_enthalten) {
|
||||
cy.get("input[name='warmwasser_enthalten']").should("be.checked");
|
||||
|
||||
if (warmwasserEnthalten) {
|
||||
cy.get("input[name='warmwasser_enthalten']").check();
|
||||
|
||||
if (anteilBekannt) {
|
||||
if (ausweis.warmwasser_anteil_bekannt) {
|
||||
// Der Anteil ist bekannt, wir müssen ihn also angeben.
|
||||
cy.get("input[name='warmwasser_anteil_bekannt']").check();
|
||||
cy.get("input[name='warmwasser_anteil_bekannt']").should("be.checked");
|
||||
|
||||
cy.get("input[name='anteil_warmwasser_1']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||
cy.get("input[name='anteil_warmwasser_1']").should("have.value", ausweis.anteil_warmwasser_1);
|
||||
|
||||
if (zusaetzlicheHeizquelle) {
|
||||
if (ausweis.zusaetzliche_heizquelle) {
|
||||
// Zusätzliche Heizquelle existiert, also müssen wir auch hier den Anteil angeben.
|
||||
cy.get("input[name='anteil_warmwasser_2']").type(faker.number.int({ min: 0, max: 50 }).toString(), {force: true});
|
||||
cy.get("input[name='anteil_warmwasser_2']").should('have.value', ausweis.anteil_warmwasser_2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Alternative Energieversorgungssysteme
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_heizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_lueftung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_kuehlung']").check();
|
||||
if (ausweis.alternative_heizung) cy.get("input[name='alternative_heizung']").should("be.checked");
|
||||
if (ausweis.alternative_warmwasser) cy.get("input[name='alternative_warmwasser']").should("be.checked");
|
||||
if (ausweis.alternative_lueftung) cy.get("input[name='alternative_lueftung']").should("be.checked");
|
||||
if (ausweis.alternative_kuehlung) cy.get("input[name='alternative_kuehlung']").should("be.checked");
|
||||
|
||||
// Gebäudetyp
|
||||
cy.get("select[name='gebaeudetyp']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudetyp']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
cy.get("select[name='gebaeudetyp']").find("option:selected").should("have.value", ausweis.aufnahme.gebaeudetyp)
|
||||
|
||||
// Gebäudeteil
|
||||
cy.get("select[name='gebaeudeteil']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudeteil']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
cy.get("select[name='gebaeudeteil']").find("option:selected").should("have.value", ausweis.aufnahme.gebaeudeteil)
|
||||
|
||||
// Lüftung
|
||||
cy.get("select[name='lueftung']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='lueftung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
cy.get("select[name='lueftung']").find("option:selected").should("have.value", ausweis.aufnahme.lueftung)
|
||||
|
||||
// Kühlung
|
||||
cy.get("select[name='kuehlung']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='kuehlung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string, { force: true });
|
||||
});
|
||||
cy.get("select[name='kuehlung']").find("option:selected").should("have.value", ausweis.aufnahme.kuehlung)
|
||||
|
||||
// Leerstand
|
||||
cy.get("input[name='leerstand']").should("have.attr", "type", "number").type(faker.number.int({ min: 0, max: 30 }).toString());
|
||||
cy.get("input[name='leerstand']").should("have.value", ausweis.aufnahme.leerstand || "");
|
||||
|
||||
// Heizungsanlage Daten
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='zentralheizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='einzelofen']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='durchlauf_erhitzer']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='standard_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='solarsystem_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='waermepumpe']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='niedertemperatur_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='brennwert_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='warmwasser_rohre_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='heizungsrohre_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='zirkulation']").check();
|
||||
// if (Math.random() > 0.5) cy.get("[data-cy='raum_temperatur_regler']").check();
|
||||
|
||||
// Heizungsanlage Bilder
|
||||
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/2.jpeg", { subjectType: "input" });
|
||||
if (ausweis.aufnahme.zentralheizung) cy.get("[data-cy='zentralheizung']").should("be.checked");
|
||||
if (ausweis.aufnahme.einzelofen) cy.get("[data-cy='einzelofen']").should("be.checked");
|
||||
if (ausweis.aufnahme.durchlauf_erhitzer) cy.get("[data-cy='durchlauf_erhitzer']").should("be.checked");
|
||||
if (ausweis.aufnahme.standard_kessel) cy.get("[data-cy='standard_kessel']").should("be.checked");
|
||||
if (ausweis.aufnahme.solarsystem_warmwasser) cy.get("[data-cy='solarsystem_warmwasser']").should("be.checked");
|
||||
if (ausweis.aufnahme.waermepumpe) cy.get("[data-cy='waermepumpe']").should("be.checked");
|
||||
if (ausweis.aufnahme.niedertemperatur_kessel) cy.get("[data-cy='niedertemperatur_kessel']").should("be.checked");
|
||||
if (ausweis.aufnahme.brennwert_kessel) cy.get("[data-cy='brennwert_kessel']").should("be.checked");
|
||||
if (ausweis.aufnahme.warmwasser_rohre_gedaemmt) cy.get("[data-cy='warmwasser_rohre_gedaemmt']").should("be.checked");
|
||||
if (ausweis.aufnahme.heizungsrohre_gedaemmt) cy.get("[data-cy='heizungsrohre_gedaemmt']").should("be.checked");
|
||||
if (ausweis.aufnahme.zirkulation) cy.get("[data-cy='zirkulation']").should("be.checked");
|
||||
|
||||
// Fenster Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='einfach_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='doppel_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='isolier_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='dreifach_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='fenster_dicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='fenster_teilweise_undicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='tueren_dicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='tueren_undicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='rolllaeden_kaesten_gedaemmt']").check();
|
||||
|
||||
// Fenster Bilder
|
||||
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/2.jpeg", { subjectType: "input" });
|
||||
if (ausweis.aufnahme.einfach_verglasung) cy.get("input[name='einfach_verglasung']").check();
|
||||
if (ausweis.aufnahme.doppel_verglasung) cy.get("input[name='doppel_verglasung']").check();
|
||||
if (ausweis.aufnahme.isolier_verglasung) cy.get("input[name='isolier_verglasung']").check();
|
||||
if (ausweis.aufnahme.dreifach_verglasung) cy.get("input[name='dreifach_verglasung']").check();
|
||||
if (ausweis.aufnahme.fenster_dicht) cy.get("input[name='fenster_dicht']").check();
|
||||
if (ausweis.aufnahme.fenster_teilweise_undicht) cy.get("input[name='fenster_teilweise_undicht']").check();
|
||||
if (ausweis.aufnahme.tueren_dicht) cy.get("input[name='tueren_dicht']").check();
|
||||
if (ausweis.aufnahme.tueren_undicht) cy.get("input[name='tueren_undicht']").check();
|
||||
if (ausweis.aufnahme.rolllaeden_kaesten_gedaemmt) cy.get("input[name='rolllaeden_kaesten_gedaemmt']").check();
|
||||
|
||||
// Wärmedämmung Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='aussenwand_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='keller_wand_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='keller_decke_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='dachgeschoss_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_min_12cm_gedaemmt']").check();
|
||||
|
||||
// Wärmedämmung Bilder
|
||||
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Gebäude Bild
|
||||
cy.get("input[name='gebaeude_image']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" });
|
||||
if (ausweis.aufnahme.aussenwand_gedaemmt) cy.get("input[name='aussenwand_gedaemmt']").check();
|
||||
if (ausweis.aufnahme.keller_wand_gedaemmt) cy.get("input[name='keller_wand_gedaemmt']").check();
|
||||
if (ausweis.aufnahme.keller_decke_gedaemmt) cy.get("input[name='keller_decke_gedaemmt']").check();
|
||||
if (ausweis.aufnahme.dachgeschoss_gedaemmt) cy.get("input[name='dachgeschoss_gedaemmt']").check();
|
||||
if (ausweis.aufnahme.oberste_geschossdecke_gedaemmt) cy.get("input[name='oberste_geschossdecke_gedaemmt']").check();
|
||||
if (ausweis.aufnahme.oberste_geschossdecke_min_12cm_gedaemmt) cy.get("input[name='oberste_geschossdecke_min_12cm_gedaemmt']").check();
|
||||
|
||||
// Jetzt können wir den Verbrauchsausweis erstellen.
|
||||
cy.get("form[data-cy='ausweis'] button[data-cy='weiter']").click({ force: true });
|
||||
|
||||
cy.url().should("contain", "/kundendaten");
|
||||
|
||||
const email = faker.internet.email();
|
||||
const passwort = "test1234";
|
||||
const vorname = faker.person.firstName();
|
||||
const nachname = faker.person.lastName();
|
||||
const telefon = faker.phone.number()
|
||||
|
||||
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||
const plz = faker.location.zipCode("#####")
|
||||
|
||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||
cy.get("input[name='vorname']").should("have.value", ausweis.benutzer.vorname);
|
||||
cy.get("input[name='name']").should("have.value", ausweis.benutzer.name);
|
||||
cy.get("input[name='telefon']").should("have.value", ausweis.rechnung?.telefon || ausweis.benutzer.telefon || "");
|
||||
// Rechnung
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz);
|
||||
cy.get("[data-cy='plz-container']").children().first().click()
|
||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.value", ausweis.rechnung?.empfaenger || `${ausweis.benutzer.vorname} ${ausweis.benutzer.name}`);
|
||||
cy.get("input[name='rechnung_strasse']").should("have.value", ausweis.rechnung?.strasse || ausweis.benutzer.adresse);
|
||||
cy.get("input[name='rechnung_plz']").should("have.value", ausweis.rechnung?.plz || ausweis.benutzer.plz);
|
||||
cy.get("input[name='rechnung_email']").should("have.value", ausweis.rechnung?.email || ausweis.benutzer.email);
|
||||
|
||||
cy.get("[data-cy='paypal']").click()
|
||||
|
||||
cy.get("button[data-cy='bestellen']").click();
|
||||
|
||||
cy.get("a[data-cy='registrieren']").should("be.visible").click();
|
||||
|
||||
// Wir sind jetzt registriert und können uns nun einloggen.
|
||||
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
|
||||
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
|
||||
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
||||
|
||||
cy.intercept({ method: "PUT", url: "**/api/user" }).as("signup")
|
||||
cy.get("form[name='signup'] button[type='submit']").click();
|
||||
cy.wait("@signup")
|
||||
cy.get("form[name='login'] button[type='submit']").click();
|
||||
|
||||
cy.origin('https://www.mollie.com', () => {
|
||||
// Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus
|
||||
cy.get("input[type='radio'][name='final_state'][value='paid']").check();
|
||||
|
||||
@@ -6,296 +6,283 @@ import moment from "moment";
|
||||
|
||||
describe("Verbrauchsausweis erstellen Schritt 1", () => {
|
||||
it("erstellt einen neuen Verbrauchsausweis Wohngebäude.", () => {
|
||||
const email = faker.internet.email();
|
||||
const passwort = "test1234";
|
||||
const vorname = faker.person.firstName();
|
||||
const nachname = faker.person.lastName();
|
||||
const telefon = faker.phone.number()
|
||||
cy.task("plz").then(plz => {
|
||||
const email = faker.internet.email();
|
||||
const passwort = "test1234";
|
||||
const vorname = faker.person.firstName();
|
||||
const nachname = faker.person.lastName();
|
||||
const telefon = faker.phone.number()
|
||||
|
||||
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||
const plz = faker.location.zipCode("#####")
|
||||
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||
|
||||
const preLogin = Math.random() > 0.5;
|
||||
const preLogin = Math.random() > 0.5;
|
||||
|
||||
if (preLogin) {
|
||||
cy.signup(email, passwort, vorname, nachname)
|
||||
cy.login(email, passwort)
|
||||
}
|
||||
if (preLogin) {
|
||||
cy.signup(email, passwort, vorname, nachname)
|
||||
cy.login(email, passwort)
|
||||
}
|
||||
|
||||
cy.visit("/energieausweis-erstellen/verbrauchsausweis-wohngebaeude");
|
||||
|
||||
cy.wait(2000);
|
||||
cy.visit("/energieausweis-erstellen/verbrauchsausweis-wohngebaeude");
|
||||
|
||||
cy.wait(2000);
|
||||
|
||||
// Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind.
|
||||
cy.get("select[data-cy='ausstellgrund']")
|
||||
.select(
|
||||
faker.number.int({
|
||||
min: 1,
|
||||
max: Object.values(Enums.Ausstellgrund).length - 1,
|
||||
})
|
||||
)
|
||||
// Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind.
|
||||
cy.get("select[data-cy='ausstellgrund']")
|
||||
.select(
|
||||
faker.number.int({
|
||||
min: 1,
|
||||
max: Object.values(Enums.Ausstellgrund).length - 1,
|
||||
})
|
||||
)
|
||||
|
||||
// Jetzt Füllen wir das Baujahr vom Gebäude aus.
|
||||
cy.get("input[name='baujahr_gebaeude']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
// Jetzt Füllen wir das Baujahr vom Gebäude aus.
|
||||
cy.get("input[name='baujahr_gebaeude']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
);
|
||||
|
||||
// Jetzt Füllen wir das Baujahr der Heizung aus.
|
||||
cy.get("input[name='baujahr_heizung']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
);
|
||||
|
||||
// Anzahl Einheiten
|
||||
cy.get("input[name='einheiten']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 1, max: 5 }).toString());
|
||||
|
||||
// Sanierungsstatus
|
||||
cy.get("select[name='saniert']").select(
|
||||
Math.random() > 0.5 ? "true" : "false"
|
||||
);
|
||||
|
||||
// Jetzt Füllen wir das Baujahr der Heizung aus.
|
||||
cy.get("input[name='baujahr_heizung']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(
|
||||
faker.number.int({ min: 1900, max: 2021 }).toString() +
|
||||
"{enter}",
|
||||
{ delay: 50 }
|
||||
// Adresse
|
||||
cy.get("input[name='adresse']").type(faker.location.streetAddress());
|
||||
|
||||
// Postleitzahl
|
||||
cy.get("input[name='plz']").type(
|
||||
plz as string
|
||||
);
|
||||
|
||||
// Anzahl Einheiten
|
||||
cy.get("input[name='einheiten']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 1, max: 5 }).toString());
|
||||
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
||||
cy.get("[data-cy='plz-container']").find("button").first().click()
|
||||
|
||||
// Sanierungsstatus
|
||||
cy.get("select[name='saniert']").select(
|
||||
Math.random() > 0.5 ? "true" : "false"
|
||||
);
|
||||
// Flaeche
|
||||
cy.get("input[name='flaeche']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
|
||||
// Adresse
|
||||
cy.get("input[name='adresse']").type(faker.location.streetAddress());
|
||||
// Nutzflaeche
|
||||
cy.get("input[name='nutzflaeche']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
|
||||
// Postleitzahl
|
||||
cy.get("input[name='plz']").type(
|
||||
faker.location.zipCode({
|
||||
format: "#####",
|
||||
})
|
||||
);
|
||||
// Keller
|
||||
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
||||
cy.get("[data-cy='plz-container']").find("button").first().click()
|
||||
// Dachgeschoss
|
||||
cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
// Flaeche
|
||||
cy.get("input[name='flaeche']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
// Brennstoff und Einheit 1
|
||||
const brennstoffKombo = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||
|
||||
// Nutzflaeche
|
||||
cy.get("input[name='nutzflaeche']")
|
||||
.should("have.attr", "type", "number")
|
||||
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||
|
||||
// Keller
|
||||
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
// Dachgeschoss
|
||||
cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||
max: (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length,
|
||||
min: 1
|
||||
}));
|
||||
|
||||
// Brennstoff und Einheit 1
|
||||
const brennstoffKombo = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||
|
||||
cy.get("select[name='brennstoff_1']").select(brennstoffKombo[0]);
|
||||
cy.get("select[name='einheit_1']").select(brennstoffKombo[1]);
|
||||
|
||||
let availableDates = [];
|
||||
const startDate = moment()
|
||||
.subtract(4, "years")
|
||||
.subtract(6, "months");
|
||||
const endDate = moment().subtract(3, "years");
|
||||
|
||||
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
||||
availableDates.push({
|
||||
year: m.year(),
|
||||
month: m.month(),
|
||||
});
|
||||
}
|
||||
|
||||
// Verbrauchszeitraum
|
||||
cy.get("select[name='energieverbrauch_zeitraum_jahr']").select(availableDates[0].year.toString());
|
||||
cy.get("select[name='energieverbrauch_zeitraum_monat']").select(availableDates[0].month.toString());
|
||||
|
||||
|
||||
// Verbrauch
|
||||
cy.get("input[name='verbrauch_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_2']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_3']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("select[name='brennstoff_1']").select(brennstoffKombo[0]);
|
||||
cy.get("select[name='einheit_1']").select(brennstoffKombo[1]);
|
||||
|
||||
let availableDates = [];
|
||||
const startDate = moment()
|
||||
.subtract(4, "years")
|
||||
.subtract(6, "months");
|
||||
const endDate = moment().subtract(3, "years");
|
||||
|
||||
const zusaetzlicheHeizquelle = Math.random() > 0.5;
|
||||
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
||||
availableDates.push({
|
||||
year: m.year(),
|
||||
month: m.month(),
|
||||
});
|
||||
}
|
||||
|
||||
if (zusaetzlicheHeizquelle) {
|
||||
cy.get("[data-cy='zusaetzliche_heizquelle']").check();
|
||||
// Verbrauchszeitraum
|
||||
cy.get("select[name='energieverbrauch_zeitraum_jahr']").select(availableDates[0].year.toString());
|
||||
cy.get("select[name='energieverbrauch_zeitraum_monat']").select(availableDates[0].month.toString());
|
||||
|
||||
// Brennstoff und Einheit 2
|
||||
const brennstoffKombo2 = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||
|
||||
cy.get("[data-cy='brennstoff_2']").select(brennstoffKombo2[0], { force: true });
|
||||
cy.get("[data-cy='einheit_2']").select(brennstoffKombo2[1], { force: true });
|
||||
|
||||
// Verbrauch
|
||||
cy.get("input[name='verbrauch_4']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_5']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_6']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
}
|
||||
cy.get("input[name='verbrauch_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_2']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_3']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
|
||||
// Warmwasser enthalten und bekannt
|
||||
const warmwasserEnthalten = Math.random() > 0.5;
|
||||
const anteilBekannt = Math.random() > 0.5;
|
||||
|
||||
const zusaetzlicheHeizquelle = Math.random() > 0.5;
|
||||
|
||||
if (warmwasserEnthalten) {
|
||||
cy.get("input[name='warmwasser_enthalten']").check();
|
||||
if (zusaetzlicheHeizquelle) {
|
||||
cy.get("[data-cy='zusaetzliche_heizquelle']").check();
|
||||
|
||||
if (anteilBekannt) {
|
||||
// Der Anteil ist bekannt, wir müssen ihn also angeben.
|
||||
cy.get("input[name='warmwasser_anteil_bekannt']").check();
|
||||
// Brennstoff und Einheit 2
|
||||
const brennstoffKombo2 = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||
|
||||
cy.get("input[name='anteil_warmwasser_1']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||
cy.get("[data-cy='brennstoff_2']").select(brennstoffKombo2[0], { force: true });
|
||||
cy.get("[data-cy='einheit_2']").select(brennstoffKombo2[1], { force: true });
|
||||
|
||||
if (zusaetzlicheHeizquelle) {
|
||||
// Zusätzliche Heizquelle existiert, also müssen wir auch hier den Anteil angeben.
|
||||
cy.get("input[name='anteil_warmwasser_2']").type(faker.number.int({ min: 0, max: 50 }).toString(), {force: true});
|
||||
// Verbrauch
|
||||
cy.get("input[name='verbrauch_4']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_5']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
cy.get("input[name='verbrauch_6']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||
}
|
||||
|
||||
// Warmwasser enthalten und bekannt
|
||||
const warmwasserEnthalten = Math.random() > 0.5;
|
||||
const anteilBekannt = Math.random() > 0.5;
|
||||
|
||||
if (warmwasserEnthalten) {
|
||||
cy.get("input[name='warmwasser_enthalten']").check();
|
||||
|
||||
if (anteilBekannt) {
|
||||
// Der Anteil ist bekannt, wir müssen ihn also angeben.
|
||||
cy.get("input[name='warmwasser_anteil_bekannt']").check();
|
||||
|
||||
cy.get("input[name='anteil_warmwasser_1']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||
|
||||
if (zusaetzlicheHeizquelle) {
|
||||
// Zusätzliche Heizquelle existiert, also müssen wir auch hier den Anteil angeben.
|
||||
cy.get("input[name='anteil_warmwasser_2']").type(faker.number.int({ min: 0, max: 50 }).toString(), {force: true});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Alternative Energieversorgungssysteme
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_heizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_lueftung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_kuehlung']").check();
|
||||
// Alternative Energieversorgungssysteme
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_heizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_lueftung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='alternative_kuehlung']").check();
|
||||
|
||||
// Gebäudetyp
|
||||
cy.get("select[name='gebaeudetyp']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudetyp']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
// Gebäudetyp
|
||||
cy.get("select[name='gebaeudetyp']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudetyp']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
// Gebäudeteil
|
||||
cy.get("select[name='gebaeudeteil']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudeteil']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
// Lüftung
|
||||
cy.get("select[name='lueftung']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='lueftung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
// Kühlung
|
||||
cy.get("select[name='kuehlung']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='kuehlung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string, { force: true });
|
||||
});
|
||||
|
||||
// Leerstand
|
||||
cy.get("input[name='leerstand']").should("have.attr", "type", "number").type(faker.number.int({ min: 0, max: 30 }).toString());
|
||||
|
||||
// Heizungsanlage Daten
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='zentralheizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='einzelofen']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='durchlauf_erhitzer']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='standard_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='solarsystem_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='waermepumpe']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='niedertemperatur_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='brennwert_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='warmwasser_rohre_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='heizungsrohre_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='zirkulation']").check();
|
||||
// if (Math.random() > 0.5) cy.get("[data-cy='raum_temperatur_regler']").check();
|
||||
|
||||
// Heizungsanlage Bilder
|
||||
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Fenster Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='einfach_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='doppel_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='isolier_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='dreifach_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='fenster_dicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='fenster_teilweise_undicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='tueren_dicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='tueren_undicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='rolllaeden_kaesten_gedaemmt']").check();
|
||||
|
||||
// Fenster Bilder
|
||||
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Wärmedämmung Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='aussenwand_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='keller_wand_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='keller_decke_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='dachgeschoss_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_min_12cm_gedaemmt']").check();
|
||||
|
||||
// Wärmedämmung Bilder
|
||||
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Gebäude Bild
|
||||
cy.get("input[name='gebaeude_image']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" });
|
||||
|
||||
// Jetzt können wir den Verbrauchsausweis erstellen.
|
||||
cy.get("form[data-cy='ausweis'] button[data-cy='weiter']").click({ force: true });
|
||||
|
||||
cy.url().should("contain", "/kundendaten");
|
||||
|
||||
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||
// Rechnung
|
||||
if (preLogin) {
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").should("contain.value", `${vorname} ${nachname}`);
|
||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").should("contain.value", vorname);
|
||||
cy.get("input[name='name']").should("have.attr", "type", "text").should("contain.value", nachname);
|
||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").should("contain.value", email);
|
||||
} else {
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||
}
|
||||
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz as string);
|
||||
cy.get("[data-cy='plz-container']").children().first().click()
|
||||
|
||||
cy.get("[data-cy='paypal']").click()
|
||||
|
||||
cy.get("button[data-cy='bestellen']").click();
|
||||
|
||||
if (!preLogin) {
|
||||
cy["form:signup"](email, passwort, vorname, nachname)
|
||||
}
|
||||
|
||||
cy.origin('https://www.mollie.com', () => {
|
||||
// Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus
|
||||
cy.get("input[type='radio'][name='final_state'][value='paid']").check();
|
||||
// Da wird unser Test fehlschlagen, da die localhost domain von Mollie aus nicht erreichbar ist.
|
||||
})
|
||||
});
|
||||
|
||||
// Gebäudeteil
|
||||
cy.get("select[name='gebaeudeteil']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='gebaeudeteil']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
// Lüftung
|
||||
cy.get("select[name='lueftung']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='lueftung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||
});
|
||||
|
||||
// Kühlung
|
||||
cy.get("select[name='kuehlung']").then(($dropdown) => {
|
||||
const options = $dropdown.find('option');
|
||||
// Select the option at the random index
|
||||
cy.get("select[name='kuehlung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string, { force: true });
|
||||
});
|
||||
|
||||
// Leerstand
|
||||
cy.get("input[name='leerstand']").should("have.attr", "type", "number").type(faker.number.int({ min: 0, max: 30 }).toString());
|
||||
|
||||
// Heizungsanlage Daten
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='zentralheizung']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='einzelofen']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='durchlauf_erhitzer']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='standard_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='solarsystem_warmwasser']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='waermepumpe']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='niedertemperatur_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='brennwert_kessel']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='warmwasser_rohre_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='heizungsrohre_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("[data-cy='zirkulation']").check();
|
||||
// if (Math.random() > 0.5) cy.get("[data-cy='raum_temperatur_regler']").check();
|
||||
|
||||
// Heizungsanlage Bilder
|
||||
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Fenster Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='einfach_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='doppel_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='isolier_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='dreifach_verglasung']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='fenster_dicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='fenster_teilweise_undicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='tueren_dicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='tueren_undicht']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='rolllaeden_kaesten_gedaemmt']").check();
|
||||
|
||||
// Fenster Bilder
|
||||
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Wärmedämmung Daten
|
||||
if (Math.random() > 0.5) cy.get("input[name='aussenwand_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='keller_wand_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='keller_decke_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='dachgeschoss_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_gedaemmt']").check();
|
||||
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_min_12cm_gedaemmt']").check();
|
||||
|
||||
// Wärmedämmung Bilder
|
||||
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/1.jpeg", { subjectType: "input" });
|
||||
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||
|
||||
// Gebäude Bild
|
||||
cy.get("input[name='gebaeude_image']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" });
|
||||
|
||||
// Jetzt können wir den Verbrauchsausweis erstellen.
|
||||
cy.get("form[data-cy='ausweis'] button[data-cy='weiter']").click({ force: true });
|
||||
|
||||
cy.url().should("contain", "/kundendaten");
|
||||
|
||||
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||
// Rechnung
|
||||
if (preLogin) {
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").should("contain.value", `${vorname} ${nachname}`);
|
||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").should("contain.value", vorname);
|
||||
cy.get("input[name='name']").should("have.attr", "type", "text").should("contain.value", nachname);
|
||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").should("contain.value", email);
|
||||
} else {
|
||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||
}
|
||||
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz);
|
||||
cy.get("[data-cy='plz-container']").children().first().click()
|
||||
|
||||
cy.get("[data-cy='paypal']").click()
|
||||
|
||||
cy.get("button[data-cy='bestellen']").click();
|
||||
|
||||
if (!preLogin) {
|
||||
cy.get("a[data-cy='registrieren']").should("be.visible").click();
|
||||
|
||||
// Wir sind jetzt registriert und können uns nun einloggen.
|
||||
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
|
||||
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(nachname);
|
||||
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
|
||||
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
||||
|
||||
cy.intercept({ method: "PUT", url: "**/api/user" }).as("signup")
|
||||
cy.get("form[name='signup'] button[type='submit']").click();
|
||||
cy.wait("@signup")
|
||||
cy.get("form[name='login'] button[type='submit']").click();
|
||||
}
|
||||
|
||||
cy.origin('https://www.mollie.com', () => {
|
||||
// Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus
|
||||
cy.get("input[type='radio'][name='final_state'][value='paid']").check();
|
||||
// Da wird unser Test fehlschlagen, da die localhost domain von Mollie aus nicht erreichbar ist.
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
@@ -30,11 +30,28 @@ Cypress.Commands.add("signup", (email, passwort, vorname, name) => {
|
||||
cy.url().should("include", "/auth/login")
|
||||
})
|
||||
|
||||
Cypress.Commands.add("form:signup", (email, passwort, vorname, name) => {
|
||||
cy.get("a[data-cy='registrieren']").should("be.visible").click();
|
||||
|
||||
// Wir sind jetzt registriert und können uns nun einloggen.
|
||||
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
|
||||
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
|
||||
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(name);
|
||||
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
|
||||
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
||||
|
||||
cy.intercept({ method: "PUT", url: "**/api/user" }).as("signup")
|
||||
cy.get("form[name='signup'] button[type='submit']").click();
|
||||
cy.wait("@signup")
|
||||
cy.get("form[name='login'] button[type='submit']").click();
|
||||
})
|
||||
|
||||
declare global {
|
||||
namespace Cypress {
|
||||
interface Chainable {
|
||||
login(email: string, passwort: string): Chainable<void>
|
||||
signup(email: string, passwort: string, vorname: string, name: string): Chainable<void>
|
||||
"form:signup"(email: string, passwort: string, vorname: string, name: string): Chainable<void>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,9 @@
|
||||
import * as z from "zod"
|
||||
import { Ausweisart, Heizungsstatus, Heizungsstatus, Lueftungskonzept } from "@prisma/client"
|
||||
import { Heizungsstatus, Heizungsstatus, Lueftungskonzept } from "@prisma/client"
|
||||
|
||||
export const AufnahmeSchema = z.object({
|
||||
id: z.string(),
|
||||
benutzer_id: z.string().nullish(),
|
||||
ausweisart: z.nativeEnum(Ausweisart).describe("Art des korrespondierenden Ausweises, wie z.B. VerbrauchsausweisWohnen").nullish(),
|
||||
gebaeudetyp: z.string().describe("Art des Gebäudes und seiner primären Nutzungsart").nullish(),
|
||||
gebaeudeteil: z.string().describe("Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil").nullish(),
|
||||
baujahr_gebaeude: z.number().int().array().describe("Alle Jahre in denen das Gebäude konstruiert oder grundlegend verändert wurde"),
|
||||
@@ -23,12 +22,7 @@ export const AufnahmeSchema = z.object({
|
||||
alternative_warmwasser: z.boolean().describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(),
|
||||
alternative_lueftung: z.boolean().describe("Falls die Lüftung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(),
|
||||
alternative_kuehlung: z.boolean().describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(),
|
||||
brennstoff_1: z.string().describe("Genutzer Brennstoff der primären Energiequelle").nullish(),
|
||||
brennstoff_2: z.string().describe("Genutzer Brennstoff der sekundären Energiequelle").nullish(),
|
||||
boxpruefung: z.boolean().nullish(),
|
||||
energieeffizienzklasse: z.string().describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes").nullish(),
|
||||
erstellungsdatum: z.date().describe("Datum an dem der Kunde den Ausweis erstellt hat").nullish(),
|
||||
ausstellungsdatum: z.date().describe("Datum an dem der Aussteller den Ausweis ausgestellt hat").nullish(),
|
||||
erstellungsdatum: z.date().describe("Datum an dem der Kunde die Aufnahme erstellt hat").nullish(),
|
||||
zentralheizung: z.boolean().describe("Falls das Gebäude über eine Zentralbeheizung verfügt, sollte dieser Wert auf true stehen").nullish(),
|
||||
solarsystem_warmwasser: z.boolean().describe("Falls das Gebäude über ein Solarsystem für Warmwasser verfügt, sollte dieser Wert auf true stehen").nullish(),
|
||||
warmwasser_rohre_gedaemmt: z.boolean().describe("Falls die Warmwasserrohre des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen").nullish(),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as z from "zod"
|
||||
import { Ausstellgrund } from "@prisma/client"
|
||||
import { Ausstellgrund, AusweisTyp } from "@prisma/client"
|
||||
|
||||
export const BedarfsausweisGewerbeSchema = z.object({
|
||||
id: z.string(),
|
||||
@@ -19,6 +19,9 @@ export const BedarfsausweisGewerbeSchema = z.object({
|
||||
fussbodenheizung: z.boolean().nullish(),
|
||||
bauteilaktivierung: z.boolean().nullish(),
|
||||
klimatisierung: z.boolean().nullish(),
|
||||
nachweistyp: z.nativeEnum(AusweisTyp),
|
||||
created_at: z.date(),
|
||||
updated_at: z.date(),
|
||||
benutzer_id: z.string().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
|
||||
aufnahme_id: z.string(),
|
||||
rechnung_id: z.string().nullish(),
|
||||
|
||||
@@ -11,6 +11,9 @@ export const BedarfsausweisWohnenSchema = z.object({
|
||||
alternative_warmwasser: z.boolean().nullish(),
|
||||
alternative_lueftung: z.boolean().nullish(),
|
||||
alternative_kuehlung: z.boolean().nullish(),
|
||||
energieeffizienzklasse: z.string().describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes").nullish(),
|
||||
ausstellungsdatum: z.date().describe("Datum an dem der Aussteller den Ausweis ausgestellt hat").nullish(),
|
||||
boxpruefung: z.boolean().nullish(),
|
||||
anzahl_vollgeschosse: z.number().int().nullish(),
|
||||
geschosshoehe: z.number().nullish(),
|
||||
anzahl_gauben: z.number().int().nullish(),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as z from "zod"
|
||||
import { Ausstellgrund } from "@prisma/client"
|
||||
import { Ausstellgrund, AusweisTyp } from "@prisma/client"
|
||||
|
||||
export const GEGNachweisGewerbeSchema = z.object({
|
||||
id: z.string(),
|
||||
@@ -9,6 +9,9 @@ export const GEGNachweisGewerbeSchema = z.object({
|
||||
bestellt: z.boolean().describe("Falls der Nachweis bestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
||||
zurueckgestellt: z.boolean().describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
||||
beschreibung: z.string().describe("Beschreibung des Bauvorhabens").nullish(),
|
||||
nachweistyp: z.nativeEnum(AusweisTyp),
|
||||
created_at: z.date(),
|
||||
updated_at: z.date(),
|
||||
benutzer_id: z.string().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
|
||||
aufnahme_id: z.string(),
|
||||
rechnung_id: z.string().nullish(),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as z from "zod"
|
||||
import { Ausstellgrund } from "@prisma/client"
|
||||
import { Ausstellgrund, AusweisTyp } from "@prisma/client"
|
||||
|
||||
export const GEGNachweisWohnenSchema = z.object({
|
||||
id: z.string(),
|
||||
@@ -9,6 +9,9 @@ export const GEGNachweisWohnenSchema = z.object({
|
||||
bestellt: z.boolean().describe("Falls der Nachweis bestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
||||
zurueckgestellt: z.boolean().describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
||||
beschreibung: z.string().describe("Beschreibung des Bauvorhabens").nullish(),
|
||||
nachweistyp: z.nativeEnum(AusweisTyp),
|
||||
created_at: z.date(),
|
||||
updated_at: z.date(),
|
||||
benutzer_id: z.string().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
|
||||
aufnahme_id: z.string(),
|
||||
rechnung_id: z.string().nullish(),
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
export * from "./anteilshaber.js"
|
||||
export * from "./apirequests.js"
|
||||
export * from "./aufnahme.js"
|
||||
export * from "./bedarfsausweisgewerbe.js"
|
||||
export * from "./bedarfsausweiswohnen.js"
|
||||
export * from "./benutzer.js"
|
||||
export * from "./bild.js"
|
||||
export * from "./event.js"
|
||||
export * from "./gegeinpreisung.js"
|
||||
export * from "./gegnachweisgewerbe.js"
|
||||
export * from "./gegnachweiswohnen.js"
|
||||
export * from "./klimafaktoren.js"
|
||||
export * from "./objekt.js"
|
||||
export * from "./postleitzahlen.js"
|
||||
export * from "./rechnung.js"
|
||||
export * from "./refreshtokens.js"
|
||||
export * from "./tickets.js"
|
||||
export * from "./unterlage.js"
|
||||
export * from "./verbrauchsausweisgewerbe.js"
|
||||
export * from "./verbrauchsausweiswohnen.js"
|
||||
export * from "./documenttemplates.js"
|
||||
export * from "./documenttypes.js"
|
||||
export * from "./tokens.js"
|
||||
export * from "./anteilshaber"
|
||||
export * from "./apirequests"
|
||||
export * from "./aufnahme"
|
||||
export * from "./bedarfsausweisgewerbe"
|
||||
export * from "./bedarfsausweiswohnen"
|
||||
export * from "./benutzer"
|
||||
export * from "./bild"
|
||||
export * from "./event"
|
||||
export * from "./gegeinpreisung"
|
||||
export * from "./gegnachweisgewerbe"
|
||||
export * from "./gegnachweiswohnen"
|
||||
export * from "./klimafaktoren"
|
||||
export * from "./objekt"
|
||||
export * from "./postleitzahlen"
|
||||
export * from "./rechnung"
|
||||
export * from "./refreshtokens"
|
||||
export * from "./tickets"
|
||||
export * from "./unterlage"
|
||||
export * from "./verbrauchsausweisgewerbe"
|
||||
export * from "./verbrauchsausweiswohnen"
|
||||
export * from "./documenttemplates"
|
||||
export * from "./documenttypes"
|
||||
export * from "./tokens"
|
||||
|
||||
@@ -7,9 +7,7 @@ export const VerbrauchsausweisGewerbeSchema = z.object({
|
||||
ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(),
|
||||
registriernummer: z.string().nullish(),
|
||||
zusaetzliche_heizquelle: z.boolean().nullish(),
|
||||
brennstoff_1: z.string().nullish(),
|
||||
einheit_1: z.string().nullish(),
|
||||
brennstoff_2: z.string().nullish(),
|
||||
einheit_2: z.string().nullish(),
|
||||
startdatum: z.date().nullish(),
|
||||
verbrauch_1: z.number().int().nullish(),
|
||||
@@ -18,6 +16,11 @@ export const VerbrauchsausweisGewerbeSchema = z.object({
|
||||
verbrauch_4: z.number().int().nullish(),
|
||||
verbrauch_5: z.number().int().nullish(),
|
||||
verbrauch_6: z.number().int().nullish(),
|
||||
brennstoff_1: z.string().describe("Genutzer Brennstoff der primären Energiequelle").nullish(),
|
||||
brennstoff_2: z.string().describe("Genutzer Brennstoff der sekundären Energiequelle").nullish(),
|
||||
energieeffizienzklasse: z.string().describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes").nullish(),
|
||||
ausstellungsdatum: z.date().describe("Datum an dem der Aussteller den Ausweis ausgestellt hat").nullish(),
|
||||
boxpruefung: z.boolean().nullish(),
|
||||
strom_1: z.number().int().nullish(),
|
||||
strom_2: z.number().int().nullish(),
|
||||
strom_3: z.number().int().nullish(),
|
||||
|
||||
@@ -9,6 +9,11 @@ export const VerbrauchsausweisWohnenSchema = z.object({
|
||||
zusaetzliche_heizquelle: z.boolean().describe("Falls eine sekundäre Heizquelle existiert, sollte dieser Wert auf true stehen").nullish(),
|
||||
einheit_1: z.string().describe("Einheit des Energieträgers der primären Heizquelle").nullish(),
|
||||
einheit_2: z.string().describe("Einheit des Energieträgers der sekundären Heizquelle").nullish(),
|
||||
brennstoff_1: z.string().describe("Genutzer Brennstoff der primären Energiequelle").nullish(),
|
||||
brennstoff_2: z.string().describe("Genutzer Brennstoff der sekundären Energiequelle").nullish(),
|
||||
energieeffizienzklasse: z.string().describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes").nullish(),
|
||||
ausstellungsdatum: z.date().describe("Datum an dem der Aussteller den Ausweis ausgestellt hat").nullish(),
|
||||
boxpruefung: z.boolean().nullish(),
|
||||
startdatum: z.date().nullish(),
|
||||
verbrauch_1: z.number().int().describe("Energieverbrauch der primären Heizquelle im ersten der drei Verbrauchsjahre").nullish(),
|
||||
verbrauch_2: z.number().int().describe("Energieverbrauch der primären Heizquelle im zweiten der drei Verbrauchsjahre").nullish(),
|
||||
@@ -18,7 +23,6 @@ export const VerbrauchsausweisWohnenSchema = z.object({
|
||||
verbrauch_6: z.number().int().describe("Energieverbrauch der sekund̈́ären Heizquelle im letzten der drei Verbrauchsjahre").nullish(),
|
||||
warmwasser_enthalten: z.boolean().describe("Falls Warmwasser im Verbrauchswert enthalten ist, sollte dieser Wert auf true stehen").nullish(),
|
||||
warmwasser_anteil_bekannt: z.boolean().describe("Falls der Warmwasser Anteil am Verbrauch bekannt ist, sollte dieser Wert auf true stehen").nullish(),
|
||||
keller_beheizt: z.boolean().describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen").nullish(),
|
||||
faktorKeller: z.number().describe("Der Faktor mit dem die Wohnfläche erhöht wird wenn die beheizte Gesamtfläche (energetische Nutzfläche) unbekannt ist.").nullish(),
|
||||
alternative_heizung: z.boolean().describe("Falls der Heizungsverbrauch alternative Energieversorgungssysteme beinhaltet, sollte dieser Wert auf true stehen.").nullish(),
|
||||
alternative_warmwasser: z.boolean().describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme (z.B. Solarsystem, Wärmepumpe, etc.) beinhaltet, sollte dieser Wert auf true stehen.").nullish(),
|
||||
|
||||
@@ -64,6 +64,6 @@ else if (BrennStoff === "Heizoel") {
|
||||
|
||||
const AufwandszahlEndenergieKraftWaermeKopplungBrennwertbezogen = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return AufwandszahlEndenergieKraftWaermeKopplungBrennwertbezogen;
|
||||
return {AufwandszahlEndenergieKraftWaermeKopplungBrennwertbezogen};
|
||||
|
||||
}
|
||||
@@ -61,6 +61,6 @@ else if (BrennStoff = "Heizoel") {
|
||||
const dataZeile = [ { DatenZeile: [1.05,1.1,1.15,1.2] } ];
|
||||
|
||||
const AufwandszahlEndenergieWaermeErzeugerBrennwertbezogen = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
return AufwandszahlEndenergieWaermeErzeugerBrennwertbezogen;
|
||||
return {AufwandszahlEndenergieWaermeErzeugerBrennwertbezogen};
|
||||
|
||||
}
|
||||
@@ -29,6 +29,6 @@ const dataBox = [
|
||||
|
||||
const AufwandszahlErzeugungHeizungFernwaerme = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return AufwandszahlErzeugungHeizungFernwaerme;
|
||||
return {AufwandszahlErzeugungHeizungFernwaerme};
|
||||
|
||||
}
|
||||
@@ -34,6 +34,6 @@ export function funktionAufwandszahlErzeugungHeizungT77(suchSpalte: number, date
|
||||
|
||||
const AufwandsZahlErzeugungHeizung = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return AufwandsZahlErzeugungHeizung;
|
||||
return {AufwandsZahlErzeugungHeizung};
|
||||
|
||||
}
|
||||
@@ -18,6 +18,6 @@ export function funktionAufwandszahlErzeugungHeizungUmlaufWasserheizerT82(suchSp
|
||||
|
||||
const AufwandszahlErzeugungHeizungUmlaufWasserheizer = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return AufwandszahlErzeugungHeizungUmlaufWasserheizer;
|
||||
return {AufwandszahlErzeugungHeizungUmlaufWasserheizer};
|
||||
|
||||
}
|
||||
@@ -32,6 +32,6 @@ export function funktionAufwandszahlStromProduktionKraftWaermekopplungT107(suchS
|
||||
const dataZeile = [ { DatenZeile: [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] } ];
|
||||
|
||||
const AufwandszahlStromProduktionKraftWaermekopplung = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
return AufwandszahlStromProduktionKraftWaermekopplung;
|
||||
return {AufwandszahlStromProduktionKraftWaermekopplung};
|
||||
|
||||
}
|
||||
@@ -20,6 +20,6 @@ const dataset = [
|
||||
];
|
||||
|
||||
const AufwandszahlVerteilungWohnungsLueftungThermisch = funktionEinfacheInterpolation(NettoGrundFlaeche, System, dataset);
|
||||
return AufwandszahlVerteilungWohnungsLueftungThermisch;
|
||||
return {AufwandszahlVerteilungWohnungsLueftungThermisch};
|
||||
|
||||
}
|
||||
@@ -29,6 +29,6 @@ export function funktionAusnutzungsgradT18(suchSpalte: number, datenZeile: numbe
|
||||
|
||||
const Ausnutzungsgrad = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return Ausnutzungsgrad;
|
||||
return {Ausnutzungsgrad};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import { funktionEinfacheInterpolation } from "./funktionEinfacheInterpolation.js";
|
||||
export function funktionCOPwerteErzeugungHeizungWaermePumpeT89(System: string, MittlereVorlauftemperatur: number) {
|
||||
|
||||
if (MittlereVorlauftemperatur < 30) { MittlereVorlauftemperatur = 300; }
|
||||
if (MittlereVorlauftemperatur > 55) { MittlereVorlauftemperatur = 55; }
|
||||
|
||||
const dataset = [
|
||||
{SuchSpalte: ["mittlere Vorlauftemperatur"], DatenSpalte: [30,31,33,35,37,39,40,41,42,45,47,49,50,51,53,55]},
|
||||
{SuchSpalte: ["Luft-Wasser-Wärmepumpe - w-7"], DatenSpalte: [3.05, 3.00, 2.90, 2.80, 2.70, 2.60, 2.55, 2.50, 2.45, 2.30, 2.22, 2.14, 2.10, 2.06, 1.98, 1.90]},
|
||||
{SuchSpalte: ["Luft-Wasser-Wärmepumpe - w2"], DatenSpalte: [3.45, 3.40, 3.30, 3.20, 3.10, 3.00, 2.95, 2.90, 2.85, 2.70, 2.58, 2.46, 2.40, 2.34, 2.22, 2.10]},
|
||||
{SuchSpalte: ["Luft-Wasser-Wärmepumpe - w7"], DatenSpalte: [4.10, 4.04, 3.92, 3.80, 3.68, 3.56, 3.50, 3.44, 3.38, 3.20, 3.08, 2.96, 2.90, 2.84, 2.72, 2.60]},
|
||||
{SuchSpalte: ["Sole-Wasser-Wärmepumpe"], DatenSpalte: [4.75, 4.66, 4.48, 4.30, 4.12, 3.94, 3.85, 3.76, 3.67, 3.40, 3.24, 3.08, 3.00, 2.92, 2.76, 2.60]},
|
||||
{SuchSpalte: ["Wasser-Wasser-Wärmepumpe"], DatenSpalte: [6.05, 5.94, 5.72, 5.50, 5.28, 5.06, 4.95, 4.84, 4.73, 4.40, 4.16, 3.92, 3.80, 3.68, 3.44, 3.20]}
|
||||
];
|
||||
|
||||
if (System === "Luft-Wasser-Wärmepumpe - w-7" || System === "Luft-Wasser-Wärmepumpe - w2" || System === "Luft-Wasser-Wärmepumpe - w7") {
|
||||
const COPwerteErzeugungHeizungWaermePumpeWm7 = funktionEinfacheInterpolation(MittlereVorlauftemperatur, "Luft-Wasser-Wärmepumpe - w-7", dataset);
|
||||
const COPwerteErzeugungHeizungWaermePumpeW2 = funktionEinfacheInterpolation(MittlereVorlauftemperatur, "Luft-Wasser-Wärmepumpe - w2", dataset);
|
||||
const COPwerteErzeugungHeizungWaermePumpeW7 = funktionEinfacheInterpolation(MittlereVorlauftemperatur, "Luft-Wasser-Wärmepumpe - w7", dataset);
|
||||
return {
|
||||
COPwerteErzeugungHeizungWaermePumpeWm7,
|
||||
COPwerteErzeugungHeizungWaermePumpeW2,
|
||||
COPwerteErzeugungHeizungWaermePumpeW7
|
||||
};
|
||||
}
|
||||
else {
|
||||
const COPwerteErzeugungHeizungWaermePumpe = funktionEinfacheInterpolation(MittlereVorlauftemperatur, System, dataset);
|
||||
return {
|
||||
COPwerteErzeugungHeizungWaermePumpe
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
@@ -56,7 +56,4 @@ return {
|
||||
dataZeile
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const result = funktionGesamtluftWechselKorrekturfaktorNettoVolumen1500T14T15("Zu-/Abluftanlage", "Kategorie I - mit geplanter Dichtheitsprüfung", "bedarfsgeführt", 0, 0.000001);
|
||||
console.log(result);
|
||||
}
|
||||
@@ -9,7 +9,7 @@ export function funktionGesamtluftWechselKorrekturfaktorT12(LueftungsAnlage: str
|
||||
|
||||
if (filteredData.length === 0) {
|
||||
const GesamtluftWechselZuAbluftanlage = 1;
|
||||
return GesamtluftWechselZuAbluftanlage;
|
||||
return {GesamtluftWechselZuAbluftanlage};
|
||||
}
|
||||
|
||||
|
||||
@@ -22,12 +22,12 @@ export function funktionGesamtluftWechselKorrekturfaktorT12(LueftungsAnlage: str
|
||||
if (current && next && ηt >= current.ηt && ηt <= next.ηt) {
|
||||
const t = (ηt - current.ηt) / (next.ηt - current.ηt);
|
||||
const GesamtluftWechselZuAbluftanlage = current.n0 + t * (next.n0 - current.n0);
|
||||
return GesamtluftWechselZuAbluftanlage;
|
||||
return {GesamtluftWechselZuAbluftanlage};
|
||||
}
|
||||
|
||||
if (current && ηt === current.ηt) {
|
||||
const GesamtluftWechselZuAbluftanlage = current.n0;
|
||||
return GesamtluftWechselZuAbluftanlage;
|
||||
return {GesamtluftWechselZuAbluftanlage};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,4 @@ export function funktionGesamtluftWechselKorrekturfaktorT12(LueftungsAnlage: str
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const result = funktionGesamtluftWechselKorrekturfaktorT12("Abluftanlage", "Kategorie II - neues Gebäude", "bedarfsgeführt", 0);
|
||||
console.log(result);
|
||||
}
|
||||
@@ -13,6 +13,6 @@ const dataset = [
|
||||
];
|
||||
|
||||
const VolumenStrom = funktionEinfacheInterpolation(maximaleHeizlast, UebergabeSystem, dataset);
|
||||
return VolumenStrom;
|
||||
return {VolumenStrom};
|
||||
|
||||
}
|
||||
@@ -12,5 +12,5 @@ export function funktionHilfsenergieDifferenzdruckLeitungsLaengenT37(LeitungsLae
|
||||
];
|
||||
|
||||
const DifferenzDruck = funktionEinfacheInterpolation(LeitungsLaenge, LeitungsSystem, dataset);
|
||||
return DifferenzDruck;
|
||||
return {DifferenzDruck};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
import { funktionEinfacheInterpolation } from "./funktionEinfacheInterpolation.js";
|
||||
export function funktionHilfsenergieErzeugungBetriebsBereitschaftPelletHackschnitzelKesselT87(NennLeistung: number, System: string) {
|
||||
|
||||
if (NennLeistung < 5) { NennLeistung = 5; }
|
||||
if (NennLeistung > 400) { NennLeistung = 400; }
|
||||
|
||||
|
||||
const dataset = [
|
||||
{SuchSpalte: ["Nennleistung"], DatenSpalte: [5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 120, 140, 160, 180, 200, 250, 300, 350, 400]},
|
||||
{SuchSpalte: ["Pelletkessel"], DatenSpalte: [0.006, 0.007, 0.009, 0.011, 0.013, 0.015, 0.017, 0.019, 0.021, 0.023, 0.025, 0.029, 0.033, 0.037, 0.041, 0.045, 0.055, 0.065, 0.075, 0.085]},
|
||||
{SuchSpalte: ["Hackschnitzelkessel"], DatenSpalte: [0.016, 0.016, 0.017, 0.018, 0.019, 0.02, 0.021, 0.022, 0.023, 0.024, 0.025, 0.027, 0.029, 0.031, 0.033, 0.035, 0.04, 0.045, 0.05, 0.055]}
|
||||
];
|
||||
|
||||
const HilfsenergieErzeugungBetriebsBereitschaftPelletHackschnitzelKessel = funktionEinfacheInterpolation(NennLeistung, System, dataset);
|
||||
return {HilfsenergieErzeugungBetriebsBereitschaftPelletHackschnitzelKessel};
|
||||
|
||||
}
|
||||
@@ -35,6 +35,6 @@ const dataZeile = [ { DatenZeile: [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] } ];
|
||||
|
||||
const HilfsenergieErzeugungHeizung = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return HilfsenergieErzeugungHeizung;
|
||||
return {HilfsenergieErzeugungHeizung};
|
||||
|
||||
}
|
||||
@@ -35,6 +35,6 @@ const dataZeile = [ { DatenZeile: [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] } ];
|
||||
|
||||
const HilfsenergieErzeugungPelletKessel = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return HilfsenergieErzeugungPelletKessel;
|
||||
return {HilfsenergieErzeugungPelletKessel};
|
||||
|
||||
}
|
||||
@@ -18,6 +18,6 @@ const dataZeile = [ { DatenZeile: [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] } ];
|
||||
|
||||
const HilfsenergieErzeugungUmlaufWasserheizer = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return HilfsenergieErzeugungUmlaufWasserheizer;
|
||||
return {HilfsenergieErzeugungUmlaufWasserheizer};
|
||||
|
||||
}
|
||||
@@ -11,6 +11,6 @@ const dataset = [
|
||||
];
|
||||
|
||||
const TermPumpe = funktionEinfacheInterpolation(Betriebstunden, Absenkbetrieb, dataset);
|
||||
return TermPumpe;
|
||||
return {TermPumpe};
|
||||
|
||||
}
|
||||
|
||||
@@ -19,17 +19,17 @@ const dataset = [
|
||||
if (NettoGrundFlaeche > 5000) {
|
||||
if (LeistungHilfsenergie === "Hilfsenergieaufwand") {
|
||||
HilfsenergiePufferspeicherHeizungLadepumpe = (0.15 * NettoGrundFlaeche + 200) * (rechnerischeLaufzeitGesamt / 5000);
|
||||
return HilfsenergiePufferspeicherHeizungLadepumpe;
|
||||
return {HilfsenergiePufferspeicherHeizungLadepumpe};
|
||||
}
|
||||
else {
|
||||
NettoGrundFlaeche = 5000;
|
||||
HilfsenergiePufferspeicherHeizungLadepumpe = funktionEinfacheInterpolation(NettoGrundFlaeche, LeistungHilfsenergie, dataset);
|
||||
return HilfsenergiePufferspeicherHeizungLadepumpe;
|
||||
return {HilfsenergiePufferspeicherHeizungLadepumpe};
|
||||
}
|
||||
}
|
||||
else {
|
||||
HilfsenergiePufferspeicherHeizungLadepumpe = funktionEinfacheInterpolation(NettoGrundFlaeche, LeistungHilfsenergie, dataset);
|
||||
return HilfsenergiePufferspeicherHeizungLadepumpe;
|
||||
return {HilfsenergiePufferspeicherHeizungLadepumpe};
|
||||
}
|
||||
|
||||
}
|
||||
@@ -13,6 +13,6 @@ const dataset = [
|
||||
];
|
||||
|
||||
const TermPumpe = funktionEinfacheInterpolation(BelastungsGrad, PumpenRegelung, dataset);
|
||||
return TermPumpe;
|
||||
return {TermPumpe};
|
||||
|
||||
}
|
||||
|
||||
@@ -24,5 +24,5 @@ if (LeitungsLaenge > 500) {
|
||||
HilfsenergieTrinkwarmWasserDifferenzdruckLeitungsLaengen = funktionEinfacheInterpolation(LeitungsLaenge, System, dataset);
|
||||
}
|
||||
|
||||
return HilfsenergieTrinkwarmWasserDifferenzdruckLeitungsLaengen;
|
||||
return {HilfsenergieTrinkwarmWasserDifferenzdruckLeitungsLaengen};
|
||||
}
|
||||
@@ -11,6 +11,6 @@ const dataset = [
|
||||
];
|
||||
|
||||
const HilfsenergieTrinkwarmWasserLaufzeitZirkulationsPumpe = funktionEinfacheInterpolation(NettoGrundFlaeche, GebaeudeTyp, dataset);
|
||||
return HilfsenergieTrinkwarmWasserLaufzeitZirkulationsPumpe;
|
||||
return {HilfsenergieTrinkwarmWasserLaufzeitZirkulationsPumpe};
|
||||
|
||||
}
|
||||
@@ -12,6 +12,6 @@ const dataset = [
|
||||
];
|
||||
|
||||
const HilfsenergieTrinkwarmWasserSpeicherLadepumpe = funktionEinfacheInterpolation(SpeicherVolumen, LeistungHilfsenergie, dataset);
|
||||
return HilfsenergieTrinkwarmWasserSpeicherLadepumpe;
|
||||
return {HilfsenergieTrinkwarmWasserSpeicherLadepumpe};
|
||||
|
||||
}
|
||||
@@ -27,8 +27,6 @@ else
|
||||
|
||||
|
||||
|
||||
return HilfsenergieVentilatorenWohnungsLueftung;
|
||||
return {HilfsenergieVentilatorenWohnungsLueftung};
|
||||
|
||||
}
|
||||
|
||||
console.log(funktionHilfsenergieVentilatorenWohnungsLueftungT48("Hilfsenergie Ventilatoren", 120)); // 438
|
||||
}
|
||||
@@ -13,7 +13,7 @@ const dataset = [
|
||||
];
|
||||
|
||||
const VolumenStrom = funktionEinfacheInterpolation(maximaleHeizlast, UebergabeSystem, dataset);
|
||||
return VolumenStrom;
|
||||
return {VolumenStrom};
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -39,5 +39,5 @@ export function funktionKennzahlenErzeugungTrinkwarmWasserSolarT59T62(System: st
|
||||
|
||||
|
||||
const KennzahlenErzeugungTrinkwarmWasserSolar = funktionEinfacheInterpolation(NettoGrundFlaeche, System, dataset);
|
||||
return KennzahlenErzeugungTrinkwarmWasserSolar;
|
||||
return {KennzahlenErzeugungTrinkwarmWasserSolar};
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import { funktionEinfacheInterpolation } from "./funktionEinfacheInterpolation.js";
|
||||
export function funktionKorrekturfaktorAufwandszahlenErzeugungHeizoelBrennwertT80(System: string, MittlereBelastung: number) {
|
||||
|
||||
if (MittlereBelastung < 0.1) { MittlereBelastung = 0.1; }
|
||||
if (MittlereBelastung > 1) { MittlereBelastung = 1; }
|
||||
|
||||
const dataset = [
|
||||
{SuchSpalte: ["Mittlere Belastung"], DatenSpalte: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]},
|
||||
{SuchSpalte: ["90°C/70°C - unbeheizt"], DatenSpalte: [0.996, 0.991, 0.986, 0.985, 0.983, 0.981, 0.979, 0.977, 0.976, 0.974]},
|
||||
{SuchSpalte: ["70°C/55°C - unbeheizt"], DatenSpalte: [0.995, 0.99, 0.985, 0.982, 0.979, 0.977, 0.974, 0.972, 0.969, 0.967]},
|
||||
{SuchSpalte: ["55°C/45°C - unbeheizt"], DatenSpalte: [0.998, 0.998, 0.998, 0.994, 0.991, 0.987, 0.984, 0.981, 0.978, 0.975]},
|
||||
{SuchSpalte: ["35°C/28°C - unbeheizt"], DatenSpalte: [0.993, 0.987, 0.982, 0.977, 0.973, 0.969, 0.965, 0.962, 0.958, 0.955]},
|
||||
{SuchSpalte: ["90°C/70°C - beheizt"], DatenSpalte: [0.995, 0.991, 0.986, 0.985, 0.983, 0.981, 0.979, 0.977, 0.976, 0.974]},
|
||||
{SuchSpalte: ["70°C/55°C - beheizt"], DatenSpalte: [0.994, 0.989, 0.985, 0.982, 0.979, 0.977, 0.974, 0.972, 0.969, 0.967]},
|
||||
{SuchSpalte: ["55°C/45°C - beheizt"], DatenSpalte: [0.993, 0.988, 0.984, 0.98, 0.977, 0.974, 0.971, 0.968, 0.965, 0.962]},
|
||||
{SuchSpalte: ["35°C/28°C - beheizt"], DatenSpalte: [0.992, 0.987, 0.982, 0.977, 0.973, 0.969, 0.965, 0.962, 0.958, 0.955]}
|
||||
];
|
||||
|
||||
const KorrekturfaktorAufwandszahlenErzeugungHeizoelBrennwert = funktionEinfacheInterpolation(MittlereBelastung, System, dataset);
|
||||
return {KorrekturfaktorAufwandszahlenErzeugungHeizoelBrennwert};
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
import { funktionEinfacheInterpolation } from "./funktionEinfacheInterpolation.js";
|
||||
export function funktionKorrekturfaktorAufwandszahlenErzeugungHeizungT78(System: string, MittlereBelastung: number) {
|
||||
|
||||
if (MittlereBelastung < 0.1) { MittlereBelastung = 0.1; }
|
||||
if (MittlereBelastung > 1) { MittlereBelastung = 1; }
|
||||
|
||||
const dataset = [
|
||||
{SuchSpalte: ["Mittlere Belastung"], DatenSpalte: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]},
|
||||
{SuchSpalte: ["Brennwertkessel - Gas- und Heizöl - vor 1987"], DatenSpalte: [1.011, 1.019, 1.026, 1.03, 1.035, 1.039, 1.043, 1.047, 1.05, 1.054]},
|
||||
{SuchSpalte: ["Brennwertkessel - Gas- und Heizöl - von 1987 bis 1994"], DatenSpalte: [1.008, 1.013, 1.017, 1.02, 1.022, 1.024, 1.026, 1.028, 1.03, 1.032]},
|
||||
{SuchSpalte: ["Brennwertkessel - Gas- und Heizöl - 1995 bis 1999"], DatenSpalte: [1.005, 1.011, 1.016, 1.017, 1.017, 1.018, 1.019, 1.02, 1.02, 1.021]},
|
||||
{SuchSpalte: ["Brennwertkessel - Gas- und Heizöl - nach 1999"], DatenSpalte: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]},
|
||||
{SuchSpalte: ["Brennwertkessel - Pellet (bis 105 kW) - nach 1994"], DatenSpalte: [1.002, 1.004, 1.005, 0.993, 0.982, 0.971, 0.96, 0.95, 0.94, 0.93]},
|
||||
{SuchSpalte: ["Niedertemperaturkessel - Gas-Spezial-, Gebläse, Brennertausch Gebläsekessel - vor 1987"], DatenSpalte: [1.024, 1.026, 1.037, 1.041, 1.044, 1.047, 1.05, 1.053, 1.056, 1.059]},
|
||||
{SuchSpalte: ["Niedertemperaturkessel - Gas-Spezial-, Gebläse, Brennertausch Gebläsekessel - von 1987 bis 1994"], DatenSpalte: [1.02, 1.037, 1.054, 1.061, 1.067, 1.074, 1.08, 1.086, 1.092, 1.097]},
|
||||
{SuchSpalte: ["Niedertemperaturkessel - Gas-Spezial-, Gebläse, Brennertausch Gebläsekessel - nach 1994"], DatenSpalte: [1.014, 1.028, 1.041, 1.045, 1.048, 1.051, 1.054, 1.057, 1.06, 1.063]},
|
||||
{SuchSpalte: ["Standardkessel - Gas-Spezial-, Gebläse, Brennertausch Gebläsekessel - vor 1987"], DatenSpalte: [1.05, 1.07, 1.09, 1.1, 1.11, 1.12, 1.13, 1.14, 1.14, 1.15]},
|
||||
{SuchSpalte: ["Standardkessel - Gas-Spezial-, Gebläse, Brennertausch Gebläsekessel - von 1987 bis 1994"], DatenSpalte: [1.037, 1.055, 1.073, 1.081, 1.088, 1.095, 1.101, 1.108, 1.114, 1.121]},
|
||||
{SuchSpalte: ["Standardkessel - Gas-Spezial-, Gebläse, Brennertausch Gebläsekessel - nach 1994"], DatenSpalte: [1.03, 1.046, 1.062, 1.068, 1.073, 1.078, 1.083, 1.088, 1.092, 1.097]},
|
||||
{SuchSpalte: ["Standardkessel - Umstell-/Wechselbrand-, Feststoffkessel - vor 1987"], DatenSpalte: [1.069, 1.088, 1.107, 1.119, 1.13, 1.141, 1.152, 1.162, 1.172, 1.182]},
|
||||
{SuchSpalte: ["Standardkessel - Umstell-/Wechselbrand-, Feststoffkessel - von 1987 bis 1994"], DatenSpalte: [1.059, 1.074, 1.089, 1.099, 1.109, 1.118, 1.128, 1.136, 1.145, 1.153]},
|
||||
{SuchSpalte: ["Standardkessel - Umstell-/Wechselbrand-, Feststoffkessel - nach 1994"], DatenSpalte: [1.046, 1.058, 1.071, 1.078, 1.085, 1.092, 1.099, 1.105, 1.111, 1.117]},
|
||||
{SuchSpalte: ["Standardkessel - Pellet-, Hackschnitzelkessel - nach 1994"], DatenSpalte: [1.022, 1.027, 1.032, 1.03, 1.029, 1.027, 1.026, 1.025, 1.024, 1.022]}
|
||||
];
|
||||
|
||||
const KorrekturfaktorAufwandszahlenErzeugungHeizung = funktionEinfacheInterpolation(MittlereBelastung, System, dataset);
|
||||
return {KorrekturfaktorAufwandszahlenErzeugungHeizung};
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { funktionEinfacheInterpolation } from "./funktionEinfacheInterpolation.js";
|
||||
export function funktionKorrekturfaktorAufwandszahlenErzeugungHeizungUmlaufWasserheizerT82(System: string, MittlereBelastung: number) {
|
||||
|
||||
if (MittlereBelastung < 0.1) { MittlereBelastung = 0.1; }
|
||||
if (MittlereBelastung > 1) { MittlereBelastung = 1; }
|
||||
|
||||
const dataset = [
|
||||
{SuchSpalte: ["Mittlere Belastung"], DatenSpalte: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]},
|
||||
{SuchSpalte: ["Umlaufwasserheizer (vor 1987)"], DatenSpalte: [0.997, 0.998, 1.000, 1.004, 1.007, 1.011, 1.014, 1.017, 1.020, 1.023]},
|
||||
{SuchSpalte: ["Kombikessel mit Kleinspeicher (nach 1994)"], DatenSpalte: [1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000]},
|
||||
{SuchSpalte: ["Kombikessel ohne Kleinspeicher (nach 1994)"], DatenSpalte: [0.998, 0.998, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000]}
|
||||
];
|
||||
|
||||
const KorrekturfaktorAufwandszahlenErzeugungHeizungUmlaufWasserheizer = funktionEinfacheInterpolation(MittlereBelastung, System, dataset);
|
||||
return {KorrekturfaktorAufwandszahlenErzeugungHeizungUmlaufWasserheizer};
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import { funktionEinfacheInterpolation } from "./funktionEinfacheInterpolation.js";
|
||||
export function funktionKorrekturfaktorAufwandszahlenErzeugungTemperaturOrtBrennwertT79(System: string, MittlereBelastung: number) {
|
||||
|
||||
if (MittlereBelastung < 0.1) { MittlereBelastung = 0.1; }
|
||||
if (MittlereBelastung > 1) { MittlereBelastung = 1; }
|
||||
|
||||
const dataset = [
|
||||
{SuchSpalte: ["Mittlere Belastung"], DatenSpalte: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]},
|
||||
{SuchSpalte: ["90°C/70°C - unbeheizt"], DatenSpalte: [1.002, 1.003, 1.004, 1.009, 1.014, 1.019, 1.024, 1.028, 1.033, 1.037]},
|
||||
{SuchSpalte: ["70°C/55°C - unbeheizt"], DatenSpalte: [1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000]},
|
||||
{SuchSpalte: ["55°C/45°C - unbeheizt"], DatenSpalte: [0.999, 0.998, 0.998, 0.994, 0.991, 0.987, 0.984, 0.981, 0.978, 0.975]},
|
||||
{SuchSpalte: ["35°C/28°C - unbeheizt"], DatenSpalte: [0.997, 0.995, 0.993, 0.985, 0.977, 0.969, 0.962, 0.954, 0.947, 0.940]},
|
||||
{SuchSpalte: ["90°C/70°C - beheizt"], DatenSpalte: [1.001, 1.002, 1.004, 1.009, 1.014, 1.019, 1.024, 1.028, 1.033, 1.037]},
|
||||
{SuchSpalte: ["70°C/55°C - beheizt"], DatenSpalte: [0.999, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000]},
|
||||
{SuchSpalte: ["55°C/45°C - beheizt"], DatenSpalte: [0.998, 0.998, 0.998, 0.994, 0.991, 0.987, 0.984, 0.981, 0.978, 0.975]},
|
||||
{SuchSpalte: ["35°C/28°C - beheizt"], DatenSpalte: [0.996, 0.995, 0.993, 0.985, 0.977, 0.969, 0.962, 0.954, 0.947, 0.940]}
|
||||
];
|
||||
|
||||
const KorrekturfaktorAufwandszahlenErzeugungTemperaturOrtBrennwert = funktionEinfacheInterpolation(MittlereBelastung, System, dataset);
|
||||
return {KorrekturfaktorAufwandszahlenErzeugungTemperaturOrtBrennwert};
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import { funktionEinfacheInterpolation } from "./funktionEinfacheInterpolation.js";
|
||||
export function funktionKorrekturfaktorAufwandszahlenErzeugungTemperaturOrtkeinBrennwertT81(System: string, MittlereBelastung: number) {
|
||||
|
||||
if (MittlereBelastung < 0.1) { MittlereBelastung = 0.1; }
|
||||
if (MittlereBelastung > 1) { MittlereBelastung = 1; }
|
||||
|
||||
const dataset = [
|
||||
{SuchSpalte: ["Mittlere Belastung"], DatenSpalte: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]},
|
||||
{SuchSpalte: ["90°C/70°C - unbeheizt"], DatenSpalte: [1.001, 1.001, 1.001, 1.002, 1.003, 1.004, 1.005, 1.006, 1.007, 1.008]},
|
||||
{SuchSpalte: ["70°C/55°C - unbeheizt"], DatenSpalte: [1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000]},
|
||||
{SuchSpalte: ["55°C/45°C - unbeheizt"], DatenSpalte: [0.999, 0.999, 0.999, 0.999, 0.998, 0.997, 0.996, 0.996, 0.995, 0.995]},
|
||||
{SuchSpalte: ["35°C/28°C - unbeheizt"], DatenSpalte: [0.998, 0.998, 0.998, 0.996, 0.994, 0.993, 0.991, 0.990, 0.988, 0.987]},
|
||||
{SuchSpalte: ["90°C/70°C - beheizt"], DatenSpalte: [1.000, 1.001, 1.001, 1.002, 1.003, 1.004, 1.005, 1.006, 1.007, 1.008]},
|
||||
{SuchSpalte: ["70°C/55°C - beheizt"], DatenSpalte: [0.999, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000]},
|
||||
{SuchSpalte: ["55°C/45°C - beheizt"], DatenSpalte: [0.998, 0.999, 0.999, 0.999, 0.998, 0.997, 0.996, 0.996, 0.995, 0.995]},
|
||||
{SuchSpalte: ["35°C/28°C - beheizt"], DatenSpalte: [0.998, 0.997, 0.998, 0.996, 0.994, 0.993, 0.991, 0.990, 0.988, 0.987]}
|
||||
];
|
||||
|
||||
const KorrekturfaktorAufwandszahlenErzeugungTemperaturOrtkeinBrennwert = funktionEinfacheInterpolation(MittlereBelastung, System, dataset);
|
||||
return {KorrekturfaktorAufwandszahlenErzeugungTemperaturOrtkeinBrennwert};
|
||||
}
|
||||
@@ -21,6 +21,6 @@ const dataBox = [
|
||||
|
||||
const KorrekturfaktorHilfsenergieErzeugungHolzhackSchnitzel = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return KorrekturfaktorHilfsenergieErzeugungHolzhackSchnitzel;
|
||||
return {KorrekturfaktorHilfsenergieErzeugungHolzhackSchnitzel};
|
||||
|
||||
}
|
||||
@@ -117,5 +117,5 @@ export function funktionKorrekturfaktorErzeugungTrinkwarmWasserSolarT63T65(Syste
|
||||
|
||||
|
||||
const KorrekturfaktorErzeugungTrinkwarmWasserSolar = funktionEinfacheInterpolation(Orientierung, System, dataset);
|
||||
return KorrekturfaktorErzeugungTrinkwarmWasserSolar;
|
||||
return {KorrekturfaktorErzeugungTrinkwarmWasserSolar};
|
||||
}
|
||||
@@ -22,6 +22,6 @@ export function funktionKorrekturfaktorHilfsenergieErzeugungGasSpezialHeizkessel
|
||||
|
||||
const KorrekturfaktorHilfsenergieErzeugungGasSpezialHeizkessel = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return KorrekturfaktorHilfsenergieErzeugungGasSpezialHeizkessel;
|
||||
return {KorrekturfaktorHilfsenergieErzeugungGasSpezialHeizkessel};
|
||||
|
||||
}
|
||||
@@ -17,5 +17,5 @@ const dataset = [
|
||||
];
|
||||
|
||||
const KorrekturfaktorMittlereBelastungPufferspeicherHeizung = funktionEinfacheInterpolation(MittlereBelastung, System, dataset);
|
||||
return KorrekturfaktorMittlereBelastungPufferspeicherHeizung;
|
||||
return {KorrekturfaktorMittlereBelastungPufferspeicherHeizung};
|
||||
}
|
||||
@@ -29,7 +29,4 @@ export function funktionKorrekturfaktorMittlereBelastungT32(verteilung: string,
|
||||
|
||||
const KorrekturfaktorMittlereBelastung = 1;
|
||||
return KorrekturfaktorMittlereBelastung;
|
||||
}
|
||||
|
||||
const result = funktionKorrekturfaktorMittlereBelastungT32("Verteilleitungen im beheizten Bereich", "IV (Strahlungs- und Luftheizung)", "35°C/28°C", 0.3);
|
||||
console.log(result);
|
||||
}
|
||||
@@ -22,6 +22,6 @@ const dataBox = [
|
||||
|
||||
const KorrekturfaktorTemperaturDifferenzWaermePumpe = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return KorrekturfaktorTemperaturDifferenzWaermePumpe;
|
||||
return {KorrekturfaktorTemperaturDifferenzWaermePumpe};
|
||||
|
||||
}
|
||||
@@ -30,6 +30,6 @@ const dataset = [
|
||||
|
||||
const LeitungsLaenge = funktionEinfacheInterpolation(AnzahlGeraete, LeitungsSystem, dataset);
|
||||
const LaengeStichleitungenDezentralTrinkwarmWasser = LeitungsLaenge + Zuschlag;
|
||||
return LaengeStichleitungenDezentralTrinkwarmWasser;
|
||||
return {LaengeStichleitungenDezentralTrinkwarmWasser};
|
||||
|
||||
}
|
||||
@@ -30,6 +30,6 @@ export function funktionNennleistungWaermeerzeugerWarmwasserT139(suchSpalte: num
|
||||
|
||||
const NennleistungWaermeerzeugerWarmwasser = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
|
||||
return NennleistungWaermeerzeugerWarmwasser;
|
||||
return {NennleistungWaermeerzeugerWarmwasser};
|
||||
|
||||
}
|
||||
@@ -32,6 +32,6 @@ export function funktionPrimaerenergieFaktorenKraftWaermekopplungT108(suchSpalte
|
||||
const dataZeile = [ { DatenZeile: [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] } ];
|
||||
|
||||
const PrimaerenergieFaktorenKraftWaermekopplung = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
return PrimaerenergieFaktorenKraftWaermekopplung;
|
||||
return {PrimaerenergieFaktorenKraftWaermekopplung};
|
||||
|
||||
}
|
||||
@@ -33,6 +33,6 @@ else
|
||||
VolumenPufferspeicherHeizung = funktionEinfacheInterpolation(Leistung, "Volumen Pufferspeicher", dataset);
|
||||
}
|
||||
|
||||
return VolumenPufferspeicherHeizung;
|
||||
return {VolumenPufferspeicherHeizung};
|
||||
|
||||
}
|
||||
@@ -19,6 +19,6 @@ export function funktionVolumenSpeicherTrinkwarmWasserT54(System: string, NettoG
|
||||
|
||||
const VolumenSpeicherTrinkwarmWasser = funktionEinfacheInterpolation(NettoGrundFlaeche, System, dataset);
|
||||
const VolumenSpeicherTrinkwarmWasserAngepasst = VolumenSpeicherTrinkwarmWasser * (flaechenBezogenerWaermebedarf/12.5);
|
||||
return VolumenSpeicherTrinkwarmWasserAngepasst;
|
||||
return {VolumenSpeicherTrinkwarmWasserAngepasst};
|
||||
|
||||
}
|
||||
@@ -17,5 +17,5 @@ const dataset = [
|
||||
];
|
||||
|
||||
const WaermeVerlustePufferspeicherHeizung = funktionEinfacheInterpolation(SpeicherVolumen, System, dataset);
|
||||
return WaermeVerlustePufferspeicherHeizung;
|
||||
return {WaermeVerlustePufferspeicherHeizung};
|
||||
}
|
||||
@@ -34,6 +34,7 @@ export function funktionWaermeVerlusteTrinkwarmwasserSpeicherT55T56(System: stri
|
||||
else if (BaujahrTrinkwarmwasserSpeicher <= 1988) { WaermeVerlusteTrinkwarmwasserSpeicherAngepasst = WaermeVerlusteTrinkwarmwasserSpeicher * 1.32; }
|
||||
}
|
||||
|
||||
return WaermeVerlusteTrinkwarmwasserSpeicherAngepasst;
|
||||
return {
|
||||
WaermeVerlusteTrinkwarmwasserSpeicherAngepasst};
|
||||
|
||||
}
|
||||
@@ -17,6 +17,6 @@ const dataset = [
|
||||
];
|
||||
|
||||
const WaermeabgabeLeitungenTrinkwarmWasser = funktionEinfacheInterpolation(NettoGrundFlaeche, VerteilSystem, dataset);
|
||||
return WaermeabgabeLeitungenTrinkwarmWasser;
|
||||
return {WaermeabgabeLeitungenTrinkwarmWasser};
|
||||
|
||||
}
|
||||
@@ -99,13 +99,13 @@ export async function endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis:
|
||||
// Endenergieverbrauch
|
||||
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
|
||||
let brennstoff_1 = { coe: 0, energietraeger: "", einheit: "", umrechnungsfaktor: 0, primaerenergiefaktor: 0 }, brennstoff_2 = { coe: 0, energietraeger: "", einheit: "", umrechnungsfaktor: 0, primaerenergiefaktor: 0 };
|
||||
if (aufnahme.brennstoff_1 && ausweis.einheit_1) {
|
||||
brennstoff_1 = getHeizwertfaktor(aufnahme.brennstoff_1, ausweis.einheit_1);
|
||||
if (ausweis.brennstoff_1 && ausweis.einheit_1) {
|
||||
brennstoff_1 = getHeizwertfaktor(ausweis.brennstoff_1, ausweis.einheit_1);
|
||||
}
|
||||
|
||||
|
||||
if (aufnahme.brennstoff_2 && ausweis.einheit_2) {
|
||||
brennstoff_2 = getHeizwertfaktor(aufnahme.brennstoff_2, ausweis.einheit_2);
|
||||
if (ausweis.brennstoff_2 && ausweis.einheit_2) {
|
||||
brennstoff_2 = getHeizwertfaktor(ausweis.brennstoff_2, ausweis.einheit_2);
|
||||
}
|
||||
|
||||
let energieVerbrauchGesamt_1 = ((ausweis.verbrauch_1 || 0) + (ausweis.verbrauch_2 || 0) + (ausweis.verbrauch_3 || 0)) * brennstoff_1?.umrechnungsfaktor;
|
||||
|
||||
@@ -64,11 +64,11 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
|
||||
// Endenergieverbrauch
|
||||
// Um den EEV auszurechnen, müssen die Verbräuche zu kWh konvertiert werden.
|
||||
let brennstoff_1 = getHeizwertfaktor(
|
||||
aufnahme.brennstoff_1 as string,
|
||||
ausweis.brennstoff_1 as string,
|
||||
ausweis.einheit_1 as string
|
||||
);
|
||||
let brennstoff_2 = getHeizwertfaktor(
|
||||
aufnahme.brennstoff_2 as string,
|
||||
ausweis.brennstoff_2 as string,
|
||||
ausweis.einheit_2 as string
|
||||
);
|
||||
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
|
||||
import { Ausweis } from "./Ausweis/Ausweis";
|
||||
import { Dachgeschoss, Lueftungskonzept } from "./Ausweis/types";
|
||||
import { BitChecker } from "./BitChecker";
|
||||
|
||||
export class Gebaeude {
|
||||
public typ: string = "";
|
||||
public plz: string = "";
|
||||
public ort: string = "";
|
||||
public strasse: string = "";
|
||||
public gebaeudeteil: string = "";
|
||||
public saniert: boolean = false;
|
||||
public baujahr: number[] = [];
|
||||
public einheiten: number = 0;
|
||||
public wohnflaeche: number = 0;
|
||||
public nutzflaeche: number = 0;
|
||||
public keller_beheizt: boolean = false;
|
||||
public dachgeschoss_beheizt: Dachgeschoss = Dachgeschoss.UNBEHEIZT;
|
||||
public lueftungskonzept: Lueftungskonzept = "Fensterlüftung";
|
||||
public wird_gekuehlt: boolean = false;
|
||||
public leerstand: number = 0;
|
||||
public versorgungssysteme: boolean[] = BitChecker(0);
|
||||
public fenster_dach: boolean[] = BitChecker(0);
|
||||
public energiequelle_2_nutzung: boolean[] = BitChecker(0);
|
||||
public daemmung: boolean[] = BitChecker(0);
|
||||
|
||||
public ausweis: Ausweis;
|
||||
|
||||
public uid?: string;
|
||||
|
||||
public constructor(initializer?: Gebaeude) {
|
||||
if (initializer) {
|
||||
this.typ = initializer.typ;
|
||||
this.plz = initializer.plz;
|
||||
this.ort = initializer.ort;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
import { AufnahmeClient, BedarfsausweisWohnenClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||
import { Enums } from "#lib/client/prisma";
|
||||
import { AufnahmeClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||
import { Enums } from "#lib/client/prisma.js";
|
||||
import moment from "moment";
|
||||
|
||||
export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient): {
|
||||
export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient): {
|
||||
title: string,
|
||||
description: string,
|
||||
anlagenteil: string,
|
||||
@@ -19,7 +19,6 @@ export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | Verbrau
|
||||
let baujahr_anlagesanlage = aufnahme.baujahr_heizung && aufnahme.baujahr_heizung[0];
|
||||
let Zentralheizung = aufnahme.zentralheizung;
|
||||
let photovoltaik = aufnahme.photovoltaik;
|
||||
let Brennstoff = aufnahme.brennstoff_1;
|
||||
let Aussenwand_gedaemmt = aufnahme.aussenwand_gedaemmt;
|
||||
let Dachgeschoss = aufnahme.dachgeschoss;
|
||||
let Dachgeschoss_gedaemmt = aufnahme.dachgeschoss_gedaemmt;
|
||||
@@ -70,7 +69,7 @@ export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | Verbrau
|
||||
|
||||
let Relanlagenjahr = moment().year() - 35;
|
||||
|
||||
if ((!Brennwertkessel && !Waermepumpe) && baujahr_anlagesanlage <= Relanlagenjahr && Brennstoff != 'Fernwärme' && Brennstoff != 'Strommix') {
|
||||
if ((!Brennwertkessel && !Waermepumpe) && baujahr_anlagesanlage <= Relanlagenjahr && ausweis.brennstoff_1 != 'Fernwärme' && ausweis.brennstoff_1 != 'Strommix') {
|
||||
empfehlungen.push({
|
||||
"title" : "Anlagentechnik",
|
||||
"description" : "Prüfen Sie, ob Sie bei einer Umrüstung auf einen regenerativen Anteil von 65% kommen. Bei energetisch sanierten Gebäuden z.B. Wärmepumpe. Bei unsanieten Gebäuden Fernwärmeanschluss.",
|
||||
@@ -126,7 +125,7 @@ export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | Verbrau
|
||||
}
|
||||
}
|
||||
|
||||
if ((baujahr_anlagesanlage <= (moment().year() - 30)) && (Brennstoff == "Heizöl" || Brennstoff == "Erdgas") && !Waermepumpe) {
|
||||
if ((baujahr_anlagesanlage <= (moment().year() - 30)) && (ausweis.brennstoff_1 == "Heizöl" || ausweis.brennstoff_1 == "Erdgas") && !Waermepumpe) {
|
||||
// Wärmepumpe
|
||||
empfehlungen.push({
|
||||
"title" : "Wärmeerzeuger",
|
||||
@@ -137,7 +136,7 @@ export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | Verbrau
|
||||
});
|
||||
}
|
||||
|
||||
if (!photovoltaik && Brennstoff == "Strommix") {
|
||||
if (!photovoltaik && ausweis.brennstoff_1 == "Strommix") {
|
||||
// Wärmepumpe
|
||||
empfehlungen.push({
|
||||
"title" : "Wärmeerzeuger",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||
import { faker } from "@faker-js/faker";
|
||||
import { Enums } from "#lib/client/prisma.js";
|
||||
import { Aufnahme, Enums, VerbrauchsausweisWohnen } from "#lib/client/prisma.js";
|
||||
import moment from "moment";
|
||||
|
||||
export async function importVerbrauchsausweisWohnenAltesSystem(count: number = 5) {
|
||||
@@ -19,7 +19,7 @@ export async function importVerbrauchsausweisWohnenAltesSystem(count: number = 5
|
||||
}
|
||||
|
||||
export function verbrauchsausweisWohnenImportTranslate(ausweis: Record<string, any>) {
|
||||
const ausweisTranslated: VerbrauchsausweisWohnenClient = {
|
||||
const ausweisTranslated: VerbrauchsausweisWohnen & { aufnahme: Aufnahme } = {
|
||||
aufnahme: {
|
||||
rechnungen: null,
|
||||
baujahr_gebaeude: [ausweis.baujahr_gebaeude],
|
||||
@@ -58,7 +58,6 @@ export function verbrauchsausweisWohnenImportTranslate(ausweis: Record<string, a
|
||||
aussenwand_gedaemmt: ausweis.aussenwand_gedaemmt,
|
||||
aussenwand_min_12cm_gedaemmt: ausweis.aussenwand_min_12cm_gedaemmt,
|
||||
bestellt: ausweis.bestellt,
|
||||
boxpruefung: ausweis.boxpruefung,
|
||||
brennwert_kessel: ausweis.brennwert_kessel,
|
||||
dachgeschoss_gedaemmt: ausweis.dachgeschoss_gedaemmt,
|
||||
dachgeschoss_min_12cm_gedaemmt: ausweis.dachgeschoss_min_12cm_gedaemmt,
|
||||
|
||||
@@ -16,7 +16,7 @@ export async function loginClient(email: string, passwort: string): Promise<infe
|
||||
}
|
||||
Cookies.set(API_ACCESS_TOKEN_COOKIE_NAME, response.accessToken, options);
|
||||
Cookies.set(API_REFRESH_TOKEN_COOKIE_NAME, response.refreshToken, options);
|
||||
Cookies.set("uid", response.uid, options);
|
||||
Cookies.set("uid", response.id, options);
|
||||
|
||||
return response;
|
||||
} catch (e) {
|
||||
|
||||
@@ -12,7 +12,7 @@ export class Checkbox extends PDFElement {
|
||||
throw new Error('Method not supported.');
|
||||
}
|
||||
|
||||
draw(page: PDFPage, x: number, y: number): void {
|
||||
async draw(page: PDFPage, x: number, y: number) {
|
||||
page.drawRectangle({
|
||||
x: x + this.borderWidth,
|
||||
// NOTE: Keine Ahnung warum * 1.5 aber dann passt es...
|
||||
|
||||
@@ -103,15 +103,15 @@ export class Flex extends PDFElement {
|
||||
return currentWidth;
|
||||
}
|
||||
|
||||
draw(page: PDFPage, x: number = this.x, y: number = this.y): void {
|
||||
async draw(page: PDFPage, x: number = this.x, y: number = this.y) {
|
||||
const childPositions = this.calculateChildPositions(x + this.margin.left + this.padding.left, y - this.margin.top - this.padding.top);
|
||||
|
||||
// Draw each child
|
||||
this.children.forEach((child, i) => {
|
||||
const pos = childPositions[i];
|
||||
for (let i = 0; i < this.children.length; i++) {
|
||||
const child = this.children[i];
|
||||
const pos = childPositions[i];
|
||||
|
||||
child.draw(page, pos.x, pos.y);
|
||||
});
|
||||
await child.draw(page, pos.x, pos.y);
|
||||
}
|
||||
}
|
||||
|
||||
private calculateChildPositions(x: number, y: number): { x: number; y: number }[] {
|
||||
|
||||
@@ -50,9 +50,9 @@ export class Image extends PDFElement {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.options.src.split(".").pop() === "png") {
|
||||
try {
|
||||
embed = await page.doc.embedPng(img)
|
||||
} else {
|
||||
} catch(e) {
|
||||
embed = await page.doc.embedJpg(img)
|
||||
}
|
||||
} else if (this.options.data) {
|
||||
@@ -73,8 +73,6 @@ export class Image extends PDFElement {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
page.drawImage(embed, {
|
||||
x: x + this.margin.left + this.padding.left,
|
||||
y: y - this.height - this.margin.top - this.padding.top,
|
||||
|
||||
@@ -59,11 +59,11 @@ export class Layout extends PDFElement {
|
||||
this._height = value;
|
||||
}
|
||||
|
||||
draw(page: PDFPage, x: number, y: number): void {
|
||||
async draw(page: PDFPage, x: number, y: number) {
|
||||
let currentY = y - this.margin.top - this.padding.top;
|
||||
|
||||
for (const child of this.children) {
|
||||
child.draw(page, x + this.margin.left + this.padding.left, currentY);
|
||||
await child.draw(page, x + this.margin.left + this.padding.left, currentY);
|
||||
|
||||
currentY -= child.height + child.margin.top + child.margin.bottom;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user