Merge pull request #361 from IBCornelsen/main

get main
This commit is contained in:
Jens Cornelsen
2025-02-20 13:37:25 +01:00
committed by GitHub
87 changed files with 3312 additions and 1149 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View File

@@ -6,9 +6,9 @@ const app = express();
const base = '/';
app.use(base, express.static('dist/client/'));
app.use(ssrHandler);
app.use(express.json({ limit: "50mb" }))
app.use(express.urlencoded({ limit: "50mb" }))
app.listen(80, function() {
console.log('Server started on http://localhost:80');
});

View File

@@ -1,8 +1,12 @@
import { createCallerFactory } from "astro-typesafe-api/server";
export const createCaller = createCallerFactory({
"bild": await import("../src/pages/api/bild.ts"),
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
"auth/forgot-password": await import("../src/pages/api/auth/forgot-password.ts"),
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.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"),
@@ -10,24 +14,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"),
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
"auth/forgot-password": await import("../src/pages/api/auth/forgot-password.ts"),
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
"bedarfsausweis-wohnen/[uid]": await import("../src/pages/api/bedarfsausweis-wohnen/[uid].ts"),
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
"bilder/[uid]": await import("../src/pages/api/bilder/[uid].ts"),
"geg-nachweis-wohnen/[uid]": await import("../src/pages/api/geg-nachweis-wohnen/[uid].ts"),
"geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"),
"objekt": await import("../src/pages/api/objekt/index.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/[uid]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[uid].ts"),
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
"verbrauchsausweis-wohnen/[uid]": await import("../src/pages/api/verbrauchsausweis-wohnen/[uid].ts"),
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
"aufnahme/[uid]/bilder": await import("../src/pages/api/aufnahme/[uid]/bilder.ts"),
"aufnahme/[uid]": await import("../src/pages/api/aufnahme/[uid]/index.ts"),
"objekt/[uid]": await import("../src/pages/api/objekt/[uid]/index.ts"),

View File

@@ -3,14 +3,14 @@ import { api } from "astro-typesafe-api/client"
import { exclude } from "#lib/exclude.js";
import Cookies from "js-cookie";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
import { AufnahmeClient, BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
import { AufnahmeClient, BedarfsausweisWohnenClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
import { Enums } from "@ibcornelsen/database/client";
export async function ausweisSpeichern(
ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient,
objekt: ObjektClient,
aufnahme: AufnahmeClient,
bilder: (UploadedGebaeudeBild & { base64?: string })[],
bilder: BildClient[],
ausweisart: Enums.Ausweisart
) {
if (objekt.uid) {
@@ -99,25 +99,14 @@ export async function ausweisSpeichern(
ausweis.uid = uid;
}
for (const bild of bilder) {
if (bild.uid) {
continue;
await api.aufnahme._uid.bilder.PUT.fetch(bilder.map(bild => bild.uid), {
params: {
uid: aufnahme.uid
},
headers: {
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
}
const response = await api.aufnahme._uid.bilder.PUT.fetch({
base64: bild.base64,
kategorie: bild.kategorie
}, {
params: {
uid: aufnahme.uid
},
headers: {
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
}
})
bild.uid = response.uid
}
})
return {
uid_ausweis: ausweis.uid,

View File

@@ -22,7 +22,7 @@ export async function bilderHochladen(
const imagesToUpload = images.filter(
(image) => !image.uid || image.update
) as unknown as {
base64: string;
data: string;
kategorie: string;
uid?: string;
update: boolean;
@@ -46,7 +46,7 @@ export async function bilderHochladen(
try {
if (image.update) {
await api.bilder._uid.PATCH.fetch({
base64: image.base64,
data: image.data,
kategorie: image.kategorie as Enums.BilderKategorie,
}, {
params: {
@@ -58,7 +58,7 @@ export async function bilderHochladen(
});
} else {
const response = await api.aufnahme._uid.bilder.PUT.fetch({
base64: image.base64,
data: image.data,
kategorie: image.kategorie as Enums.BilderKategorie
}, {
params: {

View File

@@ -39,6 +39,7 @@ export async function validateAccessTokenClient() {
refreshToken
})
Cookies.set(API_ACCESS_TOKEN_COOKIE_NAME, newAccessToken, {
domain: `.${window.location.hostname}`,
path: "/",

View File

@@ -11,12 +11,12 @@
export let ausweisart: Enums.Ausweisart
</script>
<button class="border-2 rounded-lg bg-white text-center hover:shadow-md no-underline p-3 cursor-pointer" on:click={() => {
<button class="border-2 rounded-lg bg-white text-center hover:shadow-md no-underline p-3 cursor-pointer" type="button" on:click={() => {
openWindowWithPost("/pdf/ansichtsausweis", {
ausweis: JSON.stringify(ausweis),
aufnahme: JSON.stringify(aufnahme),
objekt: JSON.stringify(objekt),
bilder: JSON.stringify(bilder),
ausweis: ausweis,
aufnahme: aufnahme,
objekt: objekt,
bilder: bilder,
ausweisart
})
}}>

View File

@@ -14,13 +14,15 @@
ObjektClient,
VerbrauchsausweisGewerbeClient,
VerbrauchsausweisWohnenClient,
GEGNachweisWohnenClient,
} from "./types.js";
export let objekt: ObjektClient;
export let ausweis:
| VerbrauchsausweisWohnenClient
| VerbrauchsausweisGewerbeClient
| BedarfsausweisWohnenClient;
| BedarfsausweisWohnenClient
| GEGNachweisWohnenClient;
export let aufnahme: AufnahmeClient;
export let ausweisart: Enums.Ausweisart;
@@ -72,7 +74,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
>
<option disabled selected>Bitte auswählen</option>
{#if ausweisart==Enums.Ausweisart.VerbrauchsausweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisVerbrauchsausweisWohnen}
{#if ausweisart==Enums.Ausweisart.VerbrauchsausweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisWohnen}
<option value="Einfamilienhaus">Einfamilienhaus</option>
<option value="Freistehendes Einfamilienhaus">Freistehendes Einfamilienhaus</option>
<option value="Freistehendes Zweifamilienhaus">Freistehendes Zweifamilienhaus</option>

View File

@@ -1,56 +0,0 @@
<script lang="ts">
import HelpLabel from "#components/labels/HelpLabel.svelte";
import Inputlabel from "#components/labels/InputLabel.svelte";
import ZipSearch from "#components/PlzSuche.svelte";
import { Bezahlmethoden, Enums } from "@ibcornelsen/database/client";
import PaymentOption from "#components/PaymentOption.svelte";
export let selectedPaymentType: Bezahlmethoden =
Enums.Bezahlmethoden.paypal;
</script>
<div id="bezahlung" class="bereich-box grid
grid-cols-5 justify-around justify-items-center items-center">
<PaymentOption
paymentType={Enums.Bezahlmethoden.paypal}
bind:selectedPaymentType
name={"PayPal"}
icon={"/images/paypal.png"}
></PaymentOption>
<PaymentOption
paymentType={Enums.Bezahlmethoden.sofort}
bind:selectedPaymentType
name={"Sofort"}
icon={"/images/sofort.png"}
></PaymentOption>
<PaymentOption
paymentType={Enums.Bezahlmethoden.giropay}
bind:selectedPaymentType
name={"Giropay"}
icon={"/images/giropay.png"}
></PaymentOption>
<PaymentOption
paymentType={Enums.Bezahlmethoden.creditcard}
bind:selectedPaymentType
name={"Kreditkarte"}
icon={"/images/creditcard.png"}
></PaymentOption>
<PaymentOption
paymentType={Enums.Bezahlmethoden.rechnung}
bind:selectedPaymentType
name={"Rechnung"}
icon={"/images/rechnung.png"}
></PaymentOption>
</div>

View File

@@ -1,6 +1,4 @@
<script lang="ts">
import Hilfe from "#components/Ausweis/Hilfe.svelte";
export let spaeterWeitermachen;
export let automatischAusfüllen;
</script>
@@ -18,13 +16,6 @@ sm:grid-cols-[1fr_min-content_min-content_min-content] sm:justify-self-end sm:mt
>Automatisch Ausfüllen
</button>
<Hilfe />
<button class="button" type="button" on:click={spaeterWeitermachen}
>Später Weitermachen
</button>
</div>

View File

@@ -1,12 +1,13 @@
<script lang="ts">
import Hilfe from "#components/Ausweis/Hilfe.svelte";
import { ausweisSpeichern } from "#client/lib/ausweisSpeichern.js";
import { validateAccessTokenClient } from "#client/lib/validateAccessToken.js";
import { AufnahmeClient, BedarfsausweisWohnenClient, BenutzerClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import Overlay from "#components/Overlay.svelte";
import EmbeddedAuthFlowModule from "#modules/EmbeddedAuthFlowModule.svelte";
import { Enums } from "@ibcornelsen/database/client";
import { AusweisTyp, Enums } from "@ibcornelsen/database/client";
import { openWindowWithPost } from "#lib/helpers/window.js";
import { PRICES } from "#lib/constants.js";
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
export let bilder: UploadedGebaeudeBild[];
@@ -15,25 +16,19 @@
export let aufnahme: AufnahmeClient;
export let ausweisart: Enums.Ausweisart
export let showWeiter: boolean = true;
let ausweistyp: AusweisTyp = Enums.AusweisTyp.Standard;
async function ausweisAbschicken() {
loginAction = ausweisAbschicken
if (!await validateAccessTokenClient()) {
loginOverlayHidden = false;
return
}
loginOverlayHidden = true
const result = await ausweisSpeichern(ausweis, objekt, aufnahme, bilder, ausweisart);
if (result !== null) {
window.history.pushState(
{},
"",
`${location.pathname}?uid=${ausweis.uid}`
);
window.location.href = `/kundendaten?uid=${ausweis.uid}`;
}
openWindowWithPost("/kundendaten", {
ausweis,
objekt,
aufnahme,
bilder,
ausweisart,
ausweistyp
}, "")
}
let loginAction: () => any = ausweisAbschicken;
@@ -56,10 +51,23 @@
`${location.pathname}?uid=${ausweis.uid}`
);
localStorage.clear()
window.location.href = `/speichern-erfolgreich?uid=${ausweis.uid}`
}
}
async function hilfeBestellen() {
openWindowWithPost("/kundendaten", {
ausweis,
objekt,
aufnahme,
bilder,
ausweisart,
ausweistyp
}, "")
}
let showHelp: boolean = false;
let loginOverlayHidden = true;
</script>
@@ -68,19 +76,100 @@ sm:grid-cols-[1fr_min-content_min-content_min-content] sm:justify-self-end sm:mt
<div></div>
<Hilfe />
<div>
<button class="button" type="button" on:click={() => (showHelp = !showHelp)}
>Hilfe anfordern</button
>
</div>
{#if showHelp}
<div class="col-start-1 row-start-2 col-span-4 mt-4">
<div
class="bereich-box grid relative
grid-cols-1 gap-x-4 gap-y-4
"
>
<div class="pr-12">
Gerne helfen wir Ihnen wenn Sie nicht weiterkommen oder Fragen
haben. Kurze Fragen zum Formular oder der Ausweisart werden
kostenfrei telefonisch unter <a href="tel:+4940209339850"
>040/209339850</a
> beantwortet (bis 5min). Sollten Sie Unterstützung bei der Erstellung
benötgen oder lieber die Arbeit von unserem Ingenieurbüro erledigen
lassen, bieten wir Ihnen folgende Hilfen an. Bitte treffen Sie Ihre
Auswahl und klicken auf weiter:
</div>
<hr class="m-0" />
<div class="grid grid-cols-[30px_490px_200px_1fr] items-center">
<input
type="radio"
class=" accent-secondary w-[20px] h-[20px]"
id="Produkttb1"
value={Enums.AusweisTyp.Beratung}
name="Produkt"
bind:group={ausweistyp}
/>
<div class="justify-self-stretch">
Verbrauchsausweis online inkl. ausführlicher telefonischer
Beratung
</div>
<div class="text-right">
<b>{PRICES[ausweisart][Enums.AusweisTyp.Beratung]}</b> inkl. MwSt.
</div>
</div>
<div class="grid grid-cols-[30px_490px_200px_1fr] items-center">
<input
type="radio"
class=" accent-secondary w-[20px] h-[20px]"
id="Produktof1"
value={Enums.AusweisTyp.Offline}
name="Produkt"
bind:group={ausweistyp}
/>
<div>
Verbrauchsausweis offline (Sie schicken uns 3
Verbrauchsabrechnungen zu)
</div>
<div class="text-right">
<b>{PRICES[ausweisart][Enums.AusweisTyp.Offline]}</b> inkl. MwSt.
</div>
</div>
<hr class="m-0" />
<button class="button" on:click={hilfeBestellen}>jetzt Hilfe bestellen</button>
<button
class="button absolute top-2 right-2 w-[30px] h-[30px] text-sm p-0"
type="button"
on:click={() => (showHelp = !showHelp)}>X</button
>
</div>
</div>
{/if}
<button class="button" type="button" on:click={spaeterWeitermachen}
>Später Weitermachen
</button>
{#if showWeiter}
<div>
<Overlay bind:hidden={loginOverlayHidden}>
<div class="bg-white w-full max-w-screen-sm py-8">
<EmbeddedAuthFlowModule onLogin={loginAction}></EmbeddedAuthFlowModule>
<EmbeddedAuthFlowModule onLogin={loginAction} email={""}></EmbeddedAuthFlowModule>
</div>
</Overlay>
<button on:click={ausweisAbschicken} type="button" class="button" data-cy="weiter">Weiter</button>
</div>
{/if}
</div>

View File

@@ -1,89 +0,0 @@
<script lang="ts">
import { PRICES } from "#lib/constants";
let showHelp: boolean = false;
</script>
<div>
<button class="button" type="button" on:click={() => (showHelp = !showHelp)}
>Hilfe anfordern</button>
</div>
{#if showHelp}
<div class="col-start-1 row-start-2 col-span-4 mt-4">
<div class="bereich-box grid relative
grid-cols-1 gap-x-4 gap-y-4
"
>
<div class="pr-12">
Gerne helfen wir Ihnen wenn Sie nicht weiterkommen oder Fragen
haben. Kurze Fragen zum Formular oder der Ausweisart werden
kostenfrei telefonisch unter <a href="tel:+4940209339850"
>040/209339850</a
> beantwortet (bis 5min). Sollten Sie Unterstützung bei der Erstellung
benötgen oder lieber die Arbeit von unserem Ingenieurbüro erledigen
lassen, bieten wir Ihnen folgende Hilfen an. Bitte treffen Sie Ihre
Auswahl und klicken auf weiter:
</div>
<hr class="m-0">
<div class="grid grid-cols-[30px_490px_200px_1fr] items-center">
<input
type="radio"
class=" accent-secondary w-[20px] h-[20px]"
id="Produkttb1"
value="ptb"
name="Produkt"
/>
<div class="justify-self-stretch">
Verbrauchsausweis online inkl. ausführlicher telefonischer Beratung
</div>
<div class="text-right">
<b>{PRICES.VerbrauchsausweisWohnen[1]}</b> inkl. MwSt.
</div>
</div>
<div class="grid grid-cols-[30px_490px_200px_1fr] items-center">
<input
type="radio"
class=" accent-secondary w-[20px] h-[20px]"
id="Produktof1"
value="pof"
name="Produkt"
/>
<div>
Verbrauchsausweis offline (Sie schicken uns 3 Verbrauchsabrechnungen zu)
</div>
<div class="text-right">
<b>{PRICES.VerbrauchsausweisWohnen[2]}</b> inkl. MwSt.
</div>
</div>
<hr class="m-0">
<button class="button">jetzt Hilfe bestellen</button>
<button class="button absolute top-2 right-2 w-[30px] h-[30px] text-sm p-0" type="button" on:click={() => (showHelp = !showHelp)}>X</button>
</div>
</div>
{/if}

View File

@@ -1,140 +1,142 @@
<script lang="ts">
import HelpLabel from "#components/labels/HelpLabel.svelte";
import Inputlabel from "#components/labels/InputLabel.svelte";
import ZipSearch from "#components/PlzSuche.svelte";
import ZipSearch from "#components/PlzSuche.svelte";
import { BenutzerClient, RechnungClient } from "./types.js";
export let user: BenutzerClient;
export let rechnung: Partial<RechnungClient>;
$: {
if (!rechnung.abweichende_versand_adresse) {
rechnung.versand_empfaenger = rechnung.empfaenger
rechnung.versand_ort = rechnung.ort
rechnung.versand_plz = rechnung.plz
rechnung.versand_strasse = rechnung.strasse
rechnung.versand_zusatzzeile = rechnung.zusatzzeile
}
}
</script>
<div id="rechnungsadresse" class="bereich-box grid
<div
id="rechnungsadresse"
class="bereich-box grid
grid-cols-1 gap-x-4 gap-y-8
sm:grid-cols-2 sm:gap-x-6 sm:gap-y-8
xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
">
"
>
<!-- Empfänger * -->
<!-- Empfänger * -->
<div class="input-standard order-1 md:order-1 xl:order-1">
<Inputlabel title="Rechnungs-Empfänger *"></Inputlabel>
<div class="input-standard order-1 md:order-1 xl:order-1">
<Inputlabel title="Rechnungs-Empfänger *"></Inputlabel>
<input
name="rechnung_empfaenger"
type="text"
bind:value={rechnung.empfaenger}
required
data-rule-maxlength="100"
data-msg-maxlength="max. 100 Zeichen"
/>
<input
name="rechnung_empfaenger"
type="text"
bind:value={rechnung.empfaenger}
required
data-rule-maxlength="100"
data-msg-maxlength="max. 100 Zeichen"
/>
<div class="help-label">
<HelpLabel>
Bitte geben Sie den Empfänger ein, auf den die Rechnung ausgestellt wird.
</HelpLabel>
</div>
</div>
<!-- Straße, Hausnummer * -->
<div class="input-standard order21 md:order-2 xl:order-2">
<Inputlabel title="Straße, Hausnummer *"></Inputlabel>
<input
name="rechnung_strasse"
bind:value={rechnung.strasse}
type="text"
required
data-rule-maxlength="40"
data-msg-maxlength="max. 40 Zeichen"
/>
<div class="help-label">
<HelpLabel>
Bitte geben Sie die Strasse und Hausnummer, so wie Sie auf der Rechnung erscheinen soll, ein.
</HelpLabel>
</div>
</div>
<!-- PLZ / ORT -->
<div class="grid grid-cols-[2fr_4fr] gap-x-4 order-3 md:order-3 xl:order-3">
<div class="input-noHelp">
<Inputlabel title="PLZ *"></Inputlabel>
<ZipSearch
name="rechnung_plz"
bind:zip={rechnung.plz}
bind:city={rechnung.ort}
/>
</div>
<div class="input-standard">
<Inputlabel title="Ort *"></Inputlabel>
<input
name="rechnung_ort"
readonly
type="text"
required
value={rechnung.ort}
/>
<div class="help-label">
<HelpLabel>
Bitte geben Sie die PLZ des Ortes, so wie Sie auf der Rechnung erscheinen soll, ein.
</HelpLabel>
<HelpLabel>
Bitte geben Sie den Empfänger ein, auf den die Rechnung
ausgestellt wird.
</HelpLabel>
</div>
</div>
</div>
</div>
<!-- Straße, Hausnummer * -->
<!-- Zusatzzeile -->
<div class="input-standard order21 md:order-2 xl:order-2">
<Inputlabel title="Straße, Hausnummer *"></Inputlabel>
<div class="input-standard order-4 md:order-4 xl:order-4">
<Inputlabel title="Zusatzzeile"></Inputlabel>
<input
name="rechnung_zusatzzeile"
bind:value={rechnung.zusatzzeile}
type="text"
data-rule-maxlength="80"
data-msg-maxlength="max. 80 Zeichen"
/>
<input
name="rechnung_strasse"
bind:value={rechnung.strasse}
type="text"
required
data-rule-maxlength="40"
data-msg-maxlength="max. 40 Zeichen"
/>
<div class="help-label">
<HelpLabel>
Bitte geben Sie die Strasse und Hausnummer, so wie Sie auf der
Rechnung erscheinen soll, ein.
</HelpLabel>
</div>
</div>
<!-- PLZ / ORT -->
<div class="grid grid-cols-[2fr_4fr] gap-x-4 order-3 md:order-3 xl:order-3">
<div class="input-noHelp">
<Inputlabel title="PLZ *"></Inputlabel>
<ZipSearch
name="rechnung_plz"
bind:zip={rechnung.plz}
bind:city={rechnung.ort}
/>
</div>
<div class="input-standard">
<Inputlabel title="Ort *"></Inputlabel>
<input
name="rechnung_ort"
readonly
type="text"
required
value={rechnung.ort}
/>
<div class="help-label">
<HelpLabel>
Bitte geben Sie, falls erforderlich, zusätzliche nformationen ein.
Bitte geben Sie die PLZ des Ortes, so wie Sie auf der
Rechnung erscheinen soll, ein.
</HelpLabel>
</div>
</div>
</div>
</div>
<!-- E-mail -->
<!-- Zusatzzeile -->
<div class="input-standard order-5 md:order-5 xl:order-5">
<Inputlabel title="E-mail *"></Inputlabel>
<div class="input-standard order-4 md:order-4 xl:order-4">
<Inputlabel title="Zusatzzeile"></Inputlabel>
<input
name="rechnung_email"
bind:value={rechnung.email}
type="email"
/>
<input
name="rechnung_zusatzzeile"
bind:value={rechnung.zusatzzeile}
type="text"
data-rule-maxlength="80"
data-msg-maxlength="max. 80 Zeichen"
/>
<div class="help-label">
<HelpLabel>
Bitte geben Sie die E-Mail Adresse des Rechnungsempfängers ein.
</HelpLabel>
</div>
</div>
<HelpLabel>
Bitte geben Sie, falls erforderlich, zusätzliche nformationen
ein.
</HelpLabel>
</div>
</div>
<!-- Telefon
<!-- E-mail -->
<div class="input-standard order-5 md:order-5 xl:order-5">
<Inputlabel title="E-mail *"></Inputlabel>
<input name="rechnung_email" bind:value={rechnung.email} type="email" />
<div class="help-label">
<HelpLabel>
Bitte geben Sie die E-Mail Adresse des Rechnungsempfängers ein.
</HelpLabel>
</div>
</div>
<!-- Telefon
<div class="input-standard order-6 md:order-6 xl:order-6">
<Inputlabel title="Telefon *"></Inputlabel>
@@ -153,147 +155,147 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
</div>
-->
<div class="col-span-3 order-7 md:order-7 xl:order-7">
<div class="col-span-3 order-7 md:order-7 xl:order-7">
<div
class="grid grid-cols-[25px_max-content] items-center justify-items-start"
>
<input
id="abweichende_versand_adresse"
class="w-[15px] h-[15px]"
type="checkbox"
name="abweichende_versand_adresse"
bind:checked={rechnung.abweichende_versand_adresse}
/>
<div class="grid grid-cols-[25px_max-content] items-center justify-items-start">
<label for="abweichende_versand_adresse" class="cursor-pointer"
>abweichende Versandadresse</label
>
</div>
</div>
<input
id="abweichende_versand_adresse"
class="w-[15px] h-[15px]"
type="checkbox"
name="abweichende_versand_adresse"
bind:checked={rechnung.abweichende_versand_adresse}
/>
{#if rechnung.abweichende_versand_adresse}
<!-- Versand Empfänger * -->
<label for="abweichende_versand_adresse" class="cursor-pointer"
>abweichende Versandadresse</label>
<div class="input-standard order-8 md:order-8 xl:order-8">
<Inputlabel title="Versand-Empfänger *"></Inputlabel>
</div>
<input
name="versand_empfaenger"
type="text"
readonly={!rechnung.abweichende_versand_adresse}
bind:value={rechnung.versand_empfaenger}
required
data-rule-maxlength="100"
data-msg-maxlength="max. 100 Zeichen"
/>
</div>
{#if rechnung.abweichende_versand_adresse}
<!-- Versand Empfänger * -->
<div class="input-standard order-8 md:order-8 xl:order-8">
<Inputlabel title="Versand-Empfänger *"></Inputlabel>
<input
name="versand_empfaenger"
type="text"
readonly={!rechnung.abweichende_versand_adresse}
bind:value={rechnung.versand_empfaenger}
required
data-rule-maxlength="100"
data-msg-maxlength="max. 100 Zeichen"
/>
<div class="help-label">
<div class="help-label">
<HelpLabel>
Bitte geben Sie den Namen des Versand-Empfängers ein.
</HelpLabel>
</div>
</div>
<!-- Versand Straße, Hausnummer * -->
<div class="input-standard order-9 md:order-9 xl:order-9">
<Inputlabel title="Straße, Hausnummer *"></Inputlabel>
<input
name="versand_strasse"
type="text"
readonly={!rechnung.abweichende_versand_adresse}
bind:value={rechnung.versand_strasse}
required
data-rule-maxlength="40"
data-msg-maxlength="max. 40 Zeichen"
/>
<div class="help-label">
<HelpLabel>
Bitte geben Sie die Versand-Empfänger Strasse und Hausnummer ein, an die die Rechnung versandt wird.
</HelpLabel>
</div>
</div>
<!-- PLZ / ORT -->
<div class="grid grid-cols-[2fr_4fr] gap-x-4 order-10 md:order-10 xl:order-10">
<div class="input-noHelp">
<Inputlabel title="PLZ *"></Inputlabel>
<ZipSearch
name="versand_plz"
readonly={!rechnung.abweichende_versand_adresse}
bind:zip={rechnung.versand_plz}
bind:city={rechnung.versand_ort}
/>
</div>
<div class="input-standard">
<Inputlabel title="Ort *"></Inputlabel>
<input
name="versand_ort"
type="text"
readonly
required
bind:value={rechnung.versand_ort}
/>
<div class="help-label">
<HelpLabel>
Bitte geben Sie die Versand-Empfänger PLZ des Ortes ein, an den die Rechnung versandt wird.
</HelpLabel>
</div>
</div>
</div>
<!-- Versand Straße, Hausnummer * -->
<!-- Zusatzzeile -->
<div class="input-standard order-9 md:order-9 xl:order-9">
<Inputlabel title="Straße, Hausnummer *"></Inputlabel>
<div class="input-standard order-11 md:order-11 xl:order-11">
<Inputlabel title="Zusatzzeile"></Inputlabel>
<input
name="versand_strasse"
type="text"
readonly={!rechnung.abweichende_versand_adresse}
bind:value={rechnung.versand_strasse}
required
data-rule-maxlength="40"
data-msg-maxlength="max. 40 Zeichen"
/>
<input
name="versand_zusatzzeile"
type="text"
readonly={!rechnung.abweichende_versand_adresse}
bind:value={rechnung.versand_zusatzzeile}
data-rule-maxlength="80"
data-msg-maxlength="max. 80 Zeichen"
/>
<div class="help-label">
<div class="help-label">
<HelpLabel>
Bitte geben Sie, falls erforderlich, zusätzliche nformationen ein.
Bitte geben Sie die Versand-Empfänger Strasse und Hausnummer
ein, an die die Rechnung versandt wird.
</HelpLabel>
</div>
</div>
</div>
<!-- E-mail -->
<!-- PLZ / ORT -->
<div class="input-standard order-12 md:order-12 xl:order-12">
<Inputlabel title="E-mail *"></Inputlabel>
<div
class="grid grid-cols-[2fr_4fr] gap-x-4 order-10 md:order-10 xl:order-10"
>
<div class="input-noHelp">
<Inputlabel title="PLZ *"></Inputlabel>
<ZipSearch
name="versand_plz"
readonly={!rechnung.abweichende_versand_adresse}
bind:zip={rechnung.versand_plz}
bind:city={rechnung.versand_ort}
/>
</div>
<input
name="rechnung_email"
bind:value={rechnung.email}
type="email"
/>
<div class="input-standard">
<Inputlabel title="Ort *"></Inputlabel>
<div class="help-label">
<input
name="versand_ort"
type="text"
readonly
required
bind:value={rechnung.versand_ort}
/>
<div class="help-label">
<HelpLabel>
Bitte geben Sie die Versand-Empfänger PLZ des Ortes ein,
an den die Rechnung versandt wird.
</HelpLabel>
</div>
</div>
</div>
<!-- Zusatzzeile -->
<div class="input-standard order-11 md:order-11 xl:order-11">
<Inputlabel title="Zusatzzeile"></Inputlabel>
<input
name="versand_zusatzzeile"
type="text"
readonly={!rechnung.abweichende_versand_adresse}
bind:value={rechnung.versand_zusatzzeile}
data-rule-maxlength="80"
data-msg-maxlength="max. 80 Zeichen"
/>
<div class="help-label">
<HelpLabel>
Bitte geben Sie die E-Mail Adresse des Versand-Empfängers ein.
Bitte geben Sie, falls erforderlich, zusätzliche
nformationen ein.
</HelpLabel>
</div>
</div>
</div>
<!-- Telefon
<!-- E-mail -->
<div class="input-standard order-12 md:order-12 xl:order-12">
<Inputlabel title="E-mail *"></Inputlabel>
<input
name="rechnung_email"
bind:value={rechnung.email}
type="email"
/>
<div class="help-label">
<HelpLabel>
Bitte geben Sie die E-Mail Adresse des Versand-Empfängers
ein.
</HelpLabel>
</div>
</div>
<!-- Telefon
<div class="input-standard order-[13] md:order-[13] xl:order-[13]">
<Inputlabel title="Telefon *"></Inputlabel>
@@ -311,7 +313,5 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
</div>
</div>
-->
{/if }
{/if}
</div>

View File

@@ -6,21 +6,14 @@
import VerbrauchsHelpLabel from "#components/labels/VerbrauchsHelpLabel.svelte";
import StromVerbrauchsHelpLabel from "#components/labels/StromVerbrauchsHelpLabel.svelte";
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte"
import Label from "../Label.svelte";
import moment from "moment";
import fuelList from "./brennstoffListe.js";
import { auditVerbrauchAbweichung } from "../Verbrauchsausweis/audits/VerbrauchAbweichung.js";
import {
AufnahmeClient,
ObjektClient,
VerbrauchsausweisGewerbeClient,
} from "./types.js";
import { addNotification } from "#components/Notifications/shared.js";
export let objekt: ObjektClient;
export let aufnahme: AufnahmeClient;
export let ausweis: VerbrauchsausweisGewerbeClient;
@@ -70,8 +63,8 @@
fuelMap[fuel[0]].push(fuel[1]);
}
let month = ausweis.startdatum?.getMonth();
let year = ausweis.startdatum?.getFullYear();
let month = moment(ausweis.startdatum).month();
let year = moment(ausweis.startdatum).year();
$: {
if (typeof month === "number" && typeof year === "number") {
@@ -86,6 +79,11 @@
}
}
$: {
console.log(aufnahme.brennstoff_1);
}
$: abweichung = auditVerbrauchAbweichung(ausweis, aufnahme);
</script>
@@ -216,7 +214,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
<div class="grid grid-cols-2 gap-x-4 order-3 md:order-3 xl:order-3">
<div class="input-standard">
<Inputlabel title="primär Brennstoff *"></Inputlabel>
<Inputlabel title="primärer Brennstoff *"></Inputlabel>
<select
class="rounded-e-none"
@@ -644,11 +642,11 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
<!-- Enthält Stromverbrauch für: -->
<SanierungsOption label="Heizung" name="stromverbrauch_enthaelt_heizung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_heizung}></SanierungsOption>
<SanierungsOption label="Warmwasser " name="stromverbrauch_enthaelt_warmwasser" help="" bind:checked={ausweis.stromverbrauch_enthaelt_warmwasser}></SanierungsOption>
<SanierungsOption label="Lüftung " name="stromverbrauch_enthaelt_lueftung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_lueftung}></SanierungsOption>
<SanierungsOption label="Beleuchtung" name="stromverbrauch_enthaelt_beleuchtung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_beleuchtung}></SanierungsOption>
<SanierungsOption label="Kühlung" name="stromverbrauch_enthaelt_kuehlung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_kuehlung}></SanierungsOption>
<SanierungsOption value="" label="Heizung" name="stromverbrauch_enthaelt_heizung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_heizung}></SanierungsOption>
<SanierungsOption value="" label="Warmwasser " name="stromverbrauch_enthaelt_warmwasser" help="" bind:checked={ausweis.stromverbrauch_enthaelt_warmwasser}></SanierungsOption>
<SanierungsOption value="" label="Lüftung " name="stromverbrauch_enthaelt_lueftung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_lueftung}></SanierungsOption>
<SanierungsOption value="" label="Beleuchtung" name="stromverbrauch_enthaelt_beleuchtung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_beleuchtung}></SanierungsOption>
<SanierungsOption value="" label="Kühlung" name="stromverbrauch_enthaelt_kuehlung" help="" bind:checked={ausweis.stromverbrauch_enthaelt_kuehlung}></SanierungsOption>
<div class="input-standard">
<Inputlabel title="Sonstige"></Inputlabel>

View File

@@ -117,14 +117,14 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
Verbräuche öffnet sich dann.</HelpLabel>
</div>
</div>
{#if !ausweis.zusaetzliche_heizquelle}
<div class="input-standard">
<div class="input-checkboxen">
<div
class="grid grid-cols-[25px_max-content] items-center justify-items-start"
>
{#if !ausweis.zusaetzliche_heizquelle}
<input
id="zusaetzliche_heizquelle_1"
type="checkbox"
@@ -137,7 +137,6 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
for="zusaetzliche_heizquelle_1"
class="cursor-pointer">zusätzliche Heizquelle</label
>
{/if}
</div>
</div>
<div class="help-label">
@@ -145,6 +144,8 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8
gemacht werden, da alle 3 Verbrauchsjahre zusammenhängend sein sollen.</HelpLabel>
</div>
</div>
{/if}
</div>

View File

@@ -18,7 +18,7 @@ import { z, ZodSchema } from "zod";
export type OmitKeys<T, K extends keyof T> = Omit<T, K>;
export type UploadedGebaeudeBild = OmitKeys<Bild, "id" | "objekt_id"> & {
base64: string
data: string
}
/**
@@ -153,23 +153,23 @@ export function getAusweisartFromUUID(uid: string): Enums.Ausweisart | null {
return null;
}
export type UnterlageClient = Omit<Unterlage, "id" | "objekt_id">
export type BildClient = Omit<Bild, "id" | "objekt_id">
export type UnterlageClient = Omit<Unterlage, "id" | "aufnahme_id">
export type BildClient = Omit<Bild, "id" | "aufnahme_id">
export type ObjektKomplettClient = ObjektClient & {
bilder: BildClient[],
unterlagen: UnterlageClient[],
aufnahmen: (AufnahmeClient & {
bedarfsausweis_wohnen?: BedarfsausweisWohnenClient,
verbrauchsausweis_wohnen?: VerbrauchsausweisWohnenClient,
verbrauchsausweis_gewerbe?: VerbrauchsausweisGewerbeClient
})[]
aufnahmen: AufnahmeKomplettClient[]
}
export type AufnahmeKomplettClient = AufnahmeClient & {
bedarfsausweis_wohnen: BedarfsausweisWohnenClient[],
verbrauchsausweis_wohnen: VerbrauchsausweisWohnenClient[],
verbrauchsausweis_gewerbe: VerbrauchsausweisGewerbeClient[]
bilder: BildClient[],
unterlagen: UnterlageClient[],
bedarfsausweis_wohnen?: BedarfsausweisWohnenClient,
verbrauchsausweis_wohnen?: VerbrauchsausweisWohnenClient,
verbrauchsausweis_gewerbe?: VerbrauchsausweisGewerbeClient
}
export type GEGNachweisWohnenClient = Omit<GEGNachweisWohnen, "id" | "aufnahme_id" | "benutzer_id">
export type GEGNachweisWohnenClient = Omit<GEGNachweisWohnen, "id" | "aufnahme_id" | "benutzer_id"> & {
uid_objekt: string,
uid_aufnahme: string,
uid_benutzer?: string
}

View File

@@ -191,7 +191,7 @@
<div class="card-actions justify-end mt-8">
<a
class="btn btn-primary"
href="/energieausweis-erstellen/verbrauchsausweis-wohnen?uid={ausweis.uid}"
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid={ausweis.uid}"
>Bearbeiten</a
>
<a
@@ -219,8 +219,8 @@
</p>
<p>
Falls sie dort nicht finden wonach sie suchen, rufen sie uns doch
unter <a href="tel:040-220-31-87">040 220 31 87</a> an oder
<a href="mailto:moritz.utcke@gmx.de">schreiben sie uns eine email</a
unter <a href="tel:040-209-339-850">040 209 339 850</a> an oder
<a href="mailto:info@online-energieausweis.com">schreiben sie uns eine email</a
>.
</p>
<p>

View File

@@ -6,8 +6,7 @@
export let objekt: ObjektKomplettClient;
// TODO
const objektBild = objekt.bilder.find(bild => bild.kategorie === Enums.BilderKategorie.Gebaeude);
const objektBild = objekt.aufnahmen[0].bilder.find(bild => bild.kategorie === Enums.BilderKategorie.Gebaeude);
</script>
<div class="border rounded-lg border-base-300 bg-white">

View File

@@ -14,12 +14,12 @@
</script>
<button class="border-2 rounded-lg bg-white text-center hover:shadow-md no-underline p-3 cursor-pointer" on:click={() => {
<button class="border-2 rounded-lg bg-white text-center hover:shadow-md no-underline p-3 cursor-pointer" type="button" on:click={() => {
openWindowWithPost("/pdf/datenblatt", {
ausweis: JSON.stringify(ausweis),
aufnahme: JSON.stringify(aufnahme),
objekt: JSON.stringify(objekt),
bilder: JSON.stringify(bilder),
ausweis: ausweis,
aufnahme: aufnahme,
objekt: objekt,
bilder: bilder,
ausweisart
})
}}>

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { BedarfsausweisWohnenClient, ObjektClient, UnterlageClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
import { BedarfsausweisWohnenClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
import { Trash, Upload } from "radix-svelte-icons";
import HelpLabel from "#components/labels/HelpLabel.svelte";
@@ -8,7 +8,7 @@
export let max: number = Infinity;
export let min: number = 1;
export let name: string = "";
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | GEGNachweisWohnenClient;
export let objekt: ObjektClient;
import mime from "mime-types";

View File

@@ -1,10 +1,10 @@
<script lang="ts">
import UploadImages from "./UploadImages.svelte";
import type { Enums } from "@ibcornelsen/database/client";
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
import { BedarfsausweisWohnenClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
import { RotateCounterClockwise, Trash, Upload } from "radix-svelte-icons";
export let images: UploadedGebaeudeBild[] = [];
export let images: BildClient[] = [];
export let max: number = Infinity;
export let min: number = 1;
export let name: string = "";
@@ -15,7 +15,7 @@
async function rotateImage(image: UploadedGebaeudeBild): Promise<UploadedGebaeudeBild> {
return new Promise((resolve, reject) => {
let img = new Image();
img.src = image.base64 ? image.base64 : `/bilder/${image.uid}.webp`;
img.src = image.data ? image.data : `/bilder/${image.uid}.webp`;
img.onload = () => {
let canvas = document.createElement("canvas");
let ctx = canvas.getContext("2d");
@@ -25,7 +25,7 @@
ctx?.rotate((-90 * Math.PI) / 180);
ctx?.drawImage(img, -img.width / 2, -img.height / 2);
const clone = Object.assign({}, image)
clone.base64 = canvas.toDataURL("image/webp");
clone.data = canvas.toDataURL("image/webp");
clone.update = true;
resolve(clone)
};
@@ -42,7 +42,7 @@
{#if image.kategorie == kategorie}
<div class="relative group">
<img
src={image.base64 ? image.base64 : `/bilder/${image.uid}.webp`}
src="/bilder/{image.uid}.webp"
alt={kategorie}
class="h-full max-h-96 w-full rounded-lg border-2 group-hover:contrast-50 object-cover transition-all"
/>

View File

@@ -1,33 +1,27 @@
<script lang="ts">
import type { Bezahlmethoden } from "@ibcornelsen/database/client";
import Input from "radix-svelte-icons/src/lib/icons/Input.svelte";
export let name: string;
export let icon: string;
export let paymentType: Bezahlmethoden;
export let selectedPaymentType: Bezahlmethoden;
export let bezahlmethode: Bezahlmethoden;
export let aktiveBezahlmethode: Bezahlmethoden;
</script>
<div>
<input
type="radio"
data-cy={bezahlmethode}
id={bezahlmethode}
name="paymentType"
on:change={() => (aktiveBezahlmethode = bezahlmethode)}
/>
<input type="radio" data-cy={paymentType} id={paymentType} name="paymentType" on:change={() => selectedPaymentType = paymentType} />
<label for={paymentType}>
<div class="grid grid-rows-[1fr_20px] justify-items-center items-center cursor-pointer">
<img src={icon} alt={name} />
{name}
</div>
</label>
<label for={bezahlmethode}>
<div
class="grid grid-rows-[1fr_20px] justify-items-center items-center cursor-pointer"
>
<img src={icon} alt={name} />
{name}
</div>
</label>
</div>
<!--
<button type="button" class="bg-white px-4 py-2" on:click={() => selectedPaymentType = paymentType}>
<div class="grid grid-rows-[max-content-max-content] w-fit">
<img src={icon} alt={name} />
<span aria-label={name}>
{name}
</span>
</div>
</button>
-->

View File

@@ -4,20 +4,31 @@
export let max: number = 2;
export let min: number = 1;
export let name: string = ""
export let name: string = "";
// Array of base64 encoded images read into the input.
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
import {
BedarfsausweisWohnenClient,
BildClient,
ObjektClient,
UploadedGebaeudeBild,
VerbrauchsausweisGewerbeClient,
VerbrauchsausweisWohnenClient,
} from "./Ausweis/types.js";
import { api } from "astro-typesafe-api/client";
export let images: UploadedGebaeudeBild[] = [];
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
export let images: BildClient[] = [];
export let ausweis:
| VerbrauchsausweisWohnenClient
| VerbrauchsausweisGewerbeClient
| BedarfsausweisWohnenClient;
export let objekt: ObjektClient;
export let kategorie: Enums.BilderKategorie;
function getAllImages(this: HTMLInputElement) {
const files = this.files || [];
if (images.length == max) {
if (images.filter((img) => img.kategorie === kategorie).length == max) {
this.value = "";
return;
}
@@ -25,8 +36,7 @@
for (let i = 0; i < files.length; i++) {
const file = files[i];
if ((file.type !== "image/jpeg") && (file.type !== "image/png")) {
i--;
if (file.type !== "image/jpeg" && file.type !== "image/png") {
continue;
}
@@ -59,22 +69,32 @@
if (!ctx) {
return;
}
ctx.drawImage(image, 0, 0, image.naturalWidth, image.naturalHeight);
ctx.drawImage(
image,
0,
0,
image.naturalWidth,
image.naturalHeight
);
// Get the scaled-down data from the canvas in the desired output format and quality
const dataURL = canvas.toDataURL("image/jpeg", 0.8);
images.push({ base64: dataURL as string, kategorie });
const { uid } = await api.bild.PUT.fetch({
data: dataURL,
kategorie
})
images.push({ uid, kategorie });
images = images;
if (i == (Math.min(files.length, max) - 1)) {
if (i == Math.min(files.length, max) - 1) {
this.value = "";
}
}
};
image.src = url;
}
};
reader.readAsArrayBuffer(file);
}
@@ -83,31 +103,44 @@
let fileUpload: HTMLInputElement;
export const upload = () => {
fileUpload.click()
}
fileUpload.click();
};
</script>
<!-- Falls die maximale Anzahl Bilder erreicht wurde grauen wir den input aus und zeigen einen Hilfstext -->
{#if images.filter((image) => image.kategorie === kategorie).length === max}
<span class="bg-base-200 border px-4 py-2">Maximale Anzahl Bilder wurde erreicht.</span>
<span class="bg-base-200 border px-4 py-2"
>Maximale Anzahl Bilder wurde erreicht.</span
>
{:else if max > 1}
<div class="input-standard">
<input type="file" class="file-input file-input-ghost h-[38px]" bind:this={fileUpload} {name} multiple on:change={getAllImages} />
<div class="help-label">
<HelpLabel>
<slot />
</HelpLabel>
<div class="input-standard">
<input
type="file"
class="file-input file-input-ghost h-[38px]"
bind:this={fileUpload}
{name}
multiple
on:change={getAllImages}
/>
<div class="help-label">
<HelpLabel>
<slot />
</HelpLabel>
</div>
</div>
</div>
{:else}
<div class="input-standard">
<input type="file" class="file-input file-input-ghost h-[38px]" bind:this={fileUpload} {name} on:change={getAllImages} />
<div class="help-label">
<HelpLabel>
<slot />
</HelpLabel>
<div class="input-standard">
<input
type="file"
class="file-input file-input-ghost h-[38px]"
bind:this={fileUpload}
{name}
on:change={getAllImages}
/>
<div class="help-label">
<HelpLabel>
<slot />
</HelpLabel>
</div>
</div>
</div>
{/if}

View File

@@ -24,7 +24,7 @@
<hr class="trenner">
<div>GEG-Nachweis Wohngebäude</div>
<div>ab&nbsp;<span class="price">000</span>&nbsp;inkl.&nbsp;MwSt.</div>
<div>ab&nbsp;<span class="price">{PRICES.GEGNachweisWohnen[0]}</span>&nbsp;inkl.&nbsp;MwSt.</div>
<hr class="trenner">
<div>GEG-Nachweis Gewerbe</div>

View File

@@ -4,8 +4,7 @@
</script>
<div class="absolute border-x-[1px] border-t-[1px] border-black/25 px-2 top-[-1.275rem] left-[0rem] text-[0.8rem] rounded-t-sm font-sans">{title}</div>
<div class="absolute bg-white sm:bg-gray-500/10 border-x-[1px] border-t-[1px] border-black/25 px-2 top-[-1.275rem] left-[0rem] text-[0.8rem] rounded-t-sm font-sans">{title}</div>
<style lang="postcss">

View File

@@ -307,7 +307,7 @@ threeBOX = ((ausnahme === true) && (gebaeudetyp === "Mischgebäude") && (twoBo
>
<WidgetCardTemplate
name="GEG-Nachweis Wohngebäude"
price=500
price={PRICES.GEGNachweisWohnen[0]}
src="/images/widget/wohngebaeude.svg"
alt="Gewerbe Bedarfsausweis"
variant="Bauvorlage"
@@ -336,7 +336,7 @@ threeBOX = ((ausnahme === true) && (gebaeudetyp === "Mischgebäude") && (twoBo
>
<WidgetCardTemplate
name="GEG-Nachweis Gewerbegebäude"
price=800
price={PRICES.GEGNachweisGewerbe[0]}
src="/images/widget/gewerbegebaeude.svg"
alt="Gewerbe Bedarfsausweis"
variant="Bauvorlage"

View File

@@ -312,7 +312,7 @@ threeBOX = ((ausnahme === true) && (gebaeudetyp === "Mischgebäude") && (twoBo
>
<WidgetCardTemplate
name="GEG-Nachweis Wohngebäude"
price=500
price={PRICES.GEGNachweisWohnen[0]}
src="/images/immowelt/wohngebaeude_immowelt.svg"
alt="Gewerbe Bedarfsausweis"
variant="Bauvorlage"
@@ -341,7 +341,7 @@ threeBOX = ((ausnahme === true) && (gebaeudetyp === "Mischgebäude") && (twoBo
>
<WidgetCardTemplate
name="GEG-Nachweis Gewerbegebäude"
price=800
price={PRICES.GEGNachweisGewerbe[0]}
src="/images/immowelt/gewerbegebaeude_immowelt.svg"
alt="Gewerbe Bedarfsausweis"
variant="Bauvorlage"

View File

@@ -15,10 +15,13 @@ const { title } = Astro.props;
---
<script>
const skala = document.getElementById("skala");
if (!skala?.classList.contains("no-scroll")) {
window.addEventListener("scroll", (event) => {
const skala = document.getElementById("skala");
if (skala?.classList.contains("no-scroll")) {
return;
}
let scroll = window.scrollY;
if (scroll >= 400) {
if (skala) {
@@ -63,7 +66,6 @@ const { title } = Astro.props;
?.classList.remove("2xl:mt-[370px]");
}
});
}
</script>
<html lang="de">

View File

@@ -99,12 +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 (ausweis.brennstoff_1 && ausweis.einheit_1) {
brennstoff_1 = getHeizwertfaktor(ausweis.brennstoff_1, ausweis.einheit_1);
if (aufnahme.brennstoff_1 && ausweis.einheit_1) {
brennstoff_1 = getHeizwertfaktor(aufnahme.brennstoff_1, ausweis.einheit_1);
}
if (ausweis.brennstoff_2 && ausweis.einheit_2) {
brennstoff_2 = getHeizwertfaktor(ausweis.brennstoff_2, ausweis.einheit_2);
if (aufnahme.brennstoff_2 && ausweis.einheit_2) {
brennstoff_2 = getHeizwertfaktor(aufnahme.brennstoff_2, ausweis.einheit_2);
}
let energieVerbrauchGesamt_1 = ((ausweis.verbrauch_1 || 0) + (ausweis.verbrauch_2 || 0) + (ausweis.verbrauch_3 || 0)) * brennstoff_1?.umrechnungsfaktor;
@@ -136,7 +137,7 @@ export async function endEnergieVerbrauchVerbrauchsausweisGewerbe_2016(ausweis:
}
let kuehlungsZuschlag_1: number = 0, kuehlungsZuschlag_2: number = 0;
if (ausweis.wird_gekuehlt) {
if (aufnahme.kuehlung) {
kuehlungsZuschlag_1 = energieVerbrauchGesamt_1 * ((ausweis.anteil_kuehlung_1 || 0) / 100);
kuehlungsZuschlag_2 = energieVerbrauchGesamt_2 * ((ausweis.anteil_kuehlung_2 || 0) / 100);
}

View File

@@ -148,7 +148,7 @@ export async function endEnergieVerbrauchVerbrauchsausweis_2016(
energieVerbrauchHeizung_2 * durchschnittsKlimafaktor;
let kuehlungsZuschlag = 0;
if (ausweis.wird_gekuehlt) {
if (aufnahme.kuehlung) {
kuehlungsZuschlag = 6 * 3 * energetischeNutzflaeche;
}

View File

@@ -39,7 +39,7 @@ export function verbrauchsausweisWohnenCalculateFormProgress(ausweis: Verbrauchs
title: "Fehlendes Baujahr",
description: "Eines ihrer Gebäude hat noch kein Baujahr angegeben. Beheben sie dies indem sie auf den untenstehenden Link klicken.",
severity: "warning",
resolvehref: `/energieausweis-erstellen/verbrauchsausweis-wohnen?uid=${ausweis.uid}`
resolvehref: `/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid=${ausweis.uid}`
});
}

View File

@@ -16,7 +16,7 @@ export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnenClient | Verbrau
let Keller = aufnahme.keller;
let Kellerdecke_Kalraeume_gedaemmt = aufnahme.keller_decke_gedaemmt;
let Brennwertkessel = aufnahme.brennwert_kessel;
let baujahr_anlagesanlage = aufnahme.baujahr_heizung[0];
let baujahr_anlagesanlage = aufnahme.baujahr_heizung && aufnahme.baujahr_heizung[0];
let Zentralheizung = aufnahme.zentralheizung;
let photovoltaik = aufnahme.photovoltaik;
let Brennstoff = aufnahme.brennstoff_1;

View File

@@ -24,13 +24,33 @@ export enum VALID_UUID_PREFIXES {
/**
* Ein Objekt welches alle definierten Preise für unsere Basisprodukte enthält.
*/
export const PRICES: Record<Enums.Ausweisart, [number, number, number]> = {
export const PRICES: Record<Enums.Ausweisart, Record<Enums.AusweisTyp, number>> = {
// per E-Mail , inkl.Beratung, offline
BedarfsausweisWohnen: [95, 125, 295],
VerbrauchsausweisWohnen: [65, 95, 180],
VerbrauchsausweisGewerbe: [95, 125, 360],
BedarfsausweisGewerbe: [500, 700, 1000],
GEGNachweisWohnen: [500, 500, 500]
BedarfsausweisWohnen: {
[Enums.AusweisTyp.Standard]: 95,
[Enums.AusweisTyp.Beratung]: 125,
[Enums.AusweisTyp.Offline]: 295
},
VerbrauchsausweisWohnen: {
[Enums.AusweisTyp.Standard]: 65,
[Enums.AusweisTyp.Beratung]: 95,
[Enums.AusweisTyp.Offline]: 180
},
VerbrauchsausweisGewerbe: {
[Enums.AusweisTyp.Standard]: 95,
[Enums.AusweisTyp.Beratung]: 125,
[Enums.AusweisTyp.Offline]: 360
},
BedarfsausweisGewerbe: {
[Enums.AusweisTyp.Standard]: 500,
[Enums.AusweisTyp.Beratung]: 700,
[Enums.AusweisTyp.Offline]: 1000
},
GEGNachweisWohnen: {
[Enums.AusweisTyp.Standard]: 500,
[Enums.AusweisTyp.Beratung]: 700,
[Enums.AusweisTyp.Offline]: 1000
}
};
export const SERVICES: Record<

View File

@@ -1,18 +1,23 @@
export function openWindowWithPost(url: string, data: Record<string, any>) {
var form = document.createElement("form");
form.target = "_blank";
form.method = "POST";
form.action = url;
form.style.display = "none";
export function openWindowWithPost(url: string, data: Record<string, any>, target = "_blank") {
const form = document.createElement("form");
form.target = target;
form.method = "POST";
form.action = url;
form.style.display = "none";
for (var key in data) {
var input = document.createElement("input");
input.type = "hidden";
input.name = key;
input.value = data[key];
form.appendChild(input);
}
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
const createInput = (name: string, value: any) => {
const input = document.createElement("input");
input.type = "hidden";
input.name = name;
input.value = JSON.stringify(value);
return input;
};
Object.entries(data).forEach(([key, value]) => {
form.appendChild(createInput(key, value));
});
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}

View File

@@ -0,0 +1,79 @@
import { PDFPage, PDFFont, rgb, RGB, PDFImage } from 'pdf-lib';
import { PDFElement, Size } from './PDFElement.js';
import { Margin, Padding } from './Layout.js';
import * as fs from "fs"
export interface ImageOptions {
margin?: Margin,
width?: number,
height?: number,
src?: string,
data?: string
}
export class Image extends PDFElement {
private options: ImageOptions
protected _width: number;
protected _height: number;
public margin: Margin
constructor(options: ImageOptions) {
super();
this._width = options.width || 0;
this._height = options.height || 0;
this.options = options;
this.margin = this.options.margin || { top: 0, left: 0, right: 0, bottom: 0}
}
addChild(...children: PDFElement[]): void {
throw new Error("Cannot add child element to Image")
}
get height() {
return this._height;
}
get width() {
return this._width;
}
async draw(page: PDFPage, x: number, y: number) {
let embed: PDFImage;
if (this.options.src) {
const img = fs.readFileSync(this.options.src)
if (this.options.src.split(".").pop() === "png") {
embed = await page.doc.embedPng(img)
} else {
embed = await page.doc.embedJpg(img)
}
} else if (this.options.data) {
embed = await page.doc.embedJpg(this.options.data)
} else {
return
}
if (this._height === 0) {
if (this._width) {
this._height = embed.height * (this._width / embed.width)
}
}
if (this._width === 0) {
if (this._height) {
this._width = embed.width * (this._height / embed.height)
}
}
page.drawImage(embed, {
x: x + this.margin.left + this.padding.left,
y: y - this.height - this.margin.top - this.padding.top,
height: this.height,
width: this.width,
})
}
}

View File

@@ -2,6 +2,7 @@ import * as txml from "#lib/helpers/txml.js"
import { PDFDocument, PDFFont, rgb, StandardFonts } from "pdf-lib"
import { Checkbox, Flex, Text } from "./index.js"
import { Layout } from "./Layout.js"
import { Image } from "./Image.js"
import { PDFElement } from "./PDFElement.js"
export function xml2pdf(xml: string, fonts: Record<string, PDFFont> & { "default": PDFFont }) {
@@ -90,6 +91,21 @@ export function xml2pdf(xml: string, fonts: Record<string, PDFFont> & { "default
iterateChildren(child.children, layout)
parent.addChild(layout)
} else if (child.tagName === "img") {
const image = new Image({
width: parseFloat(child.attributes.width),
height: parseFloat(child.attributes.height),
margin: {
bottom: parseFloat(child.attributes.marginBottom) || 0,
left: parseFloat(child.attributes.marginLeft) || 0,
right: parseFloat(child.attributes.marginRight) || 0,
top: parseFloat(child.attributes.marginTop) || 0,
},
src: child.attributes.src,
data: child.attributes.data
})
parent.addChild(image)
}
}
}

View File

@@ -1,4 +1,4 @@
import { AufnahmeClient, BenutzerClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
import * as fs from "fs"
import { PDFDocument, rgb, StandardFonts, TextAlignment } from "pdf-lib";
@@ -6,12 +6,16 @@ import { xml2pdf } from "./elements/xml2pdf.js";
import moment from "moment";
import { Heizungsstatus } from "@ibcornelsen/database/server";
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
import { fileURLToPath } from "url";
import { copyPage } from "./utils/copyPage.js";
/* -------------------------------- Pdf Tools ------------------------------- */
export async function pdfDatenblattVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, benutzer: BenutzerClient) {
export async function pdfDatenblattVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, benutzer: BenutzerClient, bilder: UploadedGebaeudeBild[]) {
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("./templates/Leerseite_Datenblatt.pdf", import.meta.url), "base64");
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
const page3 = copyPage(pdf.getPages()[0]);
pdf.addPage(page3);
const pages = pdf.getPages()
// const template = VerbrauchsausweisWohnen2016Template as Template;
@@ -135,7 +139,7 @@ export async function pdfDatenblattVerbrauchsausweisGewerbe(ausweis: Verbrauchsa
</flex>
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
<text size="12" lineHeight="14">Anlage zur Kühlung:</text>
<text size="12" lineHeight="14">${ausweis.wird_gekuehlt ? "Ja" : "Nein"}</text>
<text size="12" lineHeight="14">${aufnahme.kuehlung ? "Ja" : "Nein"}</text>
</flex>
<flex direction="row" align="center" justify="space-between" width="${(innerWidth) / 2 - 7.5}">
<text size="12" lineHeight="14">Leerstand:</text>
@@ -348,8 +352,39 @@ export async function pdfDatenblattVerbrauchsausweisGewerbe(ausweis: Verbrauchsa
bold
})
layout.draw(pages[0], 0, pages[0].getHeight())
layoutPage2.draw(pages[1], 0, pages[1].getHeight())
const images: string[][] = []
for (const bild of bilder) {
let badge: string[];
let image: string = "";
if (bild.uid) {
image = `<img src="${fileURLToPath(new URL(`../../../../persistent/images/${bilder[0].uid}.webp`, import.meta.url))}" width="${(pages[2].getHeight() - 120) / 3.1}" />`
} else if (bild.data) {
image = `<img data="${bild.data}" width="${(pages[2].getWidth() - 120) / 3.1}" height="180" />`
}
if (images.length > 0) {
let badge = images[images.length - 1]
if (badge.length == 3) {
badge = [image]
images.push(badge)
} else {
badge.push(image)
}
} else {
badge = [image]
images.push(badge)
}
}
const layoutPage3 = xml2pdf(`<layout height="${pages[2].getHeight()}" width="${pages[2].getWidth()}" marginTop="150" marginLeft="60" marginRight="60">
${images.map(badge => `<flex direction="row" justify="space-between" width="${pages[2].getWidth() - 120}" height="180" marginTop="15">${badge.join("")}</flex>`).join("")}
</layout>`, { "default": font })
layout.draw(pages[0], 0, pages[0].getHeight())
layoutPage2.draw(pages[1], 0, pages[1].getHeight())
layoutPage3.draw(pages[2], 0, pages[2].getHeight())
// const containerWidth = width - marginX;

View File

@@ -1,19 +1,24 @@
import { AufnahmeClient, BenutzerClient, ObjektClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
import * as fs from "fs"
import { PDFDocument, rgb, StandardFonts, TextAlignment } from "pdf-lib";
import { checkbox, flex, text } from "./elements/index.js";
import { xml2pdf } from "./elements/xml2pdf.js";
import moment from "moment";
import { Heizungsstatus } from "@ibcornelsen/database/server";
import { BilderKategorie, Heizungsstatus } from "@ibcornelsen/database/server";
import { fileURLToPath } from "url";
import { copyPage } from "./utils/copyPage.js";
/* -------------------------------- Pdf Tools ------------------------------- */
export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient, benutzer: BenutzerClient) {
export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient, benutzer: BenutzerClient, bilder: UploadedGebaeudeBild[]) {
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("./templates/Leerseite_Datenblatt.pdf", import.meta.url), "base64");
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
const page3 = copyPage(pdf.getPages()[0]);
pdf.addPage(page3);
const pages = pdf.getPages()
// const template = VerbrauchsausweisWohnen2016Template as Template;
const berechnungen = await endEnergieVerbrauchVerbrauchsausweis_2016(ausweis, aufnahme, objekt);
@@ -290,8 +295,46 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
bold
})
const images: string[][] = []
let individualHeight = (pages[2].getHeight() - 370) / 4;
const sortedImages = bilder.reduce((acc, c) => {
let img: string;
if (c.uid) {
img = `<img src="${fileURLToPath(new URL(`../../../../persistent/images/${bilder[0].uid}.webp`, import.meta.url))}" width="${(pages[2].getHeight() - 120) / 4.1}" height="${individualHeight}" />`
} else {
img = `<img data="${c.data}" width="${(pages[2].getWidth() - 120) / 4.1}" height="${individualHeight}" />`
}
if (c.kategorie in acc) {
acc[c.kategorie].push(img)
} else {
acc[c.kategorie] = [img];
}
return acc;
}, {} as Record<BilderKategorie, string[]>)
let text = ""
for (const [kategorie, images] of Object.entries(sortedImages)) {
text += `<flex direction="column" gap="4" width="${pages[2].getWidth() - 120}" height="${individualHeight}" marginTop="25">
<text font="bold" size="14">${kategorie}</text>
<flex direction="row" justify="space-between" width="${pages[2].getWidth() - 120}" height="${individualHeight}">
${images.join("")}
</flex>
</flex>`
}
const layoutPage3 = xml2pdf(`<layout height="${pages[2].getHeight()}" width="${pages[2].getWidth()}" marginTop="150" marginLeft="60" marginRight="60">
${text}
</layout>`, { "default": font, bold })
layout.draw(pages[0], 0, pages[0].getHeight())
layoutPage2.draw(pages[1], 0, pages[1].getHeight())
layoutPage3.draw(pages[2], 0, pages[2].getHeight())
// const containerWidth = width - marginX;

View File

@@ -29,23 +29,6 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
const form = pdf.getForm()
form.updateFieldAppearances(font)
const fillFormField = (name: string, value: string, fontSize: number = 8, alignment: TextAlignment = TextAlignment.Left) => {
const field = form.getTextField(name)
field.setFontSize(fontSize)
field.setText(value)
field.setAlignment(alignment)
}
const toggleCheck = (name: string, checked: boolean = true) => {
const field = form.getCheckBox(name)
if (checked) {
field.check()
} else {
field.uncheck()
}
}
pages[0].drawText(aufnahme.gebaeudetyp || "", {
x: 211,
y: height - 166,
@@ -132,7 +115,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
}
// Kühlung
if (ausweis.wird_gekuehlt) {
if (aufnahme.kuehlung) {
addCheckMark(pages[0], 213, height - 362.5)
} else {
addCheckMark(pages[0], 355, height - 373.5)
@@ -159,9 +142,9 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
if (gebaeudeBild) {
let image: PDFImage;
try {
image = await pdf.embedJpg(gebaeudeBild?.base64)
image = await pdf.embedJpg(gebaeudeBild?.data)
} catch(e) {
image = await pdf.embedPng(gebaeudeBild?.base64)
image = await pdf.embedPng(gebaeudeBild?.data)
}
pages[0].drawImage(image, {
x: 460.5,
@@ -342,8 +325,8 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
addCheckMark(pages[2], 492, height - 456)
}
addText(pages[2], berechnungen?.primaerEnergieVerbrauchGesamt.toString() || "", 475, height - 614, 10, font)
addText(pages[2], berechnungen?.co2EmissionenGesamt.toString() || "", 475, height - 633, 10, font)
addText(pages[2], berechnungen?.primaerEnergieVerbrauchGesamt.toString() || "", 475, height - 637, 10, font)
addText(pages[2], berechnungen?.co2EmissionenGesamt.toString() || "", 475, height - 656, 10, font)
// const primaerenergiebedarfIst = fillFormField("primaerenergiebedarf_ist", berechnungen?.primaerEnergieVerbrauchGesamt.toString())
@@ -478,6 +461,73 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
);
}
// TODO
// if (!ausweis.warmwasser_enthalten) {
// /**
// * Dezentrale Warmwasserversorgung - Pauschale Erhöhung um 20kWh/m²
// * @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"),
// "Warmwasserzuschlag",
// berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
// Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
// Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
// 0,
// "0"
// );
// }
// if (aufnahme.leerstand && aufnahme.leerstand > 0) {
// /**
// * Leerstandszuschlag
// * @link https://www.bundesanzeiger.de/pub/publication/MRYM4nI84Sdlr0EIvvW?2
// */
// if (ausweis.warmwasser_enthalten && ausweis.warmwasser_anteil_bekannt) {
// addVerbrauch(
// moment(ausweis.startdatum).format("MM.YYYY"),
// moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
// "Leerstandszuschlag",
// berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
// Math.round((berechnungen?.leerstandsZuschlagHeizung || 0) + (berechnungen?.leerstandsZuschlagWarmwasser || 0)).toString(),
// Math.round((berechnungen?.leerstandsZuschlagWarmwasser || 0)).toString(),
// Math.round((berechnungen?.leerstandsZuschlagHeizung || 0)),
// berechnungen?.durchschnittsKlimafaktor.toString()
// );
// } else {
// addVerbrauch(
// moment(ausweis.startdatum).format("MM.YYYY"),
// moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
// "Leerstandszuschlag",
// berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
// Math.round((berechnungen?.leerstandsZuschlagHeizung || 0) + (berechnungen?.leerstandsZuschlagWarmwasser || 0)).toString(),
// "0",
// 0,
// berechnungen?.durchschnittsKlimafaktor.toString()
// );
// }
// }
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",
berechnungen?.primaerfaktorww.toString(),
Math.round(berechnungen?.kuehlungsZuschlag || 0).toString(),
"0",
"0",
""
);
}
/* -------------------------------- Seite 4 -------------------------------- */
const splitToSize = (text: string, size: number, font: PDFFont, fontSize: number) => {

View File

@@ -86,9 +86,9 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
if (gebaeudeBild) {
let image: PDFImage;
try {
image = await pdf.embedJpg(gebaeudeBild?.base64)
image = await pdf.embedJpg(gebaeudeBild?.data)
} catch(e) {
image = await pdf.embedPng(gebaeudeBild?.base64)
image = await pdf.embedPng(gebaeudeBild?.data)
}
pages[0].drawImage(image, {
x: 460.5,
@@ -147,6 +147,35 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
height: 50
})
const erneuerbareEnergienVerwendung = []
if (ausweis.alternative_heizung) {
erneuerbareEnergienVerwendung.push("Heizung")
}
if (ausweis.alternative_kuehlung) {
erneuerbareEnergienVerwendung.push("Kühlung")
}
if (ausweis.alternative_lueftung) {
erneuerbareEnergienVerwendung.push("Lüftung")
}
if (ausweis.alternative_warmwasser) {
erneuerbareEnergienVerwendung.push("Warmwasser")
}
pages[0].drawText(erneuerbareEnergienVerwendung.join(", "), {
x: 358,
y: height - 337,
size: 8
})
// Kühlung
if (aufnahme.kuehlung) {
addCheckMark(pages[0], 354, height - 376.5)
}
/* -------------------------------- Seite 2 -------------------------------- */
@@ -439,12 +468,12 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
"Leerstandszuschlag",
"Kühlungszuschlag",
berechnungen?.primaerfaktorww.toString(),
Math.round(berechnungen?.kuehlungsZuschlag || 0).toString(),
"0",
"0",
"1.8"
""
);
}

View File

@@ -0,0 +1,12 @@
import { PDFPage, PDFName } from "pdf-lib";
export function copyPage(originalPage: PDFPage) {
const cloneNode = originalPage.node.clone();
const { Contents } = originalPage.node.normalizedEntries();
if (Contents) cloneNode.set(PDFName.of('Contents'), Contents.clone());
const cloneRef = originalPage.doc.context.register(cloneNode);
const clonePage = PDFPage.of(cloneNode, cloneRef, originalPage.doc);
return clonePage;
}

View File

@@ -1,4 +1,8 @@
import { getAusweisartFromUUID } from "#components/Ausweis/types.js";
import { AufnahmeClient, BedarfsausweisWohnenClient, BenutzerClient, BildClient, getAusweisartFromUUID, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { pdfDatenblattVerbrauchsausweisGewerbe } from "#lib/pdf/pdfDatenblattVerbrauchsausweisGewerbe.js";
import { pdfDatenblattVerbrauchsausweisWohnen } from "#lib/pdf/pdfDatenblattVerbrauchsausweisWohnen.js";
import { pdfVerbrauchsausweisGewerbe } from "#lib/pdf/pdfVerbrauchsausweisGewerbe.js";
import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen.js";
import { Enums, prisma } from "@ibcornelsen/database/server";
/**
@@ -16,3 +20,39 @@ export function getPrismaAusweisAdapter(uid: string) {
return prisma.bedarfsausweisWohnen
}
}
/**
* Gibt den richtigen Ansichtsausweis basierend auf der Ausweisart zurück.
* @param ausweis
*/
export async function getAnsichtsausweis(ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: BildClient[], user: BenutzerClient, ausweisart = getAusweisartFromUUID(ausweis.uid)) {
if (!ausweisart) {
return null
}
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
return await pdfVerbrauchsausweisWohnen(ausweis, aufnahme, objekt, bilder, user)
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
return await pdfVerbrauchsausweisGewerbe(ausweis, aufnahme, objekt, bilder, user)
}
return null
}
/**
* Gibt das richtige Datenblatt basierend auf der Ausweisart zurück.
* @param ausweis
*/
export async function getDatenblatt(ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: BildClient[], user: BenutzerClient, ausweisart = getAusweisartFromUUID(ausweis.uid)) {
if (!ausweisart) {
return null
}
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
return await pdfDatenblattVerbrauchsausweisWohnen(ausweis, aufnahme, objekt, bilder, user)
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
return await pdfDatenblattVerbrauchsausweisGewerbe(ausweis, aufnahme, objekt, bilder, user)
}
return null
}

View File

@@ -0,0 +1,122 @@
import { getAusweisartFromUUID } from "#components/Ausweis/types.js";
import { BASE_URI } from "#lib/constants.js";
import { transport } from "#lib/mail.js";
import {
Benutzer,
Enums,
Rechnung,
VerbrauchsausweisWohnen,
} from "@ibcornelsen/database/client";
import { prisma } from "@ibcornelsen/database/server";
import { getAnsichtsausweis } from "../ausweis.js";
export async function sendInvoiceMail(
ausweis: VerbrauchsausweisWohnen,
rechnung: Rechnung,
user: Benutzer
) {
console.log(ausweis);
const aufnahme = await prisma.aufnahme.findUnique({
where: {
id: ausweis.aufnahme_id,
},
include: {
objekt: true,
bilder: true,
},
});
if (!aufnahme) {
return;
}
const ausweisart = getAusweisartFromUUID(ausweis.uid);
const attachments: any[] = [];
if (ausweisart != Enums.Ausweisart.BedarfsausweisWohnen) {
const ansichtsausweis = await getAnsichtsausweis(
ausweis,
aufnahme,
aufnahme.objekt,
aufnahme.bilder,
user,
ausweisart
);
if (ansichtsausweis) {
attachments.push([
{
filename: "Ansichtsausweis.pdf",
encoding: "binary",
content: Buffer.from(ansichtsausweis),
contentType: "application/pdf",
contentDisposition: "attachment",
},
]);
}
}
await transport.sendMail({
attachments,
from: `"IBCornelsen" <info@online-energieausweis.org>`,
to: user.email,
subject: `Bestellbestätigung vom IBCornelsen (ID: ${ausweis.uid})`,
cc: {
address: rechnung.email || "",
name: rechnung.empfaenger || "",
},
bcc: "info@online-energieausweis.org",
html: `<p>Sehr geehrte*r ${user.vorname} ${user.name},</p>
<p>im Anhang finden Sie Ihren geprüften Energieusweis inkl. Rechnung als PDF-Datei. Nachfolgend finden Sie unsere Bankverbindung. Bitte geben Sie als Verwendungszweck die Rechnungsnummer an (siehe unten). Vielen Dank.</p>
<br>
<table>
<tr><td>Kreditinstitut</td><td>:</td><td>\t Commerzbank AG</td>
<tr><td>Empfänger</td><td>:</td><td>\t IB Cornelsen</td>
<tr><td>IBAN</td><td>:<td>\t DE81 2004 0000 0348 6008 00</td>
<tr><td>BIC</td><td>:</td><td>\t COBADEFFXXX</td>
<tr><td>Betrag</td><td>:</td><td>\t <b>${rechnung.betrag}€</b></td>
<tr><td>Verwendungszweck</td><td>:</td><td>\t <b>${rechnung.uid}</b></td>
</table>
<br>
<p>
Alternativ können Sie auch direkt online zahlen indem Sie auf den entsprechenden Link klicken:
</p>
<br>
<table>
<tr><td>Per Einzuglastschrift zahlen</td> <td>:</td> <td><a href='${BASE_URI}/energieausweis-erstellen/kaufabschluss-fortsetzen?uid=${ausweis.uid}&p=SEPA'>jetzt per ELV bezahlen</a></td></tr>
<tr><td>Per Sofortüberweisung zahlen</td> <td>:</td> <td><a href='${BASE_URI}/energieausweis-erstellen/kaufabschluss-fortsetzen?uid=${ausweis.uid}&p=Sofort'>jetzt per Sofortüberweisung bezahlen</a></td></tr>
<tr><td>Über PayPal zahlen</td> <td>:</td> <td><a href='${BASE_URI}/energieausweis-erstellen/kaufabschluss-fortsetzen?uid=${ausweis.uid}&p=PayPal'>jetzt per Paypal bezahlen</a></td></tr>
<tr><td>Per Giropay zahlen</td> <td>:</td> <td><a href='${BASE_URI}/energieausweis-erstellen/kaufabschluss-fortsetzen?uid=${ausweis.uid}&p=Giropay'>jetzt per Giropay bezahlen</a></td></tr>
<tr><td>Per Visa oder MasterCard zahlen</td> <td>:</td> <td><a href='${BASE_URI}/energieausweis-erstellen/kaufabschluss-fortsetzen?uid=${ausweis.uid}&p=Kreditkarte'>jetzt per Kreditkarte bezahlen</a></td></tr>
</table>
<br>
<p>
Mit freundlichen Grüßen,
<br>
Dipl.-Ing. Jens Cornelsen
<br>
<br>
<strong>IB Cornelsen</strong>
<br>
Katendeich 5A
<br>
21035 Hamburg
<br>
www.online-energieausweis.org
<br>
<br>
fon 040 · 209339850
<br>
fax 040 · 209339859
</p>`,
});
}

View File

@@ -0,0 +1,100 @@
import { getAusweisartFromUUID } from "#components/Ausweis/types.js";
import { transport } from "#lib/mail.js";
import {
Benutzer,
Enums,
Rechnung,
VerbrauchsausweisWohnen,
} from "@ibcornelsen/database/client";
import { prisma } from "@ibcornelsen/database/server";
import { getAnsichtsausweis } from "../ausweis.js";
export async function sendPaymentSuccessMail(
ausweis: VerbrauchsausweisWohnen,
rechnung: Rechnung,
user: Benutzer
) {
const aufnahme = await prisma.aufnahme.findUnique({
where: {
id: ausweis.aufnahme_id,
},
include: {
objekt: true,
bilder: true,
},
});
if (!aufnahme) {
return;
}
let info: string = "";
const ausweisart = getAusweisartFromUUID(ausweis.uid);
const attachments: any[] = [];
if (ausweisart != Enums.Ausweisart.BedarfsausweisWohnen) {
const ansichtsausweis = await getAnsichtsausweis(
ausweis,
aufnahme,
aufnahme.objekt,
aufnahme.bilder,
user,
ausweisart
);
if (ansichtsausweis) {
attachments.push([
{
filename: "Ansichtsausweis.pdf",
encoding: "binary",
content: Buffer.from(ansichtsausweis),
contentType: "application/pdf",
contentDisposition: "attachment",
},
]);
}
info =
"In der Regel erhalten Sie Ihren geprüften Ausweis innerhalb von 24 Stunden.";
} else {
info =
"Die Erstellung des Bedarfsausweises dauert momentan leider etwas länger. Bitte kontaktieren Sie uns in dringenden Fällen telefonisch (9 - 12 Uhr).";
}
await transport.sendMail({
attachments,
from: `"IBCornelsen" <info@online-energieausweis.org>`,
to: user.email,
subject: `Bestellbestätigung vom IBCornelsen (ID: ${ausweis.uid})`,
cc: {
address: rechnung.email || "",
name: rechnung.empfaenger || "",
},
bcc: "info@online-energieausweis.org",
html: `<p>Sehr geehrte/r ${user.name},
<br>
<br>
vielen Dank für ihre Bestellung. Wir werden Ihnen Originalausweis und Rechnung nach Prüfung zuschicken. ${info} Die Ausstellung erfolgt nach aktuellem GEG und Ihr Ausweis wird beim DIBT registriert.<br><br>
Den Rechnungsbetrag haben Sie bereits bezahlt. Vielen Dank.</p>
<p>
Mit freundlichen Grüßen,
<br>
Dipl.-Ing. Jens Cornelsen
<br>
<br>
<strong>IB Cornelsen</strong>
<br>
Katendeich 5A
<br>
21035 Hamburg
<br>
www.online-energieausweis.org
<br>
<br>
fon 040 · 209339850
<br>
fax 040 · 209339859
</p>`,
});
}

View File

@@ -62,7 +62,7 @@
{#if ausweise.length == 0}
<div class="">
<h1 class="text-2xl">Es konnten keine Ausweise gefunden werden.</h1>
<p>Erstellen sie einen Verbrauchsausweis für ihr Wohngebäude <a href="/energieausweis-erstellen/verbrauchsausweis-wohnen">hier</a></p>
<p>Erstellen sie einen Verbrauchsausweis für ihr Wohngebäude <a href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude">hier</a></p>
</div>
{:else}
{#each ausweise as ausweis, i}

View File

@@ -4,6 +4,8 @@
import EmbeddedRegisterModule from "./EmbeddedRegisterModule.svelte"
export let onLogin: (response: Awaited<ReturnType<typeof loginClient>>) => any;
export let email: string = "";
export let password: string = "";
let route: "login" | "signup" = "login"
@@ -12,16 +14,16 @@
}
const loginData = {
email: "",
email,
passwort: "",
}
</script>
{#if route == "login"}
<EmbeddedLoginModule onLogin={onLogin} data={loginData} {navigate} />
<EmbeddedLoginModule onLogin={onLogin} bind:email bind:password {navigate} />
{:else}
<EmbeddedRegisterModule onRegister={(response) => {
loginData.email = response.email
<EmbeddedRegisterModule bind:email bind:password onRegister={(response) => {
email = response.email
navigate("login")
}} {navigate} />
{/if}

View File

@@ -3,13 +3,14 @@
import { loginClient } from "#lib/login.js";
export let navigate: (target: string) => void;
export let data: { email: string; passwort: string };
export let email: string;
export let password: string;
export let onLogin: (response: Awaited<ReturnType<typeof loginClient>>) => any;
async function login(e: SubmitEvent) {
e.preventDefault()
const response = await loginClient(data.email, data.passwort)
const response = await loginClient(email, password)
if (response === null) {
addNotification({
@@ -35,7 +36,7 @@
type="email"
placeholder="Email"
name="email"
bind:value={data.email}
bind:value={email}
required
/>
</div>
@@ -46,7 +47,7 @@
type="password"
placeholder="********"
name="passwort"
bind:value={data.passwort}
bind:value={password}
required
/>
</div>

View File

@@ -4,8 +4,8 @@
export let navigate: (target: string) => void;
export let onRegister: (response: { email: string, name: string, vorname: string }) => void;
let passwort: string;
let email: string;
export let password: string;
export let email: string;
let vorname: string;
let name: string;
@@ -14,7 +14,7 @@
try {
const response = await api.user.PUT.fetch({
email,
passwort,
passwort: password,
vorname,
name,
});
@@ -82,7 +82,7 @@
placeholder="********"
name="passwort"
class="px-2.5 py-1.5 rounded-lg border bg-gray-50"
bind:value={passwort}
bind:value={password}
required
/>
</div>

View File

@@ -16,7 +16,7 @@
export let ausweis:
| VerbrauchsausweisWohnenClient;
// TODO: überarbeiten und zu inferProcedureOutput machen
let rechnung: RechnungClient = {
let rechnung: Partial<RechnungClient> = {
email: user.email,
empfaenger: user.vorname + " " + user.name,
strasse: user.adresse,
@@ -74,7 +74,7 @@
});
if (selectedPaymentType === Enums.Bezahlmethoden.rechnung) {
window.location.href = `/payment/success?uid=${response.uid}`
window.location.href = `/payment/success?r=${response.uid}&a=${ausweis.uid}`
} else {
window.location.href = response.checkout_url as string;
}

View File

@@ -4,16 +4,19 @@
import Bereich from "#components/labels/Bereich.svelte";
import Ansprechpartner from "#components/Ausweis/Ansprechpartner.svelte";
import Rechnungsadresse from "#components/Ausweis/Rechnungsadresse.svelte";
import Bezahlung from "#components/Ausweis/Bezahlung.svelte";
import type { Bezahlmethoden } from "@ibcornelsen/database/client";
import { Enums } from "@ibcornelsen/database/client";
import { dialogs } from "svelte-dialogs";
import LoginDialog from "#components/LoginDialog.svelte";
import { API_ACCESS_TOKEN_COOKIE_NAME, PRICES } from "#lib/constants.js";
import {
API_ACCESS_TOKEN_COOKIE_NAME,
PRICES,
} from "#lib/constants.js";
import Cookies from "js-cookie";
import {
AufnahmeClient,
BenutzerClient,
BildClient,
getAusweisartFromUUID,
ObjektClient,
RechnungClient,
@@ -21,12 +24,21 @@
} from "#components/Ausweis/types.js";
import { validateAccessTokenClient } from "src/client/lib/validateAccessToken.js";
import { api } from "astro-typesafe-api/client";
import PaymentOption from "#components/PaymentOption.svelte";
import Overlay from "#components/Overlay.svelte";
import EmbeddedAuthFlowModule from "./EmbeddedAuthFlowModule.svelte";
import { ausweisSpeichern } from "#client/lib/ausweisSpeichern.js";
import { addNotification } from "#components/Notifications/shared.js";
import NotificationWrapper from "#components/Notifications/NotificationWrapper.svelte";
export let user: BenutzerClient;
export let user: Partial<BenutzerClient>;
export let ausweis: VerbrauchsausweisWohnenClient;
export let aufnahme: AufnahmeClient;
export let objekt: ObjektClient;
export let bilder: BildClient[];
export let ausweisart: Enums.Ausweisart;
export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal;
export let ausweistyp: Enums.AusweisTyp = Enums.AusweisTyp.Standard;
let rechnung: Partial<RechnungClient> = {
email: user.email,
@@ -39,9 +51,14 @@
versand_plz: user.plz,
versand_ort: user.ort,
telefon: user.telefon,
}
};
let services: { name: string, id: Enums.Service, price: number, selected: boolean }[] = [
let services: {
name: string;
id: Enums.Service;
price: number;
selected: boolean;
}[] = [
{
name: "Qualitätsdruck per Post (zusätzlich zur PDF Version)",
id: Enums.Service.Qualitaetsdruck,
@@ -68,12 +85,9 @@
},
];
export let bezahlmethode: Bezahlmethoden =
Enums.Bezahlmethoden.paypal;
let prices = PRICES[ausweisart];
let basePrice: number = prices[0];
let basePrice: number = prices[ausweistyp];
$: price =
basePrice +
@@ -83,12 +97,21 @@
);
const zurueck = {
[Enums.Ausweisart.VerbrauchsausweisWohnen]: `/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid=${ausweis.uid}`,
[Enums.Ausweisart.VerbrauchsausweisGewerbe]: `/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid=${ausweis.uid}`,
[Enums.Ausweisart.BedarfsausweisWohnen]: `/energieausweis-erstellen/bedarfsausweis-wohnen?uid=${ausweis.uid}`,
[Enums.Ausweisart.BedarfsausweisGewerbe]: `/energieausweis-erstellen/bedarfsausweis-gewerbe?uid=${ausweis.uid}`,
[Enums.Ausweisart.GEGNachweisWohnen]: `/angebot-anfragen/geg-nachweis-wohnen-anfragen?uid=${ausweis.uid}`,
}[ausweisart]
[Enums.Ausweisart.VerbrauchsausweisWohnen]:
`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid=${ausweis.uid}`,
[Enums.Ausweisart.VerbrauchsausweisGewerbe]:
`/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid=${ausweis.uid}`,
[Enums.Ausweisart.BedarfsausweisWohnen]:
`/energieausweis-erstellen/bedarfsausweis-wohnen?uid=${ausweis.uid}`,
[Enums.Ausweisart.BedarfsausweisGewerbe]:
`/energieausweis-erstellen/bedarfsausweis-gewerbe?uid=${ausweis.uid}`,
[Enums.Ausweisart.GEGNachweisWohnen]:
`/angebot-anfragen/geg-nachweis-wohnen-anfragen?uid=${ausweis.uid}`,
[Enums.Ausweisart.GEGNachweisGewerbe]:
`/angebot-anfragen/geg-nachweis-gewerbe-anfragen?uid=${ausweis.uid}`,
[Enums.Ausweisart.GEGNachweisBedarfsausweis]:
`/angebot-anfragen/bedarfsausweis-gewerbe-anfragen?uid=${ausweis.uid}`,
}[ausweisart];
async function speichern(e: SubmitEvent) {
e.preventDefault();
@@ -109,6 +132,7 @@
// uid: ausweis.uid,
// });
localStorage.clear();
window.location.href = `/kaufabschluss?uid=${ausweis.uid}`;
}
@@ -117,40 +141,75 @@
}
async function bestellen() {
const ausweisart = getAusweisartFromUUID(ausweis.uid) as Enums.Ausweisart;
try {
const { uid, checkout_url } = await api.rechnung.PUT.fetch({
ausweisart,
bezahlmethode,
services: services.filter(service => service.selected).map(service => service.id),
email: rechnung.email,
empfaenger: rechnung.empfaenger,
strasse: rechnung.strasse,
plz: rechnung.plz,
ort: rechnung.ort,
versand_empfaenger: rechnung.versand_empfaenger,
versand_strasse: rechnung.versand_strasse,
versand_plz: rechnung.versand_plz,
versand_ort: rechnung.versand_ort,
telefon: rechnung.telefon,
ausweis_uid: ausweis.uid
}, {
headers: {
Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
}
if (!form.checkValidity()) {
addNotification({
dismissable: true,
message: "Fehlende Daten.",
subtext: "Nicht alle notwendigen Felder sind ausgefüllt, bitte füllen sie diese aus bevor sie es erneut versuchen.."
})
if (bezahlmethode === Enums.Bezahlmethoden.rechnung) {
window.location.href = `/payment/success?uid=${uid}`
form.reportValidity();
return;
}
if (!await validateAccessTokenClient()) {
loginAction = bestellen
rechnung = rechnung
loginOverlayHidden = false;
return
}
loginOverlayHidden = true
const result = await ausweisSpeichern(ausweis, objekt, aufnahme, bilder, ausweisart)
if (result === null) {
addNotification({
dismissable: true,
message: "Ups... Das hat nicht geklappt.",
subtext: "Der Ausweis konnte nicht gespeichert werden, bitte versuchen sie es erneut oder kontaktieren sie unseren Support."
})
}
try {
const { uid, checkout_url } = await api.rechnung.PUT.fetch(
{
ausweisart,
bezahlmethode: aktiveBezahlmethode,
services: services
.filter((service) => service.selected)
.map((service) => service.id),
email: rechnung.email,
empfaenger: rechnung.empfaenger,
strasse: rechnung.strasse,
plz: rechnung.plz,
ort: rechnung.ort,
versand_empfaenger: rechnung.versand_empfaenger,
versand_strasse: rechnung.versand_strasse,
versand_plz: rechnung.versand_plz,
versand_ort: rechnung.versand_ort,
telefon: rechnung.telefon,
ausweis_uid: ausweis.uid,
ausweistyp,
},
{
headers: {
Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`,
},
}
);
// Alle alten Ausweisdateien im localStorage löschen.
localStorage.clear();
if (aktiveBezahlmethode === Enums.Bezahlmethoden.rechnung) {
window.location.href = `/payment/success?r=${uid}&a=${ausweis.uid}`;
} else {
window.location.href = checkout_url as string;
}
} catch(e) {
}
} catch (e) {}
}
/**
* TODO
* Ausschlusskriterien: Neubau, Modernisierung
@@ -162,11 +221,30 @@
Fehlende Angaben zum Sanierungsstand (Bei F mindestens 2 Haken), (Bei G mindestens 1 Haken)
*/
let bestellenNichtMoeglich = false;
if (((ausweis.ausstellgrund === "Neubau" || ausweis.ausstellgrund === "Modernisierung") && aufnahme.baujahr_gebaeude[0] < 1978 && aufnahme.saniert === false && aufnahme.einheiten && aufnahme.einheiten > 4) || (new Date().getFullYear() - aufnahme.baujahr_heizung[0] < 3) || (!ausweis.verbrauch_1 || !ausweis.verbrauch_2 || !ausweis.verbrauch_3) || (aufnahme.leerstand && aufnahme.leerstand > 30)) {
bestellenNichtMoeglich = true
if (
((ausweis.ausstellgrund === "Neubau" ||
ausweis.ausstellgrund === "Modernisierung") &&
aufnahme.baujahr_gebaeude[0] < 1978 &&
aufnahme.saniert === false &&
aufnahme.einheiten &&
aufnahme.einheiten > 4) ||
new Date().getFullYear() - aufnahme.baujahr_heizung[0] < 3 ||
!ausweis.verbrauch_1 ||
!ausweis.verbrauch_2 ||
!ausweis.verbrauch_3 ||
(aufnahme.leerstand && aufnahme.leerstand > 30)
) {
bestellenNichtMoeglich = true;
}
const gegAnfrage = (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) || (ausweisart === Enums.Ausweisart.GEGNachweisBedarfsausweis) || (ausweisart === Enums.Ausweisart.GEGNachweisGewerbe)
const gegAnfrage =
ausweisart === Enums.Ausweisart.GEGNachweisWohnen ||
ausweisart === Enums.Ausweisart.GEGNachweisBedarfsausweis ||
ausweisart === Enums.Ausweisart.GEGNachweisGewerbe;
let loginOverlayHidden = true;
let loginAction = () => {};
let form: HTMLFormElement;
</script>
<div
@@ -176,16 +254,19 @@ const gegAnfrage = (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) || (auswe
2xl:grid-cols-2 2xl:gap-x-8
"
>
{#if !gegAnfrage}
<div id="performance-box" class="w-full box relative px-4 order-1 self-stretch grid grid-cols-1">
<PerformanceScore
bind:ausweis
bind:aufnahme={aufnahme}
bind:objekt={objekt}
{ausweisart}
/>
</div>
{/if}
{#if !gegAnfrage}
<div
id="performance-box"
class="w-full box relative px-4 order-1 self-stretch grid grid-cols-1"
>
<PerformanceScore
bind:ausweis
bind:aufnahme
bind:objekt
{ausweisart}
/>
</div>
{/if}
<div
id="progress-box"
@@ -193,17 +274,21 @@ const gegAnfrage = (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) || (auswe
>
<h1 class="text-secondary text-3xl m-0">Energiesausweis erstellen</h1>
<h2 class="text-primary text-xl">
{ausweisart} {prices[0]}
{ausweisart}
{prices[ausweistyp]}
</h2>
{#if gegAnfrage}
<Progressbar active={1} steps={["Gebäudedaten", "Kundendaten", "Bestätigung"]}/>
<Progressbar
active={1}
steps={["Gebäudedaten", "Kundendaten", "Bestätigung"]}
/>
{:else}
<Progressbar active={1}/>
<Progressbar active={1} />
{/if}
</div>
</div>
<div id="formInput-2">
<form id="formInput-2" bind:this={form}>
<div id="formular-box" class="formular-boxen ring-0">
<Bereich
bereich="1"
@@ -213,76 +298,111 @@ const gegAnfrage = (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) || (auswe
>
<Bereich bereich="2" title="Rechnungsadresse">
<Rechnungsadresse bind:user bind:rechnung /></Bereich
<Rechnungsadresse bind:rechnung /></Bereich
>
{#if !gegAnfrage}
<Bereich bereich="3" title="Bezahlmethode">
<Bezahlung bind:selectedPaymentType={bezahlmethode} /></Bereich
>
<div class="grid grid-cols-2 gap-x-6 my-6">
<div class="zusaetze bereich-box bg-white">
<h3>Zusatzleistungen:</h3>
<Bereich bereich="3" title="Bezahlmethode">
<div
id="bezahlung"
class="bereich-box grid
grid-cols-5 justify-around justify-items-center items-center"
>
<PaymentOption
bezahlmethode={Enums.Bezahlmethoden.paypal}
bind:aktiveBezahlmethode
name={"PayPal"}
icon={"/images/paypal.png"}
></PaymentOption>
<PaymentOption
bezahlmethode={Enums.Bezahlmethoden.sofort}
bind:aktiveBezahlmethode
name={"Sofort"}
icon={"/images/sofort.png"}
></PaymentOption>
<PaymentOption
bezahlmethode={Enums.Bezahlmethoden.giropay}
bind:aktiveBezahlmethode
name={"Giropay"}
icon={"/images/giropay.png"}
></PaymentOption>
<PaymentOption
bezahlmethode={Enums.Bezahlmethoden.creditcard}
bind:aktiveBezahlmethode
name={"Kreditkarte"}
icon={"/images/creditcard.png"}
></PaymentOption>
<PaymentOption
bezahlmethode={Enums.Bezahlmethoden.rechnung}
bind:aktiveBezahlmethode
name={"Rechnung"}
icon={"/images/rechnung.png"}
></PaymentOption>
</div></Bereich
>
<div class="grid grid-cols-2 gap-x-6 my-6">
<div class="zusaetze bereich-box bg-white">
<h3>Zusatzleistungen:</h3>
{#each services as service}
<div class="zusatz">
<input
type="checkbox"
bind:checked={service.selected}
/>
<div class="text-right pr-6">
<b>{@html service.price}</b> inkl. Mwst
</div>
<div>{@html service.name}</div>
</div>
{/each}
</div>
<div class=" bereich-box bg-white ring-primary/50 ring-2">
<h3>Kosten:</h3>
<div class="ProduktKostenTabelle">
<div class="zeile betrag">
<div>Netto-Preis Energieausweis</div>
<div>:</div>
<div class="text-right">
<b>{(price * 0.81).toFixed(2) + " €"}</b>
</div>
</div>
<div class="zeile betrag">
<div>Zusatzleistung (Prüfung Mehraufwand)</div>
<div>:</div>
<div class="text-right"><b>0.00 €</b></div>
</div>
<div class="zeile betrag">
<div>19% gesetzl. MwSt.</div>
<div>:</div>
<div class="text-right">
<b>{(price * 0.19).toFixed(2) + " €"}</b>
</div>
</div>
<div class="zeile betrag mt-4">
<div><b>Preis inkl. MwSt.</b></div>
<div>:</div>
<div class="text-right">
<b>{price.toFixed(2) + " €"}</b>
</div>
</div>
<div class="zeile betrag mt-4 items-center">
<div><b>Bezahlmethode</b></div>
<div>:</div>
<div class="justify-self-end">
<img
src="images/{bezahlmethode}.png"
alt={bezahlmethode}
{#each services as service}
<div class="zusatz">
<input
type="checkbox"
bind:checked={service.selected}
/>
<div class="text-right pr-6">
<b>{@html service.price}</b> inkl. Mwst
</div>
<div>{@html service.name}</div>
</div>
{/each}
</div>
<div class=" bereich-box bg-white ring-primary/50 ring-2">
<h3>Kosten:</h3>
<div class="ProduktKostenTabelle">
<div class="zeile betrag">
<div>Netto-Preis Energieausweis</div>
<div>:</div>
<div class="text-right">
<b>{(price * 0.81).toFixed(2) + " €"}</b>
</div>
</div>
<div class="zeile betrag">
<div>Zusatzleistung (Prüfung Mehraufwand)</div>
<div>:</div>
<div class="text-right"><b>0.00 €</b></div>
</div>
<div class="zeile betrag">
<div>19% gesetzl. MwSt.</div>
<div>:</div>
<div class="text-right">
<b>{(price * 0.19).toFixed(2) + " €"}</b>
</div>
</div>
<div class="zeile betrag mt-4">
<div><b>Preis inkl. MwSt.</b></div>
<div>:</div>
<div class="text-right">
<b>{price.toFixed(2) + " €"}</b>
</div>
</div>
<div class="zeile betrag mt-4 items-center">
<div><b>Bezahlmethode</b></div>
<div>:</div>
<div class="justify-self-end">
<img
src="images/{aktiveBezahlmethode}.png"
alt={aktiveBezahlmethode}
/>
</div>
</div>
</div>
</div>
</div>
</div>
{/if}
<div
@@ -292,18 +412,37 @@ const gegAnfrage = (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) || (auswe
<div></div>
<button class="button">Speichern</button>
<button class="button" type="button">Speichern</button>
{#if gegAnfrage}
<button class="button cursor-pointer" data-cy="bestellen" on:click={anfordern} >Angebot anfordern</button>
<button
class="button cursor-pointer"
type="button"
data-cy="bestellen"
on:click={anfordern}>Angebot anfordern</button
>
{:else}
<button class="button cursor-pointer" data-cy="bestellen" on:click={bestellen} >Kostenpflichtig bestellen</button>
<button
class="button cursor-pointer"
data-cy="bestellen"
type="button"
on:click={bestellen}>Kostenpflichtig bestellen</button
>
{/if}
</div>
</div>
</div>
<!--
<Overlay bind:hidden={loginOverlayHidden}>
<div class="bg-white w-full max-w-screen-sm py-8">
<EmbeddedAuthFlowModule onLogin={loginAction} email={rechnung.email}></EmbeddedAuthFlowModule>
</div>
</Overlay>
</form>
<NotificationWrapper></NotificationWrapper>
<!--
<div class="bereich-box pr-12 mt-6">
<Pruefung
bereich="A"
@@ -432,8 +571,7 @@ const gegAnfrage = (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) || (auswe
</div>
<ButtonZurueckSpeichernKaufabschluss bind:ausweis bind:aufnahme bind:objekt bind:bilder bind:user /> -->
<!-- <ButtonZurueckSpeichernKaufabschluss bind:ausweis bind:aufnahme bind:objekt bind:bilder bind:user /> -->
<!-- <ButtonZurueckSpeichernKaufabschluss bind:ausweis bind:aufnahme bind:objekt bind:bilder bind:user /> -->
<style lang="postcss">
h3 {

View File

@@ -23,12 +23,40 @@
import moment from "moment";
export let ausweis: VerbrauchsausweisGewerbeClient;
export let user: BenutzerClient = {} as BenutzerClient;
export let objekt: ObjektClient = {} as ObjektClient;
export let aufnahme: AufnahmeClient = {} as AufnahmeClient;
export let bilder: UploadedGebaeudeBild[] = [];
export let user: BenutzerClient;
export let objekt: ObjektClient;
export let aufnahme: AufnahmeClient;
export let bilder: UploadedGebaeudeBild[];
export let ausweisart = Enums.Ausweisart.VerbrauchsausweisGewerbe;
if (Object.keys(ausweis).length === 0) {
const localStorageAusweis = localStorage.getItem("ausweis");
if (localStorageAusweis) {
ausweis = JSON.parse(localStorageAusweis)
}
}
if (Object.keys(aufnahme).length === 0) {
const localStorageAufnahme = localStorage.getItem("aufnahme");
if (localStorageAufnahme) {
aufnahme = JSON.parse(localStorageAufnahme)
}
}
if (Object.keys(objekt).length === 0) {
const localStorageObjekt = localStorage.getItem("objekt");
if (localStorageObjekt) {
objekt = JSON.parse(localStorageObjekt)
}
}
if (Object.keys(bilder).length === 0) {
const localStorageBilder = localStorage.getItem("bilder");
if (localStorageBilder) {
bilder = JSON.parse(localStorageBilder)
}
}
function automatischAusfüllen() {
aufnahme.baujahr_gebaeude = [1952];
aufnahme.baujahr_heizung = [1952];
@@ -62,7 +90,12 @@
ausweis = ausweis;
}
async function spaeterWeitermachen() {
$: {
localStorage.setItem("ausweis", JSON.stringify(ausweis))
localStorage.setItem("aufnahme", JSON.stringify(aufnahme))
localStorage.setItem("objekt", JSON.stringify(objekt))
localStorage.setItem("bilder", JSON.stringify(bilder))
}
</script>
@@ -84,7 +117,7 @@
<div id="progress-box" class="w-full box relative px-4 py-3 text-center order-1 2xl:order-2 self-stretch">
<h1 class="text-secondary text-3xl m-0">Energiesausweis erstellen</h1>
<h2 class="text-primary text-xl">Verbrauchsausweis Gewerbe {PRICES.VerbrauchsausweisGewerbe[0]}</h2>
<h2 class="text-primary text-xl">Verbrauchsausweis Gewerbe {PRICES.VerbrauchsausweisGewerbe[Enums.AusweisTyp.Standard]}</h2>
<Progressbar active={0} />
</div>
@@ -97,7 +130,16 @@
<form id="formInput-1" data-cy="ausweis" name="ausweis">
<div id="formular-box" class="formular-boxen ring-0">
<ButtonSpaeterHilfe {automatischAusfüllen} {spaeterWeitermachen} />
<ButtonWeiterHilfe
bind:ausweis
bind:bilder
bind:user
bind:objekt
bind:aufnahme
ausweisart={Enums.Ausweisart.VerbrauchsausweisWohnen}
showWeiter={false}
>
</ButtonWeiterHilfe>
<!-- A Prüfung der Ausweisart -->
@@ -130,7 +172,6 @@
title="Eingabe von 3 zusammenhängenden Verbrauchsjahren"
>
<StromVerbrauch
bind:objekt
bind:aufnahme
bind:ausweis
/>
@@ -201,7 +242,7 @@
</div>
<ButtonWeiterHilfe {spaeterWeitermachen}
<ButtonWeiterHilfe
bind:ausweis
bind:bilder
bind:user

View File

@@ -51,7 +51,6 @@
AufnahmeClient,
} from "#components/Ausweis/types.js";
import { Enums } from "@ibcornelsen/database/client";
import { onMount } from "svelte";
// TODO: Vom Server sollte ein volles Objekt kommen, dass alle Subobjekte enthält, weil es sonst zu Problemen führen kann
// wenn aufnahme oder objekt nicht existiert...
@@ -82,28 +81,11 @@
}
}
async function spaeterWeitermachen() {
// TODO FIX
// const result = await ausweisSpeichern(
// ausweis,
// objekt,
// aufnahme,
// bilder
// );
// if (result !== null) {
// // Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen.
// // Sonst müsste er alles neu eingeben...
// ausweis.uid = result.uid_ausweis;
// objekt.uid = result.uid_objekt;
// aufnahme.uid = result.uid_aufnahme;
// window.history.pushState(
// {},
// "",
// `${location.pathname}?uid=${result.uid_ausweis}`
// );
// speichernOverlayHidden = false;
// }
if (Object.keys(bilder).length === 0) {
const localStorageBilder = localStorage.getItem("bilder");
if (localStorageBilder) {
bilder = JSON.parse(localStorageBilder)
}
}
function automatischAusfüllen() {
@@ -139,43 +121,14 @@
ausweis = ausweis;
}
async function ausweisAbschicken(e: SubmitEvent) {
// if (e && e.preventDefault) e.preventDefault();
// const result = await ausweisSpeichern(
// ausweis,
// objekt,
// aufnahme,
// bilder
// );
// if (result !== null) {
// // Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen.
// // Sonst müsste er alles neu eingeben...
// ausweis.uid = result.uid_ausweis;
// objekt.uid = result.uid_objekt;
// aufnahme.uid = result.uid_aufnahme;
// window.history.pushState(
// {},
// "",
// `${location.pathname}?uid=${result.uid_ausweis}`
// );
// // window.location.href = `/kundendaten?uid=${result.uid_ausweis}`;
// }
}
let waitOverlayHidden = true;
let speichernOverlayHidden = true;
$: {
if (ausweis.uid && objekt.uid && aufnahme.uid) {
localStorage.setItem(ausweis.uid, JSON.stringify(ausweis))
localStorage.setItem(objekt.uid, JSON.stringify(objekt))
localStorage.setItem(aufnahme.uid, JSON.stringify(aufnahme))
} else {
localStorage.setItem("ausweis", JSON.stringify(ausweis))
localStorage.setItem("aufnahme", JSON.stringify(aufnahme))
localStorage.setItem("objekt", JSON.stringify(objekt))
}
localStorage.setItem("ausweis", JSON.stringify(ausweis))
localStorage.setItem("aufnahme", JSON.stringify(aufnahme))
localStorage.setItem("objekt", JSON.stringify(objekt))
localStorage.setItem("bilder", JSON.stringify(bilder))
}
$: {
@@ -190,7 +143,7 @@
}
}
const ausweisart: Enums.Ausweisart = "VerbrauchsausweisWohnen"
const ausweisart = Enums.Ausweisart.VerbrauchsausweisWohnen
</script>
@@ -211,10 +164,7 @@ const ausweisart: Enums.Ausweisart = "VerbrauchsausweisWohnen"
<div id="skala" class="bg-white grid grid-cols-1 p-4
lg:grid-cols-2 lg:gap-x-6
">
<div id="skala" class="bg-white grid grid-cols-1 p-4 lg:grid-cols-2 lg:gap-x-6">
<div id="performance-box" class="w-full box relative px-4 order-1 self-stretch grid grid-cols-1">
<PerformanceScore
@@ -228,7 +178,7 @@ lg:grid-cols-2 lg:gap-x-6
<div id="progress-box" class="w-full box relative px-4 py-3 text-center order-2 self-stretch">
<h1 class="text-secondary text-3xl m-0">Energieausweis erstellen</h1>
<h2 class="text-primary text-xl">{ausweisart} {PRICES.VerbrauchsausweisWohnen[0]}</h2>
<h2 class="text-primary text-xl">{ausweisart} {PRICES[ausweisart][Enums.AusweisTyp.Standard]}</h2>
<Progressbar active={0}/>
</div>
@@ -236,10 +186,19 @@ lg:grid-cols-2 lg:gap-x-6
<form id="formInput-1" on:submit={ausweisAbschicken} name="ausweis" data-test="ausweis">
<div id="formInput-1" data-test="ausweis">
<div id="formular-box" class="formular-boxen ring-0">
<ButtonSpaeterHilfe {automatischAusfüllen} {spaeterWeitermachen} />
<ButtonWeiterHilfe
bind:ausweis
bind:bilder
bind:user
bind:objekt
bind:aufnahme
ausweisart={Enums.Ausweisart.VerbrauchsausweisWohnen}
showWeiter={false}
>
</ButtonWeiterHilfe>
<!-- A Prüfung der Ausweisart -->
@@ -349,7 +308,7 @@ lg:grid-cols-2 lg:gap-x-6
</form>
</div>
<RawNotificationWrapper class="fixed left-8 bottom-8 max-w-[400px] flex flex-col gap-4 z-50">
{#each Object.entries($notifications) as [uid, notification] (uid)}
@@ -368,7 +327,7 @@ lg:grid-cols-2 lg:gap-x-6
type: "info",
}}
>
Sie benötigen einen Bedarfsausweis. <a href="/bedarfsausweis"
Sie benötigen einen Bedarfsausweis. <a href="/energieausweis-erstellen/bedarfsausweis-erstellen"
>Bitte führen Sie hier Ihre Eingabe für den Bedarfsausweis fort</a
>.
</RawNotification>

View File

@@ -212,7 +212,7 @@
}
}
const ausweisart = Enums.Ausweisart.GEGNachweisVerbrauchsausweisWohnen;
const ausweisart = Enums.Ausweisart.GEGNachweisWohnen;
</script>
<div

View File

@@ -9,6 +9,7 @@ import { fileURLToPath } from "url";
import * as fs from "fs";
import { transport } from "#lib/mail.js";
import { BASE_URI } from "#lib/constants.js";
import { getAnsichtsausweis, getDatenblatt } from "#lib/server/ausweis.js";
export const GET = defineApiRoute({
input: z.object({
@@ -27,9 +28,9 @@ export const GET = defineApiRoute({
include: {
aufnahme: {
include: {
bilder: true,
objekt: {
include: {
bilder: true,
benutzer: true,
},
},
@@ -84,35 +85,35 @@ export const GET = defineApiRoute({
// $ausweis->erledigt = 2;
// $ausweis->save();
const pdfAusweis = await pdfVerbrauchsausweisWohnen(
const pdfAusweis = await getAnsichtsausweis(ausweis, ausweis.aufnahme, ausweis.aufnahme.objekt, ausweis.aufnahme.bilder, ausweis.aufnahme.objekt.benutzer)
const pdfDatenblatt = await getDatenblatt(
ausweis,
ausweis.aufnahme,
ausweis.aufnahme.objekt,
ausweis.aufnahme.bilder,
ausweis.aufnahme.objekt.benutzer
);
const pdfDatenblatt = await pdfDatenblattVerbrauchsausweisWohnen(
ausweis,
ausweis.aufnahme,
ausweis.aufnahme.objekt,
ausweis.aufnahme.objekt.benutzer
);
const pdfAusweisPath = fileURLToPath(
new URL(
`../../../../persistent/generated/Ausweis-${ausweis.uid}.pdf`,
import.meta.url
)
);
const pdfDatenblattPath = fileURLToPath(
new URL(
`../../../../persistent/generated/Datenblatt-${ausweis.uid}.pdf`,
import.meta.url
)
);
if (pdfAusweis) {
const pdfAusweisPath = fileURLToPath(
new URL(
`../../../../persistent/generated/Ausweis-${ausweis.uid}.pdf`,
import.meta.url
)
);
fs.writeFileSync(pdfAusweisPath, pdfAusweis);
}
fs.writeFileSync(pdfAusweisPath, pdfAusweis);
fs.writeFileSync(pdfDatenblattPath, pdfDatenblatt);
if (pdfDatenblatt) {
const pdfDatenblattPath = fileURLToPath(
new URL(
`../../../../persistent/generated/Datenblatt-${ausweis.uid}.pdf`,
import.meta.url
)
);
fs.writeFileSync(pdfDatenblattPath, pdfDatenblatt);
}
let text: string;

View File

@@ -5,86 +5,49 @@ import { z } from "zod";
import isBase64 from "is-base64";
import { fileURLToPath } from "url";
import { writeFileSync } from "fs";
import { UUidWithPrefix } from "#components/Ausweis/types.js";
export const PUT = defineApiRoute({
input: BildSchema.pick({
kategorie: true,
}).merge(z.object({
base64: z.string()
})),
output: z.object({
uid: z.string({ description: "Die UID des Bildes." })
}),
input: z.array(UUidWithPrefix),
output: z.void(),
middleware: authorizationMiddleware,
async fetch(input, ctx, user) {
const base64 = input.base64;
if (!isBase64(base64, { mimeRequired: true })) {
throw new APIError({
code: "BAD_REQUEST",
message: "Das Bild ist nicht base64.",
});
}
let aufnahme = await prisma.aufnahme.findUnique({
const aufnahme = await prisma.aufnahme.findUnique({
where: {
uid: ctx.params.uid,
benutzer_id: user.id
},
});
uid: ctx.params.uid
}
})
if (!aufnahme) {
throw new APIError({
code: "NOT_FOUND",
message: "Objekt nicht gefunden oder gehört einem anderen Benutzer.",
});
}
const dataWithoutPrefix = base64.replace(
/^data:image\/\w+;base64,/,
""
);
const buffer = Buffer.from(dataWithoutPrefix, "base64");
const bild = await prisma.bild.create({
data: {
kategorie: input.kategorie,
aufnahme: {
connect: {
id: aufnahme.id,
},
},
},
select: {
uid: true,
},
});
const filePath = fileURLToPath(new URL(`../../../../../persistent/images/${bild.uid}.webp`, import.meta.url));
try {
// Wir optimieren das Bild und konvertieren es in WebP
// TODO: Sharp scheint nicht zu funktionieren, wir müssen das nochmal testen
// const optimizedBuffer = await sharp(buffer).webp({ quality: 80 }).toArray();
writeFileSync(filePath, buffer)
} catch(e) {
// Bild wurde nicht gespeichert, wir löschen den Eintrag wieder
await prisma.bild.delete({
where: {
uid: bild.uid
}
message: "Aufnahme existiert nicht oder gehört einem anderen Benutzer."
})
// Und geben einen Fehler zurück
throw new APIError({
code: "INTERNAL_SERVER_ERROR",
message: "Bild konnte nicht gespeichert werden.",
});
}
return {
uid: bild.uid
};
prisma.$transaction(async tx => {
for (const uid of input) {
const img = await tx.bild.update({
where: {
uid,
aufnahme_id: null
},
data: {
aufnahme_id: aufnahme.id
},
select: {
uid: true
}
})
if (!img) {
throw new APIError({
code: "NOT_FOUND",
message: "Bild existiert nicht oder gehört bereits zu einer anderen Aufnahme."
})
}
}
})
},
})
@@ -115,8 +78,8 @@ export const GET = defineApiRoute({
if (!aufnahme) {
throw new APIError({
code: "FORBIDDEN",
message: "Objekt existiert nicht oder gehört einem anderen Benutzer."
code: "NOT_FOUND",
message: "Aufnahme existiert nicht oder gehört einem anderen Benutzer."
})
}

View File

@@ -94,7 +94,7 @@ export const GET = defineApiRoute({
const refreshToken = encodeToken({
uid: user.uid,
typ: TokenType.Refresh,
exp: refreshTokenExpiry.unix(),
exp: refreshTokenExpiry.valueOf(),
});
// Und erstellen einen neuen
@@ -107,7 +107,7 @@ export const GET = defineApiRoute({
},
});
const accessTokenExpiry = moment().add(2, "days").unix();
const accessTokenExpiry = moment().add(2, "days").valueOf();
const accessToken = encodeToken({
uid: user.uid,
typ: TokenType.Access,
@@ -118,7 +118,7 @@ export const GET = defineApiRoute({
accessToken,
accessTokenExpiry: accessTokenExpiry,
refreshToken,
refreshTokenExpiry: refreshTokenExpiry.unix(),
refreshTokenExpiry: refreshTokenExpiry.valueOf(),
};
},
});

106
src/pages/api/bild.ts Normal file
View File

@@ -0,0 +1,106 @@
import { authorizationMiddleware, maybeAuthorizationMiddleware } from "#lib/middleware/authorization.js";
import { BildSchema } from "@ibcornelsen/database/client";
import { prisma } from "@ibcornelsen/database/server";
import { defineApiRoute, APIError } from "astro-typesafe-api/server";
import { z } from "astro:content";
import { fileURLToPath } from "url";
import isBase64 from "is-base64";
import { writeFileSync } from "fs"
import { UUidWithPrefix } from "#components/Ausweis/types.js";
export const PUT = defineApiRoute({
input: BildSchema.pick({
kategorie: true,
}).merge(z.object({
data: z.string()
})),
output: z.object({
uid: z.string({ description: "Die UID des Bildes." })
}),
async fetch(input) {
const data = input.data;
if (!isBase64(data, { mimeRequired: true })) {
throw new APIError({
code: "BAD_REQUEST",
message: "Das Bild ist nicht base64.",
});
}
const dataWithoutPrefix = data.replace(
/^data:image\/\w+;base64,/,
""
);
const buffer = Buffer.from(dataWithoutPrefix, "base64");
const bild = await prisma.bild.create({
data: {
kategorie: input.kategorie
},
select: {
uid: true,
},
});
const filePath = fileURLToPath(new URL(`../../../persistent/images/${bild.uid}.webp`, import.meta.url));
try {
// Wir optimieren das Bild und konvertieren es in WebP
// TODO: Sharp scheint nicht zu funktionieren, wir müssen das nochmal testen
// const optimizedBuffer = await sharp(buffer).webp({ quality: 80 }).toArray();
writeFileSync(filePath, buffer)
} catch(e) {
// Bild wurde nicht gespeichert, wir löschen den Eintrag wieder
await prisma.bild.delete({
where: {
uid: bild.uid
}
})
// Und geben einen Fehler zurück
throw new APIError({
code: "INTERNAL_SERVER_ERROR",
message: "Bild konnte nicht gespeichert werden.",
});
}
return {
uid: bild.uid
};
},
})
export const DELETE = defineApiRoute({
input: z.object({
uid: UUidWithPrefix
}),
middleware: maybeAuthorizationMiddleware,
async fetch(input, context, user) {
try {
if (user) {
await prisma.bild.delete({
where: {
uid: input.uid,
aufnahme: {
benutzer: {
id: user.id
}
}
}
})
} else {
await prisma.bild.delete({
where: {
uid: input.uid,
aufnahme_id: null
}
})
}
} catch(e) {
throw new APIError({
code: "INTERNAL_SERVER_ERROR",
message: "Bild konnte nicht gelöscht werden."
})
}
},
})

View File

@@ -11,7 +11,7 @@ export const PATCH = defineApiRoute({
input: BildSchema.pick({
kategorie: true,
}).merge(z.object({
base64: z.string()
data: z.string()
})),
output: z.void(),
middleware: authorizationMiddleware,
@@ -23,10 +23,10 @@ export const PATCH = defineApiRoute({
})
}
const image = await prisma.Bild.findUnique({
const image = await prisma.bild.findUnique({
where: {
uid: ctx.params.uid,
objekt: {
aufnahme: {
benutzer_id: user.id
}
}
@@ -39,23 +39,23 @@ export const PATCH = defineApiRoute({
})
}
const base64 = input.base64;
const data = input.data;
if (!isBase64(base64, { mimeRequired: true })) {
if (!isBase64(data, { mimeRequired: true })) {
throw new APIError({
code: "BAD_REQUEST",
message: "Das Bild ist nicht base64.",
});
}
const dataWithoutPrefix = base64.replace(
const dataWithoutPrefix = data.replace(
/^data:image\/\w+;base64,/,
""
);
const buffer = Buffer.from(dataWithoutPrefix, "base64");
if (input.kategorie !== image.kategorie) {
await prisma.Bild.update({
await prisma.bild.update({
where: {
id: image.id
},

View File

@@ -148,7 +148,7 @@ export const GET = defineApiRoute({
}
}
},
output: ZodOverlap<OptionalNullable<GEGNachweisWohnenClient>>(GEGNachweisWohnenSchema.merge(z.object({
output: GEGNachweisWohnenSchema.merge(z.object({
uid_aufnahme: UUidWithPrefix,
uid_objekt: UUidWithPrefix,
uid_benutzer: UUidWithPrefix.optional()
@@ -156,7 +156,7 @@ export const GET = defineApiRoute({
id: true,
aufnahme_id: true,
benutzer_id: true
})),
}),
middleware: authorizationMiddleware,
async fetch(input, context, user) {
const { uid } = context.params;

View File

@@ -0,0 +1,9 @@
import { defineApiRoute } from "astro-typesafe-api/server";
// TODO
export const PUT = defineApiRoute({
async fetch(input, context, transfer) {
},
})

View File

@@ -1,5 +1,5 @@
import { z } from "zod";
import { BedarfsausweisWohnen, Enums, RechnungSchema, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen, prisma } from "@ibcornelsen/database/server";
import { Enums, RechnungSchema, prisma } from "@ibcornelsen/database/server";
import { mollieClient } from "#lib/mollie.js";
import { PaymentMethod } from "@mollie/api-client";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
@@ -8,6 +8,8 @@ import {
authorizationMiddleware,
} from "#lib/middleware/authorization.js";
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { getPrismaAusweisAdapter } from "#lib/server/ausweis.js";
import { PRICES, SERVICES } from "#lib/constants.js";
export const PUT = defineApiRoute({
meta: {
@@ -21,6 +23,7 @@ export const PUT = defineApiRoute({
.object({
ausweisart: z.nativeEnum(Enums.Ausweisart),
ausweis_uid: UUidWithPrefix,
ausweistyp: z.nativeEnum(Enums.AusweisTyp)
})
.merge(
RechnungSchema.omit({
@@ -46,37 +49,29 @@ export const PUT = defineApiRoute({
// Wir erstellen eine Mollie Payment Referenz und eine neue Rechnung in unserer Datenbank, daraufhin geben
// wir eine Checkout URL zurück auf die der Nutzer weitergeleitet werden kann.
const { ausweis_uid, ausweisart, bezahlmethode, services } = input;
const { ausweis_uid, ausweisart, bezahlmethode, services, ausweistyp } = input;
let betrag = PRICES[ausweisart][ausweistyp]
// TODO: Services Implementieren
const servicePriceList = SERVICES[ausweisart]
for (const service of input.services) {
betrag += servicePriceList[service]
}
let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
ausweis = await prisma.bedarfsausweisWohnen.findUnique({
where: {
uid: ausweis_uid
}
})
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
ausweis = await prisma.verbrauchsausweisGewerbe.findUnique({
where: {
uid: ausweis_uid
}
})
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
// Wir müssen überprüfen, ob dem Nutzer der Ausweis tatsächlich gehört.
ausweis = await prisma.verbrauchsausweisWohnen.findUnique({
where: {
uid: ausweis_uid,
},
});
} else {
const adapter = getPrismaAusweisAdapter(ausweis_uid);
if (!adapter) {
throw new APIError({
code: "BAD_REQUEST",
message: "Ausweisart nicht unterstützt.",
});
message: "Ungültige Ausweis UID"
})
}
const ausweis = await adapter.findUnique({
where: {
uid: ausweis_uid
}
})
if (!ausweis) {
throw new APIError({
code: "NOT_FOUND",
@@ -95,10 +90,12 @@ export const PUT = defineApiRoute({
const rechnung = await prisma.rechnung.create({
data: {
benutzer_id: user.id,
betrag: 0,
betrag,
bezahlmethode: bezahlmethode,
status: Enums.Rechnungsstatus.open,
aufnahme_id: ausweis.aufnahme_id,
services,
ausweistyp
},
select: {
uid: true,
@@ -113,40 +110,14 @@ export const PUT = defineApiRoute({
});
}
if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
await prisma.bedarfsausweisWohnen.update({
where: {
uid: ausweis_uid
},
data: {
bestellt: true
}
})
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
await prisma.verbrauchsausweisGewerbe.update({
where: {
uid: ausweis_uid
},
data: {
bestellt: true
}
})
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
// Wir müssen überprüfen, ob dem Nutzer der Ausweis tatsächlich gehört.
await prisma.verbrauchsausweisWohnen.update({
where: {
uid: ausweis_uid
},
data: {
bestellt: true
}
});
} else {
throw new APIError({
code: "BAD_REQUEST",
message: "Ausweisart nicht unterstützt.",
});
}
await adapter.update({
where: {
uid: ausweis_uid
},
data: {
bestellt: true
}
})
if (bezahlmethode === Enums.Bezahlmethoden.rechnung) {
return { uid: rechnung.uid }
@@ -163,7 +134,7 @@ export const PUT = defineApiRoute({
},
method: input.bezahlmethode as PaymentMethod,
description: "Verbrauchsausweis Wohnen 2016",
redirectUrl: "https://ibcornelsen.de/payment/success",
redirectUrl: `https://ibcornelsen.de/payment/success?a=${ausweis.uid}&r=${rechnung.uid}`,
webhookUrl: `http://ibcornelsen.de/api/webhooks/mollie?uid=${rechnung.uid}`,
});

View File

@@ -16,7 +16,9 @@ export const PUT = defineApiRoute({
tags: ["Verbrauchsausweis Wohnen"],
},
input: z.object({
ausweis: VerbrauchsausweisWohnenSchema.omit({
ausweis: VerbrauchsausweisWohnenSchema.merge(z.object({
startdatum: z.coerce.date()
})).omit({
id: true,
benutzer_id: true,
uid: true,

View File

@@ -1,29 +1,11 @@
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
import { validateAccessTokenServer } from "#server/lib/validateAccessToken.js";
import { prisma } from "@ibcornelsen/database/server";
import { APIRoute } from "astro";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import * as fs from "fs";
import { fileURLToPath } from "url";
export const GET: APIRoute = async (Astro) => {
const { uid } = Astro.params
const token = Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value;
if (!token) {
return new Response(null, {
status: 400
})
}
const valid = validateAccessTokenServer(Astro);
if (!valid) {
return new Response(null, {
status: 401
})
}
const image = await prisma.bild.findUnique({
where: {
@@ -38,6 +20,13 @@ export const GET: APIRoute = async (Astro) => {
}
const path = fileURLToPath(new URL(`../../../persistent/images/${image.uid}.webp`, import.meta.url))
if (!fs.existsSync(path)) {
return new Response(null, {
status: 404
})
}
const buffer = fs.readFileSync(path)
return new Response(buffer, {

View File

@@ -32,10 +32,10 @@ const objekte = await prisma.objekt.findMany({
},
take: 10,
include: {
bilder: true,
unterlagen: true,
aufnahmen: {
include: {
bilder: true,
unterlagen: true,
bedarfsausweis_wohnen: true,
verbrauchsausweis_gewerbe: true,
verbrauchsausweis_wohnen: true

View File

@@ -79,5 +79,5 @@ if (uid) {
---
<AusweisLayout title="Verbrauchsausweis Gewerbe erstellen | IBCornelsen">
<VerbrauchsausweisGewerbeModule client:load {ausweis} {objekt} {aufnahme} {bilder} />
<VerbrauchsausweisGewerbeModule client:only {ausweis} {objekt} {aufnahme} {bilder} />
</AusweisLayout>

View File

@@ -64,12 +64,12 @@ if (uid) {
// Der Ausweis scheint nicht zu existieren.
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
} catch(e) {
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
}

View File

@@ -64,12 +64,12 @@ if (uid) {
// Der Ausweis scheint nicht zu existieren.
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
} catch(e) {
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
}

View File

@@ -64,12 +64,12 @@ if (uid) {
// Der Ausweis scheint nicht zu existieren.
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
} catch(e) {
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
}

View File

@@ -64,12 +64,12 @@ if (uid) {
// Der Ausweis scheint nicht zu existieren.
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
} catch(e) {
return Astro.redirect(
"/energieausweis-erstellen/verbrauchsausweis-wohnen"
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
);
}
}

View File

@@ -3,98 +3,37 @@
import KundendatenModule from "#modules/KundendatenModule.svelte";
import AusweisLayout from "#layouts/AusweisLayoutPruefung.astro";
import { Enums } from "@ibcornelsen/database/client";
import { createCaller } from "../astro-typesafe-api-caller";
import { API_ACCESS_TOKEN_COOKIE_NAME, API_REFRESH_TOKEN_COOKIE_NAME } from "#lib/constants";
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
import { BedarfsausweisWohnenClient, getAusweisartFromUUID, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types";
import { getCurrentUser } from "#lib/server/user";
// Man sollte nur auf diese Seite kommen, wenn ein Ausweis bereits vorliegt und in der Datenbank abgespeichert wurde.
const uid = Astro.url.searchParams.get("uid");
const valid = await validateAccessTokenServer(Astro)
if (!uid || !valid) {
return Astro.redirect("/404");
}
const user = await getCurrentUser(Astro) || {}
const params = new URLSearchParams(await Astro.request.text());
const caller = createCaller(Astro)
const ausweisart = getAusweisartFromUUID(uid);
let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
ausweis = await caller["verbrauchsausweis-wohnen"]._uid.GET.fetch(undefined, {
headers: {
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid
}
})
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
ausweis = await caller["verbrauchsausweis-gewerbe"]._uid.GET.fetch(undefined, {
headers: {
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid
}
})
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
ausweis = await caller["bedarfsausweis-wohnen"]._uid.GET.fetch(undefined, {
headers: {
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid
}
})
} else if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) {
ausweis = await caller["geg-nachweis-wohnen"]._uid.GET.fetch(undefined, {
headers: {
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid
}
})
} else {
if (!params.has("ausweis") || !params.has("aufnahme") || !params.has("objekt") || !params.has("bilder") || !params.has("ausweisart")) {
return Astro.redirect("/404")
}
const aufnahme = await caller.aufnahme._uid.GET.fetch(undefined, {
headers: {
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: ausweis.uid_aufnahme
let ausweis, aufnahme, objekt, ausweisart, bilder, ausweistyp;
try {
ausweis = JSON.parse(params.get("ausweis") || "")
aufnahme = JSON.parse(params.get("aufnahme") || "")
objekt = JSON.parse(params.get("objekt") || "")
ausweisart = JSON.parse(params.get("ausweisart") || "") as Enums.Ausweisart;
bilder = JSON.parse(params.get("bilder") || "");
ausweistyp = JSON.parse(params.get("ausweistyp") || "") as Enums.AusweisTyp;
if (!ausweisart || !Object.keys(Enums.Ausweisart).includes(ausweisart) || !ausweistyp || !Object.keys(Enums.AusweisTyp).includes(ausweistyp)) {
throw new Error()
}
})
const objekt = await caller.objekt._uid.GET.fetch(undefined, {
headers: {
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
},
params: {
uid: aufnahme.uid_objekt
}
})
const user = await caller.user.self.GET.fetch(undefined, {
headers: {
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
}
});
aufnahme.ausweisart = "VerbrauchsausweisWohnen"
if (!ausweis || !user) {
return Astro.redirect("/404");
} catch(e){
return Astro.redirect("/404")
}
---
<AusweisLayout title="Kundendaten Aufnehmen - IBCornelsen">
<KundendatenModule {user} {ausweis} {objekt} {aufnahme} {ausweisart} bezahlmethode={Enums.Bezahlmethoden.paypal} client:load></KundendatenModule>
<KundendatenModule {user} {ausweis} {objekt} {aufnahme} {bilder} {ausweisart} {ausweistyp} aktiveBezahlmethode={Enums.Bezahlmethoden.paypal} client:load></KundendatenModule>
</AusweisLayout>

View File

@@ -2,36 +2,49 @@
import { Enums, prisma } from "@ibcornelsen/database/server";
import Layout from "../../layouts/Layout.astro";
import { createCaller } from "../../astro-typesafe-api-caller.js";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
import PaymentSuccessModule from "#modules/PaymentSuccessModule.svelte";
import { sendPaymentSuccessMail } from "#lib/server/mail/payment-success";
import { getPrismaAusweisAdapter } from "#lib/server/ausweis";
import { sendInvoiceMail } from "#lib/server/mail/invoice";
import { getCurrentUser } from "#lib/server/user";
const uid = Astro.url.searchParams.get("uid");
const uidRechnung = Astro.url.searchParams.get("r");
const uidAusweis = Astro.url.searchParams.get("a");
const user = await getCurrentUser(Astro)
const caller = createCaller(Astro)
const user = await caller.user.self.GET.fetch(undefined, {
headers: {
Authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
}
});
if (!uid || !user) {
if (!uidRechnung || !uidAusweis || !user) {
return Astro.redirect("/")
}
const rechnung = await prisma.rechnung.findUnique({
where: {
uid: uid,
uid: uidRechnung,
benutzer: {
uid: user.uid
}
}
})
if (!rechnung) {
return Astro.redirect("/404")
const adapter = getPrismaAusweisAdapter(uidAusweis);
if (!adapter) {
return Astro.redirect("/")
}
const ausweis = await adapter.findUnique({
where: {
uid: uidAusweis
}
})
if (!rechnung || !ausweis) {
return Astro.redirect("/")
}
if (rechnung.status === "paid") {
sendPaymentSuccessMail(ausweis, rechnung, user)
} else if (rechnung.bezahlmethode === Enums.Bezahlmethoden.rechnung) {
sendInvoiceMail(ausweis, rechnung, user)
}
---

View File

@@ -95,8 +95,9 @@ export const POST: APIRoute = async (Astro) => {
const ausweis = JSON.parse(params.get("ausweis") || "{}");
const aufnahme = JSON.parse(params.get("aufnahme") || "{}");
const objekt = JSON.parse(params.get("objekt") || "{}");
const bilder = JSON.parse(params.get("bilder") || "{}");
const ausweisart: Enums.Ausweisart = params.get("ausweisart")
const bilder = JSON.parse(params.get("bilder") || "[]");
const ausweisart: Enums.Ausweisart = JSON.parse(params.get("ausweisart") || "")
let user: BenutzerClient = {};

View File

@@ -114,9 +114,9 @@ export const POST: APIRoute = async (Astro) => {
let pdf: Uint8Array<ArrayBufferLike> | null = null;
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
pdf = await pdfDatenblattVerbrauchsausweisWohnen(ausweis, aufnahme, objekt, bilder);
pdf = await pdfDatenblattVerbrauchsausweisWohnen(ausweis, aufnahme, objekt, user, bilder);
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
pdf = await pdfDatenblattVerbrauchsausweisGewerbe(ausweis, aufnahme, objekt, bilder);
pdf = await pdfDatenblattVerbrauchsausweisGewerbe(ausweis, aufnahme, objekt, user, bilder);
}
return new Response(pdf, {

View File

@@ -70,7 +70,7 @@ input[type="file"]{@apply pt-[4px]}
input[type="checkbox"],input[type="radio"]{@apply inline-block accent-secondary h-[13px]}
input:disabled, input:read-only {
@apply bg-gray-200 border-gray-500/15;
@apply lg:bg-gray-200 border-gray-500/15;
}
/*ARTICLE*/

408
src/testing/ausweise.json Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,302 @@
import moment from "moment";
import ausweise from "./ausweise.json" assert { type: "json" };
import users from "./users.json" assert { type: "json" };
import newUserIdMap from "./new-user-id-map.json" assert { type: "json" };
import processed from "./processed.json" assert { type: "json" };
import { Benutzer, Enums, prisma } from "@ibcornelsen/database/server";
import * as fs from "fs";
import { fileURLToPath } from "url";
import { hashPassword } from "#lib/password.js";
const datasets = ausweise[2].data;
const datasetUsers = users[2].data;
const saveUserMap = () => {
fs.writeFileSync(
fileURLToPath(new URL("./new-user-id-map.json", import.meta.url)),
JSON.stringify(newUserIdMap)
);
};
if (!datasets || !datasetUsers) {
throw new Error("Invalid dataset");
}
let i = 0;
for (const user of datasetUsers) {
if (user.id in newUserIdMap) {
continue;
}
try {
const benutzer = await prisma.benutzer.create({
data: {
email: user.email,
passwort: user.password,
adresse: user.adresse,
anrede: user.anrede,
name: user.name,
vorname: user.vorname,
ort: user.ort,
plz: user.plz,
rolle:
parseInt(user.level) == 4
? Enums.BenutzerRolle.ADMIN
: Enums.BenutzerRolle.USER,
firma: user.firma,
lex_office_id: user.lex_office_id,
telefon: user.phone,
},
select: {
uid: true,
},
});
newUserIdMap[user.id] = benutzer.uid;
} catch (e) {
saveUserMap();
throw e;
}
// Alle 50 werden gespeichert.
if (i % 50 == 0) {
saveUserMap();
}
i++;
}
const saveProcessed = () => {
fs.writeFileSync(
fileURLToPath(new URL("./processed.json", import.meta.url)),
JSON.stringify(processed)
);
};
for (const dataset of datasets) {
if (dataset.id in processed) {
continue;
}
let user: Benutzer;
if (!newUserIdMap[dataset.user_id]) {
user = await prisma.benutzer.create({
data: {
email: dataset.email,
passwort: hashPassword(Math.random().toString(36).slice(-8)),
adresse: dataset.strasse,
ort: dataset.ort,
plz: dataset.plz,
name: dataset.name,
vorname: dataset.vorname,
rolle: Enums.BenutzerRolle.USER,
telefon: dataset.telefonnummer,
},
});
newUserIdMap[dataset.user_id] = user.uid;
saveUserMap();
} else {
user = await prisma.benutzer.findUnique({
where: {
uid: newUserIdMap[dataset.user_id],
},
});
}
if (!user) {
saveProcessed();
throw new Error("Benutzer ist nicht vorhanden.");
}
await prisma.$transaction(async (tx) => {
const objekt = await prisma.objekt.create({
data: {
adresse: dataset.strasse,
erstellungsdatum: moment(dataset.erstellungsdatum).toDate(),
ort: dataset.objekt_ort,
plz: dataset.objekt_plz,
benutzer: {
connect: {
uid: user.uid,
},
},
},
});
const aufnahme = await prisma.aufnahme.create({
data: {
alternative_heizung: dataset.alheizung == "1",
alternative_kuehlung: dataset.alkuehlung == "1",
alternative_lueftung: dataset.allueftung == "1",
alternative_warmwasser: dataset.alwarmwasser == "1",
aussenwand_gedaemmt: dataset.aussenwand_gedaemmt == "1",
aussenwand_min_12cm_gedaemmt:
dataset.aussenwand_min_12cm_gedaemmt == "1",
ausstellungsdatum: moment(dataset.erstellungsdatum).toDate(),
baujahr_gebaeude: parseInt(dataset.baujahr_gebaeude) ? [parseInt(dataset.baujahr_gebaeude)] : [],
baujahr_heizung: parseInt(dataset.baujahr_anlage) ? [parseInt(dataset.baujahr_anlage)] : [],
baujahr_klima: parseInt(dataset.baujahr_klimaanlage) ? [parseInt(dataset.baujahr_klimaanlage)] : [],
benutzer: {
connect: {
uid: user.uid,
},
},
objekt: {
connect: {
id: objekt.id,
},
},
brennstoff_1: dataset.energietraeger_1,
brennstoff_2: dataset.energietraeger_2,
dachgeschoss:
dataset.dachgeschoss == "Beheizt"
? Enums.Heizungsstatus.BEHEIZT
: dataset.dachgeschoss == "Nicht Vorhanden"
? Enums.Heizungsstatus.NICHT_VORHANDEN
: Enums.Heizungsstatus.UNBEHEIZT,
brennwert_kessel: dataset.brennwert_kessel == "1",
dachgeschoss_gedaemmt: dataset.dachgeschoss_gedaemmt == "1",
dachgeschoss_min_12cm_gedaemmt:
dataset.dachgeschoss_min_12cm_gedaemmt == "1",
doppel_verglasung: dataset.doppel_verglasung == "1",
dreifach_verglasung: dataset.dreifach_verglasung == "1",
durchlauf_erhitzer: dataset.durchlauf_erhitzer == "1",
einfach_verglasung: dataset.einfach_verglasung == "1",
einzelofen: dataset.einzelofen == "1",
einheiten: parseInt(dataset.anzahl_einheiten),
fenster_dicht: dataset.fenster_dicht == "1",
fenster_teilweise_undicht:
dataset.fenster_teilweise_undicht == "1",
flaeche: parseFloat(dataset.wohnflaeche),
nutzflaeche: parseFloat(dataset.nutzflaeche),
gebaeudeteil: dataset.objekt_gebaeudeteil,
gebaeudetyp: dataset.objekt_typ,
heizungsrohre_gedaemmt: dataset.heizungsrohre_gedaemmt == "1",
isolier_verglasung: dataset.isolier_verglasung == "1",
keller:
dataset.keller_beheizt == "Beheizt"
? Enums.Heizungsstatus.BEHEIZT
: dataset.dachgeschoss == "Nicht Vorhanden"
? Enums.Heizungsstatus.NICHT_VORHANDEN
: Enums.Heizungsstatus.UNBEHEIZT,
keller_decke_gedaemmt: dataset.keller_decke_gedaemmt == "1",
keller_wand_gedaemmt: dataset.keller_wand_gedaemmt == "1",
kuehlung: dataset.wird_gekuehlt,
erstellungsdatum: moment(dataset.erstellungsdatum).toDate(),
rolllaeden_kaesten_gedaemmt:
dataset.rolllaeden_kaesten_gedaemmt == "1",
leerstand: parseInt(dataset.leerstand),
lueftung:
dataset.lueftungskonzept == "Fensterlüftung"
? Enums.Lueftungskonzept.Fensterlueftung
: dataset.lueftungskonzept ==
"Lüftungsanlage mit Wärmerückgewinnung"
? Enums.Lueftungskonzept
.LueftungsanlageMitWaermerueckgewinnung
: dataset.lueftungskonzept ==
"Lüftungsanlage ohne Wärmerückgewinnung"
? Enums.Lueftungskonzept
.LueftungsanlageOhneWaermerueckgewinnung
: Enums.Lueftungskonzept.Schachtlueftung,
niedertemperatur_kessel: dataset.niedertemperatur_kessel == "1",
oberste_geschossdecke_gedaemmt:
dataset.oberste_geschossdecke_gedaemmt == "1",
oberste_geschossdecke_min_12cm_gedaemmt:
dataset.oberste_geschossdecke_min_12cm_gedaemmt == "1",
photovoltaik: dataset.photovoltaik == "1",
raum_temperatur_regler: dataset.raum_temperatur_regler == "1",
saniert: dataset.objekt_saniert == "1",
solarsystem_warmwasser: dataset.solarsystem_warmwasser == "1",
standard_kessel: dataset.standard_kessel == "1",
tueren_dicht: dataset.tueren_dicht == "1",
tueren_undicht: dataset.tueren_undicht == "1",
waermepumpe: dataset.waermepumpe == "1",
warmwasser_rohre_gedaemmt:
dataset.warmwasser_rohre_gedaemmt == "1",
zentralheizung: dataset.zentralheizung == "1",
zirkulation: dataset.zirkulation == "1",
boxpruefung: dataset.boxpruefung == "1",
},
});
if (dataset.ausweisart === "VA") {
const ausweis = await prisma.verbrauchsausweisWohnen.create({
data: {
alternative_heizung: dataset.alheizung == "1",
alternative_kuehlung: dataset.alkuehlung == "1",
alternative_lueftung: dataset.allueftung == "1",
alternative_warmwasser: dataset.alwarmwasser == "1",
anteil_warmwasser_1: parseFloat(
dataset.anteil_warmwasser_1
),
anteil_warmwasser_2: parseFloat(
dataset.anteil_warmwasser_2
),
aufnahme: {
connect: {
id: aufnahme.id,
},
},
ausgestellt: dataset.erledigt == "2",
ausstellgrund:
dataset.ausstellgrund == "Vermietung"
? Enums.Ausstellgrund.Vermietung
: dataset.ausstellgrund == "Verkauf"
? Enums.Ausstellgrund.Verkauf
: dataset.ausstellgrund == "Modernisierung"
? Enums.Ausstellgrund.Modernisierung
: dataset.ausstellgrund == "Neubau"
? Enums.Ausstellgrund.Neubau
: Enums.Ausstellgrund.Sonstiges,
bestellt: dataset.erledigt == "0",
einheit_1: dataset.energietraeger_einheit_heizquelle_1,
einheit_2: dataset.energietraeger_einheit_heizquelle_2,
storniert: dataset.erledigt == "4",
benutzer: {
connect: {
uid: user.uid,
},
},
kontrolldatei_angefragt: dataset.kontrolldatei == "1",
registriernummer: dataset.regnummer,
startdatum: moment(
`${dataset.energieverbrauch_zeitraum_jahr}-${dataset.energieverbrauch_zeitraum_monat.padStart(2, "0")}-01`
).toDate(),
verbrauch_1: parseFloat(
dataset.energieverbrauch_1_heizquelle_1
),
verbrauch_2: parseFloat(
dataset.energieverbrauch_2_heizquelle_1
),
verbrauch_3: parseFloat(
dataset.energieverbrauch_3_heizquelle_1
),
verbrauch_4: parseFloat(
dataset.energieverbrauch_1_heizquelle_2
),
verbrauch_5: parseFloat(
dataset.energieverbrauch_2_heizquelle_2
),
verbrauch_6: parseFloat(
dataset.energieverbrauch_3_heizquelle_2
),
warmwasser_anteil_bekannt:
dataset.warmwasser_anteil_bekannt == "1",
warmwasser_enthalten: dataset.warmwasser_enthalten == "1",
zurueckgestellt: dataset.zurueckGestellt == "1",
zusaetzliche_heizquelle:
dataset.zusaetzliche_heizquelle == "1",
},
});
}
processed[dataset.id] = true;
if (i % 25 == 0) {
saveProcessed()
}
});
}
saveProcessed()

File diff suppressed because one or more lines are too long

402
src/testing/processed.json Normal file
View File

@@ -0,0 +1,402 @@
{
"1175961": true,
"1176147": true,
"1176202": true,
"1176219": true,
"1176230": true,
"1176271": true,
"1176307": true,
"1176314": true,
"1176355": true,
"1176415": true,
"1176447": true,
"1176562": true,
"1176606": true,
"1176704": true,
"1176708": true,
"1176806": true,
"1176859": true,
"1176891": true,
"1176957": true,
"1176990": true,
"1177082": true,
"1177103": true,
"1177107": true,
"1177117": true,
"1177175": true,
"1177204": true,
"1177212": true,
"1177256": true,
"1177326": true,
"1177365": true,
"1177366": true,
"1177427": true,
"1177437": true,
"1177449": true,
"1177450": true,
"1177502": true,
"1177522": true,
"1177529": true,
"1177542": true,
"1177555": true,
"1177571": true,
"1177583": true,
"1177596": true,
"1177627": true,
"1177637": true,
"1177640": true,
"1177659": true,
"1177687": true,
"1177689": true,
"1177705": true,
"1177715": true,
"1177732": true,
"1177737": true,
"1177739": true,
"1177741": true,
"1177747": true,
"1177749": true,
"1177766": true,
"1177780": true,
"1177797": true,
"1177809": true,
"1177824": true,
"1177849": true,
"1177871": true,
"1177875": true,
"1177894": true,
"1177903": true,
"1177904": true,
"1177923": true,
"1177924": true,
"1177932": true,
"1177936": true,
"1177948": true,
"1177956": true,
"1177959": true,
"1177964": true,
"1177984": true,
"1177998": true,
"1178000": true,
"1178001": true,
"1178007": true,
"1178015": true,
"1178018": true,
"1178021": true,
"1178027": true,
"1178029": true,
"1178033": true,
"1178044": true,
"1178045": true,
"1178084": true,
"1178093": true,
"1178095": true,
"1178103": true,
"1178114": true,
"1178150": true,
"1178152": true,
"1178160": true,
"1178161": true,
"1178173": true,
"1178181": true,
"1178188": true,
"1178194": true,
"1178215": true,
"1178229": true,
"1178235": true,
"1178257": true,
"1178284": true,
"1178286": true,
"1178294": true,
"1178315": true,
"1178339": true,
"1178340": true,
"1178341": true,
"1178342": true,
"1178355": true,
"1178360": true,
"1178391": true,
"1178392": true,
"1178403": true,
"1178409": true,
"1178411": true,
"1178427": true,
"1178450": true,
"1178452": true,
"1178456": true,
"1178459": true,
"1178493": true,
"1178494": true,
"1178513": true,
"1178526": true,
"1178534": true,
"1178578": true,
"1178599": true,
"1178602": true,
"1178616": true,
"1178620": true,
"1178625": true,
"1178627": true,
"1178630": true,
"1178635": true,
"1178668": true,
"1178674": true,
"1178687": true,
"1178694": true,
"1178707": true,
"1178713": true,
"1178723": true,
"1178733": true,
"1178750": true,
"1178757": true,
"1178769": true,
"1178814": true,
"1178820": true,
"1178824": true,
"1178826": true,
"1178827": true,
"1178841": true,
"1178851": true,
"1178903": true,
"1178908": true,
"1178915": true,
"1178952": true,
"1178953": true,
"1178962": true,
"1178966": true,
"1179000": true,
"1179014": true,
"1179041": true,
"1179045": true,
"1179050": true,
"1179139": true,
"1179197": true,
"1179219": true,
"1179298": true,
"1179304": true,
"1179329": true,
"1179335": true,
"1179336": true,
"1179338": true,
"1179346": true,
"1179355": true,
"1179396": true,
"1179443": true,
"1179458": true,
"1179500": true,
"1179522": true,
"1179604": true,
"1179610": true,
"1179611": true,
"1179631": true,
"1179674": true,
"1179710": true,
"1179792": true,
"1179798": true,
"1179846": true,
"1179884": true,
"1179896": true,
"1179930": true,
"1179935": true,
"1179950": true,
"1180022": true,
"1180032": true,
"1180042": true,
"1180060": true,
"1180074": true,
"1180115": true,
"1180116": true,
"1180126": true,
"1180135": true,
"1180141": true,
"1180168": true,
"1180174": true,
"1180176": true,
"1180179": true,
"1180180": true,
"1180181": true,
"1180186": true,
"1180189": true,
"1180194": true,
"1180197": true,
"1180199": true,
"1180200": true,
"1180202": true,
"1180204": true,
"1180206": true,
"1180207": true,
"1180208": true,
"1180209": true,
"1180212": true,
"1180213": true,
"1180214": true,
"1180215": true,
"1180216": true,
"1180217": true,
"1180218": true,
"1180219": true,
"1180220": true,
"1180221": true,
"1180222": true,
"1180225": true,
"1180227": true,
"1180229": true,
"1180230": true,
"1180234": true,
"1180235": true,
"1180236": true,
"1180237": true,
"1180239": true,
"1180242": true,
"1180243": true,
"1180247": true,
"1180250": true,
"1180251": true,
"1180252": true,
"1180254": true,
"1180258": true,
"1180260": true,
"1180261": true,
"1180265": true,
"1180266": true,
"1180270": true,
"1180271": true,
"1180272": true,
"1180273": true,
"1180275": true,
"1180277": true,
"1180278": true,
"1180280": true,
"1180282": true,
"1180283": true,
"1180284": true,
"1180286": true,
"1180287": true,
"1180291": true,
"1180292": true,
"1180294": true,
"1180295": true,
"1180296": true,
"1180297": true,
"1180299": true,
"1180301": true,
"1180303": true,
"1180307": true,
"1180308": true,
"1180310": true,
"1180311": true,
"1180312": true,
"1180314": true,
"1180315": true,
"1180316": true,
"1180320": true,
"1180321": true,
"1180324": true,
"1180326": true,
"1180327": true,
"1180330": true,
"1180332": true,
"1180333": true,
"1180335": true,
"1180336": true,
"1180337": true,
"1180339": true,
"1180343": true,
"1180344": true,
"1180347": true,
"1180350": true,
"1180351": true,
"1180352": true,
"1180354": true,
"1180355": true,
"1180356": true,
"1180357": true,
"1180362": true,
"1180363": true,
"1180371": true,
"1180372": true,
"1180375": true,
"1180376": true,
"1180379": true,
"1180380": true,
"1180381": true,
"1180382": true,
"1180385": true,
"1180386": true,
"1180390": true,
"1180392": true,
"1180393": true,
"1180394": true,
"1180397": true,
"1180404": true,
"1180405": true,
"1180411": true,
"1180412": true,
"1180413": true,
"1180414": true,
"1180415": true,
"1180416": true,
"1180418": true,
"1180422": true,
"1180423": true,
"1180424": true,
"1180427": true,
"1180429": true,
"1180430": true,
"1180431": true,
"1180432": true,
"1180433": true,
"1180434": true,
"1180435": true,
"1180436": true,
"1180437": true,
"1180440": true,
"1180441": true,
"1180443": true,
"1180448": true,
"1180450": true,
"1180452": true,
"1180454": true,
"1180456": true,
"1180458": true,
"1180459": true,
"1180460": true,
"1180461": true,
"1180462": true,
"1180463": true,
"1180464": true,
"1180465": true,
"1180467": true,
"1180469": true,
"1180475": true,
"1180476": true,
"1180477": true,
"1180478": true,
"1180479": true,
"1180480": true,
"1180481": true,
"1180483": true,
"1180484": true,
"1180486": true,
"1180487": true,
"1180488": true,
"1180491": true,
"1180492": true,
"1180494": true,
"1180495": true,
"1180498": true,
"1180500": true,
"1180501": true,
"1180502": true,
"1180503": true,
"1180504": true,
"1180505": true,
"1180506": true,
"1180507": true,
"1180508": true,
"1180509": true,
"1180510": true,
"1180513": true,
"1180514": true,
"1180515": true
}

408
src/testing/users.json Normal file
View File

@@ -0,0 +1,408 @@
[
{"type":"header","version":"4.9.11","comment":"Export to JSON plugin for PHPMyAdmin"},
{"type":"database","name":"db607449449"},
{"type":"table","name":"users","database":"db607449449","data":
[
{"password":"aac799b9332673a56ac6e89705ad2b9e7e3792c9aa266b58ae8eaf0b7dac45c6","level":"1","firma":"IB Cornelsen","anrede":"Sehr geehrter Herr","name":"Cornelsen","vorname":"Jens","email":"jens.cornelsen@ib-cornelsen.de","phone":"01786050734","resellercode":"a1314a83f915f1422923074bb79ebc","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503583","public_id":"","adresse":null,"titel":null,"uid":"ccc991cae95e502b2ad4cf90713d7dbfe947","lex_office_id":null,"strasse":"Katendeich 5a","plz":"21035","ort":"Hamburg"},
{"password":"cdbb161a62de9c0cc86dcee7028937dd82856e59967a7b72ff37895c95390aa4","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Dipl.-Ing. Raimonda Stasyte","vorname":"","email":"r.stasyte@online-energieausweis.org","phone":"01701029891","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503584","public_id":"","adresse":null,"titel":null,"uid":"84e8e1a031a2b17f63be8f1b3eeed54756e6","lex_office_id":null,"strasse":"","plz":"","ort":""},
{"password":"a1b5c673226d71763779dc2bb56ddfb6c414182b2323a71b21c129e84e19a826","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Xenia Cornelsen","vorname":"","email":"xenia2day@yahoo.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503585","public_id":"","adresse":null,"titel":null,"uid":"3d950003d84d402abdddad2530727f351576","lex_office_id":null,"strasse":"","plz":"","ort":""},
{"password":"777820a426017db3a2201ae96b69983d8eefc64435be40e8cdd70e668a9e34c7","level":"3","firma":"AXISA GmbH","anrede":"Sehr geehrter Herr","name":"Fischmann","vorname":"Axel","email":"axel.fischmann@axisa.de","phone":"030\/40635950","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503586","public_id":"","adresse":null,"titel":null,"uid":"87b42f742f60e53f174042f8ace49323aa34","lex_office_id":null,"strasse":"Welfenallee 11","plz":"13465","ort":"Berlin"},
{"password":"7d7349a6cfd362ca101fb57cadd752c88fdbb78c35a68e92f507c0e7b937138b","level":"3","firma":"","anrede":"","name":"Dipl.-Ing. Raimonda Stasyte","vorname":"","email":"raimonda.stasyte@ib-cornelsen.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503587","public_id":"","adresse":null,"titel":null,"uid":"a5b9e95c1114f2f31fa338db0fd37c97afcf","lex_office_id":null,"strasse":"","plz":"","ort":""},
{"password":"5cc62de8748bddf4be5e78a3142f96997a8ce78ae5b1410f3e6b5acb2f5e797a","level":"3","firma":"Niederrheinischer Immobilien Makler","anrede":"Sehr geehrter Herr","name":"von Doesburg","vorname":"Hans-Peter","email":"hpd@nvm-nim.de","phone":"+49(0)2823\/87124 ","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503589","public_id":"","adresse":null,"titel":null,"uid":"95000ffc27dc5463eeebe51824d8f352823c","lex_office_id":null,"strasse":"Herzogenstrasse 41","plz":"47574","ort":"Goch"},
{"password":"6734bb8580307ec4623c12efcb57ef7ac102fd54603ee9e8d52571a167de8a80","level":"3","firma":"Erich Rohlffs GmbH","anrede":"Sehr geehrter Herr","name":"Pannwitz","vorname":"J.","email":"pannwitz@rohlffs.de","phone":"040-3069490","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503590","public_id":"","adresse":null,"titel":null,"uid":"142daea5e66d1b5782255b5cc8380a321114","lex_office_id":null,"strasse":"Paul-Nevermann-Platz 2-4","plz":"22765","ort":"Hamburg"},
{"password":"d296f8311b5d68e698d623cca83339e1fe285579bbbce117e0fcd3209152bd00","level":"3","firma":"Guntermann Messtechnik","anrede":"Sehr geehrter Herr","name":"Wissing","vorname":"Michel","email":"info@guntermann-messtechnik.de","phone":"+49 2984 31031","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503591","public_id":"","adresse":null,"titel":null,"uid":"19bd20cdc838e073c39797bfc0e4a5fbc9c0","lex_office_id":null,"strasse":"Am Bückling 8","plz":"59969","ort":"Hesborn"},
{"password":"8798a76e20b56d13f78dd7a7dde1f0dffa5f1dbcb3bf8e31c306682c786bfd2e","level":"2","firma":"Dipl-Ing. (FH) Thomas Reiß","anrede":"Sehr geehrter Herr Dipl-Ing.","name":"Reiß","vorname":"Thomas","email":"reiss.lutter@t-online.de","phone":"0171 - 783 751 4","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503592","public_id":"","adresse":null,"titel":null,"uid":"f91c724ebe79798ec6b3060ce0a03ef2e088","lex_office_id":null,"strasse":"Richtershöhe 3","plz":"38729","ort":"Lutter a. Bbge."},
{"password":"fbea3ffe2a2b42c9d145851cbe686d977fe3990d7946100df425b691e0bc7a66","level":"2","firma":"Allianz Hauptvertretung Duisburg- Althomberg","anrede":"Sehr geehrter Herr","name":"Ala","vorname":"Muhamedin","email":"muhamedin.ala@allianz.de","phone":"0163 -441 331 7","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503594","public_id":"","adresse":null,"titel":null,"uid":"7115476b6b6cdb282403eef0421e5fe92239","lex_office_id":null,"strasse":"Augustastr.67","plz":"47198","ort":"Duisburg- Althomberg"},
{"password":"75cdeb6b3ce4e9acb035cb2b2d1bf11a341bf7ac4e1d578d46f94095d25c1092","level":"2","firma":"Ingenieurbüro Höfer","anrede":"Sehr geehrter Herr","name":"Höfer","vorname":"Jobst-Bernd","email":"jobst-bernd.hoefer@t-online.de","phone":"0171-1253569","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503596","public_id":"","adresse":null,"titel":null,"uid":"f7838ed95e687afc23bfa48d838e0478394b","lex_office_id":null,"strasse":"Lemgoer Str. 34","plz":"32689","ort":"Kalletal"},
{"password":"6f84aec2ed7f1203a0b98d5430b84b955d445fa8fd38f4f480c95ba4f809f473","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Weiß-Bostel","vorname":"Ursula","email":"joergbostel@web.de","phone":"0202 \/ 30 21 84","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503597","public_id":"","adresse":null,"titel":null,"uid":"8aa31e4a881e502979670d10d37b2991b3f3","lex_office_id":null,"strasse":"Otto-Hahn-Str. 89","plz":"40591","ort":"Düsseldorf"},
{"password":"4fb7412e25d7df37e818835271993dd765ec272fd8018258cc1b0eea6d9b6ef5","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Jäger","vorname":"","email":"jaeger@imobjekt.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503598","public_id":"","adresse":null,"titel":null,"uid":"23ab6e7839367e2381b71127df3237dafba2","lex_office_id":null,"strasse":"","plz":"","ort":""},
{"password":"1e449276e1ee46a623f4881092e8b6cf11739c68f0e0dac90916ac1873128ff1","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kleinmann","vorname":"Frank","email":"f.kleinmann@arcor.de","phone":"Tel. 0711\/44 12 711","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503599","public_id":"","adresse":null,"titel":null,"uid":"b433503f489933670b73ab74f15a46296589","lex_office_id":null,"strasse":"Opalweg 2","plz":"70619","ort":"Stuttgart"},
{"password":"40959d864d07d96461e6dff373b96b5168a98554de73b9564875d2ba0e9dd0e1","level":"2","firma":"Immobilien & Hausverwaltung","anrede":"Sehr geehrter Herr","name":"Rüffer","vorname":"Dirk","email":"Dirk.Rueffer@web.de ","phone":"06422\/85208","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503600","public_id":"","adresse":null,"titel":null,"uid":"76a171fb9c4ebe66a02b1407402c6cac100f","lex_office_id":null,"strasse":"Eisenbahnstrasse 3","plz":"35274","ort":" Kirchhain"},
{"password":"0c34a0e3c7f3eccc796f51fad6badeae8b41f2f8f977f48cf9b3459ca7313f5e","level":"2","firma":"Bertsch Heizungsbau","anrede":"Sehr geehrter Herr","name":"Ebenhoch","vorname":"","email":"ebenhoch@sahrix.de","phone":"0751-92510","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503601","public_id":"","adresse":null,"titel":null,"uid":"bcb171e5ea616894bcc992212824e95d2518","lex_office_id":null,"strasse":"Marienburgerstrasse 7","plz":"88213","ort":"Ravensburg"},
{"password":"e763ede0352d541138af2861a390c277e8fde3f9127b83210b212929a7bd0cb1","level":"2","firma":"Selbständige NL OmniCon Ltd","anrede":"Sehr geehrter Herr","name":"Löbbe","vorname":"","email":"info@fouhrmans-asset-management.com","phone":"+49 (0)2863 38 29 662","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503602","public_id":"","adresse":null,"titel":null,"uid":"50447ae8f324c280a45fa8b0fbb73bcddabc","lex_office_id":null,"strasse":"Eschstr.124","plz":"46342","ort":"Velen"},
{"password":"f034d51622bdabbbcc9d8d7fa869597483e05ee82de94a4a22169e1c5c828a1c","level":"2","firma":"Volker Walter","anrede":"Sehr geehrter Herr","name":"Walter","vorname":"Volker","email":"volker.walter@web.de","phone":"07941 649909","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503603","public_id":"","adresse":null,"titel":null,"uid":"b2ae949f45013f0320a19bcb2c5881e491a1","lex_office_id":null,"strasse":"Baumschulweg 26","plz":"74613","ort":"Öhringen"},
{"password":"d1ea1ed4d91560648f2c4fa224317fa4a6d6254f90b4a568bca0c754c3d6a3b6","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schaumann","vorname":"Frank","email":"F.Schaumann@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503604","public_id":"","adresse":null,"titel":null,"uid":"99221398c42ef31cae9210bb4627e0766fb8","lex_office_id":null,"strasse":"Bürgerm.-Horstmann.-Str. 34","plz":"34281","ort":"Gudensberg"},
{"password":"550a0634f6489a6beb940b7ca95af177c2862064cdb3d6dcfa995e849e1d57b9","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Spiel","vorname":"Erna","email":"ricspi@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503605","public_id":"","adresse":null,"titel":null,"uid":"95d254769a9ec3d660e8d97ad266e5fd4c3a","lex_office_id":null,"strasse":"Oelbermannstr. 3","plz":"23566","ort":"Lübeck"},
{"password":"c52306fece272999ca7372489049968ec9b2199dfbce57bbf8f2c624171980ad","level":"2","firma":"Haus & Finanz Konzept Böcher","anrede":"Sehr geehrter Herr","name":"Böcher","vorname":"Clemens M.","email":"boecher@hausfinanzkonzept.de","phone":"06655 9874760","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503606","public_id":"","adresse":null,"titel":null,"uid":"b752b29919c27e09bfa592f741ae8f5ba2da","lex_office_id":null,"strasse":"Am Schönenhof 21","plz":"36148","ort":"Kalbach"},
{"password":"6d1859d361a1f5de6761be4f22c5baff7417aba73dd3dc0dee91cbf67525afa0","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Cornelsen","vorname":"Jens","email":"mail@jens-cornelsen.de","phone":"040 \/ 546532","resellercode":"5cd10e872ce696d7fd92b6957e1ac7","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503607","public_id":"","adresse":null,"titel":null,"uid":"a73bfa7419bb6d1df4a48bfcdf310e392f5d","lex_office_id":null,"strasse":"Osterweg 6","plz":"22587","ort":"Hamburg"},
{"password":"c72688ddaf2cbbc2858f8f2d725e3f23fcc2784e641233e63bf902034887febd","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Di Paolo","vorname":"Valter","email":"toro566@freenet.de","phone":"07836307744","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503608","public_id":"","adresse":null,"titel":null,"uid":"3a8c548accad52dc4f031e337dac0ccb03da","lex_office_id":null,"strasse":"Baumgartenstrasse 26","plz":"77761","ort":"Schiltach"},
{"password":"cf81519e93e77bb849f37f5494001c0b4e5b336111feb0ec46675bd8c51b6660","level":"2","firma":"domicil Erschließungsträger GmbH","anrede":"Sehr geehrter Herr","name":"Metzler","vorname":"Rainer","email":"info@domicil-erschliessung.de","phone":"02261 \/ 80 91 0","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503609","public_id":"","adresse":null,"titel":null,"uid":"9321e6419be516b74c252f33787ad531a045","lex_office_id":null,"strasse":"Brückenstr. 24","plz":"51643","ort":"Gummersbach"},
{"password":"568fee311576cd10d5569fb9d4610c59c253ecba7ecde207047acd3320301060","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kraus","vorname":"Maximilian","email":"erikakraus@freenet.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503610","public_id":"","adresse":null,"titel":null,"uid":"c0b60d23bd368684d8e2f47710f8eda919d5","lex_office_id":null,"strasse":"Bergstr.1","plz":"78086","ort":"Brigachtal"},
{"password":"7d881209ac34c3be36f93e41394261bcc95a57e69dff2d90a412a4882948fb13","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schmidt","vorname":"Christian","email":"00doc@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503611","public_id":"","adresse":null,"titel":null,"uid":"184d65b87c8394921df34a76b3f31ddc587c","lex_office_id":null,"strasse":"Falkenweg 1c","plz":"40468","ort":"Düsseldorf"},
{"password":"24b38451d200cde8031aa8ccb1f2d293586298eedff14593a77d0ca4c6343ad4","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Ziegler","vorname":"Jörg","email":"ziegler.hausbau@web.de","phone":"0179-5149327","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503612","public_id":"","adresse":null,"titel":null,"uid":"83a8b1298c7de06fb9d7b3f072670e79a491","lex_office_id":null,"strasse":"Heideweg 13","plz":"47506","ort":"Neukirchen-Vluyn"},
{"password":"c783effa69c064cc75cef1de008a51542b865ff14a458efea34c4ebdfc1a9bdc","level":"2","firma":"Polke Immobilien GmbH","anrede":"Sehr geehrter Herr","name":"Polke","vorname":"Adam","email":"Adam.Polke@polke-immobilien.de","phone":"07156-1776710","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503613","public_id":"","adresse":null,"titel":null,"uid":"b57406f770df4a48bfd4d4ec14f198f48dab","lex_office_id":"2b48ce22-290e-49b8-9497-0fa71217077e","strasse":"Forchenrainstraße 33","plz":"70839","ort":"Gerlingen"},
{"password":"196bfcb54b59396d58743b3f7bc32c3cf507cb5dc43ada13afd00646fde069e5","level":"2","firma":"","anrede":"Sehr geehrter Herr Dipl-Ing.","name":"Papke","vorname":"Georg","email":"georgpapke@web.de","phone":"07121-22898","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503614","public_id":"","adresse":null,"titel":null,"uid":"a19a5fa4a463ec4ed69c0ba16df48b3bfbb5","lex_office_id":null,"strasse":"Bodelschwinghstrasse 38\/2","plz":"72762","ort":"Reutlingen"},
{"password":"fce7eb50ceff6836405c8489d20decc0eba976017da2bae9e453df5a1bbe70c0","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Hettche","vorname":"Matthias","email":"Matthias.Hettche@t-online.de","phone":"06406 906644","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503615","public_id":"","adresse":null,"titel":null,"uid":"78353087eefffebcb6df4655b8aa48aa613e","lex_office_id":null,"strasse":"Zsambeker Straße 21","plz":"35457","ort":"Lollar"},
{"password":"a0ed16ef8fec74cce1cd5a4ac01933276e936508136c2ae1a25e00d624f4953b","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Dieter","vorname":"Beeck","email":"gabi.plenge@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503616","public_id":"","adresse":null,"titel":null,"uid":"bcf63fff0434a898ad5f017e36307544a48d","lex_office_id":null,"strasse":"Huntestr. 18","plz":"28844","ort":"Weyhe"},
{"password":"9b979ca84e3ce7eed08d20b4a2f38d875f7dfffcacea8391bbd872891bba115d","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Pieper","vorname":"","email":"w_pieper@gmx.de","phone":"0271 809 4242","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503617","public_id":"","adresse":null,"titel":null,"uid":"be798c823ab9a9f1a0041a031a04466cae7b","lex_office_id":null,"strasse":"Stargarder Str. 12","plz":"57072","ort":"Siegen"},
{"password":"e8d1c260252153a42a036c3c66efe01dabf56277efa33ae85f79ac8a96bead93","level":"2","firma":"","anrede":"Sehr geehrte Frau Dr.","name":"Baumgarten","vorname":"Caroline","email":"c.baumgarten@netcologne.de","phone":"0228 - 619 66 03","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503618","public_id":"","adresse":null,"titel":null,"uid":"42e3495e7b0fe684ffc2418505755b60cf5e","lex_office_id":null,"strasse":"Dechant-Heimbach-Str. 4","plz":"53177","ort":"Bonn"},
{"password":"294c7dc52b4e0f39d9e8c9352b4fd7bd20b7b2214cfd7e7a500d66056f7f4170","level":"2","firma":"Ernst Martin Petersen","anrede":"Sehr geehrter Herr","name":"Schütze","vorname":"Alexander ","email":"pos@online-energieausweis.org","phone":"040 7258480","resellercode":"2b5f2445d1952a8816e4db52ba3a10","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503619","public_id":"","adresse":null,"titel":null,"uid":"52ae78529b9ec4e96406f785ebcb576895d2","lex_office_id":null,"strasse":"Fuhlsbüttler Strasse 533","plz":"22337","ort":"Hamburg"},
{"password":"0195fcae2b30683e3de22abdb183e2501833a4965f05e0897a0eb0131f41664f","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Lechl","vorname":"Elisabeth","email":"e.lechl@web.de","phone":"085025105","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503620","public_id":"","adresse":null,"titel":null,"uid":"4fd7c724d52edb00013f1ad4c4f044a742c5","lex_office_id":null,"strasse":"Hochstrasse 30","plz":"94127","ort":"Neuburg am Inn"},
{"password":"bec4d07b4ee2ed8233481857f4d7f69e2c49917e707fe3bc11c7aca66e434c92","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kaspers","vorname":"Ernst","email":"samson.kelberg@t-online.de","phone":"0178-4540014","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503621","public_id":"","adresse":null,"titel":null,"uid":"77b5612ab895fbcdc6c9a7545d38f49087af","lex_office_id":null,"strasse":"Mayener Str. 9","plz":"53539","ort":"Kelberg"},
{"password":"1620e54f6c3532deacb34f93d3eb92755a92ff5e217177ad60889cf6ecdcd60f","level":"2","firma":"Privat","anrede":"Sehr geehrter Herr","name":"Essert","vorname":"Bernd","email":"bernd.essert@t-online.de","phone":"06347\/608678","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503622","public_id":"","adresse":null,"titel":null,"uid":"fea9da8be8edab8aa5cb58be66de0895fd52","lex_office_id":null,"strasse":"Römerweg 3","plz":"76879","ort":"Essingen"},
{"password":"bf802eaf6702d2909b752195b1057b9452936bfdc4e758502772ec2a205a35ee","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Lindau","vorname":"Manfred","email":"Manfred.Lindau@t-online.de","phone":"06196 907388","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503623","public_id":"","adresse":null,"titel":null,"uid":"acf77e1dc7f898daa614f1aea7534a77b562","lex_office_id":null,"strasse":"Kronberger Straße 15","plz":"65812","ort":"Bad Soden"},
{"password":"9d83aa7e7f25855a49232f62e91b9d124740995e8fd5baa36e33e4b9da2bbe6f","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Nebel","vorname":"Christel","email":"nebel40@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503624","public_id":"","adresse":null,"titel":null,"uid":"6a29a613c5348dc3c42f33922127f616880a","lex_office_id":null,"strasse":"Hefeler Str. 20","plz":"42551","ort":"Velbert"},
{"password":"2378e6350c53207f112547177016a1ca42ddb3d537ef0d9184804efad84980b8","level":"2","firma":"Immobilien Kontor Husum","anrede":"Sehr geehrter Herr","name":"Rolf","vorname":"Brückner","email":"mail@immokon.de","phone":"04841-82700","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503625","public_id":"","adresse":null,"titel":null,"uid":"2aea9d7c9a62aa5d1e4a9c419c24d95ea77c","lex_office_id":null,"strasse":"Norderstr. 32","plz":"25813","ort":"Husum"},
{"password":"c48086e00fea7d3b3f7146ecfc765aeab6e78c54bc744104ee1e7e00f2bdea49","level":"2","firma":"Heike und Rolf Knauseder","anrede":"Sehr geehrte Frau","name":"Knauseder","vorname":"Heike","email":"rolf.knauseder@physiotec.de","phone":"015154438701","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503626","public_id":"","adresse":null,"titel":null,"uid":"97afcf63eea91a02ae92e33934e809bd09ed","lex_office_id":null,"strasse":"Balthasar- Graf- Str. 18","plz":"82061","ort":"Neuried"},
{"password":"36727b3402d9961d4ce4a38f9cd884033c36a2f3e78468f0311cf7a2af883785","level":"2","firma":"Peter und Hannelore Bär","anrede":"Sehr geehrter Herr","name":"Bär","vorname":"Peter","email":"Baer_Peter@t-online.de","phone":"09562\/3371","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503627","public_id":"","adresse":null,"titel":null,"uid":"6881b739756fa465881e491b421f8c534947","lex_office_id":null,"strasse":"Steinroderstraße 11","plz":"96237","ort":"Ebersdorf"},
{"password":"43bd922a42412ec7d4e74c05c1f8428b6bba9b3f99f8160c4f93b6b66aded4d7","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kohlleppel","vorname":"Dietrich","email":"dhfkohllep@aol.com","phone":"0234\/264932","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503628","public_id":"","adresse":null,"titel":null,"uid":"97acf784be23a8d80a46016a2dac0d24c267","lex_office_id":null,"strasse":"Kreyenfeldstr. 7","plz":"44894","ort":"Bochum"},
{"password":"bbe8d402c88ff93917b914f9b3117c38a98aebad1ba8ad89a7f2208196f68611","level":"2","firma":"Eigentümergem. Enge und Tonn","anrede":"Sehr geehrter Herr","name":"Tonn","vorname":"Rüdiger","email":"ruediger.tonn@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503629","public_id":"","adresse":null,"titel":null,"uid":"281c9d4c4f16df4784ebca1574f1ae798ed8","lex_office_id":null,"strasse":"Heuweg 54 E","plz":"21502","ort":"Geesthacht"},
{"password":"a698651b226bc804ece67b2929b34568975d0b1d3a7ff1e2500a2da29280aef8","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Habig","vorname":"Heinrich","email":"heihabig@2inc.de","phone":"0208\/400481","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503630","public_id":"","adresse":null,"titel":null,"uid":"4a6129656fa491afe8073aa338dbfd23ab9e","lex_office_id":null,"strasse":"Eberhard","plz":"45476","ort":"Mülheim"},
{"password":"1641be3601e02eb6f1cfba7c20883983ae3c2086e525205f808ff7eb829b39d6","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Fischer","vorname":"Irene","email":"nwwcfischer@aol.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503631","public_id":"","adresse":null,"titel":null,"uid":"96420a2b4451307127f6fcf9ee977e07674e","lex_office_id":null,"strasse":"Dorfstr. 4","plz":"24616","ort":"Brokstedt"},
{"password":"e3516bb061b9823f87d490934550de792f49c021175dab802203db1a14aab331","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Wider","vorname":"Hans-Wilhelm","email":"wider.hw@t-online.de","phone":"05231 33028","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503632","public_id":"","adresse":null,"titel":null,"uid":"c3c295002c42e2f5ce224d55b9aa3366e38c","lex_office_id":null,"strasse":"Annastr. 57","plz":"32756","ort":"Detmold"},
{"password":"87e10a1dc5386cd0744f482aba216e33964afc33e98a72b12b705de78a171ad6","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Oppermann","vorname":"Ernst","email":"oppermann.ernst@web.de","phone":"08131\/93408","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503633","public_id":"","adresse":null,"titel":null,"uid":"7f5ccc59d69aa2f5e51562821256ce223bba","lex_office_id":null,"strasse":"Hermann-Löns-Str.2","plz":"85757","ort":"Karlsfeld"},
{"password":"f4f3a3fd479dee21a704e1b1de3e3b8dc772480f5eb34956e4dc662989089216","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Krug","vorname":"Gaby und Thomas","email":"thomas.krug@web.de","phone":"07240\/5569","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503634","public_id":"","adresse":null,"titel":null,"uid":"16a45fc0b60f905cdc549f31dc97b3d9629a","lex_office_id":null,"strasse":"Wössinger Str. 3\/1","plz":"76327","ort":"Pfinztal"},
{"password":"a9716f5efbe60e2b300f23d3615367d193a81b21575d4cc786e8f5a70d846ca2","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Traunecker","vorname":"Volker","email":"bolla114@aol.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503635","public_id":"","adresse":null,"titel":null,"uid":"6fa880895d4f03e07256cc737b3eeaccad39","lex_office_id":null,"strasse":"Heidestr. 68c","plz":"44581","ort":"Castrop-Rauxel"},
{"password":"389a68a22fe192376bf697106b8f89a8769aedc1a6a3f7beb7ffef094dee7ddd","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Diehr","vorname":"Virginia","email":"virginia.diehr@arcor.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503636","public_id":"","adresse":null,"titel":null,"uid":"3642f4905b8820cc84c0fa6155baebdf74f2","lex_office_id":null,"strasse":"Leipziger Str. 28","plz":"06901","ort":"Kemberg"},
{"password":"3bf11d16529546cea9337f1aadf4496deb72f1e93ac82d207eadee56ed5ece93","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Kaempf","vorname":"Bernd","email":"b.kaempf@unitybox.de","phone":"0177 4335083","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503637","public_id":"","adresse":null,"titel":null,"uid":"b408937ae798f47991c6e5fcfa477e209ec1","lex_office_id":null,"strasse":"von-Flotow-Str. 24","plz":"45772","ort":"Marl"},
{"password":"de5fe06c60829b5b4675a0da81f3f2c18277889e72b257d5fe588babd9c28c87","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Weimert","vorname":"Bernhard","email":"Bernhard.Weimert@web.de","phone":"07172 \/ 4765","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503638","public_id":"","adresse":null,"titel":null,"uid":"140461574f0305ce3656f91a2abde06f8c69","lex_office_id":null,"strasse":"Panoramastrasse 11","plz":"73547","ort":"Lorch"},
{"password":"9d1c370ee478cd6c9ae5e0bae402bb55b7c79df054273c9bd81e66529baf2a86","level":"2","firma":"Hamburger Immobilienpool","anrede":"Sehr geehrter Herr","name":"Zsold","vorname":" ","email":"post@online-energieausweis.org ","phone":"040 6482555","resellercode":"66d58b0ada2ab8b65a97b6c0d3fa5c","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503639","public_id":"","adresse":null,"titel":null,"uid":"a91b59ebfa7402dad113c3bfc0ce06d37b43","lex_office_id":null,"strasse":"Harders Kamp 2","plz":"21031","ort":"Hamburg"},
{"password":"4ab518acf2c985d693dd55aa43733d4844a47b48198d66e98ddcad60123d8199","level":"2","firma":"Joachim Riechert Gmb","anrede":"Sehr geehrter Herr","name":"Riechert","vorname":"Joachim","email":"info@riechert-immobilien.de","phone":"040 4133150","resellercode":"7207ff2879faf6118a5b45f7c31991","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503640","public_id":"","adresse":null,"titel":null,"uid":"4c1fa6fcf8be8f187db27ddb1574ed685199","lex_office_id":null,"strasse":"Schlüterstrasse 62","plz":"20146","ort":"Hamburg"},
{"password":"56803b155fbb33317ef339f8870774f8cf32284e0a8d2039a5ee84364fe524a9","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kist","vorname":"Manfred","email":"Manfred.Kist@hotmail.de","phone":"06221 775348","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503641","public_id":"","adresse":null,"titel":null,"uid":"366dc8641c70d2139771e352dabb738f5e66","lex_office_id":null,"strasse":"Im Schaffner 2","plz":"69123","ort":"Heidelberg"},
{"password":"41b428fef6d636a1597ffd3e34b54a1721897948470bccb52e82f7633028e982","level":"2","firma":"Wodarka 8 Immobilien","anrede":"Sehr geehrter Herr","name":"Wodarka","vorname":"Heinz","email":"wodarka-immobilien@gmx.de","phone":"05341-37229","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503642","public_id":"","adresse":null,"titel":null,"uid":"c995f947ac0b85578224febcddaa61156fa3","lex_office_id":null,"strasse":"Grüner Weg 2","plz":"38259","ort":"Salzgitter"},
{"password":"2e1893923065c8e5279c19fccf0a05a616e89277ea38cb6c9f50e87065f9bddb","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Krüger","vorname":"Anja","email":"krueger42@web.de","phone":"0491 - 977 6800","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503643","public_id":"","adresse":null,"titel":null,"uid":"5e93528501853dab8a9047574ec27e1a170d","lex_office_id":null,"strasse":"Fährstr. 2","plz":"26847","ort":"Detern"},
{"password":"8e1105d0ce477d6e11bc25af00daa0f6854a79b7e3a49f497114a0e6d258321e","level":"2","firma":"Immobilien Service Fenner","anrede":"Sehr geehrter Herr Dipl.-Ing.","name":"Fenner ","vorname":"Hans-Ulrich ","email":"info@is-fenner.de","phone":"040 6055072-7 ","resellercode":"c6ad696e52010394a3976028790bb7","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503644","public_id":"","adresse":null,"titel":null,"uid":"2113be655d4aa2dc7e1df4799f48992ded97","lex_office_id":null,"strasse":"","plz":"","ort":""},
{"password":"dced4151b653c72200d52b9cca8988ca718920ec6baf1d6700de21b291445c84","level":"2","firma":"UC Projektentwicklung und Vermarktung ","anrede":"Sehr geehrte Frau","name":"Ciulkowski ","vorname":"Ute ","email":"info@ucp-vermarktung.de","phone":"04121-700 66 10 ","resellercode":"7c978a794f51034442a25074933adf","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503645","public_id":"","adresse":null,"titel":null,"uid":"6ddb3b13ed808abaf02ae8f477f741ae809d","lex_office_id":null,"strasse":"","plz":"","ort":""},
{"password":"62fee0a082fa715dc994b830c041af30c76edbc9b9461b27ebc32c5e9ce15fb2","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Hödtke","vorname":"Karin","email":"wolfgang@plothouse.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503646","public_id":"","adresse":null,"titel":null,"uid":"4170b88222810a338d9517f6155cb6d1c981","lex_office_id":null,"strasse":"An der Kirschhecke 40","plz":"55127","ort":"Mainz"},
{"password":"170581adcd0e97c94d85a1d91eb653645a54959d9b99fa173830da291488227f","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Nienaber","vorname":"Fritz","email":"fritz.nienaber@ewetel.net","phone":"0441-43949","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503647","public_id":"","adresse":null,"titel":null,"uid":"dc7f63d7f880a17128238e20897992e34c25","lex_office_id":null,"strasse":"Suhrkamp","plz":"26133","ort":"Oldenburg"},
{"password":"a6a2e63579b9333f746ca332ea9ca2480b80b6680c9cd7a448db84f08c9a69d9","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Patz","vorname":"Stefan","email":"stefan.patz@yahoo.de","phone":"015771463131","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503648","public_id":"","adresse":null,"titel":null,"uid":"47433645b9d7b286446587f3379a626b3e07","lex_office_id":null,"strasse":"Bächelsberg 50","plz":"56651","ort":"Niederzissen"},
{"password":"c3ed255cfe133c95d0343d4e007ffe6c56c1d367a8d5ef0c770c037911fafb9d","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Hölscher","vorname":"Brigitte","email":"brigittehoelscher@gmx.de","phone":"040\/ 605 55 27","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503649","public_id":"","adresse":null,"titel":null,"uid":"27dc43366b7394806e529670cb6e34cf91b3","lex_office_id":null,"strasse":"Hoisbütteler Straße 76","plz":"22397","ort":"Hamburg"},
{"password":"f8368d2b29d449dd770ac721c6fcc1132273b129e34c811927ea882c7c65f430","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Töpperwein","vorname":"Friedrich","email":"schreinerei.toepperwein@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503650","public_id":"","adresse":null,"titel":null,"uid":"06f8b1548ad0d23a77f5e66ca169f16d0b5b","lex_office_id":null,"strasse":"Ernteweg 2","plz":"34576","ort":"Homberg"},
{"password":"550ccba193cff4909c00ec2a9b6146f4e93de1e50b33877d2729ca0dbaf44f25","level":"2","firma":"c\/o Paulenz Immobilien ","anrede":"Sehr geehrte Frau","name":"Paulenz","vorname":"Ellen","email":"INFO@PAULENZ-IMMOBILIEN.DE","phone":"0385 793639","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503651","public_id":"","adresse":null,"titel":null,"uid":"87afebb5b9d8f322559d7db156f9059ebe65","lex_office_id":null,"strasse":"Zum Bahnhof 40","plz":"19053","ort":"Schwerin"},
{"password":"e9087ce9e126457d8bd6af7e9f34f62d75c20409a7f279f9bb9533a74e661d96","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Knoop","vorname":"Ilona","email":"Knoop_Ilona@web.de","phone":"05032\/891720","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503652","public_id":"","adresse":null,"titel":null,"uid":"897965612aa6f8f06de1cb2c4070e79a5ba0","lex_office_id":null,"strasse":"Landwehr 28 a","plz":"31535","ort":"Neustadt"},
{"password":"89ab909c5573fe8d380394de1b95157274871789051a57cd25c68753a1cf0f7e","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Feldmann","vorname":"Heinz Ulrich","email":"ulifeldmann@gmx.de","phone":"(0163) 2 60 49 47","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503653","public_id":"","adresse":null,"titel":null,"uid":"434a60e656154613058d7e2f8bd395cf612b","lex_office_id":null,"strasse":"Rosenstr. 4","plz":"58313","ort":"Herdecke"},
{"password":"71b709c9a7d83d498f100979451a3a9140e0b3d172c0e0ca84819e56ab013bd8","level":"2","firma":"WEG Scheibener Straße 17","anrede":"Sehr geehrter Herr","name":"Steib","vorname":"Jakob","email":"Mail@Jakob-Steib.de","phone":"08381\/2111","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503654","public_id":"","adresse":null,"titel":null,"uid":"e91a2b2b155cdeeebe4bb9c13bfcdef30a2a","lex_office_id":"1addfc22-0f76-44cf-a61b-252dcbf075cb","strasse":"Blumenstraße 2","plz":"88161","ort":"Lindenberg"},
{"password":"6234acd125696a4064162ff62a212785b30f7d66fe84d8c2d4c3278de4d1c473","level":"2","firma":"Eigentümergemeinschaft Kerssenbrockstr. 9","anrede":"Sehr geehrte Frau","name":"Wiedebusch","vorname":"Claudia","email":"cpWiedebusch@web.de ","phone":"0251-298428","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503655","public_id":"","adresse":null,"titel":null,"uid":"ffcf8ec13eec0e63f1c6b6e24e81ddc55907","lex_office_id":null,"strasse":"Kerssenbrockstr. 9","plz":"48147","ort":"Münster"},
{"password":"87cdf3b1d32000e67c60b1da7fd3f5438c5b55bbb616fd1330bc98a35c006fd8","level":"2","firma":"WEG Lehnestraße 39","anrede":"Sehr geehrte Frau","name":"Engelstädter","vorname":"Renate","email":"renate.Engelstaedter@t-online.de","phone":"030 56495290","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503656","public_id":"","adresse":null,"titel":null,"uid":"4d8f492dd8516b7126b2b3b26c9a8835184e","lex_office_id":null,"strasse":"Lehnestraße 39","plz":"12621","ort":"Berlin"},
{"password":"6b73af03ae120f5a6051a9cdc0e6a5010b3b7240076767eee4385485f19a9836","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Dietz","vorname":"Karl-Heinz","email":"DietzKHD@aol.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503657","public_id":"","adresse":null,"titel":null,"uid":"9627ddd708c3d9501434ce21fa62546271d0","lex_office_id":null,"strasse":"Heinrich-Heine-Str. 33","plz":"40721","ort":"Hilden"},
{"password":"4b10af063d7d5721495c9ae970a97531b4b4d46ad4aa8afee46f711dafd2c71c","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"itzek","vorname":"helmut","email":"helmut.itzek@freenet.de","phone":"02323 68028","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503658","public_id":"","adresse":null,"titel":null,"uid":"76b4337b02c41afc11299f31cae95e91c727","lex_office_id":null,"strasse":"am krickeen 27 a","plz":"44627","ort":"herne"},
{"password":"d8fe40fb4a35af73b78cad555148db7ada7bdca05c8048418a2964fe1174f22e","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Geier","vorname":"Hildegard","email":"hildegard.geier@online.de","phone":"07022 \/ 41473","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503659","public_id":"","adresse":null,"titel":null,"uid":"b17e237ae7c710cde04770b6fb8976a16b58","lex_office_id":null,"strasse":"Mozartstrasse 11","plz":"72636","ort":"Frickenhausen"},
{"password":"dc56b8113502db8b012644b8dd1714762eb1be91e727a5200d6dc1deb14a1b1a","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Riebling","vorname":"Reyna","email":"Alex_Riebling@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503660","public_id":"","adresse":null,"titel":null,"uid":"c26b6df62689500014321fccaea76a16df5d","lex_office_id":null,"strasse":"Krotzenburger Str. 7","plz":"63796","ort":"Kahl"},
{"password":"5fd70734a0ad150883c5e948ddea38c9d39fc8b6d506a8ee20f12c432b3c1b7a","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Oppermann","vorname":"Carola","email":"michael@mfechner.de","phone":"0531848546","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503661","public_id":"","adresse":null,"titel":null,"uid":"22531b6fa3494a5ce1d060e7acf8d823ab86","lex_office_id":null,"strasse":"Lichtenberger Straße 41B","plz":"38120","ort":"Braunschweig"},
{"password":"e5f2eda37916485c9265ca643e056d83008445624c48fe65c1e468963ec78596","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Pahl","vorname":"Dieter","email":"dieter.pahl@congstar.de","phone":"07141-33613","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503662","public_id":"","adresse":null,"titel":null,"uid":"74e9366e20d23933aa44a897aa6fa491b306","lex_office_id":null,"strasse":"Michaelsbergstr. 24","plz":"71634","ort":"Ludwigsburg"},
{"password":"6d84f582ce0e984fa18093c789e74432615ef9b839fc8bde1d5fbae0b92beb01","level":"2","firma":"","anrede":"Sehr geehrter Herr Dipl-Ing.","name":"Stapelberg","vorname":"Hans","email":"Hans.stapelberg@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503663","public_id":"","adresse":null,"titel":null,"uid":"d10cdc8392f60141b41ddad38e1db170a31d","lex_office_id":null,"strasse":"An der Wolfskaul 80","plz":"41812","ort":"Erkelenz"},
{"password":"0ca3ef7c776f31bd471af3474bfd04ac9cd746755a604f1a7347936015bdc81d","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Buschmann","vorname":"Thomas","email":"T.Buschmann1@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503664","public_id":"","adresse":null,"titel":null,"uid":"09bfb8822405a4491c9ba448dc2950ffd66b","lex_office_id":null,"strasse":"Ulmenweg 19","plz":"46562","ort":"Voerde"},
{"password":"8a347fa709ff59d435e060de9f9a9f9a33260ef32eb0cf9fe44b2a304d015e8f","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Repp","vorname":"Irma","email":"alexrepp55@aol.com","phone":"07159\/18356","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503665","public_id":"","adresse":null,"titel":null,"uid":"6e4ce51305cb31cb3c42deec26b4363d98da","lex_office_id":null,"strasse":"Leonberger Str.19\/1","plz":"71272","ort":"Renningen"},
{"password":"e786d9113de4d7a01dca3e34bd355bf28023ce234cab30967c585edee7ea02c2","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Jeuring","vorname":"Georg","email":"georgjeuring01@aol.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503666","public_id":"","adresse":null,"titel":null,"uid":"b87db3c7c725447b017f5c1e63f1852c84c2","lex_office_id":null,"strasse":"Buchsbaumweg 12","plz":"49808","ort":"Lingen"},
{"password":"864121d6cd1ca01f56245453db7da8fbbaac47df7da04318c24e804c673606c0","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Bartlick","vorname":"Uwe","email":"Uwebartlick@alice-dsl.net","phone":"015774394865","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503667","public_id":"","adresse":null,"titel":null,"uid":"4ed808bf8c55cb434a895e7afd402c69c27f","lex_office_id":null,"strasse":"Sindernweg 9","plz":"44265","ort":"Dortmund"},
{"password":"c269d3e216e74a57a054aaeb23447161f4ca1748e47af3cd9c85694e14983547","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Hapke","vorname":"Ronny","email":"r.hapke@gmx.de","phone":"01726283333","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503668","public_id":"","adresse":null,"titel":null,"uid":"491aea9173ab9d66f8bfd38ef31e48f074ff","lex_office_id":null,"strasse":"Heidelberger Straße 19","plz":"69221","ort":"Dossenheim"},
{"password":"fb4dfb3af10a4ab0b22b7a2542080e34a6a34ca0a21d95882ced6e7fb4ebc25b","level":"2","firma":"Eigentümergemeinschaft","anrede":"Sehr geehrte Frau","name":"Andersen","vorname":"","email":"Wigbert-Heiser@t-online.de","phone":"0432992909","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503669","public_id":"","adresse":null,"titel":null,"uid":"ea9fff15a2db2acdef05b6fa73be62c6b3f2","lex_office_id":null,"strasse":"Legerader Weg 2","plz":"25899","ort":"Niebüll"},
{"password":"7b334d526c6d5c0b1e05c64965200c436fc359ba7b91570833c94386f9ad0982","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Hauser","vorname":"Hans-Georg","email":"h.g.hauser@t-online.de","phone":"05232 64914","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503670","public_id":"","adresse":null,"titel":null,"uid":"f74059d7e22240576b3f591c6b87a0fe95e7","lex_office_id":null,"strasse":"Afrikastraße 26","plz":"32791","ort":"Lage"},
{"password":"9b93027551908f033f430d069b1adf87ea7e1d86bcd1c2246e1040c3b7d67778","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Vornberger","vorname":"Edna","email":"EdnaVorn@T-online.de","phone":"06074 3866","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503671","public_id":"","adresse":null,"titel":null,"uid":"8382f8c4ed69aa31cb419d673a91b3059f2f","lex_office_id":null,"strasse":"Feldstr. 5","plz":"63128","ort":"Dietzenbach"},
{"password":"c9e00887719ab4003e33b8d9ac1c86c4b531621308eea7201f90d79e9ea9dd34","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Giebelhausen","vorname":"Arno ","email":"albert_@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503672","public_id":"","adresse":null,"titel":null,"uid":"2089617f5e9323950fc251ae7b170b611143","lex_office_id":null,"strasse":"Küstriner Straße 12 a","plz":"12305","ort":"Berlin"},
{"password":"c028b3a01875a43e6678f58fe0b72c7b980d047c549407435874ca81f92029f5","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Fahrbach","vorname":"Petra","email":"fahrbach.p@web.de","phone":"02273 \/ 4277","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503673","public_id":"","adresse":null,"titel":null,"uid":"1f769be4a5e8dbe7978516a2e06e4a755a31","lex_office_id":null,"strasse":"Kettelerstraße 16","plz":"50169","ort":"Kerpen"},
{"password":"9c1299a2eb5b9a1f253a006d7f625baebea0bd9beba85cc4c0708d9f5684e25b","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Reuter","vorname":"Vinzenz","email":"herbertreuter@web.de","phone":"026366128","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503674","public_id":"","adresse":null,"titel":null,"uid":"e20cb2c6a2ed84a897966ddc7de1882f9eb0","lex_office_id":null,"strasse":"Brohltalstr.119","plz":"56651","ort":"Niederzissen"},
{"password":"a9b320123ca49fff79035986f7fac32967fbf27b81cc3f406423dcda18bd43b5","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Klus","vorname":"Karl-Heinz","email":"khklus@web.de","phone":"0151 165 75 227","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503675","public_id":"","adresse":null,"titel":null,"uid":"0e91afd53e1b3eeb0000014087ad4c27db01","lex_office_id":null,"strasse":"Ospreußenstraße 4","plz":"49492","ort":"Westerkappeln"},
{"password":"53653e6acff92c5b27ad0529c34d5e1a0a38bdf14c9e17795d60874ddf3c67f0","level":"2","firma":"Dr. Mechtild Kuhlmann Weßeling","anrede":"Sehr geehrte Frau Dr.","name":"Kuhlmann Weßeling","vorname":"Mechtild","email":"m.kuhlmann@gyn-psych.de","phone":"0251 \/54797","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503676","public_id":"","adresse":null,"titel":null,"uid":"431f628253e05a2b59d7c723c4f2b15600e6","lex_office_id":null,"strasse":"Rheinstrasse 22","plz":"48145","ort":"Münster"},
{"password":"ecfe685d5c19e87d942b07e7a3a881865fc3fb65c8285c7b4d6144d7663799f0","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kaps","vorname":"Andreas","email":"annette.kaps@gmx.de","phone":"09954905848","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503677","public_id":"","adresse":null,"titel":null,"uid":"5a2b55cf5cf5e806e52ab9d66f78395fd4ea","lex_office_id":null,"strasse":"Embachsiedlung 6","plz":"84333","ort":"Malgersdorf"},
{"password":"f5a989cda207b537bf2dd063f61ae589540bfa58f273f354913f7f74b6dd9c6b","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Kötter","vorname":"Birgit","email":"gokoe@web.de","phone":"0208\/751540","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503678","public_id":"","adresse":null,"titel":null,"uid":"9174ec14ed7ef0710fbc9a8c5320b6fa60d1","lex_office_id":null,"strasse":"Mellinghofer Str.201","plz":"45475","ort":"Mülheim\/Ruhr"},
{"password":"94c0220c16477d38f1a30f73ff69645f03edc80e9eabaf4d977f49c81b9d3f87","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Krauß","vorname":"Dietrich","email":"krauss-hardegsen@t-online.de","phone":"05505-999997","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503679","public_id":"","adresse":null,"titel":null,"uid":"e4a8ab895e8ef2e1aea91ad52d967f76c97c","lex_office_id":null,"strasse":"Am Herrenberg 9a","plz":"37181","ort":"Hardegsen"},
{"password":"16306d635c430b9fd621a45faa2f6faac8c085a2bd5f8c18084655b6e485e09e","level":"2","firma":"","anrede":"Sehr geehrter Herr Dipl-Ing.","name":"Faulhaber","vorname":"Norbert","email":"jabo008@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503680","public_id":"","adresse":null,"titel":null,"uid":"6ca02c3d976a187c55d0a31b47431cc7e1e3","lex_office_id":null,"strasse":"Bugenhagenweg 7","plz":"50171","ort":"Kerpen"},
{"password":"7f554174c5320f058f37889ac932d3faeb9c9875c4687df8efae35239e648fda","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schlecht","vorname":"Klaus","email":"klaus.schlecht@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503681","public_id":"","adresse":null,"titel":null,"uid":"66ddd97ac1e4be2381cb16cc8381d061169a","lex_office_id":null,"strasse":"Alte-Poststr. 22","plz":"79379","ort":"Müllheim"},
{"password":"114d2348f96f2ec7d040496f3f555f01125e758a41eca255b3a0b9c86273c9f1","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Glesius","vorname":"Jörg","email":"j.glesius@freenet.de","phone":"0210\/7471849","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503682","public_id":"","adresse":null,"titel":null,"uid":"b86713c1298d97ac1f9060d379bcddad23c1","lex_office_id":null,"strasse":"Beulenhof 26","plz":"45279","ort":"Essen"},
{"password":"f8a59be0960241a471cf5a32ba8acd9ca7bba5a0513085ed2e47670b9d8fbb49","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Ruddigkeit","vorname":"Frank","email":"lakritz1a@aol.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503683","public_id":"","adresse":null,"titel":null,"uid":"13d6b436305cc9a755a34806114058bfa753","lex_office_id":null,"strasse":"Kiefkampstr. 11","plz":"30629","ort":"Hannover"},
{"password":"d3aac32198fd30276964e6a1b713c7c87f4d4d1123bf6770a9697292c39fc809","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Holländer","vorname":"Ulrich","email":"hollaender@fortis-witten.de","phone":"0231129219","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503684","public_id":"","adresse":null,"titel":null,"uid":"0a02ac1269c13be4e94a6295155a7294a8b1","lex_office_id":null,"strasse":"Domänenstr. 40","plz":"44225","ort":"Dortmund"},
{"password":"d8f51e35497df05cbac3d3817f5303d6347ead457268d01e1c537e26bbc50324","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Meyer","vorname":"Uwe","email":"meyer_monika_uwe@yahoo.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503685","public_id":"","adresse":null,"titel":null,"uid":"284a9d94ce5013f349208b0e529b902b41c7","lex_office_id":null,"strasse":"Aachenerstraße 57","plz":"52477","ort":"Alsdorf"},
{"password":"d1e5ac2cbae87cfdb1921948583b3b37da8e4b481628138a072b0c4260515289","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Baur","vorname":"Bernhard","email":"bernhard-baur@online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503686","public_id":"","adresse":null,"titel":null,"uid":"0a48aa613d94a63b15476cae935fe7b3ed95","lex_office_id":null,"strasse":"Gäustr.30","plz":"72108","ort":"Ergenzingen"},
{"password":"bacf8412842e29cbeda4b47181b9b9fbaa438196941a61b2d185c629f0c1ca10","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Frank","vorname":"Sabine","email":"sabine@frank-homenet.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503687","public_id":"","adresse":null,"titel":null,"uid":"02b28212823808bd0a2e1b6e34c0d37b42dc","lex_office_id":null,"strasse":"Alexanderstr 66","plz":"68519","ort":"Viernheim"},
{"password":"197eec8b7dc07ed4c3c0c948ee9e303195f560140c0d7bc44b2627f35d18b90e","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Quilitzsch","vorname":"Oliver","email":"quilitzsch1@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503688","public_id":"","adresse":null,"titel":null,"uid":"6b6e2266cc72546281fa6f93494a76afd52d","lex_office_id":null,"strasse":"Garstedter Weg 300a","plz":"22455","ort":"Hamburg"},
{"password":"bf48354d9523b45379aa73a287cbdc771aa1fdf823ed4c0ae5471dfca8b326fd","level":"2","firma":"Stühler& Partner","anrede":"Sehr geehrter Herr","name":"Angele","vorname":"Klaus","email":"immo@stuehler-partner.de","phone":"07031876055","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503689","public_id":"","adresse":null,"titel":null,"uid":"b27dc837c7e1c99224e938c6b6dee06d1e5e","lex_office_id":null,"strasse":"Schubertstrasse 28","plz":"71034","ort":"Böblingen"},
{"password":"0b2b02cf69d7998ef66888dfb6b87b0654b8650564ae533df36dff47516f797a","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Graßmann","vorname":"Tonja","email":"hkuenzl@t-online.de","phone":"08106-995256","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503690","public_id":"","adresse":null,"titel":null,"uid":"9325172684f0308699209f044a48eeebfb89","lex_office_id":null,"strasse":"Karl Böhm -Str. 105","plz":"85598","ort":"Baldham"},
{"password":"274393f9578f911a9d608a9d4f09a3d290912a8f6517eec63e9a3b54181a47bc","level":"2","firma":"Verwaltung WEG Auf der Tenne 2","anrede":"Sehr geehrte Frau","name":"Ahles-Schynawa","vorname":"","email":"tahsch@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503691","public_id":"","adresse":null,"titel":null,"uid":"4a60017df35ea8951421d1e1de059f30613c","lex_office_id":null,"strasse":"Auf der Tenne 2","plz":"30890","ort":"Barsinghausen"},
{"password":"19f23c577b95c479770f5a4bb43b3dc7db8c3e9faea278919dee74e8dca86510","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Blumensath","vorname":"Herbert","email":"Herbert_Blumensath@web.de","phone":"02472 \/ 7891","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503692","public_id":"","adresse":null,"titel":null,"uid":"674ff158bd0cae8f5a4758977e48ef031b58","lex_office_id":null,"strasse":"Matthias-Offermann-Str. 7","plz":"52156","ort":"Monschau"},
{"password":"58cd4e39c8519e3a1ef6303d339ae09ee5c4177ca14fc9b5527d8a567c3d8e1e","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schulz","vorname":"Rolf","email":"ro-schu@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503693","public_id":"","adresse":null,"titel":null,"uid":"81f9f309be785f01576713c282395fa77e32","lex_office_id":null,"strasse":"Kleiststr.2","plz":"15366","ort":"Hoppegarten, OT Waldesruh"},
{"password":"e8ea37e6789e48a38b42f002a8d57c80977d970c24ff7c67012ab3ef5ae1e36d","level":"2","firma":"Dipl. Ing.W.Kossiedowswki","anrede":"Sehr geehrter Herr","name":"Kossiedowski","vorname":"Wolfgang","email":"wolfgang.kossiedowski@gmx.de","phone":"069 5481333","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503694","public_id":"","adresse":null,"titel":null,"uid":"402c548ec3da8dab9c13ace20cdc4338ed96","lex_office_id":null,"strasse":"Gummerbergstrasse 11","plz":"60435","ort":"Frankfurt"},
{"password":"193bf5b80490f255899699049c02c7ba3f621ad5f531b58aba2967520732f0ec","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Zimmermann","vorname":"Volker","email":"Marita.Z@gmx.de","phone":"07681-3105","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503695","public_id":"","adresse":null,"titel":null,"uid":"2966e1e49477110d36995d3807295e93366b","lex_office_id":null,"strasse":"Am Bleichacker 22","plz":"79183","ort":"Waldkirch"},
{"password":"22e8a8667c457f54104c012e4f0aefb3e15f24063f048212a706898b35b9368c","level":"2","firma":"Dipl.Ing.W.Kossiedowski","anrede":"Sehr geehrter Herr","name":"Kossiedowski","vorname":"Wolfgang","email":"wolfgang.kossiedowski@mx.de","phone":"069 5481333","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503696","public_id":"","adresse":null,"titel":null,"uid":"8920cc852dad3806126a2c837b2838eeeab9","lex_office_id":null,"strasse":"Gummersbergstrasse 11","plz":"60435","ort":"Frankfurt"},
{"password":"cbc4f01ad82de3e90e4984e830abef4d1ac997be4d9dd39778f944d395146a31","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Meyer","vorname":"Dieter","email":"dietermeyer40@hotmail.com","phone":"0421\/505375","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503697","public_id":"","adresse":null,"titel":null,"uid":"d6852b2b26b7100e642f89770de1def2c9a6","lex_office_id":null,"strasse":"Moselstr.46","plz":"28199","ort":"Bremen"},
{"password":"24202cb5b43c3050ff2230a8c6ee2f062f1577fd119e4629abf5429dee245286","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Maier","vorname":"Ludwig","email":"ludwig.maier@soechtenau.de","phone":"08038\/1400","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503698","public_id":"","adresse":null,"titel":null,"uid":"fc0b713ebd0a2dc7df2f5d393503074f170b","lex_office_id":null,"strasse":"Sulmaring 12","plz":"83569","ort":"Vogtareuth"},
{"password":"79308393b36694b9a3b8d6c467557c1b7f9603c50da8f92e9b5c8e3f19500bec","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Testi","vorname":"","email":"ja@mail.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503699","public_id":"","adresse":null,"titel":null,"uid":"869bde08962bf9363f071113daa61280b9aa","lex_office_id":null,"strasse":"Teststraße","plz":"12345","ort":"Testort"},
{"password":"7e87b7de491bbd3a745ed3375244f39e08452f5a23a703aab85e2d2ddc4c7935","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Senking","vorname":"Hans-Jürgen","email":"senking.HE@t-online.de","phone":"05351\/6555","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503700","public_id":"","adresse":null,"titel":null,"uid":"2c85298eda907518684f031a0573d688e1b6","lex_office_id":null,"strasse":"Hermann-Stöber-Str. 6","plz":"38350","ort":"Helmstedt"},
{"password":"d3a999e66220144957bb5223ccafd71ba7390c027b093565e727b486e005fbdd","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Otte","vorname":"Manuela ","email":"fewocannes@t-online.de","phone":"05251 300191","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503701","public_id":"","adresse":null,"titel":null,"uid":"d08820cb6b866de060d4a9ffec0d10f92e1d","lex_office_id":null,"strasse":"Meinwerkstr. 13","plz":"33098","ort":"Paderborn"},
{"password":"02fee2f8954ffc2dfc68787279b62cf98d1c5887b290349ba53b89e748a667a3","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Hoppen","vorname":"Ulrich","email":"uli.hoppen@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503702","public_id":"","adresse":null,"titel":null,"uid":"ef06df5e503e059fffe95d2559d824c3821e","lex_office_id":null,"strasse":"Friedrich-Ebert-Str. 4","plz":"34320","ort":"Söhrewald"},
{"password":"c63cfa54c63d9ff13412457e468eb439bc26f59098ef480f5ab5d341c92ef30e","level":"2","firma":"Dipl.Ing.W.Kossiedowski","anrede":"Sehr geehrter Herr","name":"Kossiedowski","vorname":"Wolfgang","email":"wolfgangkossiedowski@mx.de ","phone":"069 5481333","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503703","public_id":"","adresse":null,"titel":null,"uid":"6562708a9f059d6710fbc9c13bd391e338ef","lex_office_id":null,"strasse":"Gummersbergstrasse 11","plz":"60435","ort":"Kossiedowski"},
{"password":"52909d3da58ae17f0c971f57a05b12f3f7024aa2e0949c18d29918c317c0accb","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Kalkhof-Ribbrock","vorname":"Petra","email":"rainer.ribbrock@web.de","phone":"0231\/453776","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503704","public_id":"","adresse":null,"titel":null,"uid":"2b56141a159d69c381e37b40475476b723c1","lex_office_id":null,"strasse":"Heimstättenweg 13","plz":"44287","ort":"Dortmund"},
{"password":"c1887a568fa68cc6878680217b305815d1c6d4e5ff7d72c19150977e9ba08a02","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schifferens","vorname":"Rüdiger","email":"schifferens@t-online.de","phone":"0171-7139789","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503705","public_id":"","adresse":null,"titel":null,"uid":"42b57687a02bfc10d0cb421e22530881ddc4","lex_office_id":null,"strasse":"Falkenburgstraße 41b","plz":"97250","ort":"Erlabrunn"},
{"password":"01313dc528550c7b4b4f0ca061c1e91f0e22ea5ab0d2a78094bd43479cf4229e","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kirapoglou","vorname":"Eleftherios","email":"ekirapoglou@web.de","phone":"0172\/2604294","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503706","public_id":"","adresse":null,"titel":null,"uid":"337c5740320cdafe7ad4d69c10d11fcde1ca","lex_office_id":null,"strasse":"Auf dem Kamm 67","plz":"50321","ort":"Brühl"},
{"password":"d6472d1bcbe6c7c6dc80e4b114e1e9d37543742191f8a8dfc12f29045ada8314","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Neugebauer","vorname":"Wilma","email":"neugebauer.mg@t-online.de","phone":"02166-51487","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503707","public_id":"","adresse":null,"titel":null,"uid":"e92227c7f5fcf8aba4336723c2820d37b433","lex_office_id":null,"strasse":"Am Pastorat 36","plz":"41189","ort":"Mönchengladbach"},
{"password":"55d0b0f81b4e4339eb5fdb903477c79a3c8b3d1f27543bbeb97c2d8c4a79b8d3","level":"2","firma":"Anger 28\/29 Gaulke Verwaltungs KG","anrede":"Sehr geehrter Herr","name":"Gutmann","vorname":"","email":"d.wallner@hahn-und-co.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503708","public_id":"","adresse":null,"titel":null,"uid":"7c549f2f492ef20a1afd3c0d224fec0d0cdf","lex_office_id":null,"strasse":"magdeburger Allee 155","plz":"99086","ort":"Erfurt"},
{"password":"88864aba0190d851f506ab4c63bb460ad9922c00864d7973ee57d376d70733eb","level":"2","firma":"GbR Klaß & Heimann","anrede":"Sehr geehrter Herr","name":"Klaß","vorname":"Lothar ","email":"l.klass@netcologne.de","phone":"0221-9731040","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503709","public_id":"","adresse":null,"titel":null,"uid":"1b2b3c571405a44919c3d5309d809b0d4c0c","lex_office_id":null,"strasse":"Graf-Berghe-von-Trips Ring 186","plz":"50169","ort":"Kerpen"},
{"password":"613973a2eac4752a219cbb6c14516abf6c2cd993149fa2e1ff9553fd462a778f","level":"2","firma":"IMBECK IMMOBILIEN","anrede":"Sehr geehrter Herr","name":"Miosga","vorname":"Richard","email":"imbeck-immobilien@gmx.net","phone":"03088471110","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503710","public_id":"","adresse":null,"titel":null,"uid":"f5ce4a5c09ec4170b895fbcc6caffbd0b70d","lex_office_id":null,"strasse":"Erdmannstr. 12 B","plz":"16540","ort":"Hohen Neuendorf"},
{"password":"e134a1250065f928813b6fa33c21f9044d10eae658078998dae541edf76d8d26","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Runte","vorname":"Klaus","email":"info@dftc.de","phone":"Bad Salzuflen","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503711","public_id":"","adresse":null,"titel":null,"uid":"37dad2533366e61573d95fbb5a2f49f1ad4c","lex_office_id":null,"strasse":"Fliederstr. 15","plz":"32105","ort":"Bad Salzuflen"},
{"password":"83e1a4e22d1dc4ab6fd260a1eaaeda008bb099fe942a16d29a63cde84edd0204","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Gosemann","vorname":"Wolfgang","email":"wolfgang.gosemann@freenet.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503712","public_id":"","adresse":null,"titel":null,"uid":"3a9f31ca03e0461560c0a3353e06e6573acc","lex_office_id":null,"strasse":"Liebigstr. 11","plz":"31303","ort":"Burgdorf"},
{"password":"267827c747f2c8ff7086a369458393f6ef23b2a6dc44d8ae61e11255715c8c29","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schuster","vorname":"Gerhard","email":"gerysch@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503713","public_id":"","adresse":null,"titel":null,"uid":"9947ad24f19a76b58bcf884a896432239616","lex_office_id":null,"strasse":"Illingerstrasse 35","plz":"75417","ort":"Mühlacker"},
{"password":"932d98a1dbe3a59835fab125c753884c8c978886efcc3e21e45bb70602ccc86f","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Ehmer","vorname":"Carsten","email":"smeck@freenet.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503714","public_id":"","adresse":null,"titel":null,"uid":"b70d365881e21269aa463d7f477e1deeebe7","lex_office_id":null,"strasse":"Am Langen Grund 70","plz":"32758","ort":"Detmold"},
{"password":"271d42add786db2b048a70a09c2ba0a9db73235cf8c73c6730b4dfc4f2eb3e4e","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Holzgrefe","vorname":"Hans-Werner","email":"hawe.ho@arcor.de","phone":"04321\/959620","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503715","public_id":"","adresse":null,"titel":null,"uid":"84d3be63d81fa334e94a5bb6f8c573c4ed7e","lex_office_id":null,"strasse":"Roschdohler Weg 97D","plz":"24536","ort":"Neumünster"},
{"password":"80946489d589e41f5307e9391b5f4111e35e2782261297f33e2fd66f5eadc3eb","level":"2","firma":"Haus & Finanz Konzept Böcher","anrede":"Sehr geehrter Herr","name":"Böcher","vorname":"Clemens M.","email":"c.boecher@web.de","phone":"06655 9874760","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503716","public_id":"","adresse":null,"titel":null,"uid":"f31e4806f91b6a30881cb2afa76a02c7dd9a","lex_office_id":null,"strasse":"Am Schönenhof 21","plz":"36148","ort":"Kalbach"},
{"password":"8bd4bf60873c1ac512ca549feb60503ab212ff075fd40db50df18513357ec9e5","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Tomczyk","vorname":"Peter","email":"Peter.Tomczyk@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503717","public_id":"","adresse":null,"titel":null,"uid":"4a48c42f62a904755cdf209d936723c4ff18","lex_office_id":null,"strasse":"Knäppken 21","plz":"48317","ort":"Drensteinfurt"},
{"password":"10ee9302ef865352cb17f11c56ca809db30b41650c34d3f9e85a3cc804353740","level":"2","firma":"","anrede":"Sehr geehrter Herr Dipl-Ing.","name":"Ehrich","vorname":"Volker","email":"volker.ehrich@arcor.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503718","public_id":"","adresse":null,"titel":null,"uid":"5159c280c9c0d252b16ddd97aba3f31fa322","lex_office_id":null,"strasse":"Am Giegenberg 41","plz":"36251","ort":"Ludwigsau"},
{"password":"4aa5151d5f55ca3fec30668932cbd85f05402f3142307a2f4ed7ea888325ca23","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kleebank","vorname":"Dieter","email":"m-d.kleebank@t-online.de","phone":"0241\/33791","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503719","public_id":"","adresse":null,"titel":null,"uid":"3bfa5b74044b9d5321e656fb9eab866f7823","lex_office_id":null,"strasse":"Nirmer Str. 14","plz":"52080","ort":"Aachen"},
{"password":"92e52429395490d47cb20e654a3f4c633ca62784b4d7001bf071bc553308955b","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Rauch","vorname":"Frank","email":"famrauch1@arcor.de","phone":"02274938158","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503720","public_id":"","adresse":null,"titel":null,"uid":"81e1e4b9d558a91c70d2502d85fd3950158b","lex_office_id":null,"strasse":"Mozartstr. 47","plz":"50189","ort":"Elsdorf"},
{"password":"e88c0cb9c639232950468aff085f84d0415b061644e7fecd0ab6fa0d6aaf7e6a","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Paulsen","vorname":"Dirk","email":"pauli@web.de","phone":"04631\/408850","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503721","public_id":"","adresse":null,"titel":null,"uid":"cdb3f45e657406e4a77f77e2f7419c1fcddb","lex_office_id":null,"strasse":"Heideweg 12","plz":"24999","ort":"Wees"},
{"password":"e042447e0cabcc71bc80f16dea10d981e31461bc575937518256f08bea2d5cfa","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Thiele","vorname":"Dieter","email":"ThieleBD@aol.com","phone":"02942\/4948","resellercode":"8e4f7a8f1bf3565e86fba5a920eee8","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503722","public_id":"","adresse":null,"titel":null,"uid":"27dc58a9044bddb0298ec69aa477f5e670a3","lex_office_id":"b3c4b353-7b2e-482e-a3f6-914de6108e9f","strasse":"Eichendorffstraße 56","plz":"59590","ort":"Geseke"},
{"password":"02298b9aabebd97a34978167e460b320afc9e9c032c84857362ab0dba6be011a","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Beck","vorname":"Wilfried","email":"a.beck@beck24.com","phone":"0176-22062597","resellercode":"7ff4dfdaea54144cd3cce659a1b198","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503723","public_id":"","adresse":null,"titel":null,"uid":"225171127df1b449f32394935ea8c27f5cf5","lex_office_id":null,"strasse":"Abeggstrasse 34","plz":"65193","ort":"Wiesbaden"},
{"password":"cef2afd52fed2cfa08d31270239e642118bd2f088fbb0fc19218827049924898","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Möller","vorname":"Harald","email":"harald.moeller@email.de","phone":"03320121541","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503724","public_id":"","adresse":null,"titel":null,"uid":"d269a781f8aba2b41c84ea76c723b0e805b9","lex_office_id":null,"strasse":"Christophorusweg 11a","plz":"14476","ort":"Potsdam"},
{"password":"7a8d84f2bc273dcae581f1c7cfd52f09b8709d4549326f83fdb2bfa8ddfb37bb","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Porschen","vorname":"Hans","email":"hm-aachener@t-online.de","phone":"0221-33458736","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503725","public_id":"","adresse":null,"titel":null,"uid":"d66b9bde33920a2e1c9a8ab9d52a02b13d83","lex_office_id":null,"strasse":"Gustav-Heinemann-Ufer 92","plz":"50968","ort":"Köln"},
{"password":"1f71b2678ef0cda71b546abf56f63164f66f1bbec622f658290a1a60aa9e1d62","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Seehaas","vorname":"Rüdiger","email":"seehaas@t-online.de","phone":"05054-561","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503726","public_id":"","adresse":null,"titel":null,"uid":"6866cc6cb1823c3c281f63eed7b58aa209eb","lex_office_id":null,"strasse":"Wacholderweg 5","plz":"29303","ort":"Bergen"},
{"password":"7597f60caa9a8a04551dcc05a347595a39f837bec7b8fbbf94e3b2e0db8474c6","level":"2","firma":"WEG Lübecker Straße 47","anrede":"Sehr geehrter Herr","name":"Kock","vorname":"Thomas","email":"thomas.kock@ewetel.net","phone":"015208895433","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503727","public_id":"","adresse":null,"titel":null,"uid":"d2241879ba31df49f05a31ddd70a31cb3eda","lex_office_id":null,"strasse":"August-Hinrichs-Straße 12A","plz":"28816","ort":"Stuhr"},
{"password":"fb229f00729be6609e71b3c61a476e3f9057db569869fb5a60d75f01b4f18800","level":"2","firma":"Agentur Raebikum","anrede":"Sehr geehrter Herr","name":"Weinmann","vorname":"Paul","email":"mail@raebikum.de","phone":"07127-51010","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503728","public_id":"","adresse":null,"titel":null,"uid":"a34a5e8f5906d1d1e1e3645ba0187ad24fec","lex_office_id":null,"strasse":"Uhlbergstraße 27","plz":"72631","ort":"Aichtal"},
{"password":"8ee50be52840f1c5d0486279d7308dde8215e0f46bcb3e850b9f15d20d311099","level":"2","firma":"STEWO Sternbergerwohnungsbaugesellschaft mbH","anrede":"Sehr geehrter Herr","name":"Wirkus","vorname":"","email":"Info@stewo-sternberg.de","phone":"0384743070","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503729","public_id":"","adresse":null,"titel":null,"uid":"0fcd09d8f324e948f1b45ce09c26881de2e0","lex_office_id":null,"strasse":"Finkenkamp 5","plz":"19406","ort":"Sternberg"},
{"password":"363a4849827f41f41b8f2a2cf2d4c80e98e4fc78a3ece8ca54ab1968f3abfe5a","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Haas","vorname":"Beate","email":"haas.beate@freenet.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503730","public_id":"","adresse":null,"titel":null,"uid":"87b421f781e63efed7b5626aea9d838dc42e","lex_office_id":null,"strasse":"Steinweg 5","plz":"63856","ort":"Bessenbach"},
{"password":"360f485f4ca0818ab261785273966fe03cf5e5a34db33c2a390748e1f2ff1bb3","level":"2","firma":"Elisabeth Oelker c\/o Hausverwaltung","anrede":"Sehr geehrter Herr","name":"Stefan","vorname":"Roland","email":"buero-stefan@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503731","public_id":"","adresse":null,"titel":null,"uid":"2e09d7afd394c1fa6e79a60d38f60e53d98d","lex_office_id":null,"strasse":"Clarholzer Str. 50","plz":"33442","ort":"Herzebrock-Clarholz"},
{"password":"c59bd94ae572d48cbbd0864e0bda928b2c5fedbe34035d5616e614caf8ebd6fc","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Mathes","vorname":"Rainer","email":"rainer.mathes@ish.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503732","public_id":"","adresse":null,"titel":null,"uid":"bfc0df49323aa47561014209f01838f5cb72","lex_office_id":null,"strasse":"Neu Stefenshoven 9","plz":"40764","ort":"Langenfeld"},
{"password":"ff43e6575a01f48a41d6bb773677296e6534dd3864aefdd223bea680de54ca33","level":"2","firma":"MK - Immobilien","anrede":"Sehr geehrter Herr","name":"Kuon","vorname":"Michael","email":"KM-Immobilien-Kuon@web.de","phone":"07572 \/ 711 703","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503733","public_id":"","adresse":null,"titel":null,"uid":"3d67254492e366b45e8f2dafa8acf897ab9d","lex_office_id":null,"strasse":"Hauptstraße 100","plz":"88512","ort":"Mengen"},
{"password":"8b710160b3224798a5f1f4751df15fca831bb952f61e5152fc2c6fd6483bf4a6","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Lomp","vorname":"Friedrich","email":"flo-igling@freenet.de","phone":"08248-90074","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503734","public_id":"","adresse":null,"titel":null,"uid":"80898abb44a4784bcef476b31dd98f2f491c","lex_office_id":null,"strasse":"Karlsbader Str. 9","plz":"86859","ort":"Igling"},
{"password":"cfa076ea39d93cf09672e5d6a35ccd803d88f3131ab7c41b2a7208b90a381620","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Balzersen","vorname":"Sven","email":"balzersen@web.de","phone":"0172-4327726","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503735","public_id":"","adresse":null,"titel":null,"uid":"724d7e1b46fa881f9f0321e6284d7a0284d4","lex_office_id":null,"strasse":"Emil-Nolde-Strasse 1","plz":"27777","ort":"Ganderkesee"},
{"password":"7092a28307f06ee54e34e4ef26931c14e5fd3b46a9654327fb5084229bf5cc70","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Brigant","vorname":"Friedrich","email":"fbrigant@hotmail.com","phone":"0177 3447444","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503736","public_id":"","adresse":null,"titel":null,"uid":"ed5309fe934c13c3c41995c1e51435e91c87","lex_office_id":null,"strasse":"Gabriele-Münter-Straße 5","plz":"38448","ort":"Wolfsburg"},
{"password":"b9aa2120c2490ed30eef4e1df9ce4e2e2f949ee56584b1e1a8c0151ee086f71d","level":"2","firma":"Prof. W.-D. Bussmann GmbH & Co. KG","anrede":"Sehr geehrter Herr","name":"Ropelius","vorname":"Philipp","email":"philipp.ropelius@bussmann-kg.de","phone":"069-7158968-0","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503737","public_id":"","adresse":null,"titel":null,"uid":"ae935183686575476b4627e3645cb7254629","lex_office_id":null,"strasse":"Feuerbachstraße 1","plz":"60325","ort":"Frankfurt"},
{"password":"28bb4a8e46daa67d60e4b5cec515086e8c54bd40f900ccc398a482e274a33f38","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Stöhr","vorname":"Denny","email":"denny.stoehr@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503738","public_id":"","adresse":null,"titel":null,"uid":"659d7dd962b140489655d0de1c9a898dbfa7","lex_office_id":null,"strasse":"Kreuzstr. 5","plz":"08209","ort":"Auerbach"},
{"password":"cc9ae53e3e40478f37935fc68c5c94b8e2fda0debc001c8bbea3fea7c62c34a7","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Will","vorname":"Anne","email":"annewill1234@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503739","public_id":"","adresse":null,"titel":null,"uid":"4060b882f9ec4f1ad52c4450fc0d24d7a144","lex_office_id":null,"strasse":"der 4","plz":"12345","ort":"berlin"},
{"password":"5166b08e58b4c8d7f07f83353309ea5fc3eed9c3608287b485592ba0f91b6974","level":"2","firma":"Aydin","anrede":"Sehr geehrter Herr","name":"Aydin","vorname":"Osman","email":"resulekremaydin@web.de","phone":"o2154427180","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503740","public_id":"","adresse":null,"titel":null,"uid":"91b58810b752e0462be7b2aa5d379bb6fa32","lex_office_id":null,"strasse":"Krefelderstrasse 334","plz":"47877","ort":"Willich"},
{"password":"184337aa7970c68228e0b6d52cda876f47ab695bbe517fee8ef9ab077a8cffb4","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Andrich","vorname":"Udo","email":"iuandrich@aol.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503741","public_id":"","adresse":null,"titel":null,"uid":"0ce1c9bcc6ddc69c27c7f8d94ce5003dacdd","lex_office_id":null,"strasse":"Augustusweg 32","plz":"01445","ort":"Radebeul"},
{"password":"8829bdf7b8ec269c832b07510194df67e481665b2344f17d738bd70fd8938f7c","level":"2","firma":"WEG Rhens Auf der Kümm 23","anrede":"Sehr geehrter Herr","name":"Schöne","vorname":"Alexander","email":"alexanderschoene@juwelier-schoene.de","phone":"0261 36856","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503742","public_id":"","adresse":null,"titel":null,"uid":"abcb18396155a48d8238f5ce337c84a9044b","lex_office_id":null,"strasse":"Auf der Kümm 23","plz":"56321","ort":"Rhens"},
{"password":"0f121d58ecc60aaa431b7f2b73e58e1b24d9aa97c2b2833764b80c245320990e","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Jung","vorname":"Jürgen","email":"jungk2007@web.de","phone":"0521 7845906","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503743","public_id":"","adresse":null,"titel":null,"uid":"8aba2dc3ec3ab8820d351737b2c405a5cef4","lex_office_id":null,"strasse":"Weidebrink 14","plz":"33611","ort":"Bielefeld"},
{"password":"29d35db4a4650b50137293333ce1cb374ae56ff56bb85d412065e859606346b2","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kamm","vorname":"Peter","email":"PeterKamm@online.de","phone":"05351-37512","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503744","public_id":"","adresse":null,"titel":null,"uid":"9eed55ca159c4186879a768963b0e94a5d1e","lex_office_id":null,"strasse":"Marientalerstr. 76","plz":"38350","ort":"Helmstedt"},
{"password":"07beb20a42aa3c478f105828eddf8059938ede22ce0a18f036e86791bc20245b","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Hoppe","vorname":"Hartwig","email":"hardi24a@web.de","phone":"0173\/7262492","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503745","public_id":"","adresse":null,"titel":null,"uid":"36561270a2c5880a2ddac0a5a4642db2bfd1","lex_office_id":null,"strasse":"Lindenstr. 24a OT Cochstedt","plz":"39444","ort":"Hecklingen"},
{"password":"d6330881f64631e08c9433940399e3984bc082379b900aa05ebcbe40e63df559","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Fleige","vorname":"Rüdiger","email":"fleige.ruediger@web.de","phone":"02203-86091","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503746","public_id":"","adresse":null,"titel":null,"uid":"242c5894c1fba17239628380769c267256e6","lex_office_id":null,"strasse":"Comeniusweg 12","plz":"51143","ort":"Köln"},
{"password":"e0545a40e3b8efef69729126252f0be3a9c617c5f6aa1d1ada502a44beb193e7","level":"2","firma":"Erbengemeinschaft Kummer\/Cetti\/Cetti","anrede":"Sehr geehrter Herr","name":"Cetti","vorname":"Thomas M.","email":"ThomCetti@aol.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503747","public_id":"","adresse":null,"titel":null,"uid":"55a3222808be5156f905917401852b157404","lex_office_id":null,"strasse":"Angerbichl 5","plz":"82340","ort":"Feldafing"},
{"password":"e746356d26590f0bb15556e589fa9f71d29db49329714de07e421bf9042c22cc","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Rohde","vorname":"Ralf","email":"ralf.rohde@t-online.de","phone":"02191-54609","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503748","public_id":"","adresse":null,"titel":null,"uid":"627e224d687afd799224d5449323bd2255b6","lex_office_id":null,"strasse":"Stursberger Str 35","plz":"42899","ort":"Remscheid"},
{"password":"017ee834777ae059e685e18b806716ee20eaee0d68eda4a786eb789b70478138","level":"2","firma":"MK - Immobilien","anrede":"Sehr geehrter Herr","name":"Kuon","vorname":"Michael","email":"MK-Immobilien-Kuon@web.de","phone":"07572 \/ 711 703","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503749","public_id":"","adresse":null,"titel":null,"uid":"d0b5b752e074fd7c6ddc5614f044b9ea8b15","lex_office_id":null,"strasse":"Hauptstraße 100","plz":"88512","ort":"Mengen"},
{"password":"fd34873103f95aa2db72fb0acf91bb2930bbb4c3e0544c1232410d9d52280cb3","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Schürmann","vorname":"Anna","email":"imping.gt@arcor.de","phone":"05241 - 77 245","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503750","public_id":"","adresse":null,"titel":null,"uid":"5919a9f057686726852b419bf7aba2dad10e","lex_office_id":null,"strasse":"Zum Stillen Frieden 39","plz":"33332","ort":"Gütersloh"},
{"password":"746b33161d63a0d55cb1fd03c31ca78932ab42a1485d2c6724eef3e083dc64ad","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Neubauer","vorname":"Maximilian","email":"isabel-neubauer@web.de","phone":"0177\/ 9363160 089\/ 38476383","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503751","public_id":"","adresse":null,"titel":null,"uid":"7979a6fbc880881c9bdf476de06d1e5fe8dd","lex_office_id":null,"strasse":"Herzogstr. 50","plz":"80803","ort":"München"},
{"password":"77211e5486794e296d99ba6321efb905ead7c10c45da44b7baf349f8e33eb494","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Plückhahn","vorname":"Michael","email":"michael.plueckhahn@bbdo.de","phone":"0211-13798-544","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503752","public_id":"","adresse":null,"titel":null,"uid":"7f5e66b8402c69e963eea8b27cb03dad0ca0","lex_office_id":null,"strasse":"Vulkanstrasse 270","plz":"47807","ort":"Krefeld"},
{"password":"eb7497d433a5d6255ee5108a6be0a3764f0be6133792492e20730a87f75450ce","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Plückhahn","vorname":"Michael","email":"micchael.plueckhahn@bbdo.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503753","public_id":"","adresse":null,"titel":null,"uid":"2ae8f34a8b0e6589784d5462acddc56f8b27","lex_office_id":null,"strasse":"Vulkanstrasse 270","plz":"47807","ort":"Krefeld"},
{"password":"7f00da3e38fc7010bc5e96cd081ae9572fab9f0721178e04ed1b395ed18f2fae","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Bolduan","vorname":"Andreas","email":"karlsruhe@boegerimmo.de","phone":"0173 2789016","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503754","public_id":"","adresse":null,"titel":null,"uid":"dc6b5b5a5cb6cdae7b283673a77ddabb5a2c","lex_office_id":null,"strasse":"Zeiligstr. 4","plz":"76694","ort":"Forst"},
{"password":"56a25de2dd6f2600e1a3ac0372d6a49c1235b8928ae27e183b65a5351598ff0b","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Heinrich","vorname":"Waldemar","email":"info@acd-hannover.de","phone":"0511 611 005","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503755","public_id":"","adresse":null,"titel":null,"uid":"7e379b9eab752ef06cb6b58c2708c2687dc6","lex_office_id":null,"strasse":"An der Riehe 5","plz":"30916","ort":"Isernhagen"},
{"password":"76be87628763d672a76da4ae45a9fc02378bebc2d06559b2d65bfb4e5db7516a","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Nass","vorname":"Wolfgang","email":"wolfgang_nass@web.de","phone":"0174 8054002","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503756","public_id":"","adresse":null,"titel":null,"uid":"a184c1116a170cb4613b14070f919c3be7aa","lex_office_id":null,"strasse":"Obere Fischerbergstr.19","plz":"93152","ort":"Etterzhausen"},
{"password":"4782309b0cfce1fffddae5fa5de8fb69c9021876a5bde92860c2abd5978b34a2","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Karagiannis","vorname":"","email":"astrid.karagiannis@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503757","public_id":"","adresse":null,"titel":null,"uid":"87e087c7f8979920a31f50fbcc7f7688087f","lex_office_id":null,"strasse":"Sanderstr.208","plz":"42283","ort":"Wuppertal"},
{"password":"530db4ac96d23ebf023f862669053540d69df7b2a374eaec995f38821a19fb75","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Opitz","vorname":"Marie-Theres ","email":"MTOpitz@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503758","public_id":"","adresse":null,"titel":null,"uid":"5d393518252db2abaf0460fc0a5b882395fd","lex_office_id":null,"strasse":"Aalvikstr. 46","plz":"24576","ort":"Bad Bramstedt"},
{"password":"61b3a7c06315575fa123a6dce29bc4a08bedcd4416a72d5bdacd7a3832d305ef","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Mühlenhoff","vorname":"Klaus","email":"kamuehlenhoff@web.de","phone":"Paderborn","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503759","public_id":"","adresse":null,"titel":null,"uid":"3aa2ddc2962b27e34e95c0a30a06cafc0ba0","lex_office_id":null,"strasse":"Wewersrt. 6 B","plz":"33106","ort":"Paderborn"},
{"password":"ce4e8811c62adee78c319d045303df23734db355db87ee20805d4bd55252adfc","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Ecker","vorname":"Andreas","email":"andreas.ecker@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503760","public_id":"","adresse":null,"titel":null,"uid":"29b9ebfcddbfbb8687c822545fbb88088076","lex_office_id":null,"strasse":"Priestersberg 2","plz":"53567","ort":"Buchholz"},
{"password":"56e0a8cf70617cff5e9385b3758cfd0c04b5124ff3076f5ff16dfd08c2214fd5","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Biet","vorname":"Bernhard","email":"bbiet@arcor.de","phone":"02173\/900901","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503761","public_id":"","adresse":null,"titel":null,"uid":"a04324c14043501449047548accc83a78224","lex_office_id":null,"strasse":"Opladener Straße 230","plz":"40764","ort":"Langenfeld"},
{"password":"f8a1aba0e4a1856fcd06dbb9f02a1f230d101e91ea68c848ffa297671a7787c1","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Abel","vorname":"Erwin","email":"e.abel@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503762","public_id":"","adresse":null,"titel":null,"uid":"febcde085434c24032f5cdf49f335fd7ad54","lex_office_id":null,"strasse":"Am Buchholz 18","plz":"24321","ort":"Hohwacht"},
{"password":"db0bbe689d7bbb8d9af589f314cab5c9f320c2db50c6134c1d86223a8a8d21d5","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Abeln","vorname":"Elisabeth","email":"klasik@gmx.de","phone":"089-381091251","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503763","public_id":"","adresse":null,"titel":null,"uid":"491b43501587dd9931f77def4491c86710fa","lex_office_id":null,"strasse":"Steebstr. 11","plz":"82229","ort":"Seefeld"},
{"password":"2131d33123bed118cebf6bac009221bf5cd68d85b5efec5164062eeadd28111e","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Trapp","vorname":"Elke","email":"elke.trapp@gmx.de","phone":"02224 8510","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503764","public_id":"","adresse":null,"titel":null,"uid":"5cf5cddae93393366e22531e36435e8074f0","lex_office_id":null,"strasse":"Am Himberger See 12 b","plz":"53604","ort":"Bad Honnef"},
{"password":"b1392d18fa4c358481a1244f805cc2345b4103fdc759843c03f8862d0fa063bd","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Strauch","vorname":"Andreas","email":"andreas-strauch@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503765","public_id":"","adresse":null,"titel":null,"uid":"577f5bb434ce6549f335fffc253087b2c55c","lex_office_id":null,"strasse":"August-Bebel-Str. 27","plz":"15732","ort":"Schulzendorf"},
{"password":"88c672b5fb5a8d40b3894acca41c652c19793e87c66897058385bccb718851d1","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Ratlos","vorname":"Hugo","email":"rudi.ratlos@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503766","public_id":"","adresse":null,"titel":null,"uid":"ddc6c727b297afd2402c837afd66e5d12822","lex_office_id":null,"strasse":"Halmstadtstr.","plz":"79856","ort":"Hunger"},
{"password":"1fa5aa2fd7aea09a367194be0519430deddb3bd6f69966207f2baa0a6ddbe241","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Ratlos","vorname":"Hugo","email":"webmaster@nbv-kk.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503767","public_id":"","adresse":null,"titel":null,"uid":"66f8bfc0a5cef5a6e64492dc56d3935ffd54","lex_office_id":null,"strasse":"Ratlosstrasse","plz":"79856","ort":"Hunger"},
{"password":"73d74bb8c54ab1427cd6501ff155855a0d3d8f838a9ece53afda9a7f0fba1eaa","level":"2","firma":"PATRIZIA Immobilienmanagement GmbH","anrede":"Sehr geehrter Herr","name":"Reiter","vorname":"Wolfgang","email":"wolfgang.reiter@patrizia.ag","phone":"089\/360496-73","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503768","public_id":"","adresse":null,"titel":null,"uid":"5e6588223bd252afe91e09be783a8c27f601","lex_office_id":null,"strasse":"Landshuter Allee 162a","plz":"80637","ort":"München"},
{"password":"7fec3d262689e8afb7cd783f352e5ae067b8726b47ff48a126704bf4c1172f43","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Landgraf","vorname":"Markus","email":"sam.landgraf@netcologne.de","phone":"02233374601","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503769","public_id":"","adresse":null,"titel":null,"uid":"3f1b2ae8d98f2c6cb434bdef185576b44921","lex_office_id":null,"strasse":"An Maria Bronn 29","plz":"50354","ort":"Hürth"},
{"password":"ef5ffef7274b2e1a6fe270bb45124bfe622a60601765641f01ccc8b1787b9551","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Siffrin","vorname":"Helga","email":"keine@mail.de","phone":"06825 2604","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503770","public_id":"","adresse":null,"titel":null,"uid":"cc724d6995c0a2f73d7dafc23a92f755b9c2","lex_office_id":null,"strasse":"Gymnasialstr. 65","plz":"66557","ort":"Illingen"},
{"password":"a76c485357aad80897ae5e58039cd39c3a3a13e68e9db401f1dd74760aa03d96","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Zimpelmann","vorname":"Kerstin","email":"Kerstin.Zimpelmann@netcologne.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503771","public_id":"","adresse":null,"titel":null,"uid":"4f2db013c57404366b6cb2b3c548d7e2f62a","lex_office_id":null,"strasse":"Treptowstraße 12","plz":"50859","ort":"Köln"},
{"password":"708cc5caffbd7b35d21bb8ef85ff1fdaea8ae80b2059b1675befadd588a8f600","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Nießen","vorname":"Ludwig","email":"LuNiessen@utanet.at","phone":"+43 664 3824691","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503772","public_id":"","adresse":null,"titel":null,"uid":"b8aa60e7710e79921d10a46405b610fc1fa5","lex_office_id":null,"strasse":"Willergasse 22 \/ 7","plz":"1230","ort":"Wien"},
{"password":"3347e43d0e791e387bc326238bc0c21e1c37f66c465cd71646b94a2898c9d6c2","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Scheingraber","vorname":"Claus","email":"praxis@airelle.de","phone":"089-9038020","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503773","public_id":"","adresse":null,"titel":null,"uid":"cb70cb305d0cafebb9a8c531b738f73be5fd","lex_office_id":null,"strasse":"Taubenstr. 14","plz":"85649","ort":"Brunnthal"},
{"password":"ba3abe6bfd0e82699829cd6706b517c42408ecfe1a9bfd19623babef5d9bc8d6","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Besier","vorname":"Dirk","email":"dirk.besier@arcor.de","phone":"06114190002","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503774","public_id":"","adresse":null,"titel":null,"uid":"4d81de05a323a79502acf8b00fbc9d40305c","lex_office_id":null,"strasse":"Schiefersteinstraße 20","plz":"65199","ort":"Wiesbaden"},
{"password":"97e955b1b985eb7a8ce0b4ce4c763e74d96ff8fa07798b0738b7ba9e2526d812","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Püschel","vorname":"Dieter","email":"pundpmarketing@t-online.de","phone":"06152-71481240","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503775","public_id":"","adresse":null,"titel":null,"uid":"f6016a2b3c3ed809f045e642ef5a49eec254","lex_office_id":null,"strasse":"Am Atzelberg 6","plz":"64521","ort":"G"},
{"password":"d3bdbf3e9ba78e12f32b69e50515ebb30769268538294b347607032c6dac0e1e","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Bauer","vorname":"Karl Heinz","email":"b.k.h.bauer@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503776","public_id":"","adresse":null,"titel":null,"uid":"6285159bfbc9a63b12ab8bcddad10cc8659e","lex_office_id":null,"strasse":"Rüssend 13","plz":"27367","ort":"Reeßum-Taaken"},
{"password":"c8bee5f2c6354a9bb1555ac8f41d8a690c03ba3631068539fd7b6ade81a2d242","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kusch","vorname":"Klaus-Peter","email":"imbeck-immobilien@gmx.de","phone":"040 79305201, 015772582074, 040 2801010","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503779","public_id":"","adresse":null,"titel":null,"uid":"12544bb6ca157544ba4366b70ba2ae7c823a","lex_office_id":null,"strasse":"Lohbrügger Kirchstraße 14e","plz":"21033","ort":"Hamburg"},
{"password":"6dbe53c422992e46dae188c6779e7542a9850d186c0fb541368124a79907a8f2","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Baier","vorname":"Jürgen","email":"Baier-Brechen@t-online.de","phone":"064384456","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503780","public_id":"","adresse":null,"titel":null,"uid":"8ab8aa600e53dbe6560fa894cf63c41ad686","lex_office_id":null,"strasse":"Am Sportfeld","plz":"65611","ort":"Brechen"},
{"password":"a9512dda97594b8969b060e230a2519063f44207eef34ea8cecd8f0afbfbc491","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Barwick","vorname":"Eckhard","email":"Barwick-lalo@gmx.de","phone":"0171\/3229362","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503781","public_id":"","adresse":null,"titel":null,"uid":"6caf01448c56f9f1b3ed9798f187dc54617f","lex_office_id":null,"strasse":"Mainzer Str. 20a","plz":"55545","ort":"Bad Kreuznach"},
{"password":"022db199d31aa8e97165943e0950bda7551878ae4047b3bee7d1ecad47b8a04f","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Gehrke","vorname":"Hans","email":"hans.gehrke@t-online.de","phone":"075536843","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503782","public_id":"","adresse":null,"titel":null,"uid":"5e8ef1a03dbfd114ed808bd09059ec3d5489","lex_office_id":null,"strasse":"Alte Dorfstr. 75","plz":"88662","ort":"Ueberlingen"},
{"password":"809e929e08811d905c9c77b6068181a1d77da3271811212a59a11d17bf3192df","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Daamen","vorname":"Michael","email":"daamen@web.de","phone":"0179 3914282","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503783","public_id":"","adresse":null,"titel":null,"uid":"770ca17f6270de2e47b029641ddac1e38dac","lex_office_id":null,"strasse":"Bullmannstr. 26","plz":"47533","ort":"Kleve"},
{"password":"80b774098f39de153961b96782500655ee7036d8efeccea807cea5e9e5f2c01c","level":"2","firma":"Kiesel","anrede":"Sehr geehrter Herr","name":"Kiesel","vorname":"Holger","email":"hollykie@aol.com","phone":"0172 211 9502","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503784","public_id":"","adresse":null,"titel":null,"uid":"0b893517f9eed7e1a2abde1ddc41a159ed52","lex_office_id":null,"strasse":"Wilhem-Burk-Str. 9","plz":"63225","ort":"Langen"},
{"password":"0a0e65acf9fb71663c844a080058f68bba983bfc622a3867a865914fe66e8ccd","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Teufel","vorname":"","email":"teufelp@gmail.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503785","public_id":"","adresse":null,"titel":null,"uid":"b2ae7b0fbb5b9c13c41866d1f62966a02ace","lex_office_id":null,"strasse":"Vogelsbergweg 6","plz":"65462","ort":"Ginsheim"},
{"password":"ba08d380c1ca9128dea70b0086aa601958ef98110ddfe67fd4615c20e60e8ff4","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":" Walter","vorname":"Heidemarie","email":"ahwalter@t-online.de","phone":"0049 7622\/5243","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503786","public_id":"","adresse":null,"titel":null,"uid":"49089613f334c13c531df6e8dab87ee06ce1","lex_office_id":null,"strasse":"Blumenweg 8","plz":"79650","ort":"Schopfheim"},
{"password":"19b2db0d2486c1afe30a1b56401fa42633c96650243eb814b1f72c5fe062a389","level":"2","firma":"Elisabeth Oelker c\/o Hausverwaltung","anrede":"Sehr geehrter Herr","name":"Stefan","vorname":"Roland","email":"volker.grotegut@immobiliennagel.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503787","public_id":"","adresse":null,"titel":null,"uid":"b71fba1ad394805d1e21fb9c27b45e79b9d8","lex_office_id":null,"strasse":"Clarholzer Str. 50","plz":"33442","ort":"Herzebrock-Clarholz"},
{"password":"af777c0c81a07ebcf08bca5b9a1f12552371716155de2fa0b8e1d9e33fc90eb1","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kaps","vorname":"Andreas","email":"annette-kaps@gmx.de","phone":"09954905848","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503788","public_id":"","adresse":null,"titel":null,"uid":"f491c70ce366b6f8eb0e7853eff04350284e","lex_office_id":null,"strasse":"Embachsiedlung 6","plz":"84333","ort":"Malgersdorf"},
{"password":"2fef7aa1cd93be6cba8d96f4cbdc74f8bf806e1f8135e00d3465b1f6b0ab72bb","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Hennig","vorname":"Kerstin","email":"okay_k@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503789","public_id":"","adresse":null,"titel":null,"uid":"80af045ba0420cdb0000016de1db1419be4a","lex_office_id":null,"strasse":"Attilastr. 13","plz":"79206","ort":"Breisach"},
{"password":"de668219780e4cccbf56a6084e085112246e873b9a42ea45ab349fbfb1a7d8f0","level":"2","firma":"Wunderlich Immobilien","anrede":"Sehr geehrter Herr","name":"Wunderlich","vorname":"Maximilian","email":"wunderlich-immobilien@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503790","public_id":"","adresse":null,"titel":null,"uid":"8976b576881e1c992366d20cc9bb73bd227d","lex_office_id":null,"strasse":"Brahmsstr.3","plz":"91052","ort":"Erlangen"},
{"password":"ba9d49563c4a236d92a521e2728ebdff4b6f339d58edc3316092ea34cbc7549d","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Geyer","vorname":"Jürgen ","email":"schoettle@bvs-immo.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503791","public_id":"","adresse":null,"titel":null,"uid":"b0297852b3f31cb3d84a77ddb0fd4ea9ff18","lex_office_id":null,"strasse":"Alemannenstraße 13","plz":"71093","ort":"Weil im Schönbuch"},
{"password":"e8631fe39a26302d4e7faa507c9f84912cc89483372e3e80087789c052c166d0","level":"2","firma":"Culture Consulting","anrede":"Sehr geehrte Frau","name":"Fuger","vorname":"Karin","email":"agenturfuger@aol.com","phone":"0671\/ 8964270","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503792","public_id":"","adresse":null,"titel":null,"uid":"7acf770a2f33659c406e5d52b17df21dee04","lex_office_id":null,"strasse":"Soonblick 8","plz":"55543","ort":"Bad Kreuznach"},
{"password":"5465d31faf398889d6f6645eb38609785db0fedfa76546f89fafefdde468eae8","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Willems","vorname":"Ute","email":"ute-willems@t-online.de","phone":"02620 - 363","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503793","public_id":"","adresse":null,"titel":null,"uid":"5e6573c3d6a170b88e2e2e337b3daa464464","lex_office_id":null,"strasse":"Triftstraße 28","plz":"56337","ort":"Eitelborn"},
{"password":"2bbeecd9598882ca3e3b7e32973f1615954d44209c453bb7c8dc724fb4a1f760","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Weber","vorname":"Herbert","email":"weberherbert1@aol.com","phone":"08259 \/ 914","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503794","public_id":"","adresse":null,"titel":null,"uid":"48ab9f16d0a3f31f8c2978265a46405cb434","lex_office_id":null,"strasse":"Flurstrasse 3a","plz":"86576","ort":"Schiltberg"},
{"password":"7a526006bda0c9eb21b1b177cf6c0c65fa69a9cfb0ba9980f16ca655d8fc03d4","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Yüksel","vorname":"Sevgi","email":"campari_05@msn.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503795","public_id":"","adresse":null,"titel":null,"uid":"d3bfb9feab61127db41c7f63ec3c2962acdf","lex_office_id":null,"strasse":"Vordere Grabenstr.16","plz":"55545","ort":"Bad Kreuznach"},
{"password":"7c9e6b355bcdfcb4fc39ac85e0cfdda560f9fccf6132ec3c932a3b930116c342","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schweimler","vorname":"Dieter","email":"cdschweimler@arcor.de","phone":"051026252","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503796","public_id":"","adresse":null,"titel":null,"uid":"21e21f7aa7688e0740463bfc0df77cafc0b9","lex_office_id":null,"strasse":"Am Springborn 23","plz":"30880","ort":"Laatzen"},
{"password":"117e377673548e10f080f0b931e75f8b522f18e90aad567cdc58f1f3696a3631","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schwager","vorname":"","email":"Friedbert.Schwager@t-online.de","phone":"069 859876","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503797","public_id":"","adresse":null,"titel":null,"uid":"d7dc6a16e2114f02acf77f628379bcafe920","lex_office_id":null,"strasse":"Freiligrathstarße 31","plz":"63071","ort":"Offenbachz"},
{"password":"85eaffed906aeebf892550930a10934b43271c7405765d2e006648b9c07c5910","level":"2","firma":"","anrede":"Sehr geehrter Herr Dipl-Ing.","name":"Höling","vorname":"Karl-Heinz","email":"khoeling@gmx.de","phone":"02227-830019","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503798","public_id":"","adresse":null,"titel":null,"uid":"b6e50002ad5182688e059f1ad519bc9c27c7","lex_office_id":null,"strasse":"Jennerstr. 20","plz":"53332","ort":"Bornheim"},
{"password":"3826f9ec9a38f79f391ea28997157018fde725e8ef0f3d5cc9398a0487141b23","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Fischer","vorname":"Werner","email":"wr.fischer@arcor.de","phone":"03475-696687","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503799","public_id":"","adresse":null,"titel":null,"uid":"0b751ac125321f8b298db00fd24ec4f19935","lex_office_id":null,"strasse":"Hallesche Str. 31","plz":"06295","ort":"Eisleben"},
{"password":"90487b2be2f470b500fc59ad0675b3594118021f42594fe5c9aa77acce317ec0","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Wichmann","vorname":"Carsten","email":"carsten.wichmann@arcor.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503800","public_id":"","adresse":null,"titel":null,"uid":"015767402b03daa5cf75335f0159d531de2d","lex_office_id":null,"strasse":"Plettenbergstraße 3","plz":"30457","ort":"Hannover"},
{"password":"cdc26ae7222ba3758b351cb4c0b45b558731c54c65c2eac9f9f8e701c9d9fb36","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Gebert","vorname":"Gerold","email":"gerold.gebert@freenet.de","phone":"05941\/6106","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503801","public_id":"","adresse":null,"titel":null,"uid":"d9655e77f76b31a02b3ef045cdd9a4905b9c","lex_office_id":null,"strasse":"Kranichring 10","plz":"49828","ort":"Neuenhaus"},
{"password":"32e33dfe50d7298c5c3a39dcaba25cce45b5488f81295ebabe78b86d1af753a3","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Katzina","vorname":"Olaf","email":"olaf@katzina.de","phone":"0163-4719186","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503802","public_id":"","adresse":null,"titel":null,"uid":"126a2b3c3d6b305b72530a3f5a477e365895","lex_office_id":null,"strasse":"Alfred-Nobel-Str. 12","plz":"59399","ort":"Olfen"},
{"password":"5b862a33681f85a6a1e86c97f35509b5ea48fa0c672b1d0567f07a1b0a5d767b","level":"2","firma":"LBS Immobilien GmbH","anrede":"Sehr geehrter Herr","name":"Pape","vorname":"Jan-Martin","email":"jan-martin.pape@lbs-nord.de","phone":"04281 934710","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503803","public_id":"","adresse":null,"titel":null,"uid":"d53f324be4c23c4f2c55ba2b016cae8e0710","lex_office_id":null,"strasse":"Schulstraße 16","plz":"27404","ort":"Zeven"},
{"password":"79c25c319c68adb5f60de82e345ceb277124013b7a736e1336c4e946770dd8c7","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Bechtold","vorname":"Uwe","email":"u.bechtold@arcor.de","phone":"0162\/1510019","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503804","public_id":"","adresse":null,"titel":null,"uid":"0e670d366d1e224045e641c84c0e66dddab8","lex_office_id":null,"strasse":"Karoline-Gaubatz-Weg 9","plz":"63128","ort":"Dietzenbach"},
{"password":"b27898a3f5837b8fd7d6c89c5acad158a9956def20efdc392a0e4257a6517557","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schürholz","vorname":"Lothar","email":"schuerholz.lothar@berlin.de","phone":"Berlin","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503805","public_id":"","adresse":null,"titel":null,"uid":"8f63aa49f19ba337afba2c58808b0e91c852","lex_office_id":null,"strasse":"Albanstraße 19","plz":"12277","ort":"Berlin"},
{"password":"ad112f0887cd0cbfaadf6ca69438d1442484e2fb6a4fc49ef092aedd7a89dce6","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Geyer","vorname":"Jürgen ","email":"info@bvs-immo.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503806","public_id":"","adresse":null,"titel":null,"uid":"c560e66e1f75714058be63db12ae5014476b","lex_office_id":null,"strasse":"Alemannenstraße 13","plz":"71093","ort":"Weil im Schönbuch"},
{"password":"f4549b5af784e843c382bf4d9c560068a5c943564bf3cd63a249cf3231f9eb83","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Geyer","vorname":"Jürgen ","email":"karin@uschoettle.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503807","public_id":"","adresse":null,"titel":null,"uid":"7266fa45fd516b881b45d251ac125590477f","lex_office_id":null,"strasse":"Alemannenstraße 13","plz":"71093","ort":"Weil im Schönbuch"},
{"password":"8e5c7551d3096fa7c1ff23eda7786d76f9b3902f648789a4c0956c079ddc2f7b","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Hartung. Frank","vorname":"","email":"FrnkHar@aol.com","phone":"03841-288095","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503808","public_id":"","adresse":null,"titel":null,"uid":"5e8e0713bd24f03edaa465726a16cc98c7f6","lex_office_id":null,"strasse":"Kurzer Weg 16","plz":"","ort":"23970 Wismar"},
{"password":"a44950e83f44aa0729bef094873243bd6e3475520aa01d12a9424a785a94185a","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Krökert","vorname":"Stefan","email":"sebastian.kroekert@gmx.net","phone":"02368 960458","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503809","public_id":"","adresse":null,"titel":null,"uid":"000299321f8bfd645d1fa477e087e2e06e4b","lex_office_id":null,"strasse":"Haardgrenzweg 98","plz":"45739","ort":"Oer-Erkenschwick"},
{"password":"e2e651d0e87af093102a449627b7a139c4694f76004c0c1264e72d935278f7b7","level":"2","firma":"Dahler & Company","anrede":"Sehr geehrte Frau","name":"Trainer","vorname":" ","email":"post@online-ernergieausweiss.org","phone":"040 72811450","resellercode":"28065e7fe3248bf7bbeaf65431b261","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503810","public_id":"","adresse":null,"titel":null,"uid":"de1c9ce4c10d2252dc7dedaccb298c6b6cc6","lex_office_id":null,"strasse":"Bahnsenallee 42","plz":"21465","ort":"Reinbek "},
{"password":"d461a8444cc8186911b442a1b1b9df522419d6fa921634d6167d26a8651c94c2","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Spangenberg","vorname":"Bernd","email":"martina.spangenberg@freenet.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503811","public_id":"","adresse":null,"titel":null,"uid":"d0769d516b727dae933659ec3bfcdef2f60d","lex_office_id":null,"strasse":"Platanenstraße 18","plz":"34466","ort":"Wolfhagen"},
{"password":"d3398b8f94ae0cfe91cadfac4ae2b20e0d02f829797a99a41d7ad40d554473b5","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Zieme","vorname":"Klaus","email":"k-zieme@t-online.de","phone":"08582 8240","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503812","public_id":"","adresse":null,"titel":null,"uid":"23a8dacf8c403f2dc55d110e8c7f49352826","lex_office_id":null,"strasse":"Langäckerstr.18","plz":"94133","ort":"Röhrnbach"},
{"password":"567811b54f49a4ebfcfd36e9af4696fce82df1530be26e62951becf4a151329b","level":"2","firma":"constructionzone-Architekturbüro","anrede":"Sehr geehrte Frau Dipl-Ing.","name":"Grube","vorname":"Angela","email":"info@constructionzone.de","phone":"039298-28508","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503813","public_id":"","adresse":null,"titel":null,"uid":"5b70fa7544934c0cb6b6df4a752ef059f030","lex_office_id":null,"strasse":"Felddamm 28","plz":"39249","ort":"Tornitz"},
{"password":"9682644d95946f6938df0f00d5e647f27ccc2d9b1743119094dcb3d3307aeaef","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Aydin","vorname":"Yahya","email":"pajero@arcor.de","phone":"02151\/392740","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503814","public_id":"","adresse":null,"titel":null,"uid":"75464f19be49337d9a48b016a18517269a8b","lex_office_id":null,"strasse":"Vennfelderstraße 11","plz":"47805","ort":"Krefeld"},
{"password":"96ab53ef16261858b532fa363da4194261542db35e2f06a5c46968e11f556ea7","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Meyer","vorname":"Rüdiger","email":"haus.endenich@gmail.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503815","public_id":"","adresse":null,"titel":null,"uid":"013ff18658acc852db12aa465627cafbb591","lex_office_id":null,"strasse":"Kollegienweg 38","plz":"53121","ort":"Bonn"},
{"password":"2f11470396d74b6f4fc2dd4a10cafe8a6de7746f8f34654a4d68b3e6aca42622","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"SCHMIDT","vorname":"FRANK","email":"frank.schmidt12@ewetel.net","phone":"04221 998659","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503816","public_id":"","adresse":null,"titel":null,"uid":"88dc559f2c6de05a6e771d2253f6fa87b6a3","lex_office_id":null,"strasse":"La Plata 34","plz":"27749","ort":"Delmenhorst"},
{"password":"87254a6d29400a62cf2f1af7dfb6163d56f9b3b9ea69534834a4f7bb8280eddd","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Woite","vorname":"Roland","email":"mail@rolandwoite.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503817","public_id":"","adresse":null,"titel":null,"uid":"061169bd0905906d09c280a450ea5d4d6738","lex_office_id":null,"strasse":"Im Lingesfeld 15","plz":"47877","ort":"Willich"},
{"password":"ceee93a6ff5473d06f3218bddef85938e523dd7759430741a91709232bbef797","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Tönnishoff","vorname":"Claudia","email":"ctoennishoff@web.de","phone":"04482 1755","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503818","public_id":"","adresse":null,"titel":null,"uid":"23687dac0cc9a5cf5fb9ea8be6576ae92113","lex_office_id":null,"strasse":"Huntloser Str. 44","plz":"26209","ort":"Sandhatten"},
{"password":"92f0dc63a397e32da951f71fb4208a8fe224503bfde8cb872edf759cdccf1622","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Reinertz","vorname":"Herbert","email":"Herbertreinertz@web.de","phone":"0212 592286","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503819","public_id":"","adresse":null,"titel":null,"uid":"a919a919be350319ea8acdf6e8c4323a8c3a","lex_office_id":null,"strasse":"Untenketzberg 1","plz":"42653","ort":"Solingen"},
{"password":"6067c222c4c10559985eaf801bd62c82b5b7e6f96f3a91849079e48055628419","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Zachert","vorname":"Heidi","email":"zachert-bohr@web.de","phone":"02850416960","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503820","public_id":"","adresse":null,"titel":null,"uid":"d0a5b9c3aa45fa8bfce21d224d7b3f1b3d95","lex_office_id":null,"strasse":"Drostendick 11","plz":"46459","ort":"Rees"},
{"password":"3cb13e56f48c064e774bceaacbd675128c90568966c32e36bb1c0b1a4836114b","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Sohr","vorname":"Frank-Peter","email":"fp2210@arcor.de","phone":"0511\/461028","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503821","public_id":"","adresse":null,"titel":null,"uid":"0306d0cad6852b40866def34cd1b6f8c5725","lex_office_id":null,"strasse":"Maßweg 5","plz":"30457","ort":"Hannover"},
{"password":"eb1348222a241327e6515670a667e0819bcfac9e40b149f81dbad7c8f311c0f3","level":"2","firma":"","anrede":"Sehr geehrter Herr Dipl-Ing.","name":"Lettau","vorname":"Heiko","email":"info@heikolettau.de","phone":"0171 4050854","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503822","public_id":"","adresse":null,"titel":null,"uid":"6df880cafc0e7852bfe685308820cc8531b4","lex_office_id":null,"strasse":"Rathausstrasse 45","plz":"98597","ort":"Breitungen"},
{"password":"985b69685c342e13a79e029ff759ad33f10414fa38836e0e3ad7bf23891bfd15","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Jasch","vorname":"Dietmar","email":"diejagoe@t-online.de","phone":"05514996627","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503823","public_id":"","adresse":null,"titel":null,"uid":"5bb6d0a17266d1e1f784a61285fc127f5ce3","lex_office_id":null,"strasse":"Schiefer Weg 16a","plz":"37073","ort":"Göttingen"},
{"password":"432c38afa7b8751a4761f2f78065d09d5466b71c0be0893128e0d5fe148bf433","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Gensow","vorname":"Rene","email":"renegensow@online.de","phone":"04771-887889","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503824","public_id":"","adresse":null,"titel":null,"uid":"4bb9c281df35e798f4906d2381df5b9ec0e8","lex_office_id":null,"strasse":"Fichtenweg 35A","plz":"21745","ort":"Hemmoor"},
{"password":"d7d5a8742a3c1c9ba10ea86227133908a16672368142275825dc5a3ac52e168a","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Elhard","vorname":"Jutta","email":"schrahn-hoehbeck@t-online.de","phone":"0581-2326","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503825","public_id":"","adresse":null,"titel":null,"uid":"c40710fd253f2dec6aebcdb156127dc4462b","lex_office_id":null,"strasse":"Stettinerstr.4","plz":"29525","ort":"Uelzen"},
{"password":"f5416de2c211332861d2767dc237209c9826f96b7441a2e9f618f09091396a2d","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Krespach","vorname":"Ludwig","email":"ludwig.krespach1@freenet.de","phone":"07459\/2046","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503826","public_id":"","adresse":null,"titel":null,"uid":"0fe673934ea7824d8e1a0159c4f02b17f63d","lex_office_id":null,"strasse":"Bondorfer Weg 6\/1","plz":"72202","ort":"Nagold"},
{"password":"f8fd3f025d19f0ef9bbb340efdf3d62570d606ffddf04cd5eb1044f92b684581","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Mundt","vorname":"Michael","email":"mundtmayk@web.de","phone":"0201 467305","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503827","public_id":"","adresse":null,"titel":null,"uid":"acf5fd3808837ac1f8ed7c84c10d4ebd1e34","lex_office_id":null,"strasse":"Stornefranzstr.44","plz":"45259","ort":"Essen"},
{"password":"cfe282e9c409e478fd9496b9ce1da9393995d0ce65fd58365b914a3bc355874b","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Geroneit","vorname":"Sabine","email":"SabineGeroneit@aol.com","phone":"0213360089","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503828","public_id":"","adresse":null,"titel":null,"uid":"fc252ef19bb88088f6297837b3c6a2c435d5","lex_office_id":null,"strasse":"Geyr-von-Schweppenburg-Str. 29","plz":"41540","ort":"Dormagen"},
{"password":"926863fdf1e316b61daa57bb889903c0e52ea0981232b1b5ca7975fc1cc9a192","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Eckert","vorname":"Bernd","email":"rube.eckert@gmx.de","phone":"07633\/101552","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503829","public_id":"","adresse":null,"titel":null,"uid":"02c6a3ef185435e95d4fd3bdf60e8073d688","lex_office_id":null,"strasse":"Ezmattenweg 8","plz":"79189","ort":"Bad Krozingen"},
{"password":"cffbac2f6b5e63f462caf1f04053bbe24b339ccb2019a254ee6564b0c6f3b727","level":"2","firma":"Wohneigentümergemeinschaft","anrede":"Sehr geehrter Herr Prof.","name":"Weisshaar","vorname":"Gerhard","email":"weisshaar1933@aol.com","phone":"04104 3215","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503830","public_id":"","adresse":null,"titel":null,"uid":"07402ed979a6142f35e7b42f76a15880a45e","lex_office_id":null,"strasse":"Am Wendel 20","plz":"21521","ort":"Dassendorf"},
{"password":"1c06407b900a3889be0e2a57917b8757908a54584ad017159f4c0b03cc3335b6","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Zerlin","vorname":"Joachim","email":"j.zerlin@web.de","phone":"08142 6503940","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503831","public_id":"","adresse":null,"titel":null,"uid":"52afd37dacf629528516e1cc7f77e36449f0","lex_office_id":null,"strasse":"Grasslfingerstr. 55","plz":"82194","ort":"Gröbenzell"},
{"password":"4200817aace67a12942f95b1fb309874a41ff25edebd16da9bafac59b0108bce","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Mahlberg","vorname":"Herbert","email":"Herbert.Mahlberg@web.de","phone":"02251\/860099","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503832","public_id":"","adresse":null,"titel":null,"uid":"309bd1de210e5e9490881d08aa31cc9a77de","lex_office_id":null,"strasse":"Haselnußstr. 8","plz":"53881","ort":"Euskirchen "},
{"password":"e2d195eda493688a1fd30d0a6cb26f3a1dc3f0fdfa05b96c89f8de9bb32b0c3e","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Huber","vorname":"Meinrad","email":"huber.meinrad@vr-web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503833","public_id":"","adresse":null,"titel":null,"uid":"185464f2b448d98c5752e1b421d0a1879ce4","lex_office_id":null,"strasse":"Hauptstr. 12","plz":"87677","ort":"Stoettwang"},
{"password":"5a99af1f249891717db8231d31c988858d44ac78f91bc47d0be47cf566c7987b","level":"2","firma":"\\","anrede":"Sehr geehrte Frau","name":"Reinspach","vorname":"Mirjam","email":"reinspach@rent-ms.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503834","public_id":"","adresse":null,"titel":null,"uid":"806e770b9be379806d37afbb9a8be784d672","lex_office_id":null,"strasse":"Rote Erde 32","plz":"48163","ort":"^Münster"},
{"password":"a4c1c1873ab783920c79b86871e8130ec7e537b5cea81055a02c78be4e45c1ae","level":"2","firma":"Zölcher","anrede":"Sehr geehrter Herr","name":"Zölcher","vorname":"Dirk","email":"dz@d4project.de","phone":"02403 796 792 (Büro)","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503835","public_id":"","adresse":null,"titel":null,"uid":"52c6c8657560d381e2f8ad0df363c6a2acf9","lex_office_id":null,"strasse":"Zum Sportplatz 4","plz":"52372","ort":"Kreuzau"},
{"password":"26038c14e1190b6eda1852b1fb6fb43603ee8fbbd5c22bdb5c0c7ba0d6fb5d92","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Tappmeyer","vorname":"Volker","email":"volker.tappmeyer@t-online.de","phone":"05421\/2042","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503836","public_id":"","adresse":null,"titel":null,"uid":"2dae934e7ae7c9641c9934ce5e8f2e20a450","lex_office_id":null,"strasse":"Pastorenweg 7a","plz":"49201","ort":"Dissen"},
{"password":"a7d8a96d78c72cafb40e043f69a1daf0c70f4f2b62927b60d2c31e309bd7aa8b","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Nowak","vorname":"Michael","email":"michael.nowak@bluehash.de","phone":"06151146756","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503837","public_id":"","adresse":null,"titel":null,"uid":"0fbe21269bca2b0296587f34cfa5d1e5fa89","lex_office_id":null,"strasse":"Woogsstraße 4a","plz":"64367","ort":"Mühltal"},
{"password":"4fe82838e20254d501775c605c2e13c70d4d8e98ddd7051d38e90db3385603de","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Doering","vorname":"Anke","email":"info@ferienhaus-spo.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503838","public_id":"","adresse":null,"titel":null,"uid":"8b13f1b158823bb9d6851866b60cb71242ef","lex_office_id":null,"strasse":"Suedermarschweg 5","plz":"25836","ort":"Garding"},
{"password":"5426a4b18ec7667ef3a43aa4369c0ac1f5787901dd43b6ff887c598b51c226ea","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Steck","vorname":"Thomas","email":"th.steck@vodafone.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503839","public_id":"","adresse":null,"titel":null,"uid":"348f2f337b2b12ad2280b59032224ff02d85","lex_office_id":null,"strasse":"Triebstraße 59","plz":"60388","ort":"Frankfurt am Main"},
{"password":"71d2dd6f7cb41e1aa00297e77e31405528056f5db540ea1db08bb1c770c514c3","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Uttendorfer","vorname":"Josef","email":"ro-uttendorfer@web.de","phone":"08721\/910190","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503840","public_id":"","adresse":null,"titel":null,"uid":"fd393656fce3670d0b74c4f0420cc7f9ed96","lex_office_id":null,"strasse":"Gabelsbergerstrasse 7","plz":"84307","ort":"Eggenfelden"},
{"password":"350c42521de070b03f7feaee8b282f6c6106f5a8de1b324dcd6cbf07708431f3","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Waldeyer","vorname":"Jutta","email":"wj.wad@gmx.de","phone":"02102863900","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503841","public_id":"","adresse":null,"titel":null,"uid":"3f05a2e19bb9e8f6f91affe934e94ba17128","lex_office_id":null,"strasse":"Grütstraße 13","plz":"40878","ort":"Ratingen"},
{"password":"e4348eb97cde4795f9e75e9c1a770ba7e21cb5f13b732c0da87a0e26aa60812b","level":"2","firma":"","anrede":"Sehr geehrte Frau Dr.","name":"Heß","vorname":"Kornelia ","email":"roland.hess@teleson-mail.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503842","public_id":"","adresse":null,"titel":null,"uid":"35420a1aeba59eabb31def188dc69c0d0a47","lex_office_id":null,"strasse":"Hauptstr.06","plz":"18258","ort":"wiendorf"},
{"password":"09589302231a2b667d32b46424eb8996a4cfa42c2f2537e62bc2dee65e60223d","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Gentzen","vorname":"Michael","email":"michael.gentzen@web.de","phone":"07244\/4824","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503843","public_id":"","adresse":null,"titel":null,"uid":"560fb9d6af01561155919bd1e21f8be805cd","lex_office_id":null,"strasse":"Dresdner Ring 28","plz":"76356","ort":"Weingarten"},
{"password":"5245dc846127ab92dfdf1680c1f2ef3495f52d8436753ffac199691879335c69","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Frank","vorname":"Krauskopf","email":"fivekra@online.de","phone":"0151 16245410","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503844","public_id":"","adresse":null,"titel":null,"uid":"c449f059ec2810cf47ace20a3379a75308ab","lex_office_id":null,"strasse":"Humboldtstrasse 28","plz":"25421","ort":"Pinneberg"},
{"password":"60e08df8fb4383302f4345ddff55655b1be1fb73c7ae2ca7ea7930cf19d4821d","level":"2","firma":"Ralenkötter GbR","anrede":"Sehr geehrter Herr","name":"Sander","vorname":"","email":"lutza.sandergmbh@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503845","public_id":"","adresse":null,"titel":null,"uid":"74d809c3c419c0df88353ef058a91b3ed7dd","lex_office_id":null,"strasse":"Hauptstr. 46","plz":"33378","ort":"Rheda-Wiedenbrück"},
{"password":"a2048fead4d46477de65e42d0a676810d3c68726156631c646c95537578d4417","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Körppen","vorname":"Matthias","email":"m.koerppen@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503846","public_id":"","adresse":null,"titel":null,"uid":"9906e5028656f934a5f948f05a2db00fd530","lex_office_id":null,"strasse":"Wiesenstrasse 40","plz":"65187","ort":"Wiesbaden"},
{"password":"3b3b12b944d6443d466b9ca3fc6bd1dfe7fc6c0ce8a3f585a6c03d981502f3d0","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"ooo","vorname":"","email":"ö@l.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503847","public_id":"","adresse":null,"titel":null,"uid":"5cf6016c9bd077e09c13c5476afd6992f627","lex_office_id":null,"strasse":"kk","plz":"0","ort":"kk"},
{"password":"e3fa6f75a024f678169476b51d4990fa2adff291e97a8129349a814071a7a360","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Feth","vorname":"Renate ","email":"fischfeth@aol.com","phone":"02753\/4180","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503848","public_id":"","adresse":null,"titel":null,"uid":"f4b9c294bb724187b1434bb853f5b727f492","lex_office_id":null,"strasse":"Bergstr. 29","plz":"57339","ort":"Erndtebrück"},
{"password":"f2c03d9997c429148e41b0f777ba47d51892ebfaedbc136e31cdb81d7d483529","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Bergner","vorname":"Dieter","email":"Dieterbergner@freenet.de","phone":"01606361960","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503849","public_id":"","adresse":null,"titel":null,"uid":"e2f7405b6f92dedacb737dda9335159c27e2","lex_office_id":null,"strasse":"Bahnhofsallee 14a","plz":"64560","ort":"Riedstadt"},
{"password":"63293e48db741eab1f2f29fb3eeff140d75478c4a03961438ef5da5f0b858c90","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Wehder","vorname":"Wolfgang","email":"karin.wehder@teleson-mail.de","phone":"03586\/764576","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503850","public_id":"","adresse":null,"titel":null,"uid":"238223aba159c53236726852afbd08aa6e4b","lex_office_id":null,"strasse":"Gutbergweg 4","plz":"02730","ort":"Ebersbach"},
{"password":"3981f916f88c5c2adf12d410881d2d6deef4db0bd030274e140f1353cd466137","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Mahlstede","vorname":"Rolf","email":"famos.mahlstede@t-online.de","phone":"01726337142","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503851","public_id":"","adresse":null,"titel":null,"uid":"e352c55df8aa45157545cf6271df5cdeeffe","lex_office_id":null,"strasse":"Grummersorter Dorfstr. 63","plz":"27798","ort":"Hude"},
{"password":"fc47373945e212c7f6e9d3be95554ce768dfd67f40c2b672062fa76353f824ff","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kamleiter","vorname":"Friedrich","email":"f.kamleiter.kus@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503852","public_id":"","adresse":null,"titel":null,"uid":"95fd24f19a7546283936434bb727db143225","lex_office_id":null,"strasse":"Anna-Pirson-Weg 48","plz":"91052","ort":"Erlangen"},
{"password":"39348c3aec8fc7fb2e410e7fdef6c293001b93ef29dda55708fc4fdb4fdebdad","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Arndt","vorname":"Felicita","email":"Dennisarndt@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503853","public_id":"","adresse":null,"titel":null,"uid":"434ea8b001560f92f613c69be3787b142db3","lex_office_id":null,"strasse":"Lessingweg 9","plz":"32609","ort":"Hüllhorst"},
{"password":"6a9241ef299224f29d95cb70ebe308e9a8706b67f0cbb1bae750f775c9f66bc5","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schultz","vorname":"Torsten ","email":"Mylo72@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503854","public_id":"","adresse":null,"titel":null,"uid":"f2b3075448c6b59ed6724ebfa75589904756","lex_office_id":null,"strasse":"Schwarzenbrinker Str. 69","plz":"32758","ort":"Detmold "},
{"password":"c82fbf2ff69674461e0bd7fd90112ef30086efbe4a1cfc17c181243055548394","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Jahn","vorname":"Joachim","email":"jo-jahn@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503855","public_id":"","adresse":null,"titel":null,"uid":"f9088f464477e210d10ce48eff16e5d4ea9f","lex_office_id":null,"strasse":"Karlsbader Str. 12","plz":"64579","ort":"Gernsheim"},
{"password":"ff4166fc5ebd3b9bd255a32ebf626b68f2b8ceaf4740f9a1db828e2368452f98","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Danzer","vorname":"Andrea","email":"4jamps@web.de","phone":"0179\/4915358","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503856","public_id":"","adresse":null,"titel":null,"uid":"02eda9f322547419a780b5a321f920b86854","lex_office_id":null,"strasse":"Silcherstr. 68","plz":"72581","ort":"Dettingen\/Erms"},
{"password":"21473cd20588edfa44197101a1d81fc5acf08c91f90ae590009e1c570e7288c0","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Hemmerich","vorname":"Werner","email":"RHemmerich@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503857","public_id":"","adresse":null,"titel":null,"uid":"337c574031a3e187c7f8ab9c0e645a60f935","lex_office_id":null,"strasse":"Döllersweg 78","plz":"42929","ort":"Wermelskirchen"},
{"password":"f0e995888e520ab8d2e6de8fbf6918d0d9523c91616bd7bb821473ea5e13cdbe","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Wellnitz","vorname":"Arnold","email":"fam.wellnitz@t-online.de","phone":"0228\/ 676207","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503858","public_id":"","adresse":null,"titel":null,"uid":"e8e045e95b8a905b60ce1df465491c878658","lex_office_id":null,"strasse":"An der Pfaffenmütze 29a","plz":"53117","ort":"Bonn"},
{"password":"ea5f528e63a4c0bd7d11e004507c81404330a619b459e7cc8cbff2585115bf00","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Denkinger","vorname":"Anja","email":"vertrieb@hade-kabeltechnik.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503859","public_id":"","adresse":null,"titel":null,"uid":"bfa87ef463c4f30741afc1fbb44786420cc9","lex_office_id":null,"strasse":"Im Öschle 30","plz":"78359","ort":"Orsingen"},
{"password":"77e8359b853f4492fe773c04c796504496c2c0aa179e88e7790aaca98a21539f","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Herwartz","vorname":"Maria","email":"Michael.Herwartz@gmail.com","phone":"02235\/84221","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503860","public_id":"","adresse":null,"titel":null,"uid":"8e05a2f4931f8d94ba44920a462ad3a9d95f","lex_office_id":null,"strasse":"Max-Liebermann-Str. 18","plz":"50374","ort":"Erftstadt"},
{"password":"214b589df6518740c0ecdb60b9fa4bc2a03a76acc394068407954e3c88a1128b","level":"2","firma":"","anrede":"Sehr geehrte Frau Dr.","name":"Förster ","vorname":"Dagmar","email":"media-med@gmx.de","phone":"01733734273","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503861","public_id":"","adresse":null,"titel":null,"uid":"ba3f5d3808aa3366a45e91b58ab9d40320a3","lex_office_id":null,"strasse":"Kleiberstr. 27","plz":"91056","ort":"Erlangen"},
{"password":"1cf47e1acce459cd258b8f12f9058a72a3dbce7a05a9c12030404c5ba97f067f","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Pipper","vorname":"Alex","email":"ka4616-099@&#9830;online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503862","public_id":"","adresse":null,"titel":null,"uid":"1c9bdf76853087ef2f5b88352c41afe8ef06","lex_office_id":null,"strasse":"St.-Amand Straße 62","plz":"56626","ort":"Andernach"},
{"password":"067ee8720ad414ac434d8784d8d0cc7e99108327d09a05a11bdb5a839419561e","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Dobelstein","vorname":"Jan","email":"shivajan@web.de","phone":"03830866566","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503863","public_id":"","adresse":null,"titel":null,"uid":"e50fd4d4f16e3645d224045fd37b3d95fc24","lex_office_id":null,"strasse":"Hövtstrasse 16a","plz":"18586","ort":"Göhren"},
{"password":"c418f5da74abe25026acc600de4e10bfd50241696e235c719e9482314fe618dc","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Arnholdt","vorname":"Hildegard","email":"drneubauer@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503864","public_id":"","adresse":null,"titel":null,"uid":"ebf8eeb0e52c54655cddaba2c6b58bfcf9ff","lex_office_id":null,"strasse":"Urbanusstr. 8","plz":"45894","ort":"Gelsenkirchen"},
{"password":"2f89bf9130b81c2022d60dab50cf8363089220893ebacf29694f823d9efaca14","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Eberhard","vorname":"Bettina","email":"eberhard-sieche@t-online.de","phone":"0231 \/ 5864197","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503865","public_id":"","adresse":null,"titel":null,"uid":"0447838eed98b155ba031a15896170a463c4","lex_office_id":null,"strasse":"Auf der Bokkenbredde 16","plz":"44287","ort":"Dortmund"},
{"password":"4562431c6e09c715b67adadd47aebdc7c2f6812248e3134c4ea3425ecfbc9819","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Streck","vorname":"Viktor","email":"info@streck.info","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503866","public_id":"","adresse":null,"titel":null,"uid":"1866b9bcb3074f19a8acddc4f2b2b00fba30","lex_office_id":null,"strasse":"Parkstraße","plz":"31812","ort":"Bad Pyrmont"},
{"password":"bb83289ce49f7ad0c4dee2be6882701895b06a127bec01f3e137de737c1bd0a5","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Ehm ","vorname":"Jürgen","email":"Ehm40@web.de","phone":"04109 554840","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503867","public_id":"","adresse":null,"titel":null,"uid":"755b8671fba2ae95d4e82f75739798c3f186","lex_office_id":null,"strasse":"Dorfstr 74","plz":"22889","ort":"Tangstedt"},
{"password":"fa92217dd29051b0d642c8eeb6fcd7bfb37e2ff17dce54097d939269649da0dc","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Selnar","vorname":"Peter","email":"peter.selnar@online.de","phone":"0174\/923 5711","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503868","public_id":"","adresse":null,"titel":null,"uid":"6b9a78365a44b9ea9ed56d23a8d94c1127c8","lex_office_id":null,"strasse":"Parsifalstr. 10","plz":"95445","ort":"Bayreuth"},
{"password":"b1d71008f3f786d9567f55a6c0f31b3b2ced70116eb71a38557f5cded1a36ee0","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Bauer","vorname":"Andreas","email":"degaan@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503869","public_id":"","adresse":null,"titel":null,"uid":"68394932269bd0a3f323aa4642f4921de09a","lex_office_id":null,"strasse":"Am Hügelgrab 7","plz":"21698","ort":"Harsefeld"},
{"password":"763dd406e1c55f2bff92d92dce30f168a59b885a13461d6aef28ccd7185389ed","level":"2","firma":"ImmoWin GmbH","anrede":"Sehr geehrter Herr","name":"Leudesdorff - Pfeifer","vorname":"","email":"slp@immowingmbh.de","phone":"06152-9878021","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503870","public_id":"","adresse":null,"titel":null,"uid":"b869bb8545e6434bdf3503c7f64f16e4bb59","lex_office_id":null,"strasse":"Rheinstrasse 42","plz":"64572","ort":"Büttelborn"},
{"password":"993d6bc7ac976d3f08a283a69fea5a01e63a71f82c1e90d0e587acef8b6d70a4","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Heller","vorname":"Peter","email":"PETER.HELLER@T-Online.de","phone":"0227191713","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503871","public_id":"","adresse":null,"titel":null,"uid":"05b866cb31a2c445fce3785fffd52b142e33","lex_office_id":null,"strasse":"Dachsweg 4","plz":"50127","ort":"Bergheim"},
{"password":"53227a34a15e1cb025591fbae2dddee3982c2ef09502f002f1d0c3ee32200e63","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Mersmann","vorname":"Johannes","email":"Hans.Mersmann@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503872","public_id":"","adresse":null,"titel":null,"uid":"7ac1115477f5d5ffea9ec419bcc9a8a9eee9","lex_office_id":null,"strasse":"Am Wolfsbach 15","plz":"53229","ort":"Bonn"},
{"password":"a6c794ce9b25c443b6a24ea00d9fc1e4b620ab203922f06021bdf63136e37746","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Lorenz","vorname":"IRIS","email":"hbbruhn@web.de","phone":"040-6703105","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503873","public_id":"","adresse":null,"titel":null,"uid":"5d52b16a16b73c0e8eff1852c68aa462ac1e","lex_office_id":null,"strasse":"Helmuth Hübener Weg 9","plz":"21031","ort":"Hamburg"},
{"password":"3ea9df39c43a54454d0c3e6a2b9c581ebff7e9ecb1aef12e8d0eb297192ce0c7","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Völk","vorname":"Michael","email":"michael.voelk@web.de","phone":"088058152","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503874","public_id":"","adresse":null,"titel":null,"uid":"3658a8daa74f198daa894a9d81e350434a60","lex_office_id":null,"strasse":"Frülingstr. 1a","plz":"82383","ort":"Hohenpeißenberg"},
{"password":"90abd549d2fa95e9b8d57216853a9799f3592b2845ef5704ffb13b1655c8d3a9","level":"2","firma":"Markt Aindling","anrede":"Sehr geehrter Herr","name":"Zinnecker","vorname":"Tomas","email":"walter.krenz@vg-aindling.de","phone":"08237\/9607-22","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503875","public_id":"","adresse":null,"titel":null,"uid":"1560e9087dd963dad10d2380a16e5e659044","lex_office_id":null,"strasse":"Waldweg 1 1\/2","plz":"86447","ort":"Aindling"},
{"password":"2f7b68adfbf50b73ba439a74919238ca8fc460a1214b973c5e098cf4993297ca","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Wippert","vorname":"Uwe","email":"uwe.wippert@web.de","phone":"01635689640","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503876","public_id":"","adresse":null,"titel":null,"uid":"92ddad4c3a9ec40474187dacf755ba158aa5","lex_office_id":null,"strasse":"Dieskaustrasse 314","plz":"04249","ort":"Leipzig"},
{"password":"73b4e7c439a681f8a5058dd4654c0d695b93b5488fac68d1e92b768415eec251","level":"2","firma":"Gellrich Bolduan GbR","anrede":"Sehr geehrter Herr","name":"Gellrich","vorname":"Michael","email":"gellbo@t-online.de","phone":"","resellercode":"99495fe8b4d625949223ca0ad243a4","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503877","public_id":"","adresse":null,"titel":null,"uid":"cc84f029a9c53210ce087b58a91b59ebf905","lex_office_id":null,"strasse":"In den Gärten 10","plz":"59399","ort":"Olfen"},
{"password":"6cbd944ca4a3d460da01fd3eb6949c5cd98919799825ed1d0805045b54c9d304","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Günther","vorname":"Thomas","email":"tg@weisshoff-guenther.de","phone":"","resellercode":"da75c9a6fdfca822790aec36c7b7ec","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503878","public_id":"","adresse":null,"titel":null,"uid":"9eb0fb9c419a9ebfa5a611432252e06e4a63","lex_office_id":null,"strasse":"Speestraße 93","plz":"40885","ort":"Ratingen"},
{"password":"82100740499732ba296b038181fcaf59e929a1d73fa12741aa1742d1d1c1ad60","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kraus","vorname":"","email":"aagkraus@arcor.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503879","public_id":"","adresse":null,"titel":null,"uid":"c675173809d52db27d06fbb59f03f5b74044","lex_office_id":null,"strasse":"Hauptstrasse 48A","plz":"67227","ort":"Frankenthal"},
{"password":"a91bb5c37427e03e2f01aa53997739d1066adaa4934a3404fe52881318b1e568","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Mandl","vorname":"Franz","email":"fmand@vr-web.de","phone":"0882171140","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503880","public_id":"","adresse":null,"titel":null,"uid":"a48ed8f7560fa4a35e7b13f06cddaa5e4cf9","lex_office_id":null,"strasse":"Am Gröben 8","plz":"82490","ort":"Farchant"},
{"password":"5497bb8cda77d4bad46238d58a25f3177a78daceb403344c68fc6490de2dc2b7","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Sauer","vorname":"Michael","email":"michael@msauer.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503881","public_id":"","adresse":null,"titel":null,"uid":"f2f48d709ff0589798b2ae6421fa476c8683","lex_office_id":null,"strasse":"Am Trieb 2","plz":"65529","ort":"Waldems"},
{"password":"bfb2f1c6f186e0a6448403d0c1d41ec5609aeebc64e0aff8d0117cdf3a73b0a4","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Mandl","vorname":"Franz","email":"fmandl@vr-web.de","phone":"0882171140","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503882","public_id":"","adresse":null,"titel":null,"uid":"bbafc27c710cc98e1aeaa348f48ebfb9c3d6","lex_office_id":null,"strasse":"Am Gröben 8","plz":"82490","ort":"Farchant"},
{"password":"a181cc99ad59870bd3965a953663f3142746daf181f93d4837fa4eea64acdfef","level":"2","firma":"Junker-Bau GmbH","anrede":"Sehr geehrte Frau","name":"Junker","vorname":"Ingrid","email":"buero_junker-spinner@arcor.de","phone":"0781\/52338","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503883","public_id":"","adresse":null,"titel":null,"uid":"a0435fd52ae7991c98087c9a77db1561169c","lex_office_id":null,"strasse":"Mörburgstraße 5","plz":"77746","ort":"Schutterwald"},
{"password":"893a77ffae91e5e6a078654c2adc3a83c0a31caa3c82135f26b752067eb29d3a","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"STABENOW","vorname":"Karlheinz","email":"shash@gmx.net","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503884","public_id":"","adresse":null,"titel":null,"uid":"39491df5d1e617e363dc3c3d98ac0a320d09","lex_office_id":null,"strasse":"Petunienweg 42","plz":"60433","ort":"Frankfurt"},
{"password":"99b4ef0df871f1b7c0d06e66ea5d40f4e0bba47336529a92f58352cfe3839086","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Bauer","vorname":"Maria","email":"B.Schweikert@t-online.de","phone":"06251\/587595","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503885","public_id":"","adresse":null,"titel":null,"uid":"c3be79671e7824ed4ea8d979a5b9c1142c7e","lex_office_id":null,"strasse":"Siegfriedstr. 10","plz":"64625","ort":"Bensheim"},
{"password":"0827d84d898619a9d3a88964d16876ba0044f1c3486936074039a0996e9c75af","level":"2","firma":"","anrede":"Sehr geehrter Herr Dipl-Ing.","name":"Seitz","vorname":"Stefan","email":"seitz.s@arcor.de","phone":"0821\/517206","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503886","public_id":"","adresse":null,"titel":null,"uid":"3644a5ba171fb87cace36725464f17394c0b","lex_office_id":null,"strasse":"Schönbachstr. 11b","plz":"86154","ort":"Augsburg"},
{"password":"2e1da18daa9015cf440eb01a98f87aa18a2aeba82e0c6b16e49aa338626826b4","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Ott","vorname":"Martin","email":"schreinerei-ott@t-online.de","phone":"07476\/3116","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503887","public_id":"","adresse":null,"titel":null,"uid":"7519ce63dbd2543367f919a9eaccac1fba2a","lex_office_id":null,"strasse":"Altenweg 1\/1","plz":"72406","ort":"Bisingen"},
{"password":"c4f88947516ded8520ca9163ae78bf6aeedbcdfee9917876989d850aafbcbf58","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Hambrock","vorname":"Annette","email":"Annette@Hambrock.de","phone":"0251-531170","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503888","public_id":"","adresse":null,"titel":null,"uid":"e806113bfa88364363ed951448daa35e7ac1","lex_office_id":null,"strasse":"Althoffstraße 24","plz":"48151","ort":"Münster"},
{"password":"63763d5a84dd987a13744d647cd0b6faf1bc93afa4ceebcdced9618aafb2ab1a","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Strobel","vorname":"Frank","email":"frank.strobel@zf.com","phone":"01703236367","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503889","public_id":"","adresse":null,"titel":null,"uid":"fa5b9d7c59c403f592f6115752f2f741ad4f","lex_office_id":null,"strasse":"Schmalkaldener Ring 5","plz":"34314","ort":"Espenau"},
{"password":"7952fd93a0196eb2d5d7cea935b52e63111417dabd5006d4be7fba63cf10e9d8","level":"2","firma":"","anrede":"Sehr geehrter Herr Dr.","name":"Jacob","vorname":"Stephan","email":"stephan.jacob@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503890","public_id":"","adresse":null,"titel":null,"uid":"d52dc6a016e20d089502b2acde0727c7f757","lex_office_id":null,"strasse":"Alte Schmiede 5","plz":"31319","ort":"Sehnde"},
{"password":"ddc074069e6a93b64cf1629254dbfb4c84646be539fffb15aff9383d660a98cf","level":"2","firma":"WEG Im Zeilfeld 36 - 46, vertr. d. Verwaltungs-GmbH","anrede":"Sehr geehrter Herr","name":"Gierke","vorname":"","email":"m.goncalves@hausundgrund-stuttgart.de","phone":"0711-2104833","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503891","public_id":"","adresse":null,"titel":null,"uid":"4ff045d367f92e2e21fa5b89769ea76895d2","lex_office_id":null,"strasse":"Gerokstraße 3","plz":"70188","ort":"Stuttgart"},
{"password":"03ce2154c1fe53d78054bfdf5bb59891152ce22bc4c5598976eb6e0c8b783476","level":"2","firma":"","anrede":"","name":"Kristek","vorname":"Martin Richard","email":"martin.kristek@mk-power.eu","phone":"0404143148580","resellercode":"d4f33f797b32dabd0dcb1a6fa0f9ad","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503892","public_id":"","adresse":null,"titel":null,"uid":"69bcae95d4d7c8252d991a18380a31b59d81","lex_office_id":null,"strasse":"Hoefenkamp 13","plz":"22393","ort":"Hamburg"},
{"password":"166fbe9b3ba2388abaf4b1752330779992da3278a75f09b0309e7fe4f5d26b9a","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Höflschweiger","vorname":"Christine","email":"info@hoeflschweiger.de","phone":"0836\/14477","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503893","public_id":"","adresse":null,"titel":null,"uid":"e2251ac1fba02ace513daba184e808acc724","lex_office_id":null,"strasse":"Bergstr. 21","plz":"83083","ort":"Riedering"},
{"password":"778ae7fa9a46c1ae8f13644e306e89c5869f039120d45b0e81fb7c41723c9ebe","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Ochsenreiter-Neher","vorname":"Herbert","email":"ochsenreiter-neher@t-online.de","phone":"07351 827606","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503894","public_id":"","adresse":null,"titel":null,"uid":"ec113ec14ff0577f4a6280b6d10cded8352a","lex_office_id":null,"strasse":"Saulgauer Str. 25","plz":"88400","ort":"Biberach"},
{"password":"694cde61d8c7c8efa6daa7956fa1d603ba123f84e1e1da9194e480e901add7c3","level":"2","firma":"Fröbel GbR","anrede":"Sehr geehrter Herr","name":"Fröbel","vorname":"Steffen und Peter","email":"familiefroebel@gmx.net","phone":"02236 373725","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503895","public_id":"","adresse":null,"titel":null,"uid":"bde2e2f6013c69ab6f91b2daa6fc0d1e38c6","lex_office_id":null,"strasse":"Willy - Brandt - Str. 427","plz":"50389","ort":"Wesseling"},
{"password":"5cfa0a410688f95bdcd0207936fa84b0cecd34b284c1dee9eb2eae4dad3de169","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Chillingsworth","vorname":"Roswitha","email":"rchilling19@congstar.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503896","public_id":"","adresse":null,"titel":null,"uid":"b7fa3352afa881e4ba2dbfd27b298c69c0fd","lex_office_id":null,"strasse":"Friedrich-Ebert-Str. 19","plz":"65824","ort":"Schwalbach"},
{"password":"716184eeb96a59c5948a4188ba131051856fb9da99e690f77e22a7b2b46a3688","level":"2","firma":"Volksbank Sulmtal eG","anrede":"Sehr geehrter Herr","name":"Haaf","vorname":"Werner","email":"werner.haaf@volksbank-sulmtal.de","phone":"07134\/9801-150","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503897","public_id":"","adresse":null,"titel":null,"uid":"1f92df1b2d8252dc54641a041dc6c9cf76cb","lex_office_id":null,"strasse":"Marktstr.15","plz":"74182","ort":"Obersulm"},
{"password":"c8b736e9ef6dcb85431d3f3261811b68427ef5017e2d58a1949ec1d2f9b26d8e","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Herbeck","vorname":"Lars","email":"lars.herbeck@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503898","public_id":"","adresse":null,"titel":null,"uid":"306f9059ed7db2ae5042e210d0a58c3bd265","lex_office_id":null,"strasse":"Harzblick 16","plz":"38173","ort":"Veltheim"},
{"password":"3b8114f71f411a45b93775804493ec4b65b86d2405f7fd7e0a8db9759ce94f4a","level":"2","firma":"Vosch Immobilien","anrede":"Sehr geehrter Herr","name":"Voigt","vorname":"Steffen","email":"info@vosch.de","phone":"0351\/2722188","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503899","public_id":"","adresse":null,"titel":null,"uid":"9f031c8531c723bfccb2ad501577b434d395","lex_office_id":null,"strasse":"Steinweg 33","plz":"01445","ort":"Radebeul"},
{"password":"746a1305c32105d25a7e001e37a9b00bfc37999b1cc75f3f67cefdf275625b79","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Wildermuth","vorname":"Gerd","email":"gerd_wildermuth@web.de","phone":"01727196873","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503900","public_id":"","adresse":null,"titel":null,"uid":"fe670d08b0d23c0f919c0ce1e33961573a8e","lex_office_id":null,"strasse":"Alte Str. 14","plz":"71737","ort":"Kirchberg\/Murr"},
{"password":"7c969e4dc902a52deb5a8444a295d60261323109222766329ca36cb1be36dabb","level":"2","firma":"Friseur-Salon-Zorn","anrede":"Sehr geehrter Herr","name":"Zorn","vorname":"Stefan","email":"zorn-stefan@t-online.de","phone":"07231 \/ 89016","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503901","public_id":"","adresse":null,"titel":null,"uid":"d7dc7f4a61142e060e66b712809f1724f02b","lex_office_id":null,"strasse":"Hauptstr.23\/1","plz":"75228","ort":"Ispringen"},
{"password":"344a2244afcdd7fe160c57ab1b1fd96f9ff0e1aafa3b6f205fecc9c4fc2a0242","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Teich","vorname":"Georg","email":"georgteich@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503902","public_id":"","adresse":null,"titel":null,"uid":"13f320a44a8838c71f6573aba2ad3bf7acdf","lex_office_id":null,"strasse":"Casselbreite 8","plz":"34292","ort":"Ahnatal"},
{"password":"7799017e28aa52ddb4ec59d7411fd8648434947335210a3b92806af6bc5b29b7","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Müller","vorname":"Waldemar","email":"waldemar-mueller@web.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503903","public_id":"","adresse":null,"titel":null,"uid":"338f335319d7db0fe7c6b5769c27ef19d53f","lex_office_id":null,"strasse":"Alemannenstr. 26","plz":"79227","ort":"Schallstadt"},
{"password":"87cdf3b1d32000e67c60b1da7fd3f5438c5b55bbb616fd1330bc98a35c006fd8","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Huber","vorname":"Grit","email":"ghuber@sonnenkinder.org","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503904","public_id":"","adresse":null,"titel":null,"uid":"34bd0b6f8d7c8501866d09c3c3d822687dad","lex_office_id":null,"strasse":"Wildtalstr. 23","plz":"79108","ort":"Freiburg"},
{"password":"7d651b110d351c1680368381844aea69504e634458884a10f7d9c961d1f52bb8","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Bubbel","vorname":"Brigitte Alice","email":"b.bubbel@t-online.de","phone":"055851547","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503905","public_id":"","adresse":null,"titel":null,"uid":"227dafd4fd674d5308bcc98e1aea77f74f16","lex_office_id":null,"strasse":"Jakobstal 6","plz":"37412","ort":"Herzberg"},
{"password":"e1f6292032021c1e29a415361f00a31716b86f2dbd92a2bac4dbd97094d5be08","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Juppe","vorname":"Michael","email":"michael@juppe-online.de","phone":"06352-5177","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503906","public_id":"","adresse":null,"titel":null,"uid":"f8b014462b0fc10e516a2b3c545016ddc6b6","lex_office_id":null,"strasse":"Nachtigallenweg 3","plz":"67292","ort":"Kirchheimbolanden"},
{"password":"ba334265a901b19768654d1edbb7378e8fa880599c884c5b937c46c40258bd65","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kronschnabl","vorname":"Nikolaus","email":"n.kronschnabl@web.de","phone":"08137 7186","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503907","public_id":"","adresse":null,"titel":null,"uid":"df74ff031ddab8ab756cddc4fffd7dc7dc7f","lex_office_id":null,"strasse":"Weidenweg 7","plz":"85238","ort":"Petershausen"},
{"password":"32889007dc71d411bb8359e5117b453ebc907d1a31feedb8ef64f0d55d7da1bf","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Weitkowitz","vorname":"","email":"weitkowitz@gmx.de","phone":"01723916633","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503908","public_id":"","adresse":null,"titel":null,"uid":"898ae91cb3c42f477e4a5bb5a32f9eaa6140","lex_office_id":null,"strasse":"Rudolf-Breitscheid-Allee 71a","plz":"15366","ort":"Neuenhagen"},
{"password":"5cbf0363cab62123b68fdde99a07cd05465579926c98792a40d125b66bdcb621","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Weiß","vorname":"Andreas","email":"reiseandreas@web.de","phone":"06151\/54456","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503909","public_id":"","adresse":null,"titel":null,"uid":"6df5d4bb727ef59f307405a2c85fd404491a","lex_office_id":null,"strasse":"Viktoriastrasse 39","plz":"64293","ort":"Darmstadt"},
{"password":"68e8cb1179aa97ac88a6614761eecd64b3a642e997719756f0e5429bd0080ac8","level":"2","firma":"","anrede":"Sehr geehrter Herr Prof. Dr.","name":"Heinzelmann","vorname":"Christoph","email":"christoph.heinzelmann@t-online.de","phone":"07248\/926783","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503910","public_id":"","adresse":null,"titel":null,"uid":"fe96284bd0b5a2e1cae922252b55bb6cb45c","lex_office_id":null,"strasse":"Prälat-Axtmann-Ring 11","plz":"76359","ort":"Marxzell-Pfaffenrot"},
{"password":"0f040d3ce2cb48b31d1b9d38b3b67e71a372c736777012c54843b05321772a5b","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Krupp","vorname":"Anette","email":"thomas.krupp@gmx.de","phone":"02635 - 5406","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503911","public_id":"","adresse":null,"titel":null,"uid":"e34d68645d368517266d20cb6b70e77f6016","lex_office_id":null,"strasse":"Am Schloßberg 13","plz":"53557","ort":"Bad Hönningen"},
{"password":"5d7dbc7569d368bd6c5cc814a3dc91e7ca65a1b4404e8cdcfe20f47d70f61266","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Ermert","vorname":"Susanne","email":"s.bloecher@gmx.net","phone":"0178-1604137","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503912","public_id":"","adresse":null,"titel":null,"uid":"ddace1f77dd98ed8088223c15334d66ccad4","lex_office_id":null,"strasse":"Am Wäldchen 11","plz":"56337","ort":"Eitelborn"},
{"password":"afe92402d605970a8194f87823b379d666cb07f04d8afe8c898d618223d1c6bc","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Willmes","vorname":"","email":"tyrannus@online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503913","public_id":"","adresse":null,"titel":null,"uid":"fffd4e9642f4a6f905b87b41c9948eda9199","lex_office_id":null,"strasse":"Sattlerstr. 17","plz":"57392","ort":"Schmallenberg"},
{"password":"fa0f11c76159c3304566eb81279cc9697f8e871eaa6a5c0457389c3fe93645e7","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Feldkamp","vorname":"Ulrich","email":"ulrich.feldkamp@arcor.de","phone":"0208\/403703","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503914","public_id":"","adresse":null,"titel":null,"uid":"5fc113acf5fd127dd992f8823bcb3e1865a3","lex_office_id":null,"strasse":"Meidericher Str. 63","plz":"45476","ort":"Mülheim"},
{"password":"474c4fc7291dffa107406c04463076d72f0a70459b22b252596ab78e62a14a8f","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Pipper","vorname":"Alex","email":"ka4616-099@online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503915","public_id":"","adresse":null,"titel":null,"uid":"07531e1d0753074170f904784c0d0a186723","lex_office_id":null,"strasse":"St.-Amand Straße 62","plz":"56626","ort":"Andernach"},
{"password":"83759002d2d8615be79461fe98eba74e2fe0d6ba93a4d28fce1536a99e5e1bbb","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Meister","vorname":"Herbert","email":"GKirchbuchner@ihr-chiemseemakler.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503916","public_id":"","adresse":null,"titel":null,"uid":"b0fd37c98e032111156d3671fb9ebcdeec14","lex_office_id":"b4e545ba-9a58-4dc5-8268-d1efccac051e","strasse":"Goethestr. 21","plz":"83209","ort":"Prien"},
{"password":"1411f5c47c0ab3575661a03e535bcab8d38c978b9d149deab7e4f414b6d5c077","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Uhlar","vorname":"Reinhold","email":"uhlar@t-online.de","phone":"06032 33806","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503917","public_id":"","adresse":null,"titel":null,"uid":"f19bd1f6283658c3c27c83a8c5463b15755a","lex_office_id":null,"strasse":"Beethovenstr.2","plz":"61231","ort":"Bad Nauheim"},
{"password":"21ac2e879511fcd633d59a29102cbb446c7f0eae126bf7deb7b97d9aefb9632f","level":"2","firma":"Immo - Profis","anrede":"Sehr geehrter Herr","name":"Busjahn","vorname":"Helmut F.","email":"Immobilien@Busjahn.com","phone":"05137\/124666","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503918","public_id":"","adresse":null,"titel":null,"uid":"2e1b42e3642e2f63b26afd7c97ad4c3c2688","lex_office_id":null,"strasse":"Kochslandweg 48","plz":"30823","ort":"Garbsen"},
{"password":"ec69de1bdc1b8b275b24643fe591b240b394a2ddf61457876d993d93dbf01dea","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Strongert","vorname":"Bianca Andrea","email":"bianca-hexe-1974@hotmail.de","phone":"017680298173","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503919","public_id":"","adresse":null,"titel":null,"uid":"1b7266d210d111156fbb6ccabcb41c7f9ebf","lex_office_id":null,"strasse":"Kirchstr.10","plz":"73104","ort":"Börtlingen"},
{"password":"4904328e0d872b26310be4c467f7cf17d5c2aa1bf2e36ded9f0ff67cd19feb8c","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Kawaschinski","vorname":"Richard u. Käte","email":"Kawa-Haus-am-Strand@t-online.de","phone":"01520-4878278","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503920","public_id":"","adresse":null,"titel":null,"uid":"a4920a1ac24173a9ff184ec252f47823c253","lex_office_id":null,"strasse":"Steinwarder 5","plz":"23774","ort":"Heiligenhafen"},
{"password":"47c7248192934a9ae07d65980b8961b4df377ed21d3887b3842afcac0c2c02a3","level":"2","firma":"Cabeg Immobilienfonds Nr. 15","anrede":"Sehr geehrter Herr","name":"Brück","vorname":"Ulrich","email":"brueck@cabeg.de","phone":"06406 \/ 9148-10","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503921","public_id":"","adresse":null,"titel":null,"uid":"35ff0041b3f1995d4d686460e8c6b461560f","lex_office_id":null,"strasse":"Ratsweg 5","plz":"35460","ort":"Staufenberg"},
{"password":"9c43c13a837f45b0fd92200ba03aacdb1c136efb1e0a8f088a3f778a238ea5df","level":"2","firma":"Erhart Bauträger AG","anrede":"Sehr geehrter Herr","name":"Hakala","vorname":"Herbert","email":"h.hakala@hakala-vv.de","phone":"08344\/922944","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503922","public_id":"","adresse":null,"titel":null,"uid":"90882f8aa34d3a78223d674eab9bb9c3c126","lex_office_id":null,"strasse":"Falkensteinstr. 12","plz":"87640","ort":"Biessenhofen"},
{"password":"117546b1303cb003aa0ed4cb51907c50575b98555ef2e84402d9af3461811840","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Wegner","vorname":"Susan","email":"susan@web-wegner.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503923","public_id":"","adresse":null,"titel":null,"uid":"9bf7ac0d1ddec530a2c7e210df8ace2253f3","lex_office_id":null,"strasse":"Am Schlupfloch 16","plz":"65207","ort":"Wiesbaden"},
{"password":"ca35808640163823b69d57c6fdde895d0f94c25e73d5aec3125876d5d9a794ca","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Beesel","vorname":"Heike","email":"sven.beesel@versanet.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503924","public_id":"","adresse":null,"titel":null,"uid":"3684c38364323961560d10e642f5cf769e82","lex_office_id":null,"strasse":"Paul-Steen-Str. 25 a","plz":"23560","ort":"Lübeck"},
{"password":"96fae51086958320f150661e9bd2989d258dabde00cba4cbad8e37446d701a22","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Neudeck","vorname":"Klaus-Dieter","email":"neudeck@t-online.de","phone":"02196-3456","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503925","public_id":"","adresse":null,"titel":null,"uid":"f9f19bb5a477e1b59d56e4c1f91b45ba16cb","lex_office_id":null,"strasse":"Hinterhufe 9","plz":"42929","ort":"Wermelskirchen"},
{"password":"e4d1c58ab3dd6b07ce6c80ff63fad44676c8a66d6be968ca9348e2a0ffc47771","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Knop","vorname":"Thomas","email":"knop@fh-oow.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503926","public_id":"","adresse":null,"titel":null,"uid":"2ace34c13ac09fec13d94bdf5ccae81cb3ef","lex_office_id":null,"strasse":"Neuer Weg 127","plz":"26639","ort":"Wiesmoor"},
{"password":"67590da4843d9655e59f18af69f2f165b03124067a1834b336f862b88dc513b8","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Aumeier","vorname":"Eduard","email":"eduard.aumeier@allianz.de","phone":"09403-950126","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503927","public_id":"","adresse":null,"titel":null,"uid":"2a016c9920a47548aba306f8d837c83934e9","lex_office_id":null,"strasse":"Tannenweg 1","plz":"93093","ort":"Donaustauf"},
{"password":"187d72a762f418544e2e3a1293f260ae542fc686af39113a4cb5861ddc575261","level":"2","firma":"","anrede":"Sehr geehrte Frau Dipl-Ing.","name":"Hofmann","vorname":"","email":"hofmann_hettstadt@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503928","public_id":"","adresse":null,"titel":null,"uid":"5e785f03f31cc58ab7416e4a76a016d08834","lex_office_id":null,"strasse":"Friedenstr. 11","plz":"97265","ort":"Hettstadt"},
{"password":"23a6348ac67c9de575202fe4189dbc5b31e688f5233338ba721a10080469e7db","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Westerbarkei","vorname":"Heribert","email":"wescon@online.de","phone":"06181 491481","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503929","public_id":"","adresse":null,"titel":null,"uid":"ebe516a308820cb45cd09fd7c589784d3bf8","lex_office_id":null,"strasse":"Wichernstr 13","plz":"63477","ort":"Maintal"},
{"password":"a70155fbf3662714867c72dbe227ff84d25a220a712ffedebe459dc9b863a464","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Reinhardt","vorname":"Dietmar","email":"d.reinhardt@tiscali.de","phone":"06648\/916744","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503930","public_id":"","adresse":null,"titel":null,"uid":"e03087f33934e8e1b6cafd5320918531a3f4","lex_office_id":null,"strasse":"Kirchweg 11","plz":"36137","ort":"Großenlüder"},
{"password":"2c7da481d2d11c981b3445e9d8deee762410486c86665ea4dda0f1ee2e6996a6","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Makowski","vorname":"Karl - Peter","email":"karl-petermakowski@alice-dsl.n","phone":"030\/6625106","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503931","public_id":"","adresse":null,"titel":null,"uid":"9f06cc9935ea9047418809d6ae93503dad1f","lex_office_id":null,"strasse":"Johannisthaler Chaussee 155","plz":"12359","ort":"Berlin"},
{"password":"d29aca2fff828f8f19bb739079e18742db9c3411ba647b9db89b687b0610ddfb","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Elit","vorname":"Otto","email":"otrifama@web.de","phone":"05051 3125","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503932","public_id":"","adresse":null,"titel":null,"uid":"8daa5d08c52f4669c14f19ce38c7f77de188","lex_office_id":null,"strasse":"Hofkoppel 52","plz":"29303","ort":"Bergen"},
{"password":"7da675310363cf34a6757001ef82fc1708a2ebdcea070c02fe4752a143eadfc1","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Stritzki","vorname":"Thorsten","email":"thorsten_stritzki@yahoo.de","phone":"0201-460378","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503933","public_id":"","adresse":null,"titel":null,"uid":"1b6df5ba029a9ebd212837ae7b2bfe658ace","lex_office_id":null,"strasse":"Am Hagenbusch 22a","plz":"45259","ort":"Essen"},
{"password":"d5768d48d36cc7257ae5f489cde126a071390f8ba4c925f946e5794c825c9223","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Pasa","vorname":"Michael","email":"mi.pasa@arcor.de","phone":"0231 271587","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503934","public_id":"","adresse":null,"titel":null,"uid":"350171e5e79ce49479908a897bfc11129658","lex_office_id":null,"strasse":"Brembuschweg 4","plz":"44319","ort":"Dortmund"},
{"password":"e34ecc0171bcf051c821e553186d8126b50c27c8727bcd10a7f3655a4e76c6ba","level":"2","firma":"","anrede":"Sehr geehrter Herr Dipl-Ing.","name":"Grobe","vorname":"Hartmut","email":"hartmut.grobe@grobe-bau.de","phone":"05303-2751","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503935","public_id":"","adresse":null,"titel":null,"uid":"7ef2ef4656e5e95d24c4f2ae8e06d0905896","lex_office_id":null,"strasse":"Rodekamp 13","plz":"38176","ort":"Wendeburg"},
{"password":"5a701017526c89565758c57e8d7ded31ca41ab6367622e29aa2adc05498b9415","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Diehl","vorname":"Hans-Peter","email":"diehl-geltendorf@t-online.de","phone":"081931746","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503936","public_id":"","adresse":null,"titel":null,"uid":"3d81d08bfa62810cc710c090321113ec3d7e","lex_office_id":null,"strasse":"Birkenweg 11","plz":"82269","ort":"Geltendorf"},
{"password":"2712df5155c0833868c12cfc5269de00031afb57b1e2bf9964985b288d809f75","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Becker","vorname":"Hermann","email":"info@becker-bahnbau.de","phone":"0208\/682522","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503937","public_id":"","adresse":null,"titel":null,"uid":"0866e4a756d354363db000fd4e9225186723","lex_office_id":null,"strasse":"Bahnstraße ","plz":"46147","ort":"Oberhausen"},
{"password":"f9124b565e5492de4f6e2e887c14c84f181b023af9e53cbb61dd92d9bedffe5a","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Mulski","vorname":"Hans-Jürgen","email":"mulski@gmx.de","phone":"02361 - 72658","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503938","public_id":"","adresse":null,"titel":null,"uid":"bce2f769d8f21d0756f9f17241866ccac0b8","lex_office_id":null,"strasse":"Hohbrink 43","plz":"45659","ort":"Recklinghausen"},
{"password":"39ac8a58a565f6b8828309ea0ee5cdaff8498baf1c1823b34b9b261605df3896","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Riedlinger","vorname":"Regine","email":"regine.riedlinger@web.de","phone":"0761-7075875","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503939","public_id":"","adresse":null,"titel":null,"uid":"66cdeeea8dad0b7256e37b01710ba16def19","lex_office_id":null,"strasse":"Alte Sägemühle 14","plz":"79117","ort":"Freiburg"},
{"password":"5ed86b038d7674d86c22e94b47b2a574fee04aa710fdbb754a8645b6629dc5b2","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Sperr","vorname":"Sepp","email":"seppsperr@web.de","phone":"08636\/6370","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503940","public_id":"","adresse":null,"titel":null,"uid":"bdf5fa5e784d7c84ebb9be353f5b895c0df5","lex_office_id":null,"strasse":"Ludwig-Thoma-Str. 5","plz":"84539","ort":"Ampfing"},
{"password":"ea1c4ee8377a808dcb9e03d7189abefa97f793809f836c65e0fa75766350b549","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Mörlein","vorname":"Karlheinz","email":"karlheinz.moerlein@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503941","public_id":"","adresse":null,"titel":null,"uid":"b9f0448f0461419c0e63073c127f5f9477f5","lex_office_id":null,"strasse":"Johannes-Brahms-Str. 21","plz":"92442","ort":"Wackersdorf"},
{"password":"71b4f7f2601dd4a81447e8df86e78c47d5dc7497a09030271df8dd7f74be9c85","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Daum","vorname":"Rainer","email":"rainer.daum@ewetel.net","phone":"04442\/71635","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503942","public_id":"","adresse":null,"titel":null,"uid":"d4e93658bd366df492db2992e1a3eeff1867","lex_office_id":null,"strasse":"Weißdornweg 10","plz":"49393","ort":"Lohne"},
{"password":"6f68cb1484ded10bab74d526ca74bf5272561030a472c65cc720adba489343bc","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Friedeberg","vorname":"Hildburg","email":"hildburg-margrit.friedeberg@ewetel.net","phone":"04221\/81282","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503943","public_id":"","adresse":null,"titel":null,"uid":"2394a5e8f3210e641c72406caebb73b0c0a2","lex_office_id":null,"strasse":"Gerhart-Hauptmann-Str 6","plz":"27777","ort":"Bookholzberg"},
{"password":"a18ca8fe9c83d7031af287881b8876e38177dd13f79607ec01d867c677fb3b30","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Bönte","vorname":"Irene","email":"dasgreenhorn@web.de","phone":"02361 - 45475","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503944","public_id":"","adresse":null,"titel":null,"uid":"e1afeaa489919d52c5613c284ce5e8e058be","lex_office_id":null,"strasse":"Otto-Hue-Straße 10","plz":"45665","ort":"Recklinghausen"},
{"password":"936c4b4fdf4a2741c2eb63dad2c77d1be5cc7e8a5005c50801548df78665a0c4","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Toenz","vorname":"Kurt","email":"kurt.toenz@tonline.de","phone":"06173-64753","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503945","public_id":"","adresse":null,"titel":null,"uid":"797bfe8073aa5cb59d68806126b45cf78238","lex_office_id":null,"strasse":"Höhenstrasse 40","plz":"61476","ort":"Kronberg im Taunus"},
{"password":"bac65fcf1cc07e8c3e1c1ade955e0903edb325a606c1d4f86033ae8f1a187e81","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schmitt","vorname":"Gregor ","email":"gregor.schmitt@db.com","phone":"0172-8538417","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503946","public_id":"","adresse":null,"titel":null,"uid":"076868402b3d976b576a184bf905b753210d","lex_office_id":null,"strasse":"Schulstraße 7","plz":"82064","ort":"Strasslach-Dingharting"},
{"password":"48d369a5f81b7f452f70f6c6ba00ebfe58bb082d635743a90197ee37ac9bd115","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Ferkinghoff-Speek","vorname":"Christa","email":"jspeek@arcor.de","phone":"089\/8593556","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503947","public_id":"","adresse":null,"titel":null,"uid":"090434ba476b6def348f2dae8db143223be6","lex_office_id":null,"strasse":"Nikolaus-Müllerstr. 9","plz":"82152","ort":"Planegg"},
{"password":"dbe16f80eeea5c51ac3863c9ca9225ed6368bf6b52857fad4d87d38f708661a0","level":"2","firma":"Eigentümer Dr. Dean Elias und Prof. Dr. Stephen Ha","anrede":"Sehr geehrter Herr","name":"Elias","vorname":"Dean","email":"dean.elias@yahoo.com","phone":"01735833176","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503948","public_id":"","adresse":null,"titel":null,"uid":"56fa61281e22544920b60df8c156fbb44ba0","lex_office_id":null,"strasse":"Königsberger Straße 10","plz":"85748","ort":"Garching"},
{"password":"0eed4f726e813e9982b8ad2d7f25fe92c3b89538836920c4ef2f32ead8ac5d04","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Frickel","vorname":"Jochen ","email":"frickel.joju@gmx.de","phone":"08092\/850424","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503949","public_id":"","adresse":null,"titel":null,"uid":"436587c6cb2c7e076725464045e7ad2687c8","lex_office_id":null,"strasse":"Am Feld 5","plz":"85567","ort":"Grafing"},
{"password":"4778938419658dbd5dbd47f197fa0f6746cc8260a6db42d23d61349c78061311","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Krebs","vorname":"Uwe","email":"u_krebs@gmx.net","phone":"04261\/83250","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503950","public_id":"","adresse":null,"titel":null,"uid":"4ebcc84fd7d9a60e91df2deec3d94a9d7dd8","lex_office_id":null,"strasse":"Am Prüßenforth 39","plz":"27356","ort":"Rotenburg"},
{"password":"0f76fc1c21ffb335c1326705c2db02b9776cb73a9dd06ab921893dd9898987ce","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Schwenkler","vorname":"Anne","email":"anneundsiegward@online.de","phone":"030 812 10 05 ","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503951","public_id":"","adresse":null,"titel":null,"uid":"5fea62ab894bb589503e032f5fbca003f324","lex_office_id":null,"strasse":"Schlettstadter Str. 84 ","plz":"14169","ort":"Berlin"},
{"password":"1694932b5af3031cddfaa852a618521e7b10a65b3c23548bf0a753f6faf153e0","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":" Rácz","vorname":"Jürgen","email":"juergen.racz@omv.com","phone":"01708534946","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503952","public_id":"","adresse":null,"titel":null,"uid":"bcb59e976c98dbe92f5e798ef046012b141a","lex_office_id":null,"strasse":"Abt - Helmerich -Weg 7","plz":"67127","ort":"Rödersheim"},
{"password":"6a9e9f6fbcacf51fbe74e57ecad88df920395aaeda816da5b941b99ef570050e","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Grebe","vorname":"Friedrich","email":"Grebe_Deutschland@t-online.de","phone":"02945 5601","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503953","public_id":"","adresse":null,"titel":null,"uid":"043381b6b71295e6866d0881cdace20d2128","lex_office_id":null,"strasse":"Steinbachstrasse 16","plz":"59556","ort":"Lippstadt"},
{"password":"12ce2da662b2b133c1c7684b88eb7fd2e00b2430cfac3389d2329ba582b01364","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Sachers","vorname":"","email":"wolfgang.sachers@gmx.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503954","public_id":"","adresse":null,"titel":null,"uid":"34fc255b88f31f8be642f60e784e95d24fe8","lex_office_id":null,"strasse":"Sebastianstraße 12","plz":"92224","ort":"Amberg"},
{"password":"17269f0b58e9a7d4b7d9ab5f0bc3ff12d400f010f26f5cb5b802b19d000a8bf1","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Thomas","vorname":"Martin","email":"martin-stefan.thomas@t-online.de","phone":"06173963732","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503955","public_id":"","adresse":null,"titel":null,"uid":"20b9a9ec3c13d6b305cf5d38e1b6ccacdf6f","lex_office_id":null,"strasse":"Auf der Mammolshoehe 72","plz":"61462","ort":"Koenigstein"},
{"password":"0f93bed20798e6ecac211533a5a0a2d84dc61a22a28986fb7e1c82cd569aab8d","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Pander","vorname":"Hagen","email":"hpander@arcor.de","phone":"02102-556668","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503956","public_id":"","adresse":null,"titel":null,"uid":"9059f30741ae7b306d227b42df1b563bfa5b","lex_office_id":null,"strasse":"Talstr. 13","plz":"40878","ort":"Ratingen"},
{"password":"4d9565e43002b2a2ac8e96ccb1c9953557ee6c375cc342a29d1c905a04469a2b","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Simbeck ","vorname":"Friederike","email":"fr.simbeck@t-online.de","phone":"09421 90341","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503957","public_id":"","adresse":null,"titel":null,"uid":"894805ce21f8ec55b9a755a6d37c55d0b87b","lex_office_id":null,"strasse":"Schulgasse 31","plz":"94315","ort":"Straubing"},
{"password":"e6ab8d4cfa85d6ea037871f41a6d45e4fabf493a14e2b77f2fecc8a2c92cd691","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Riekehof","vorname":"Achim","email":"riekehof@t-online.de","phone":"01715260790","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503958","public_id":"","adresse":null,"titel":null,"uid":"3ef044a48dacf6284a629907403f591c6e2f","lex_office_id":null,"strasse":"Afrikastraße 42","plz":"32791","ort":"Lage"},
{"password":"69188e0c4093176cbad0ad4041bb7ce735ebca1bf150e0d9f9c90b605446b0f1","level":"2","firma":"Wendl Vermögensverwaltungs KG","anrede":"Sehr geehrte Frau","name":"Engelhardt","vorname":"Diana","email":"d.engelhardt@bayernareal.de","phone":"0851\/9561529","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503959","public_id":"","adresse":null,"titel":null,"uid":"904493503ed98be8f48c6a045baf0563c257","lex_office_id":null,"strasse":"Neuburger Straße 76","plz":"94032","ort":"Passau"},
{"password":"d57f49f8182134ff318dee7061290ff86f78f966b46b69894d3571a509d0f9be","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Matterne","vorname":"Rainer","email":"marion-rainer@gmx.de","phone":"07123-33554","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503960","public_id":"","adresse":null,"titel":null,"uid":"4ec4ebf91afd7afea897ad37ac268531cb28","lex_office_id":null,"strasse":"Panoramastr. 21","plz":"72585","ort":"Riederich"},
{"password":"b1420345ad2f493a8f026f04d4021586146920cab6071cafea951a3d7075179b","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Hartz","vorname":"Dieter","email":"dieter.hartz@gmx.net","phone":"04321-66908","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503961","public_id":"","adresse":null,"titel":null,"uid":"4d66cb6b4768820b72835172530af0197b00","lex_office_id":null,"strasse":"Ehndorfer Str.216","plz":"24537","ort":"Neumünster"},
{"password":"2491280dafb6427e9cba568634d527672dfdb4d127928ae7accc9007af3a67df","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Peter","vorname":"Niederberger","email":"pniederberger@web.de","phone":"07195-71441","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503962","public_id":"","adresse":null,"titel":null,"uid":"0297b0ea6fd4bde33683bdf742e19c256ce2","lex_office_id":null,"strasse":"Im Öderich 13","plz":"73663","ort":"Berglen"},
{"password":"2693c9437daca551aa829aa02e4b58872995267e705b9813a32fb5dc09b7aceb","level":"2","firma":"Innenarchitektur","anrede":"Sehr geehrte Frau","name":"Godt","vorname":"Wendy","email":"wendy.godt@t-online.de","phone":"05241-6010752","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503963","public_id":"","adresse":null,"titel":null,"uid":"f8aa60d2381df60d4e95d50299491a0435fd","lex_office_id":null,"strasse":"Fritz Blank Strasse 9","plz":"33334","ort":"Gütersloh"},
{"password":"0f1ab40b6de0eb5b74648826b84821e4554a74a8a04ff755ff0513db904fc315","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Trebing","vorname":"Peter","email":"BP.Trebing@t-online.de","phone":"07731-976200","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503964","public_id":"","adresse":null,"titel":null,"uid":"545d4d4fea919c0d1fa5a6fb9bf905ba0305","lex_office_id":null,"strasse":"Im Löhnen 21","plz":"78244","ort":"Gottmadingen"},
{"password":"1ddcf0ee8d41c1e1b7671a5693e1f23e29affef312425ca3802907277bbcb8d2","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Oberschachtsiek","vorname":"Frank","email":"f.oberschachtsiek@gmx.de","phone":"0173 5192088","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503965","public_id":"","adresse":null,"titel":null,"uid":"ccb143352c5766e658a9eebe77e1e1b84ff0","lex_office_id":null,"strasse":"Im Hilger 5","plz":"44289","ort":"Dortmund"},
{"password":"307c196db3098e71b11f45f48a7c869a19db8869cb46f181218aae77af5b393f","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Ohmstede","vorname":"Bodo","email":"BodoOnTour@aol.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503966","public_id":"","adresse":null,"titel":null,"uid":"3ef1afc1142eeed83529a62aa463eec4ebf8","lex_office_id":null,"strasse":"Ludwig-Wehrkamp-Str. 7","plz":"49176","ort":"Hilter"},
{"password":"4c78d644cd2a6f9b3215664a94a8456d760967480e98748e302b82cf26f28e2c","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Rogusch","vorname":"Michael","email":"michael.rogusch@web.de","phone":"0202 447267","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503967","public_id":"","adresse":null,"titel":null,"uid":"b2ab894bb5a33630727dc42f34bb72672688","lex_office_id":null,"strasse":"Gartenstraße 80","plz":"42107","ort":"Wuppertal"},
{"password":"0d864a356aeebfceb19f303bf94c53f0111244d1164d6f841e42976301ddb054","level":"2","firma":" Schmidt Immobilien","anrede":"Sehr geehrte Frau","name":"Schmidt","vorname":"Renate","email":"rurschmidt@aol.com","phone":"0611-9812438","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503968","public_id":"","adresse":null,"titel":null,"uid":"ef44bde0752e1b31db419d51727c6df5d37c","lex_office_id":null,"strasse":"Steckelburgstr. 31","plz":"65199","ort":"Wiesbaden"},
{"password":"180fd55a8619efd8ff37fc07ed0c62f32850e24c1b3534a16bb1bc83e2009c47","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Rein","vorname":"Ronny","email":"ronrein007@aol.com","phone":"01608293752","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503969","public_id":"","adresse":null,"titel":null,"uid":"7df35fd4fd65a336561548d7ddace1cb3f07","lex_office_id":null,"strasse":"Trassenheider Straße 2A","plz":"17449","ort":"Mölschow"},
{"password":"865b7dacf8922199cc231ee93a26a2064a14db3b245f3ac2d0fcee5316923b94","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schwill","vorname":"Wolfgang","email":"wolfgang@schwill.info","phone":"0201-5658230","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503970","public_id":"","adresse":null,"titel":null,"uid":"2531b6cdbfe809ebd1d1e210d0b9c0cde19b","lex_office_id":null,"strasse":"Voßbergring 50","plz":"45259","ort":"Essen"},
{"password":"3dd1a76dbb8330ef6759dd5cb98d6444361a53cceab972d9a4f863fe76ad63b6","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Schlegel","vorname":"Hans","email":"hgschlegel@web.de","phone":"0711\/4209792","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503971","public_id":"","adresse":null,"titel":null,"uid":"f8eed7dd962b3b1688f5e659c1116b421d1c","lex_office_id":null,"strasse":"Asangstrasse","plz":"70329","ort":"Stuttgart"},
{"password":"2e83581809af79699c31edf149788767ad60aedbac7726612f47a4df0e9c1187","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Fryba","vorname":"Bernhard","email":"bh.fryba@vr-web.de","phone":"08121-81566","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503972","public_id":"","adresse":null,"titel":null,"uid":"ad51723c3c398bfbcb433659046156e495e6","lex_office_id":null,"strasse":"Rennstattweg 13","plz":"85464","ort":"Finsing"},
{"password":"db6c6dd5bc6d4cf4cc1d8b1d127a71819d79777f6aadebad4732117343e950aa","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Klaus und Martina","vorname":"Lehmann","email":"klaus.martina.lehmann@arcor.de","phone":"0761 6800891","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503973","public_id":"","adresse":null,"titel":null,"uid":"59ec26865a2db0fa9ebe8b01587dc82127e3","lex_office_id":null,"strasse":"In den Eschmatten 14","plz":"79117","ort":"Freiburg"},
{"password":"659838eb35f4f724f0bfd6d1459e2ccab929644aafbaf667fb20784a9eaee226","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Redante","vorname":"","email":"knut@redante.com","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503974","public_id":"","adresse":null,"titel":null,"uid":"24ffd53f4642dec69d66f76c9ce49323be77","lex_office_id":null,"strasse":"Daxlanderstrasse 41","plz":"76185","ort":"Karlsruhe"},
{"password":"b0c5e29d5f2f7e1174dee8187892db567add083dc6eb74e8f493da5cd76e2e61","level":"2","firma":"Evangelischer Verein für Innere Mission","anrede":"Sehr geehrter Herr","name":"Mayer","vorname":"Michael","email":"michael.mayer@innere-mission-ffm.de","phone":"069\/7072525","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503975","public_id":"","adresse":null,"titel":null,"uid":"09ffebcdc6c9a63eebd366b85309d8f21e5d","lex_office_id":null,"strasse":"Ludolfusstraße 2-4","plz":"60487","ort":"Frankfurt am Main"},
{"password":"58a0ae25ebd294ba6bcf8fb7a276925e2e0f2a1b83904655579a4c552aea2c03","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Fleischer","vorname":"Gert","email":"gert.fleischer@web.de","phone":"07071-76458","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503976","public_id":"","adresse":null,"titel":null,"uid":"24d6aeaa2e1a29bb6e38d97afbb73962bfa7","lex_office_id":null,"strasse":"Derendinger Straße 28","plz":"72072","ort":"Tübingen"},
{"password":"e30bab775057c90edce86703bca7ae3c41a6b3ba43dacfe9887e5bcaa48d1a21","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Jacobsen","vorname":"Günter","email":"gnter.jacobsen@freenet.de","phone":"04822\/4764","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503977","public_id":"","adresse":null,"titel":null,"uid":"54614323a8c673c25714f2dc6b3ef19c0e5f","lex_office_id":null,"strasse":"Schulberg 25","plz":"25548","ort":"Kellinghusen"},
{"password":"89f9ab9f9c76ba4759d1892a8a9cb70a77a748f351b288cf24cdf14784b11914","level":"2","firma":"","anrede":"Sehr geehrter Herr Prof. Dr.","name":"Hecheltjen","vorname":"Peter","email":"peter@hecheltjen.de","phone":"0201 8419988","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503978","public_id":"","adresse":null,"titel":null,"uid":"c10e7b270a45d53f2ef209eb0ce0a2b2b017","lex_office_id":null,"strasse":"Hohe Buchen 3","plz":"45133","ort":"Essen"},
{"password":"e61af7ce0c28c8b2f243bcde455862ec9221acbddff9daf0b3a73778f4e7a3a3","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Czinczoll","vorname":"Gerd","email":"gerd.czinczoll@t-online.de","phone":"0911-9364750","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503979","public_id":"","adresse":null,"titel":null,"uid":"e3784d3be5284ea9ed685435030751afbcdc","lex_office_id":null,"strasse":"Rotfuchsstraße 37","plz":"90427","ort":"Nürnberg"},
{"password":"3259d6f4c49d9e0754872ee6aa48239539882e160b21f0badc3525dbd343b3b7","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Rosenhäger","vorname":"Marianne","email":"maho@rosenhaeger-dt.de","phone":"0170 - 4496600","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503980","public_id":"","adresse":null,"titel":null,"uid":"42e088f477e1ddb141af0144a324be643364","lex_office_id":null,"strasse":"Höpperkuhle 7","plz":"32758","ort":"Detmold"},
{"password":"78841f2b32524b9671bcc3abeefb545e4b4517fa46337d4bb54d99302f7a8ca6","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Kordes","vorname":"Traute","email":"rt.kordes@t-online.de","phone":"","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503981","public_id":"","adresse":null,"titel":null,"uid":"3502ae8f477e1b6b880626b6b5b712978227","lex_office_id":null,"strasse":"Birkenrain 63","plz":"71364","ort":"Winnenden"},
{"password":"e42d702b2aebcf3ededb5fd34150a72b03e0531a5aee1a32715eec34c7ab9014","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Hagmann","vorname":"Walter","email":"walter.hagmann@gmx.de","phone":"07334-8236","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503982","public_id":"","adresse":null,"titel":null,"uid":"c7f642db2aa76b2c55bafd558c284a5e670c","lex_office_id":null,"strasse":"Am Weigoldsberg 27","plz":"73326","ort":"Deggingen"},
{"password":"2ec4bcfed370fa9455b91a1b71daeb64df0d862522aba307134f2b20b3a88434","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Donau Schlafke","vorname":"Bärbel","email":"claus.schlafke@freenet.de","phone":"04861 - 1288","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503983","public_id":"","adresse":null,"titel":null,"uid":"b44a6f8ec545d38e1c7f8ad395e934c0a614","lex_office_id":null,"strasse":"Osterstr. 41","plz":"25832","ort":"Tönning"},
{"password":"9df913af90994cac9ac5d3061e3521e9e5cceb86cc8250195f0b0be8c21d4233","level":"2","firma":"","anrede":"Sehr geehrte Frau","name":"Werth","vorname":"Kerstin","email":"m.werth@clever-trocken-legen.de","phone":"01723841863","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503984","public_id":"","adresse":null,"titel":null,"uid":"ff1991b6cdc54641c7e4947ad227f4797abb","lex_office_id":null,"strasse":"Gartenstraße 3a","plz":"19053","ort":"Schwerin"},
{"password":"6b5b04a16e6d963b0eaa7a14b338de43edbf638867c32f05cc96f644825a852a","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Rösch","vorname":"Hans-Dieter","email":"schork-roesch@hotmail.de","phone":"06196 \/ 83366","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503985","public_id":"","adresse":null,"titel":null,"uid":"74ea9ed94bb6d1f75881b8516d08a8bfce1d","lex_office_id":null,"strasse":"Rudolf-Dietz-Weg 22","plz":"65824","ort":"Schwalbach\/Ts."},
{"password":"dcd62a9d005dafd9f85a4b85b19d0436866220c66b1cade6fb4a9f3ad2ce9373","level":"2","firma":"Schweikhardt GmbH","anrede":"Sehr geehrter Herr","name":"Schweikhardt ","vorname":"Hartmut","email":"sanitaer.schweikhardt@gmx.de","phone":"070838634","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503986","public_id":"","adresse":null,"titel":null,"uid":"09c4173bf8c42c7114ffea9eeab727c866e5","lex_office_id":null,"strasse":"Gartenstraße 17","plz":"76597","ort":"Loffenau"},
{"password":"588738dd70741d89ed96d620494b4437d57b703ea6de63d65983ec43b40743bd","level":"2","firma":"","anrede":"Sehr geehrter Herr","name":"Flade","vorname":"Karlheinz","email":"thor.1970@web.de","phone":"05064-200","resellercode":"","abr_va":"0","abr_ba":"0","abr_vanw":"0","id":"503987","public_id":"","adresse":null,"titel":null,"uid":"d4be76b738f73d80a2f2ded7e06f8d70a2b3","lex_office_id":null,"strasse":"Spandauer Weg 16","plz":"31141","ort":"Hildesheim"}
]
}
]

View File

@@ -71,8 +71,8 @@ describe("Bilder hochladen", async () => {
const bild = await newClient.v1.bilder.getBase64.query({ uid: image.uid });
expect(bild).toHaveProperty("base64");
expect(bild.base64).toBeTypeOf("string");
expect(bild.base64).toEqual(base64);
expect(bild.data).toBeTypeOf("string");
expect(bild.data).toEqual(base64);
})
test("bild sollte entfernbar sein", async () => {