4709dfde55
Abo: Bestellung extern als erledigt markieren (ohne Rechnung/Inkasso)
...
Neue Admin-Funktion fuer angehaltene Abo-Bestellungen, die der Kunde
ausserhalb des Systems geliefert und verrechnet hat.
Aktion (AboExternalCompletionService):
- Punkte gutschreiben wie bei eingegangener Zahlung (SalesPointsVolume,
idempotent gegen Doppelbuchung)
- UserAboOrder auf neuen gruenen Status 8 "extern erledigt"; paid bleibt false
- Bestellung: shipped=2 (Lieferung bestaetigt), keine Rechnung/kein Lieferschein
- Blockade aufheben: Abo zurueck auf status=2 (okay), aktiv, next_date neu,
damit der naechste Termin regulaer laeuft
- wie bei regulaerer Ausfuehrung: IncentiveTracker + AboOneTimeService-Purge
Einstiegspunkte: Button + Bestaetigungs-Modal auf der Kunden-Bestelldetailseite
(SalesController) und auf der Abo-Detailseite (Admin\AboController@externDone,
Route admin_abos_extern_done). Status 8 (gruen) in UserAbo/UserAboOrder, Labels
de/en.
Tests: tests/Feature/AboExternalCompletionTest (Happy Path, Idempotenz,
bezahlt-/Nicht-Abo-Guards, Abo-Detail-Einstieg) - 5 gruen.
Zusaetzlich: docs/2026-06-11-test-suite-vorbestehende-fehler.md - Diagnose der
93 vorbestehenden (von master geerbten) Test-Suite-Fehler.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 08:11:45 +00:00
ccc6f85809
Payment Phase R: PAYONE-Integration entflechten (R1–R7 + Review)
...
Strangler-Refactoring der PAYONE-Zahlungslogik in eine testbare
Service-Schicht, ohne Verhalten in Checkout/Cron/IPN zu ändern.
Neue Services (app/Services/Payment/Payone):
- PayonePaymentService (+ PayonePaymentResult-DTO) für CC-/SEPA-Check
und Abo-Abbuchung
- PayoneRequestBuilder, PaymentMethodResolver, PayoneMethodConfig
- PayoneTransactionRecorder: zentrale PaymentTransaction-Erstellung
(API-Response, Invoice, Webhook) inkl. PCI-Redaction (cardpan/cardcvc2)
- PayoneWebhookHandler (+ PayoneWebhookResult): IPN/TSOK-Logik aus
Api\PayoneController; response('TSOK') statt echo/exit
- PayoneTransportException + Handler-Mapping (403) statt abort() im Service
Hotfixes (R1): var_dump/exit & bare exit() entfernt, Log-Redaction.
Security (R-Review):
- PAYONE_KEY_HASH (MD5-Hash, kein Klartext) mit Boot-Hard-Fail; schließt
zugleich die ''-Webhook-Bypass-Lücke. Artisan-Command payone:hash-key
(verdeckte Eingabe, optional --write) zur Hash-Erzeugung.
- Webhook: txaction Pflichtfeld, mode-Fallback auf payment->mode.
Pay\PayoneController ist @deprecated-Fassade (614 → 328 Zeilen),
delegiert an Services via Container-Singleton.
Migration: fehlende Spalte shopping_payments.carddata nachgezogen.
Tests: 47 grün (PayonePaymentService, Recorder, Webhook, Resolver,
TransportException, hash-key). End-to-End im Test-System verifiziert
(siehe dev/2026-06-09-payments).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 13:42:45 +00:00
1668e5a879
Abo Einmalprodukte: Phase 4 - Ausfuehrung, Purge & User-Retry
...
- UserMakeOrder: bestaetigte Einmal-Artikel in den Yard, is_abo_addon
auf ShoppingOrderItem; amount bleibt reiner Abo-Betrag (Reihenfolge)
- AboOneTimeService::purgeAfterExecution: loescht alle Einmal-Artikel
und rechnet Comp-Produkte neu - nur im Erfolgszweig (Cron + Retry)
- User-Retry in Sales Center und Portal mit Berechtigungspruefung,
gemeinsames Confirm-Modal; Admin-Retry unveraendert
- Tests: AboMakeOrderOneTimeTest, AboUserRetryTest; Plan-Doku Phase 4
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 15:32:27 +00:00
8f616ff4de
Abo Einmalprodukte: Review-Gate (VIP), Verbindlichkeit & Summen-Layout
...
- Live-Review-Gate: Einmalprodukte nur fuer VIP im Sales Center sichtbar,
Portal ausgeblendet (AboHelper::isOneTimeFeatureVisible + Gates in Controllern)
- Nur verbindlich bestaetigte Einmal-Artikel fliessen in die Lieferung;
Service-Helfer confirmedItems/pendingItems/pendingGross
- Footer-Layout der Einmalprodukt-Liste: bestaetigte Summe + Gesamtbetrag,
Trennstrich, offener Betrag und neue Gesamtsumme (dunkelgruen)
- Uebersetzungen DE/EN/ES/FR (onetime_new_total u.a.), Tests angepasst/ergaenzt
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 14:59:22 +00:00
5c11d48e6d
Abo Einmalprodukte und Bestätigung abschließen
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-05 15:28:08 +00:00
70f2c6012a
27-05-2026 DHL Modul v2.1 / Optimierung tracking
2026-05-27 18:51:23 +02:00
c4fbb517f6
27-05-2026 Update DHL Modul v2.0
2026-05-27 13:40:38 +00:00
34d8f60bbd
User Statistik
2026-05-18 17:23:28 +02:00
013a5de23c
13-05-2026 implementation FR
2026-05-13 17:33:52 +02:00
a639c4f63c
Steuerberater Modul tax
2026-05-08 15:34:57 +02:00
a95c2b665b
14-04-2026
2026-04-14 18:07:45 +02:00
396d049439
10.April 2026
2026-04-10 17:15:27 +02:00
4a8f4b4abc
20-02-2026
2026-02-20 17:55:06 +01:00
7325edebbd
23-01-2026
2026-01-23 17:35:23 +01:00
a67740d6ef
update 20.10.2025
2025-10-20 17:42:08 +02:00
8ccd81b770
Cocker Setup
2025-08-29 14:48:03 +02:00
Kevin Adametz
fdb4aa7358
DHL Modul v0.5 Shipping Label ok
2025-08-22 18:18:26 +02:00
Kevin Adametz
3b2253147b
commit 08-2025
2025-08-12 18:01:59 +02:00
Kevin Adametz
824fa43e96
Updates to 03-2025
2025-04-01 10:36:47 +02:00
Kevin Adametz
7ec90d7e18
08 2024
2024-08-05 12:05:24 +02:00
Kevin Adametz
3a81b8a0f5
last changes since 6-2023
2023-07-03 10:07:08 +02:00
Kevin Adametz
da10f19fcb
Free Shipping, Business Levels correction, Products Buying, Fonts
2023-01-25 12:37:29 +01:00
Kevin Adametz
7f6052acf5
#51 Festschreiben der Points, Gutschriftenmodul
2022-07-29 18:18:05 +02:00
Kevin Adametz
89a1a34972
#51 2 Business Points edit / add, user dashboard
2022-07-22 13:43:24 +02:00
Kevin Adametz
813b30e616
#53 , #52 , #51 change Points
2022-07-21 10:37:34 +02:00
Kevin Adametz
37371ab31c
Sammelbestellung von Extern
2022-07-18 18:07:31 +02:00
Kevin Adametz
77b0bc7c7c
API Shopping Order backend
2022-07-15 21:21:56 +02:00
Kevin Adametz
6e5b002ec9
06 2022
2022-06-15 18:08:45 +02:00
Kevin Adametz
c56adb2c40
Update Framework, Invoices
2022-04-14 13:14:36 +02:00
Kevin Adametz
29dd8537eb
API User Like
2021-12-25 02:59:15 +01:00
Kevin Adametz
1b46427d58
Header Shop bug
2021-09-15 19:09:49 +02:00
Kevin Adametz
2d9db4e52e
Country Prices | Homeparty | Shop | Order
2021-08-27 18:53:12 +02:00
Kevin Adametz
2ffc33dcd6
Custom Price / Land / User Order Homeparty
2021-08-20 18:22:21 +02:00
Kevin Adametz
33dae5adf3
Lieferland UST CH, Reverse Charge
2021-08-03 16:00:01 +02:00
Kevin Adametz
c90fe38039
Categories, Netto Homeparty
2021-06-18 15:02:34 +02:00
Kevin Adametz
c5a109fdd6
Cookiebot / Pixel / Kategorien erweitern
2021-04-29 16:36:58 +02:00
Kevin Adametz
87f3fd3c7e
Homeparty online, Cron SEPA
2021-04-23 14:54:09 +02:00
Kevin Adametz
4979c12d9a
API work
2021-02-10 10:56:40 +01:00
Kevin Adametz
00f50b0db9
Bug Bestellungen
2020-12-20 18:04:59 +01:00
Kevin Adametz
e07be4a5f8
Homparty v1.0
2020-12-17 23:02:22 +01:00
Kevin Adametz
43c2d121d4
Homparty dev
2020-12-16 20:03:51 +01:00
Kevin Adametz
436f550117
+ Homparty Part 1
2020-10-16 16:18:00 +02:00
Kevin Adametz
1f77fc7ef8
Berater bestellungen kleine Änderungen
2020-09-15 17:46:39 +02:00
Kevin Adametz
2160f7ddf5
Erweiterungen / Korrekturen Beraterbestellungen
2020-09-08 19:22:07 +02:00
Kevin Adametz
65edf8a8a7
Berater Bestellung / online
2020-08-24 18:17:02 +02:00
Kevin Adametz
a19f7700ea
Next Member Shopping
2020-08-21 18:20:40 +02:00
Kevin Adametz
557a1c83a6
cart responsive, Checkout from cart
2020-08-14 18:32:41 +02:00
Kevin Adametz
99d2d55818
Berater Bestellungen
2020-08-12 19:21:19 +02:00
Kevin Adametz
01242b4690
User Order step1
2020-08-07 16:02:03 +02:00
Kevin Adametz
83c67d3d05
Shipping Tax Card
2020-07-01 16:13:38 +02:00