=== Angebot-Generator (Presupuestos) ===
Benötigt mind. WordPress: 5.8
Benötigt mind. PHP: 7.4
Version: 1.4.2

== Neu in Version 1.4.2 ==

* PDF-Layout: Die Spaltenüberschriften der Positionstabelle (Cantidad,
  Concepto, Precio/unidad *, Unidades *, Importe) stehen jetzt einzeilig
  auf gleicher Höhe – kein Umbruch des Sterns mehr. Spaltenbreiten
  angepasst, Kopfzellen ohne Zeilenumbruch.

== Neu in Version 1.4.1 ==

* FEHLERBEHEBUNG: Leere Positionen (nur vorbelegte Cantidad "1", sonst
  keine Eingaben) erschienen als 0,00-EUR-Zeilen im PDF. Sie werden jetzt
  wieder korrekt übersprungen.
* Neue Berechnung "Unidades berechnen": Sind Start- und Enddatum,
  Wochentage und Dauer/Sesión angegeben, wird das Volumen automatisch
  ermittelt (Termine im Zeitraum × Dauer) – unter Berücksichtigung der
  Feiertage bzw. Schulferien wie bei der Enddatum-Berechnung. Die
  Ergebniszeile zeigt die Rechnung transparent an (z. B. "27 Termine ×
  1,5 hl = 40,5 hl, 2 Feiertage übersprungen").

== Neu in Version 1.4.0 ==

* Automatische Mengenrabatte: Je nach Kursart, Einheit (UE/h) und Volumen
  wird der Staffelrabatt aus der internen Preisliste berechnet und in das
  Feld "Rabatt/Descuento" übernommen (Zeile "DESCUENTO INTEGRADO EN EL
  PRESUPUESTO" im PDF).
  Staffeln: Erwachsene Online 4/8/12/16/20 % · Erwachsene Präsenz 1 TN
  2/4/8/12/14 % · Erwachsene Präsenz 2 TN 2/8/12/22/32 % · Kinder &
  Jugendliche sowie Erwachsene Spanisch 2/4/6/8/10 %
  (UE-Stufen 10–19/20–39/40–59/60–79/80+; h-Stufen 10–14/15–29/30–44/
  45–59/60+).
* Jede Position zeigt ihren Rabatt live an ("Mengenrabatt 8% = 144,00 EUR");
  bei mehreren Positionen werden die Rabatte summiert.
* Das Descuento-Feld bleibt frei überschreibbar: Ein manuell eingetragener
  Wert hat Vorrang; Feld leeren = wieder automatische Berechnung. Auch
  serverseitig wird der Rabatt berechnet, falls das Feld leer abgesendet
  wird.
* Die gewählte Kursart wird jetzt mit dem Angebot gespeichert und ist beim
  erneuten Bearbeiten vorbelegt.

== Neu in Version 1.3.1 ==

* Die gewählten Wochentage erscheinen jetzt im Angebotstext (Concepto),
  übersetzt in die Dokumentsprache: z. B. ES "2 sesión(es) por semana
  (los martes y jueves)", EN "(on Tuesdays and Thursdays)",
  DE "(dienstags und donnerstags)". Start- und Enddatum sowie
  Sesiones/Woche waren bereits Teil des Satzes und bleiben enthalten.
* Die Wochentags-Auswahl wird mit dem Angebot gespeichert und ist beim
  erneuten Bearbeiten vorbelegt. Die Live-Vorschau im Formular zeigt die
  Wochentage sofort an.

== Neu in Version 1.3.0 ==

* Automatische Enddatum-Berechnung je Position: Wochentag(e) anhaken,
  Startdatum (Del) und Unidades eintragen, "Enddatum berechnen" klicken –
  das Enddatum (Al) wird automatisch gesetzt. Die Anzahl der Termine
  ergibt sich aus Unidades ÷ Duración/Sesión.
* Dabei werden übersprungen: die Feiertage in Barcelona (national,
  Katalonien, lokal) bei ALLEN Kursen; bei Kursen der Kategorie
  "Kinder & Jugendliche" zusätzlich die Schulferien (Sommer, Weihnachten,
  Setmana Santa). Die Ergebniszeile zeigt, wie viele Feiertage/Ferientage
  übersprungen wurden.
* Der passende Kalender (Erwachsene/Kinder) wird bei Auswahl einer
  Kursart automatisch eingestellt, bleibt aber manuell umschaltbar.
* Neue Backend-Seite "Angebote → Kalender": Feiertage und
  Schulferien-Zeiträume sind dort editierbar (vorbefüllt für 2026–2028;
  bewegliche Feiertage wie Karfreitag/Ostermontag/Segona Pasqua korrekt
  berechnet). WICHTIG: Schulferien-Zeiträume jährlich anhand des
  offiziellen Kalenders der Generalitat prüfen.
* "Sesiones/semana" wird beim Berechnen automatisch mit der Anzahl der
  gewählten Wochentage vorbelegt (falls leer).

== Neu in Version 1.2.2 ==

* FEHLERBEHEBUNG: Beim Erzeugen des PDFs trat ein kritischer Fehler auf
  ("Class Dompdf\Cpdf not found"), weil der mitgelieferte Autoloader die
  Cpdf-Klasse von Dompdf nicht finden konnte. Behoben.
* Robuste Fehlerbehandlung: Fehlen auf dem Server benötigte
  PHP-Erweiterungen (mbstring, gd, dom), erscheint jetzt eine
  verständliche Meldung mit Hinweis, was zu aktivieren ist – statt eines
  kritischen Fehlers ("weißer Bildschirm").
* Die PDF-Erzeugung wurde erstmals vollständig mit echtem PHP/Dompdf
  getestet (ES/EN/DE): Layout, Logos, Fußzeile mit Bankdaten auf jeder
  Seite und leere Zahlungs-Ankreuzkästchen sind verifiziert.

== Neu in Version 1.2.1 ==

* Zahlungsart: Es gibt keine Vorauswahl mehr. Im PDF werden beide
  Zahlungsoptionen mit leerem Ankreuzkästchen angezeigt, damit die
  Kundschaft selbst auswählt.
* Klarere Beschriftungen im Positions-Bereich: Cantidad (Menge des Postens,
  meist 1), Precio/unidad (Preis pro Einheit h/hl) und Unidades (Anzahl der
  Einheiten, z. B. 40) sind jetzt mit Hilfetexten erläutert. Cantidad ist mit
  1 vorbelegt.
* Weniger Doppeleingaben: Das Feld "Volumen" (für den Dateinamen) wird
  automatisch aus den Positionen (Einheiten) übernommen, wenn es leer bleibt.

== Neu in Version 1.2.0 ==

* Angebotssprache wählbar: Das komplette PDF (alle festen Texte) kann in
  Spanisch, Englisch oder Deutsch ausgegeben werden. Auswahl im Formular
  oben ("Sprache des Angebots").
* Der Concepto-Text wird jetzt aus strukturierten Bausteinen erzeugt
  (Sprache, Motivo, Sesiones/Woche, Dauer, Zeitraum von–bis, Modalität) –
  mit Live-Vorschau und automatischer Formulierung in der gewählten
  Dokumentsprache. Ein manuelles Textfeld überschreibt die Bausteine.
* Neue Kursart "Erwachsene Spanisch" (CP Español) – mit denselben Preisen
  wie "Kinder & Jugendliche Deutsch" (Refuerzo Escolar Alemán).
* Positionen werden übersichtlich als Karten dargestellt.

== Neu in Version 1.1.0 ==

* Firmendaten (Adresse im Kopf, Bankverbindung im Fuß jeder Seite) werden
  jetzt im PDF ausgegeben. Sie sind unter "Angebote → Firmendaten" pflegbar
  (voreingestellt mit den Daten aus der Vorlage).
* Kursart-Dropdown je Position: übernimmt den passenden Grundpreis pro
  Einheit (h/hl) aus der internen Preisliste und füllt das Preisfeld vor
  (weiterhin frei überschreibbar). Auch das Concepto-Feld wird vorbelegt,
  falls leer.
* Die dekorative Kopfgrafik wurde deutlich verkleinert.

== Beschreibung ==

Internes Tool zum Erstellen von B2C-Angeboten ("Presupuestos") für den
Privatunterricht. Über eine Eingabemaske werden die Kundendaten und
Positionen erfasst; daraus wird ein PDF im Corporate-Stil (grün/weiß,
mit Logo) erzeugt, das heruntergeladen werden kann.

Merkmale:

* **Eingabemaske** im Front- UND Backend (identisch), nur für eingeloggte
  Mitarbeiter:innen und Admins sichtbar.
* **Fortlaufende Nummer** im Format YY_0000 (z. B. 26_0001). Sie wird
  automatisch pro Jahr hochgezählt, kann aber manuell überschrieben werden.
  Die Nummer steht im PDF und im Dateinamen.
* **Dateiname** automatisch nach dem Schema
  YY_0000_Nachname_Vorname_Sprache_Volumen_ddmmyy
  (z. B. 26_0001_Guilemany_Maria_DE_40hl_020726.pdf).
* **Preise** werden je Position manuell eingegeben (Preis/Einheit × Anzahl),
  die Summen werden automatisch berechnet (mit Live-Vorschau im Formular).
* **Individuell anpassbar:** Einleitungstext, Positionen, Rabatt,
  Zahlungsart und zusätzliche Bemerkungen sind frei editierbar.
* **Speicherung:** Angebote werden gespeichert und können später erneut
  geöffnet, angepasst und neu als PDF erzeugt werden.

Die PDF-Erstellung erfolgt komplett auf dem Server mit der mitgelieferten
Bibliothek Dompdf – es ist keine Composer-Installation und kein externer
Dienst nötig.

== Installation ==

1. Den Ordner "angebot-generator" nach wp-content/plugins/ hochladen.
2. Im Backend unter "Plugins" aktivieren.
3. Es erscheint der Menüpunkt "Angebote".

== Verwendung ==

Backend:
* "Angebote" → "Neues Angebot": Eingabemaske ausfüllen und
  "PDF erstellen & herunterladen" klicken.
* "Angebote" → "Gespeicherte Angebote": Liste aller Angebote,
  Bearbeiten/erneut als PDF ausgeben, Löschen.

Frontend:
* Den Shortcode [angebot_generator] auf einer (idealerweise internen,
  nur für eingeloggte Nutzer erreichbaren) Seite einfügen.
* Nicht eingeloggte Besucher sehen nur einen Hinweis.

== Berechtigungen ==

Das Tool ist für Nutzer:innen mit der Fähigkeit "edit_posts" verfügbar –
das umfasst standardmäßig Administratoren und Redakteure/Autoren
(= "Mitarbeiter"). Reine Abonnenten haben keinen Zugriff.

== Nummernkreis ==

Die laufende Nummer wird pro Kalenderjahr geführt (der YY-Teil entspricht
den letzten beiden Ziffern des Jahres). Zu Jahresbeginn startet die
Sequenz automatisch wieder bei 0001. Möchte man eine bestimmte Nummer
erzwingen, kann das Feld "Nummer" im Formular einfach überschrieben werden;
bereits vergebene Nummern werden dabei abgelehnt.

== Hinweise ==

* Beim Deinstallieren (nicht: Deaktivieren) über die Plugin-Verwaltung
  wird die Datenbanktabelle mit allen gespeicherten Angeboten entfernt.
* Logo und Kopfgrafik liegen unter assets/img/ und können bei Bedarf
  gegen aktuelle Dateien ausgetauscht werden (gleiche Dateinamen behalten:
  logo.jpg, hallo-hola.png).
