const fs = require('fs'); const path = require('path'); const AdmZip = require('adm-zip'); function createOfferTemplate() { try { const zip = new AdmZip(); // [Content_Types].xml const contentTypes = ` `; // _rels/.rels const rels = ` `; // word/document.xml - Angebot Template const document = ` ANGEBOT Anbieter: Interessent: ++firma++ ++kunde_name++ ++straße++ ++kunde_straße++ ++plz++ ++stadt++ ++kunde_plz++ ++kunde_stadt++ Ansprechpartner: ++ansprechpartner++ Email: ++kunde_email++ Email: ++email++ Tel: ++kunde_telefon++ Angebotsnummer: ++angebotsnummer++ Angebotsdatum: ++datum++ Gültig bis: ++gültig_bis++ Projekt: ++projekt_name++ Sehr geehrte Damen und Herren, gerne unterbreiten wir Ihnen folgendes Angebot: Pos. Leistung Beschreibung Aufwand Preis ++leistungen[0].nr++ ++leistungen[0].titel++ ++leistungen[0].beschreibung++ ++leistungen[0].aufwand++ ++leistungen[0].preis++ Gesamtpreis: ++gesamtpreis++ Alle Preise verstehen sich zzgl. der gesetzlichen Mehrwertsteuer. Projektdauer: Geplanter Projektstart: ++projektstart++ Voraussichtliche Fertigstellung: ++projektende++ Zahlungskonditionen: ++zahlungskonditionen++ Für Rückfragen stehen wir Ihnen gerne zur Verfügung. Mit freundlichen Grüßen ++ansprechpartner++ `; // Dateien zum ZIP hinzufügen zip.addFile('[Content_Types].xml', Buffer.from(contentTypes, 'utf8')); zip.addFile('_rels/.rels', Buffer.from(rels, 'utf8')); zip.addFile('word/document.xml', Buffer.from(document, 'utf8')); // DOCX speichern const templatePath = path.join(__dirname, 'templates', 'angebot-template.docx'); fs.writeFileSync(templatePath, zip.toBuffer()); console.log('✅ Angebot-Template erstellt:', templatePath); } catch (error) { console.error('❌ Fehler beim Erstellen des Angebot-Templates:', error); } } createOfferTemplate();