import React from 'react'; import { Document, Page, Text, View, StyleSheet, Image } from '@react-pdf/renderer'; import { formatDate } from './date-utils'; const COLORS = { primary: '#5B9A9F', headerBg: '#5B9A9F', tableHeaderBg: '#B8E6E6', accent: '#5B9A9F', text: '#000000', textLight: '#666666', }; const styles = StyleSheet.create({ page: { paddingTop: 0, paddingBottom: 50, paddingHorizontal: 50, fontSize: 10, fontFamily: 'Helvetica', lineHeight: 1.4, }, headerBand: { backgroundColor: COLORS.headerBg, height: 80, marginLeft: -50, marginRight: -50, marginBottom: 30, paddingRight: 50, paddingTop: 15, flexDirection: 'row', justifyContent: 'flex-end', alignItems: 'flex-start', }, logoSmall: { width: 100, height: 'auto', }, mainTitle: { fontSize: 18, fontWeight: 'bold', textAlign: 'center', marginBottom: 15, }, subtitle: { fontSize: 10, textAlign: 'center', marginBottom: 3, lineHeight: 1.4, }, accentText: { color: COLORS.accent, }, parties: { marginTop: 30, marginBottom: 25, }, partyBlock: { marginBottom: 20, }, partyLabel: { fontWeight: 'bold', marginBottom: 8, fontSize: 11, }, partyText: { marginBottom: 4, fontSize: 10, }, section: { marginBottom: 20, }, sectionTitle: { fontSize: 11, fontWeight: 'bold', marginBottom: 10, }, paragraph: { marginBottom: 10, lineHeight: 1.5, }, table: { border: '1px solid #000', marginTop: 15, marginBottom: 20, }, tableHeaderRow: { flexDirection: 'row', backgroundColor: COLORS.tableHeaderBg, borderBottom: '1px solid #000', }, tableRow: { flexDirection: 'row', borderBottom: '1px solid #000', }, tableRowLast: { flexDirection: 'row', }, tableCell: { padding: 10, borderRight: '1px solid #000', fontSize: 9.5, lineHeight: 1.4, }, tableCellLast: { padding: 10, fontSize: 9.5, lineHeight: 1.4, }, tableCellLeft: { width: '35%', fontWeight: 'bold', }, tableCellMiddle: { width: '45%', }, tableCellRight: { width: '20%', textAlign: 'center', }, tableCellFull: { width: '50%', }, radioOption: { marginBottom: 5, }, signatureSection: { marginTop: 40, flexDirection: 'row', justifyContent: 'space-between', }, signatureBox: { width: '48%', }, signatureLabel: { fontSize: 10, marginBottom: 5, }, signatureLine: { borderTop: '1px solid #000', marginTop: 50, paddingTop: 8, fontSize: 10, }, signature: { marginTop: 10, marginBottom: 5, maxHeight: 50, }, contactInfo: { fontSize: 8, marginTop: 2, }, bulletPoint: { marginLeft: 20, marginBottom: 6, }, numberedList: { marginLeft: 10, marginBottom: 8, }, emptyLineForSignature: { borderBottom: '1px solid #999', height: 1, marginTop: 40, marginBottom: 5, }, }); interface ContractData { booking: any; location: any; photobox: any; signatureData?: string; signedBy?: string; signedAt?: Date; signedIp?: string; logoBase64?: string; } export const ContractPDF = ({ booking, location, photobox, signatureData, signedBy, signedAt, signedIp, logoBase64 }: ContractData) => { const basePrice = booking.calculatedPrice || 0; const distance = booking.distance || 0; const totalKm = distance * 2; return ( {/* Page 1 */} {/* Header Band */} {logoBase64 && } {/* Title */} SAVE THE MOMENT MIETVERTRAG über ein Fotobox-Modell inklusive sämtlicher Bestandteile und Zubehör gemäß Ziffer 1 (nachfolgend die „Mietgegenstände") {/* Parties */} zwischen Dennis Forte (DJ Forte), Bahnhofstrasse 14c, 23626 Ratekau (nachfolgend der „Vermieter") und {booking.customerName && {booking.customerName}} {booking.customerAddress && ( {booking.customerAddress}, {booking.customerZip} {booking.customerCity} )} {!booking.customerName && } (nachfolgend der „Mieter") {/* Section 1 */} 1. MIETGEGENSTÄNDE UND NEBENLEISTUNGEN: Der Mieter mietet vom Vermieter folgende Mietgegenstände inklusive der genannten Nebenleistungen: {/* Header */} Mietgegenstand / Leistung Bitte ankreuzen {/* Modell */} Modell ○ Fotobox Vintage ○ Smile ○ Photos ○ Magic Mirror ○ Nostalgie {/* Fotodruck vor Ort */} Fotodruck vor Ort ○ Ja, 140 Ausdrucke ○ Ja, Flatrate (400 Ausdrucke soweit nicht anders vereinbart) ○ Nein, nur digital in der Cloud {/* Accessoires */} Accessoires ○ Ja ○ Nein {/* VIP Absperrung */} VIP Absperrung ○ Ja ○ Nein {/* Roter Teppich */} Roter Teppich ○ Ja ○ Nein {/* Lieferung */} Lieferung inkl. Aufbau ○ Ja, einfache Strecke umfasst {distance.toFixed(1)} km. Gesamt = {totalKm.toFixed(1)} km ○ Nein {/* Sonstiges */} Sonstiges {/* Section 2 */} 2. MIETZWECK Der Mieter wird die Mietgegenstände entsprechend der bestimmungsgemäßen Verwendung auf folgender Veranstaltung nutzen: {/* Section 3 */} 3. MIETZEIT Die Mietzeit geht vom: {/* Section 4 */} 4. MIETPREIS Für die Überlassung der Mietgegenstände inklusive Nebenleistungen gemäß Ziffer 1 vereinbaren die Parteien einen Preis von {basePrice.toFixed(2)} € inkl. USt. {/* Page 2 */} 5. ZAHLUNG Der Mietpreis für die vereinbarte Mietdauer ist im Voraus nach Rechnungstellung des Vermieters zu bezahlen. 6. ÜBERGABE DER MIETGEGENSTÄNDE Je nach Vereinbarung liefert der Vermieter die Mietgegenstände an den Veranstaltungsort und baut diese dort auf oder stellt dem Mieter die Mietgegenstände an seinem Geschäftssitz zur Abholung bereit. Der Mieter hat Anspruch auf einen Testlauf. Macht der Mieter von diesem Recht keinen Gebrauch, gelten die Mietgegenstände als mangelfrei übergeben. 7. VERFÜGBARKEIT VON FOTOS 7.1 Die mit den Mietgegenständen hergestellten Fotos sind zwei Wochen in einer Cloud digital abrufbar. 7.2 Bei Buchung einer Druck-Option besteht darüber hinaus die Möglichkeit, Fotos während der Veranstaltung vor Ort auszudrucken. Die Anzahl der Ausdrucke hängt von der gebuchten Option ab. Die Buchung der Flatrate umfasst den Druck von bis zu 400 Blättern, sofern nicht etwas anderes vereinbart wird. Diese Anzahl deckt üblicherweise den gesamten Bedarf. Ist ausnahmsweise von einem höheren Bedarf auszugehen, vereinbaren die Parteien eine höhere Anzahl von Ausdrucken. 8. KÜNDIGUNG 8.1 Der Abschluss des Mietvertrags ist grundsätzlich verbindlich. Eine Kündigung ist nur aus wichtigem Grund möglich. Sofern der Vermieter den wichtigen Grund nicht gesetzt hat, schuldet der Mieter bei einer Kündigung des Mieters je nach Zeitpunkt der Kündigung folgende Entschädigung: • Kündigung mehr als 6 Monate vor Beginn der Mietzeit: 5 % des Netto-Mietpreises • Kündigung weniger als 6 Monate vor Beginn der Mietzeit: 20 % des Netto-Mietpreises • Kündigung weniger als 3 Monate vor Beginn der Mietzeit: 40 % des Netto-Mietpreises • Kündigung weniger als 1 Monat vor Beginn der Mietzeit: 80 % des Netto-Mietpreises Dem Mieter steht offen, einen im konkreten Fall gänzlich fehlenden oder wesentlich niedrigeren Anspruch des Vermieters nachzuweisen. 8.2 Ein dem Mieter gesetzlich zustehendes Widerrufsrecht bleibt von der vorstehenden Regelung unberührt. 9. PERSÖNLICHE DATEN Der Mieter ist damit einverstanden, dass der Vermieter personenbezogene Daten wie Name, Anschrift aus dessen Personalausweis notiert und die erhobenen Daten zur eigenen Verwendung speichert. 10. PFLICHTEN DES MIETERS Der Mieter verpflichtet sich, die Mietgegenstände nur für die vereinbarten Zwecke zu nutzen. Der Mieter verpflichtet sich weiter die Mietgegenstände pfleglich zu behandeln und sie jederzeit in geeigneter Weise vor Beschädigung, Verlust oder Diebstahl zu schützen. Bei Diebstahl verpflichtet er sich, unverzüglich den Vermieter zu informieren und auf dessen Verlangen hin bei der nächstgelegenen Polizeidienststelle Anzeige zu erstatten. {/* Page 3 */} 11. HAFTUNG DES MIETERS Der Mieter haftet dem Vermieter für den Verlust der Mietgegenstände sowie für Schäden an diesen, die durch unsachgemäße Behandlung oder mutwillige Beschädigung der Mietgegenstände entstehen. Der Mieter hat auch für Schäden, die durch unsachgemäße Behandlung oder mutwillige Beschädigung durch Dritte, denen der Mieter Mietgegenstände zum Gebrauch überlässt, einzustehen. Bei einer zweckfremden Nutzung oder nicht berechtigten Weiterüberlassung der Mietgegenstände haftet der Mieter dem Vermieter für sämtliche Schäden an den Mietgegenständen. 12. HAFTUNG DES VERMIETERS Der Vermieter hat den Mieter auf die ordnungsgemäße Handhabung der Mietgegenstände hingewiesen. Der Vermieter haftet darüber hinaus nicht für selbstverschuldete Unfälle des Mieters im Zusammenhang mit der Benutzung der Mietgegenstände. Eine sonstige Haftung des Vermieters für Sachschäden des Mieters bzw. Dritter bei Nutzung der Mietgegenstände ist mit Ausnahme von Vorsatz und grober Fahrlässigkeit des Vermieters ausgeschlossen, soweit sich aus den nachfolgenden Regelungen nichts Abweichendes ergibt. Im Falle der Verletzung wesentlicher Vertragspflichten (solche Pflichten, deren Erfüllung die ordnungsgemäße Durchführung des Vertrags überhaupt erst ermöglichen und auf deren Einhaltung der Mieter regelmäßig vertrauen darf) haftet der Vermieter auch bei einfacher Fahrlässigkeit für Sachschäden, jedoch der Höhe nach auf den vorhersehbaren, vertragstypischen Schaden begrenzt. Für Personenschäden gelten die gesetzlichen Bestimmungen. Die Regelungen des Produkthaftungsgesetzes bleiben unberührt. 13. RÜCKGABE, VERZUGSSCHADEN 13.1 Sofern keine abweichenden Vereinbarungen getroffen werden, gelten für die Rückgabe folgende Regelungen: Die Rückgabe der Mietgegenstände hat spätestens an dem Tag, an dem der Mietzeitraum endet, zu erfolgen. Hat der Mieter die Mietgegenstände inklusive Anlieferung und Abholung gebucht, hat er dem Vermieter nach Ende des Mietzeitraums an dem Tag, an dem der Mietzeitraum endet, die Abholung zu ermöglichen. 13.2 Bei verspäteter Rückgabe hat der Mieter dem Vermieter für jeden Verzugstag Schadensersatz in Höhe des sich aus dem Preis gemäß Ziffer 4 und der Mietzeit gemäß Ziffer 3 ergebenden Tagesmietpreises, begrenzt durch den Neuverkaufspreis der Mietgegenstände, zu bezahlen. Bei der Berechnung des Tagesmietpreises sind etwaige Kosten für Lieferung inkl. Aufbau sowie Fotopapier außer Betracht zu lassen. Bei vorzeitiger Rückgabe der Mietsache hat der Mieter keinen Anspruch auf anteilige Rückzahlung des Mietpreises. 14. VERSCHIEDENES 14.1 Dieser Vertrag enthält die gesamte Vereinbarung. Mündliche Nebenabreden bestehen nicht. 14.2 Sollten einzelne Bestimmungen dieses Vertrags unwirksam sein oder werden, bleibt hiervon die Wirksamkeit der übrigen Bestimmungen des Vertrags unberührt. Die Parteien vereinbaren, dass sie im Falle einer unwirksamen Bestimmung dieses Mietvertrags über eine Ersatzregelung verhandeln, die dem von den Parteien mit der unwirksamen Bestimmung verfolgten wirtschaftlichen Zweck am nächsten kommt und die rechtlich zulässigen Inhalt hat. {/* Signatures */} Ort, Datum Ratekau, {formatDate(new Date())} Dennis Forte (DJ Forte) Tel. 01729140374 E-Mail: info@fotobox-luebeck.de Web: fotobox-luebeck.de Ort, Datum {signatureData ? ( <> {signedBy} {signedAt && ( Digital signiert am {formatDate(signedAt)} )} ) : ( Mieter )} ); };