diff --git a/src/astro-typesafe-api-caller.ts b/src/astro-typesafe-api-caller.ts index 5de0007e..7c5ffb36 100644 --- a/src/astro-typesafe-api-caller.ts +++ b/src/astro-typesafe-api-caller.ts @@ -28,16 +28,19 @@ export const createCaller = createCallerFactory({ "admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"), "admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"), "objekt": await import("../src/pages/api/objekt/index.ts"), - "webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"), - "geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"), - "geg-nachweis-wohnen/[id]": await import("../src/pages/api/geg-nachweis-wohnen/[id].ts"), - "verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/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"), - "auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"), - "auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"), - "auth/access-token": await import("../src/pages/api/auth/access-token.ts"), - "bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"), - "bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"), + "verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"), + "webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"), + "verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"), + "verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"), + "aufnahme/[id]/bilder": await import("../src/pages/api/aufnahme/[id]/bilder.ts"), + "aufnahme/[id]": await import("../src/pages/api/aufnahme/[id]/index.ts"), "aufnahme/[id]/unterlagen": await import("../src/pages/api/aufnahme/[id]/unterlagen.ts"), "aufnahme/[id]": await import("../src/pages/api/aufnahme/[id]/index.ts"), "aufnahme/[id]/bilder": await import("../src/pages/api/aufnahme/[id]/bilder.ts"), diff --git a/src/layouts/DashboardLayout.astro b/src/layouts/DashboardLayout.astro index 76adb935..2aca69c2 100644 --- a/src/layouts/DashboardLayout.astro +++ b/src/layouts/DashboardLayout.astro @@ -1,5 +1,5 @@ --- -// import "svelte-ripple-action/ripple.css"; +// import "svelte-ripple-action/ripple.css"; import "../style/global.css"; import "../../svelte-dialogs.config.js"; import DashboardSidebar from "../components/Dashboard/DashboardSidebar.svelte"; diff --git a/src/lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.ts b/src/lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.ts index 65eafb1f..117e8359 100644 --- a/src/lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.ts +++ b/src/lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.ts @@ -85,13 +85,13 @@ export async function endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis: let energieVerbrauchWarmwasser_1 = 0; let energieVerbrauchWarmwasser_2 = 0; - if (ausweis.warmwasser_enthalten && ausweis.anteil_warmwasser_1 != 0) { + if (ausweis.warmwasser_enthalten && ausweis.anteil_warmwasser_1 != 0 && ausweis.anteil_warmwasser_1 !== null) { // Wenn Warmwasser enthalten und Anteil bekannt energieVerbrauchWarmwasser_1 = energieVerbrauchGesamt_1 * ((ausweis.anteil_warmwasser_1 || 0) / 100); energieVerbrauchWarmwasser_2 = energieVerbrauchGesamt_2 * ((ausweis.anteil_warmwasser_2 || 0) / 100); - } else if (ausweis.warmwasser_enthalten && ausweis.anteil_warmwasser_1 == 0){ + } else if (ausweis.warmwasser_enthalten && (ausweis.anteil_warmwasser_1 == 0 || ausweis.anteil_warmwasser_1 === null)) { if (aufnahme.gebaeudetyp == "Krankenhäuser (ohne Forschung und Lehre)" || aufnahme.gebaeudetyp == "Krankenhäuser (ohne Forschung und Lehre) & teilstationäre Versorgung" || aufnahme.gebaeudetyp == "Schwimmhallen") { energieVerbrauchWarmwasser_1 = energieVerbrauchGesamt_1 * 0.5; energieVerbrauchWarmwasser_2 = energieVerbrauchGesamt_2 * ((ausweis.anteil_warmwasser_2 || 0) / 100); @@ -107,8 +107,14 @@ export async function endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis: energieVerbrauchWarmwasser_2 = 0; } - let kuehlungsZuschlag_1: number = 0, kuehlungsZuschlag_2: number = 0; - if (aufnahme.kuehlung === "1") { + let kuehlungsZuschlag_1: number = 0, kuehlungsZuschlag_2: number = 0; let kuehlungsZuschlag = 0; + if (aufnahme.kuehlung === "1" && aufnahme.kuehlung !== null) { + + kuehlungsZuschlag = 6 * nutzflaeche * 3; + } + if (ausweis.kuehlung_enthalten && ausweis.kuehlung_enthalten !== null) + { + kuehlungsZuschlag_1 = energieVerbrauchGesamt_1 * ((ausweis.anteil_kuehlung_1 || 0) / 100); kuehlungsZuschlag_2 = energieVerbrauchGesamt_2 * ((ausweis.anteil_kuehlung_2 || 0) / 100); } @@ -168,7 +174,7 @@ export async function endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis: let co2EmissionenKuehlungsZuschlag_1 = endEnergieVerbrauchKuehlungsZuschlag_1 * brennstoff_1.coe; let co2EmissionenKuehlungsZuschlag_2 = endEnergieVerbrauchKuehlungsZuschlag_2 * brennstoff_2.coe; - let endEnergieVerbrauchGesamt = endEnergieVerbrauch_1 + endEnergieVerbrauch_2 + endEnergieVerbrauchLeerstandsZuschlag; + let endEnergieVerbrauchGesamt = endEnergieVerbrauch_1 + endEnergieVerbrauch_2 + endEnergieVerbrauchLeerstandsZuschlag + (kuehlungsZuschlag / (3 * nutzflaeche)); let primaerEnergieVerbrauchGesamt = primaerEnergieVerbrauch_1 + primaerEnergieVerbrauch_2 + primaerEnergieVerbrauchLeerstandsZuschlag + primaerEnergieVerbrauchStrom; let co2EmissionenGesamt = co2Emissionen_1 + co2Emissionen_2 + co2EmissionenLeerstandsZuschlag + co2EmissionenStrom; @@ -180,6 +186,7 @@ export async function endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis: brennstoff_2, kuehlungsZuschlag_1 : Math.round(kuehlungsZuschlag_1), kuehlungsZuschlag_2: Math.round(kuehlungsZuschlag_2), + kuehlungsZuschlag: Math.round(kuehlungsZuschlag), durchschnittsKlimafaktor : Math.round(durchschnittsKlimafaktor * 100) / 100, Klimafaktor_1 : klimafaktoren[0], Klimafaktor_2 : klimafaktoren[1], diff --git a/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts b/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts index 3f703eda..312c3f3a 100644 --- a/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts +++ b/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts @@ -157,7 +157,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe size: 10, font: bold }) - } else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Vermietung) { + } else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Vermietung || ausweis.ausstellgrund === Enums.Ausstellgrund.Verkauf) { pages[0].drawText("x", { x: 214, y: height - 425, @@ -639,7 +639,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe const addVerbrauch = addVerbrauchGenerator(); - if (!ausweis.warmwasser_enthalten) { + if (ausweis.warmwasser_enthalten) { // Mit Warmwasserzuschlag addVerbrauch( moment(ausweis.startdatum).format("MM.YYYY"), @@ -647,7 +647,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe ausweis.brennstoff_1 || "", berechnungen?.brennstoff_1.primaerenergiefaktor.toString(), Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(), - "0", + Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(), berechnungen?.endEnergieVerbrauchKuehlungsZuschlag_1, Math.round(berechnungen?.energieVerbrauchHeizung_1 || 0).toString(), berechnungen?.durchschnittsKlimafaktor.toString(), @@ -686,7 +686,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe // TODO - if (!ausweis.warmwasser_enthalten) { + if (ausweis.warmwasser_enthalten) { /** * Dezentrale Warmwasserversorgung - Pauschale Erhöhung um 20kWh/m² * @link https://www.bundesanzeiger.de/pub/publication/MRYM4nI84Sdlr0EIvvW?2 @@ -733,25 +733,25 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe } } - if (aufnahme.kuehlung) { - /** - * Kühlungszuschlag - Pauschale Erhöhung um 6kWh/m² - * Primärenergiefaktor Strom - * @link https://www.bundesanzeiger.de/pub/publication/MRYM4nI84Sdlr0EIvvW?2 - */ - addVerbrauch( - moment(ausweis.startdatum).format("MM.YYYY"), - moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"), - "Kühlungszuschlag", - "", - // TODO - // berechnungen?.primaerfaktorww.toString(), - Math.round(berechnungen?.kuehlungsZuschlag_1 || 0).toString(), - "0", - 0, - "" - ); - } + if (aufnahme.kuehlung === "1") { + /** + * Kühlungszuschlag - Pauschale Erhöhung um 6kWh/m² + * Primärenergiefaktor Strom + * @link https://www.bundesanzeiger.de/pub/publication/MRYM4nI84Sdlr0EIvvW?2 + */ + addVerbrauch( + moment(ausweis.startdatum).format("MM.YYYY"), + moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"), + "Kühlungszuschlag", + "", + // TODO + // berechnungen?.primaerfaktorww.toString(), + "", + "", + Math.round(berechnungen?.kuehlungsZuschlag || 0), + "" + ); + } /* -------------------------------- Seite 4 -------------------------------- */ diff --git a/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts b/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts index 44e4ce20..0b960f80 100644 --- a/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts +++ b/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts @@ -71,7 +71,15 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne pages[0].drawText(objekt.adresse || "", { x: 211, - y: height - 194, + y: height - 188.5, + size: 10 + }) + + + const plzOrt = `${objekt.plz || ""} ${objekt.ort || ""}` + pages[0].drawText(plzOrt || "", { + x: 211, + y: height - 200, size: 10 }) @@ -166,7 +174,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne if (aufnahme.lueftung === Enums.Lueftungskonzept.Fensterlueftung) { pages[0].drawText("x", { x: 214, - y: height - 293, + y: height - 355, size: 10, font: bold }) diff --git a/src/modules/KundendatenModule.svelte b/src/modules/KundendatenModule.svelte index dcd27407..dcc639fd 100644 --- a/src/modules/KundendatenModule.svelte +++ b/src/modules/KundendatenModule.svelte @@ -1016,7 +1016,8 @@ grid-cols-3 sm:grid-cols-5 justify-around justify-items-center items-center" {#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen} - {#if (ausweis.anteil_warmwasser_1 < 6) || (ausweis.anteil_warmwasser_1 > 40)} + {#if (ausweis.anteil_warmwasser_1 !== null)} + {#if ((ausweis.anteil_warmwasser_1 < 6) && (ausweis.anteil_warmwasser_1 != 0)) || (ausweis.anteil_warmwasser_1 > 40)}
@@ -1024,6 +1025,7 @@ grid-cols-3 sm:grid-cols-5 justify-around justify-items-center items-center"
{/if} + {/if} {/if} {#if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen} diff --git a/src/pages/api/admin/ausstellen.ts b/src/pages/api/admin/ausstellen.ts index 4dcfe4ab..821e719f 100644 --- a/src/pages/api/admin/ausstellen.ts +++ b/src/pages/api/admin/ausstellen.ts @@ -67,9 +67,11 @@ export const GET = defineApiRoute({ const rechnung = await prisma.rechnung.findFirst({ where: { - verbrauchsausweis_wohnen: { - id: id_ausweis, - }, + OR: [ + { bedarfsausweis_wohnen: { id: id_ausweis } }, + { verbrauchsausweis_wohnen: { id: id_ausweis } }, + { verbrauchsausweis_gewerbe: { id: id_ausweis } } + ] }, orderBy: { erstellt_am: "desc", diff --git a/src/testing/ausweise-bw-fix-ausgestellt.ts b/src/testing/ausweise-bw-fix-ausgestellt.ts new file mode 100644 index 00000000..00823580 --- /dev/null +++ b/src/testing/ausweise-bw-fix-ausgestellt.ts @@ -0,0 +1,37 @@ +import { Enums, prisma } from "#lib/server/prisma.js"; + +let start = 1; +let limit = 10; + +const existing_bedarfsausweiswohnen_list = await prisma.bedarfsausweisWohnen.findMany({ + where: { + rechnung_id: null + } +}); + +for (const ausweis of existing_bedarfsausweiswohnen_list) { + if (ausweis.bestellt == true && ausweis.benutzer_id != "USCTJ2VV"){ + console.log( + 'ID:' + ausweis.id + + ' Reg.Nr:' + ausweis.registriernummer + + ' Rechnung_id: ' + ausweis.rechnung_id + + ' Bestellt: ' + ausweis.bestellt + + ' Ausgestellt: ' + ausweis.ausgestellt + + ' Ausgestellt am: ' + ausweis.ausstellungsdatum + ); + + await prisma.bedarfsausweisWohnen.update({ + where: { + id: ausweis.id + }, + data: { + bestellt: false, + ausgestellt: false, + ausstellungsdatum: null + } + }); + + // if (start >= limit) break; + start++; + } +} \ No newline at end of file diff --git a/src/testing/ausweise-fix-rechnungsid.ts b/src/testing/ausweise-fix-rechnungsid.ts index ffe7544a..4d9aced7 100644 --- a/src/testing/ausweise-fix-rechnungsid.ts +++ b/src/testing/ausweise-fix-rechnungsid.ts @@ -1,39 +1,52 @@ -import moment from "moment"; import { Enums, prisma } from "#lib/server/prisma.js"; +import Papa from "papaparse" import * as fs from "fs"; import { fileURLToPath } from "url"; -import { hashPassword } from "#lib/password.js"; -import Papa from "papaparse"; import { generatePrefixedId } from "#lib/db.js"; import { VALID_UUID_PREFIXES } from "#lib/constants.js"; -import { tryCatch } from "#lib/tryCatch.js"; -import { createBrotliDecompress } from "zlib"; -const path = fileURLToPath(new URL("./ausweise.csv.br", import.meta.url)); // .br for Brotli file +const path = fileURLToPath(new URL("./rechnungen.csv", import.meta.url)); if (!fs.existsSync(path)) { - throw new Error(`${path} existiert nicht.`); + throw new Error(`${path} existiert nicht.`) } -let i = 0; -const brotliStream = fs.createReadStream(path).pipe(createBrotliDecompress()); +const file = fs.createReadStream(path, "utf8"); +Papa.parse(file, { + header: true, + async complete(results, file) { + let i = 0; + for (const rechnung of results.data as any) { + i++ + if (i % 1000 === 0) { + console.log(`Processed ${i} of ${results.data.length}, ${Math.round(i / results.data.length * 100)}%`) + } + const existing_rechnung = await prisma.rechnung.findFirst({ + where: { + alte_id: parseInt(rechnung.id) + } + }) -Papa.parse(brotliStream, { - header: true, - async complete(results, file) { - for (const dataset of results.data as any) { - const existing = await prisma.verbrauchsausweisWohnen.findFirst({ - where: { - alte_ausweis_id: parseInt(dataset.id) + if (existing_rechnung) { + const existing_bedarfsausweiswohnen = await prisma.bedarfsausweisWohnen.findFirst({ + where: { + alte_ausweis_id: parseInt(rechnung.ausweis_id) + } + }) + + if (existing_bedarfsausweiswohnen){ + if (existing_bedarfsausweiswohnen.rechnung_id != existing_rechnung.id){ + console.log('Rechnungsnummer weicht ab. Alte Ausweis Id:'+ rechnung.ausweis_id + ': ' + existing_bedarfsausweiswohnen.rechnung_id + ' vs ' + existing_rechnung.id); + //Todo: Rechnungsid updaten + } else { + //console.log('Rechnungsnummer Abgleich ok. Alte Ausweis Id:'+ rechnung.ausweis_id + ': ' + existing_bedarfsausweiswohnen.rechnung_id + ' vs ' + existing_rechnung.id); + } } - }); - - if (existing) { - continue; + } else { + console.log('Rechnung existiert nicht: '+ parseInt(rechnung.id)); } - console.log(dataset.id); - // do something with dataset... + //if (i > 10000) break; } - }, + } }); \ No newline at end of file diff --git a/src/testing/ausweise-vg-fix-ausgestellt.ts b/src/testing/ausweise-vg-fix-ausgestellt.ts new file mode 100644 index 00000000..e22d84a2 --- /dev/null +++ b/src/testing/ausweise-vg-fix-ausgestellt.ts @@ -0,0 +1,37 @@ +import { Enums, prisma } from "#lib/server/prisma.js"; + +let start = 1; +let limit = 10; + +const existing_verbauchsauweisgewerbe_list = await prisma.verbrauchsausweisGewerbe.findMany({ + where: { + rechnung_id: null + } +}); + +for (const ausweis of existing_verbauchsauweisgewerbe_list) { + if (ausweis.bestellt == true && ausweis.benutzer_id != "USCTJ2VV"){ + console.log( + 'ID:' + ausweis.id + + ' Reg.Nr:' + ausweis.registriernummer + + ' Rechnung_id: ' + ausweis.rechnung_id + + ' Bestellt: ' + ausweis.bestellt + + ' Ausgestellt: ' + ausweis.ausgestellt + + ' Ausgestellt am: ' + ausweis.ausstellungsdatum + ); + + await prisma.verbrauchsausweisGewerbe.update({ + where: { + id: ausweis.id + }, + data: { + bestellt: false, + ausgestellt: false, + ausstellungsdatum: null + } + }); + + // if (start >= limit) break; + start++; + } +} \ No newline at end of file diff --git a/src/testing/ausweise-vw-fix-ausgestellt.ts b/src/testing/ausweise-vw-fix-ausgestellt.ts new file mode 100644 index 00000000..f803ea57 --- /dev/null +++ b/src/testing/ausweise-vw-fix-ausgestellt.ts @@ -0,0 +1,37 @@ +import { Enums, prisma } from "#lib/server/prisma.js"; + +let start = 1; +let limit = 10; + +const existing_verbauchsausweiswohnen_list = await prisma.verbrauchsausweisWohnen.findMany({ + where: { + rechnung_id: null + } +}); + +for (const ausweis of existing_verbauchsausweiswohnen_list) { + if (ausweis.bestellt == true && ausweis.benutzer_id != "USCTJ2VV"){ + console.log( + 'ID:' + ausweis.id + + ' Reg.Nr:' + ausweis.registriernummer + + ' Rechnung_id: ' + ausweis.rechnung_id + + ' Bestellt: ' + ausweis.bestellt + + ' Ausgestellt: ' + ausweis.ausgestellt + + ' Ausgestellt am: ' + ausweis.ausstellungsdatum + ); + + await prisma.verbrauchsausweisWohnen.update({ + where: { + id: ausweis.id + }, + data: { + bestellt: false, + ausgestellt: false, + ausstellungsdatum: null + } + }); + + // if (start >= limit) break; + start++; + } +} \ No newline at end of file diff --git a/src/testing/nutzer-fix-alteid.ts b/src/testing/nutzer-fix-alteid.ts new file mode 100644 index 00000000..4eca767c --- /dev/null +++ b/src/testing/nutzer-fix-alteid.ts @@ -0,0 +1,46 @@ +import { Enums, prisma } from "#lib/server/prisma.js"; +import Papa from "papaparse" +import * as fs from "fs"; +import { fileURLToPath } from "url"; +import { generatePrefixedId } from "#lib/db.js"; +import { VALID_UUID_PREFIXES } from "#lib/constants.js"; + +const path = fileURLToPath(new URL("./users.csv", import.meta.url)); + +if (!fs.existsSync(path)) { + throw new Error(`${path} existiert nicht.`) +} + +const file = fs.createReadStream(path, "utf8"); +Papa.parse(file, { + header: true, + async complete(results, file) { + let i = 0; + for (const user of results.data as any) { + i++ + if (i % 100 === 0) { + //console.log(`Processed ${i} of ${results.data.length}, ${Math.round(i / results.data.length * 100)}%`) + } + const existing = await prisma.benutzer.findFirst({ + where: { + email: user.email + } + }) + + if (existing) { + if (existing.alte_id == null){ + console.log('User: ' + user.email + ' fehlt alte id ('+user.id+')'); + await prisma.benutzer.update({ + where: { + email: user.email + }, + data: { + alte_id: parseInt(user.id) + } + }); + } + } + + } + } +}); \ No newline at end of file diff --git a/src/testing/rechnungen-umziehen.ts b/src/testing/rechnungen-umziehen.ts index 72c6067c..de56470a 100644 --- a/src/testing/rechnungen-umziehen.ts +++ b/src/testing/rechnungen-umziehen.ts @@ -19,7 +19,7 @@ Papa.parse(file, { let i = 0; for (const rechnung of results.data as any) { i++ - if (i % 50 === 0) { + if (i % 500 === 0) { console.log(`Processed ${i} of ${results.data.length}, ${Math.round(i / results.data.length * 100)}%`) } const existing = await prisma.rechnung.findFirst({ @@ -29,7 +29,7 @@ Papa.parse(file, { }) if (existing) { - console.log(`Rechnung für ${rechnung.id} existiert bereits.`); + //console.log(`Rechnung für ${rechnung.id} existiert bereits.`); continue; } @@ -166,6 +166,7 @@ Papa.parse(file, { await prisma.rechnung.create({ data }); + console.log('User: ' + rechnung.user_id + ' Rechnung:' + rechnung.id); } catch (e) { console.log(e); continue;