diff --git a/shop/components/HomeClient.tsx b/shop/components/HomeClient.tsx
index 1f9dbac..d96ede8 100644
--- a/shop/components/HomeClient.tsx
+++ b/shop/components/HomeClient.tsx
@@ -18,9 +18,18 @@ import {
Zap,
ArrowUpRight,
ShieldCheck,
+ Calendar,
Sparkles,
Activity
} from 'lucide-react'
+import {
+ Dialog,
+ DialogContent,
+ DialogHeader,
+ DialogTitle,
+ DialogDescription,
+ DialogFooter,
+} from '@/components/ui/dialog'
interface HomeClientProps {
initialUser: User | null
@@ -29,6 +38,7 @@ interface HomeClientProps {
export function HomeClient({ initialUser }: HomeClientProps) {
const [user, setUser] = useState(initialUser)
const [mounted, setMounted] = useState(false)
+ const [calendarOpen, setCalendarOpen] = useState(false)
useEffect(() => {
setMounted(true)
@@ -125,23 +135,23 @@ export function HomeClient({ initialUser }: HomeClientProps) {
Mein Dashboard Schnellzugriff
-
+
-
-
-
+
+
+
Kundenliste
- Kunden & Lizenzen verwalten
+ Verwalten
-
+
@@ -149,20 +159,42 @@ export function HomeClient({ initialUser }: HomeClientProps) {
-
-
-
+
+
+
Bestellungen
- Aufträge & Status einsehen
+ Status einsehen
-
+
+
+
@@ -171,6 +203,52 @@ export function HomeClient({ initialUser }: HomeClientProps) {
+ {/* Dialog / Popup für Termin-Kalender (Geplant) */}
+
+
{/* Grid of modules */}
diff --git a/shop/components/order-wizard.tsx b/shop/components/order-wizard.tsx
index 7bb34ab..9cd62f4 100644
--- a/shop/components/order-wizard.tsx
+++ b/shop/components/order-wizard.tsx
@@ -179,7 +179,7 @@ export function OrderWizard({
return 'one_time'
})
- // Falls "one_time" (Kauf) gewählt: optionales Datum der letzten CAS-Lizenzierung
+ // Falls "one_time" (Kauf) gewählt: optionales Datum der letzten CASPOS-Lizenzierung
const [lastLicenseDate, setLastLicenseDate] = useState
(
initialOrder?.order_data?.last_license_date || ''
)
@@ -608,7 +608,7 @@ export function OrderWizard({
setEditingIdx(null)
setModuleQuantities({})
setDeviceName('')
-
+
const resetSels: Record = {}
categories.forEach(cat => {
const isVisible = selectedBillingInterval === 'one_time' ? cat.show_in_kauf !== false : cat.show_in_abo !== false
diff --git a/shop/components/wizard/license-lookup-panel.tsx b/shop/components/wizard/license-lookup-panel.tsx
index edab1ab..5547700 100644
--- a/shop/components/wizard/license-lookup-panel.tsx
+++ b/shop/components/wizard/license-lookup-panel.tsx
@@ -25,12 +25,12 @@ import { lookupLicenseFromLicServer } from '@/lib/actions/licserver-config'
// ─── MOCK DATA (until real LicServer API is wired up) ───────────────────────
const MOCK_LICENSES: Record = {
- '995500-0005': {
- licenseKey: '995500-0005',
+ '995502-00': {
+ licenseKey: '995502-00',
status: 'active',
- product: 'CASPOS DEMO',
- edition: 'Professional',
- version: '14.1.2',
+ product: 'CASPOS',
+ edition: 'GASTRO',
+ version: '4.8.6',
seats: 10,
customer: 'Mustermann GmbH',
contact: 'Max Mustermann',
@@ -39,33 +39,33 @@ const MOCK_LICENSES: Record = {
maintenanceUntil: '2025-03-31',
modules: ['CRM', 'ERP-Link', 'Mobile Client', 'Web Client'],
},
- 'CAS-2020-STD-00456': {
- licenseKey: 'CAS-2020-STD-00456',
+ '995501-00': {
+ licenseKey: '995501-00',
status: 'expired',
- product: 'CAS genesisWorld Standard',
+ product: 'CASPOS Handel',
edition: 'Standard',
- version: '12.0.0',
- seats: 5,
+ version: '3.12.1',
+ seats: 1,
customer: 'Beispiel AG',
contact: 'Erika Muster',
- issuedAt: '2020-01-15',
- expiresAt: '2023-01-14',
- maintenanceUntil: '2022-01-14',
- modules: ['CRM'],
+ issuedAt: '2016-03-14',
+ expiresAt: '2017-03-14',
+ maintenanceUntil: '2017-03-14',
+ modules: ['CASPOS Handel'],
},
- 'CAS-2024-ENT-00789': {
- licenseKey: 'CAS-2024-ENT-00789',
+ '995500-00': {
+ licenseKey: '995500-00',
status: 'active',
- product: 'CAS genesisWorld Enterprise',
- edition: 'Enterprise',
- version: '15.0.0',
- seats: 50,
+ product: 'CASPOS Handel',
+ edition: 'Standard',
+ version: '4.11.2',
+ seats: 2,
customer: 'Tech Solutions GmbH & Co. KG',
contact: 'Julia Schneider',
- issuedAt: '2024-01-01',
- expiresAt: '2026-12-31',
- maintenanceUntil: '2026-12-31',
- modules: ['CRM', 'ERP-Link', 'Mobile Client', 'Web Client', 'AI Assistant', 'Analytics Pro'],
+ issuedAt: '2026-01-01',
+ expiresAt: '2027-12-31',
+ maintenanceUntil: '2027-12-31',
+ modules: ['CASPOS Handel'],
},
}
@@ -224,7 +224,7 @@ export function LicenseLookupPanel({ onLicenseResolved }: LicenseLookupPanelProp
{/* ── Input + Search Button ──────────────────────────────── */}
- Geben Sie Ihre bisherige CAS-Lizenznummer ein,
+ Geben Sie Ihre bisherige CASPOS-Lizenznummer ein,
um Lizenzinformationen automatisch abzurufen.
@@ -278,16 +278,16 @@ export function LicenseLookupPanel({ onLicenseResolved }: LicenseLookupPanelProp
Demo:
setLicenseKey('995500-00')}
+ onClick={() => setLicenseKey('995502-00')}
>
- 995500-00
+ 995502-00
{' · '}
setLicenseKey('995500-01')}
+ onClick={() => setLicenseKey('995501-00')}
>
- 995500-01
+ 995501-00 (abgelaufen)
diff --git a/shop/components/wizard/step-billing.tsx b/shop/components/wizard/step-billing.tsx
index 5f86aea..42ef238 100644
--- a/shop/components/wizard/step-billing.tsx
+++ b/shop/components/wizard/step-billing.tsx
@@ -44,11 +44,10 @@ export function StepBilling({
{/* Option 1: Kauf */}
handleBillingIntervalChange('one_time')}
- className={`relative p-6 rounded-2xl border-2 cursor-pointer transition-all duration-300 flex flex-col justify-between h-48 hover:shadow-[0_0_20px_rgba(255,255,255,0.05)] ${
- selectedBillingInterval === 'one_time'
+ className={`relative p-6 rounded-2xl border-2 cursor-pointer transition-all duration-300 flex flex-col justify-between h-48 hover:shadow-[0_0_20px_rgba(255,255,255,0.05)] ${selectedBillingInterval === 'one_time'
? 'border-primary bg-primary/10 shadow-[0_0_25px_rgba(59,130,246,0.2)]'
: 'border-white/5 bg-white/5 hover:border-white/20'
- }`}
+ }`}
>
@@ -71,11 +70,10 @@ export function StepBilling({
{/* Option 2: Abo */}
handleBillingIntervalChange('monthly')}
- className={`relative p-6 rounded-2xl border-2 cursor-pointer transition-all duration-300 flex flex-col justify-between h-48 hover:shadow-[0_0_20px_rgba(255,255,255,0.05)] ${
- selectedBillingInterval === 'monthly'
+ className={`relative p-6 rounded-2xl border-2 cursor-pointer transition-all duration-300 flex flex-col justify-between h-48 hover:shadow-[0_0_20px_rgba(255,255,255,0.05)] ${selectedBillingInterval === 'monthly'
? 'border-primary bg-primary/10 shadow-[0_0_25px_rgba(59,130,246,0.2)]'
: 'border-white/5 bg-white/5 hover:border-white/20'
- }`}
+ }`}
>