terms
All checks were successful
Build & Deploy MB Grid Solutions / build-and-deploy (push) Successful in 1m38s
All checks were successful
Build & Deploy MB Grid Solutions / build-and-deploy (push) Successful in 1m38s
This commit is contained in:
100
app/agb/page.tsx
100
app/agb/page.tsx
@@ -1,14 +1,50 @@
|
||||
import { Download } from 'lucide-react';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
export default function AGB() {
|
||||
const filePath = path.join(process.cwd(), 'context/agbs.md');
|
||||
const fileContent = fs.readFileSync(filePath, 'utf8');
|
||||
|
||||
// Simple parsing of the markdown file
|
||||
const lines = fileContent.split('\n').map(l => l.trim()).filter(line => line !== '');
|
||||
|
||||
const title = lines[0] || 'Liefer- und Zahlungsbedingungen';
|
||||
const stand = lines[1] || 'Stand Januar 2026';
|
||||
|
||||
const sections: { title: string; content: string[] }[] = [];
|
||||
let currentSection: { title: string; content: string[] } | null = null;
|
||||
|
||||
// Skip title and stand
|
||||
lines.slice(2).forEach(line => {
|
||||
// Check if line starts with a number followed by a dot (e.g., "1. ", "10. ")
|
||||
if (/^\d+\./.test(line)) {
|
||||
if (currentSection) sections.push(currentSection);
|
||||
currentSection = { title: line, content: [] };
|
||||
} else if (currentSection) {
|
||||
currentSection.content.push(line);
|
||||
}
|
||||
});
|
||||
if (currentSection) sections.push(currentSection);
|
||||
|
||||
// The last line is usually the location/date
|
||||
const footer = lines[lines.length - 1];
|
||||
// Remove footer from the last section's content if it was added there
|
||||
if (sections.length > 0) {
|
||||
const lastSection = sections[sections.length - 1];
|
||||
if (lastSection.content.includes(footer)) {
|
||||
lastSection.content = lastSection.content.filter(c => c !== footer);
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="bg-slate-50 min-h-screen pt-28 pb-20">
|
||||
<div className="container-custom">
|
||||
<div className="max-w-4xl mx-auto bg-white p-8 md:p-12 rounded-[2.5rem] shadow-sm border border-slate-100">
|
||||
<div className="flex flex-col md:flex-row md:items-center justify-between gap-6 mb-8">
|
||||
<div>
|
||||
<h1 className="text-4xl font-extrabold text-primary mb-2">Liefer- und Zahlungsbedingungen</h1>
|
||||
<p className="text-slate-500 font-medium">Stand Januar 2026</p>
|
||||
<h1 className="text-4xl font-extrabold text-primary mb-2">{title}</h1>
|
||||
<p className="text-slate-500 font-medium">{stand}</p>
|
||||
</div>
|
||||
<a
|
||||
href="/assets/AGB MB Grid 1-2026.pdf"
|
||||
@@ -21,59 +57,19 @@ export default function AGB() {
|
||||
</div>
|
||||
|
||||
<div className="space-y-8 text-slate-600 leading-relaxed">
|
||||
<div>
|
||||
<h2 className="text-2xl font-bold text-primary mb-4">1. Allgemeines</h2>
|
||||
<div className="space-y-4">
|
||||
<p>
|
||||
Diese Liefer- und Zahlungsbedingungen (L&Z) der MB Grid Solutions & Services gelten ausschließlich;
|
||||
entgegenstehende oder von unseren Bedingungen abweichende Bedingungen des Kunden erkennen wir nicht an,
|
||||
es sei denn, wir hätten ausdrücklich schriftlich ihrer Geltung zugestimmt.
|
||||
</p>
|
||||
<p>
|
||||
Unsere L&Z gelten nur gegenüber Unternehmern im Sinn von § 310 Abs. 1 BGB sowie juristischen Personen des öffentlichen Rechts oder öffentlich-rechtliches Sondervermögen.
|
||||
</p>
|
||||
{sections.map((section, index) => (
|
||||
<div key={index}>
|
||||
<h2 className="text-2xl font-bold text-primary mb-4">{section.title}</h2>
|
||||
<div className="space-y-4">
|
||||
{section.content.map((paragraph, pIndex) => (
|
||||
<p key={pIndex}>{paragraph}</p>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 className="text-2xl font-bold text-primary mb-4">2. Angebote</h2>
|
||||
<p>
|
||||
Sofern nicht ausdrücklich als bindend bezeichnet, sind unsere Angebote freibleibend; die Bestellung
|
||||
des Kunden ist als Angebot gemäß § 145 BGB zu qualifizieren.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 className="text-2xl font-bold text-primary mb-4">3. Preise</h2>
|
||||
<p>
|
||||
Die Preise gelten für den in unseren Angeboten und Auftragsbestätigungen aufgeführten Leistungs- und
|
||||
Lieferumfang. Mehrleistungen werden gesondert berechnet. Die Hohlpreise verstehen sich in Euro zuzüglich
|
||||
Metallzuschlag, gegebenenfalls Verpackung, auftragsspezifischer Schnittkosten und der gesetzlichen Mehrwertsteuer.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 className="text-2xl font-bold text-primary mb-4">4. Metallnotierung</h2>
|
||||
<p>
|
||||
Basis zur Kupferabrechnung ist die Notierung „LME Copper official price cash offer“, Durchschnitt des
|
||||
Liefervormonats zuzüglich der dann aktuellen von uns benannten Kupfer-Prämie.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 className="text-2xl font-bold text-primary mb-4">17. Technische Beratungsdienstleistungen</h2>
|
||||
<p>
|
||||
Die technische Unterstützung ersetzt weder die Fachplanung noch die Ausführungs- oder Prüvverantwortung
|
||||
des beauftragten Ingenieurbüros, Planers oder der ausführenden Fachfirma bzw. verantwortlichen Abteilung.
|
||||
</p>
|
||||
<p className="mt-4">
|
||||
Alle Hinweise, Einschätzungen und Empfehlungen der MB Grid Solutions and Services erfolgen ohne Gewähr
|
||||
und entbinden den jeweiligen Auftragnehmer nicht von seiner eigenen fachlichen Prüfung, Planung und Verantwortung.
|
||||
</p>
|
||||
</div>
|
||||
))}
|
||||
|
||||
<div className="pt-8 border-t border-slate-100">
|
||||
<p className="font-bold text-primary">Remshalden, 22.1.2026</p>
|
||||
<p className="font-bold text-primary">{footer}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user