910 lines
75 KiB
JavaScript
910 lines
75 KiB
JavaScript
module.exports = [
|
|
"[project]/app/sales/new/page.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"default",
|
|
()=>NewSalesDocPage
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$left$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ArrowLeft$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/arrow-left.mjs [app-ssr] (ecmascript) <export default as ArrowLeft>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/plus.mjs [app-ssr] (ecmascript) <export default as Plus>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/trash-2.mjs [app-ssr] (ecmascript) <export default as Trash2>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Search$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/search.mjs [app-ssr] (ecmascript) <export default as Search>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/navigation.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$app$2f$components$2f$ToastProvider$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/app/components/ToastProvider.tsx [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
const docTypes = [
|
|
{
|
|
value: 'QUOTE',
|
|
label: 'Angebot'
|
|
},
|
|
{
|
|
value: 'ORDER_CONFIRMATION',
|
|
label: 'Auftragsbestätigung'
|
|
},
|
|
{
|
|
value: 'DELIVERY_NOTE',
|
|
label: 'Lieferschein'
|
|
},
|
|
{
|
|
value: 'INVOICE',
|
|
label: 'Rechnung'
|
|
}
|
|
];
|
|
function NewSalesDocPage() {
|
|
const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRouter"])();
|
|
const { toast } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$app$2f$components$2f$ToastProvider$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useToast"])();
|
|
const [type, setType] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])('QUOTE');
|
|
const [customerId, setCustomerId] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null);
|
|
const [customerSearch, setCustomerSearch] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])('');
|
|
const [customerResults, setCustomerResults] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]);
|
|
const [selectedCustomer, setSelectedCustomer] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null);
|
|
const [notes, setNotes] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])('');
|
|
const [validUntil, setValidUntil] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])('');
|
|
const [items, setItems] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([
|
|
{
|
|
description: '',
|
|
quantity: 1,
|
|
unitPrice: 0,
|
|
productId: null
|
|
}
|
|
]);
|
|
const [products, setProducts] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]);
|
|
const [saving, setSaving] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
fetch('/api/products').then((r)=>r.json()).then(setProducts).catch(()=>{});
|
|
}, []);
|
|
const searchCustomers = async (q)=>{
|
|
setCustomerSearch(q);
|
|
if (q.length < 2) {
|
|
setCustomerResults([]);
|
|
return;
|
|
}
|
|
const res = await fetch(`/api/customers/search?q=${encodeURIComponent(q)}`);
|
|
if (res.ok) setCustomerResults(await res.json());
|
|
};
|
|
const selectCustomer = (c)=>{
|
|
setSelectedCustomer(c);
|
|
setCustomerId(c.id);
|
|
setCustomerSearch(c.companyName || `${c.firstName} ${c.lastName}`);
|
|
setCustomerResults([]);
|
|
};
|
|
const updateItem = (idx, field, value)=>{
|
|
const newItems = [
|
|
...items
|
|
];
|
|
newItems[idx] = {
|
|
...newItems[idx],
|
|
[field]: value
|
|
};
|
|
// Auto-fill price from product
|
|
if (field === 'productId' && value) {
|
|
const prod = products.find((p)=>p.id === parseInt(value));
|
|
if (prod) {
|
|
newItems[idx].unitPrice = prod.salePrice;
|
|
newItems[idx].description = prod.name;
|
|
}
|
|
}
|
|
setItems(newItems);
|
|
};
|
|
const addItem = ()=>setItems([
|
|
...items,
|
|
{
|
|
description: '',
|
|
quantity: 1,
|
|
unitPrice: 0,
|
|
productId: null
|
|
}
|
|
]);
|
|
const removeItem = (idx)=>setItems(items.filter((_, i)=>i !== idx));
|
|
const subtotal = items.reduce((sum, i)=>sum + i.quantity * i.unitPrice, 0);
|
|
const tax = subtotal * 0.19;
|
|
const total = subtotal + tax;
|
|
const handleSubmit = async ()=>{
|
|
if (!customerId) {
|
|
toast('Bitte Kunde auswählen', 'error');
|
|
return;
|
|
}
|
|
if (items.length === 0 || !items[0].description) {
|
|
toast('Bitte mindestens eine Position', 'error');
|
|
return;
|
|
}
|
|
setSaving(true);
|
|
const res = await fetch('/api/sales', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify({
|
|
type,
|
|
customerId,
|
|
notes,
|
|
validUntil: validUntil || null,
|
|
items: items.map((i)=>({
|
|
description: i.description,
|
|
quantity: parseFloat(i.quantity) || 1,
|
|
unitPrice: parseFloat(i.unitPrice) || 0,
|
|
productId: i.productId ? parseInt(i.productId) : null
|
|
}))
|
|
})
|
|
});
|
|
if (res.ok) {
|
|
const doc = await res.json();
|
|
toast('Beleg erstellt', 'success');
|
|
router.push(`/sales/${doc.id}`);
|
|
} else {
|
|
toast('Fehler beim Erstellen', 'error');
|
|
}
|
|
setSaving(false);
|
|
};
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "max-w-5xl mx-auto space-y-6 pb-12 animate-fade-in-up",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: ()=>router.push('/sales'),
|
|
className: "p-2 hover:bg-slate-200 rounded-lg text-slate-600 transition",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$left$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ArrowLeft$3e$__["ArrowLeft"], {
|
|
className: "w-5 h-5"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 100,
|
|
columnNumber: 11
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 99,
|
|
columnNumber: 9
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h1", {
|
|
className: "text-2xl font-bold text-slate-900",
|
|
children: "Neuen Beleg erstellen"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 102,
|
|
columnNumber: 9
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 98,
|
|
columnNumber: 7
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "lg:col-span-2 space-y-6",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-white p-6 rounded-2xl shadow-lg shadow-slate-200/50 border border-slate-100",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h2", {
|
|
className: "font-semibold text-slate-800 mb-4",
|
|
children: "Belegdaten"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 109,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "grid grid-cols-2 gap-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-sm font-medium text-slate-700 mb-1",
|
|
children: "Belegart *"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 112,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("select", {
|
|
className: "w-full border border-slate-300 p-2.5 rounded-xl focus-ring outline-none bg-white",
|
|
value: type,
|
|
onChange: (e)=>setType(e.target.value),
|
|
children: docTypes.map((t)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("option", {
|
|
value: t.value,
|
|
children: t.label
|
|
}, t.value, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 114,
|
|
columnNumber: 38
|
|
}, this))
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 113,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 111,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-sm font-medium text-slate-700 mb-1",
|
|
children: "Gültig bis"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 118,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("input", {
|
|
type: "date",
|
|
className: "w-full border border-slate-300 p-2.5 rounded-xl focus-ring outline-none",
|
|
value: validUntil,
|
|
onChange: (e)=>setValidUntil(e.target.value)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 119,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 117,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "col-span-2 relative",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-sm font-medium text-slate-700 mb-1",
|
|
children: "Kunde *"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 122,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "relative",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$search$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Search$3e$__["Search"], {
|
|
className: "w-4 h-4 absolute left-3 top-1/2 -translate-y-1/2 text-slate-400"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 124,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("input", {
|
|
type: "text",
|
|
placeholder: "Kunde suchen...",
|
|
className: "w-full pl-9 border border-slate-300 p-2.5 rounded-xl focus-ring outline-none",
|
|
value: customerSearch,
|
|
onChange: (e)=>searchCustomers(e.target.value)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 125,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 123,
|
|
columnNumber: 17
|
|
}, this),
|
|
customerResults.length > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "absolute z-20 left-0 right-0 mt-1 bg-white border border-slate-200 rounded-xl shadow-xl max-h-48 overflow-y-auto",
|
|
children: customerResults.map((c)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: ()=>selectCustomer(c),
|
|
className: "w-full text-left px-4 py-3 hover:bg-indigo-50 transition text-sm",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "font-semibold",
|
|
children: c.companyName || `${c.firstName} ${c.lastName}`
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 131,
|
|
columnNumber: 25
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "text-slate-400 ml-2",
|
|
children: c.email
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 132,
|
|
columnNumber: 25
|
|
}, this)
|
|
]
|
|
}, c.id, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 130,
|
|
columnNumber: 23
|
|
}, this))
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 128,
|
|
columnNumber: 19
|
|
}, this),
|
|
selectedCustomer && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-xs text-emerald-600 mt-1 font-medium",
|
|
children: [
|
|
"✓ ",
|
|
selectedCustomer.companyName || `${selectedCustomer.firstName} ${selectedCustomer.lastName}`
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 137,
|
|
columnNumber: 38
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 121,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "col-span-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-sm font-medium text-slate-700 mb-1",
|
|
children: "Notizen"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 140,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("textarea", {
|
|
rows: 2,
|
|
className: "w-full border border-slate-300 p-2.5 rounded-xl focus-ring outline-none resize-none",
|
|
value: notes,
|
|
onChange: (e)=>setNotes(e.target.value)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 141,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 139,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 110,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 108,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-white p-6 rounded-2xl shadow-lg shadow-slate-200/50 border border-slate-100",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center justify-between mb-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h2", {
|
|
className: "font-semibold text-slate-800",
|
|
children: "Positionen"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 149,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
type: "button",
|
|
onClick: addItem,
|
|
className: "text-indigo-600 hover:text-indigo-800 transition flex items-center gap-1 text-sm font-medium",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__["Plus"], {
|
|
className: "w-4 h-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 151,
|
|
columnNumber: 17
|
|
}, this),
|
|
" Position"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 150,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 148,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "space-y-3",
|
|
children: items.map((item, idx)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "grid grid-cols-12 gap-2 items-end p-3 bg-slate-50 rounded-xl border border-slate-100",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "col-span-3",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-[10px] font-medium text-slate-500 mb-0.5",
|
|
children: "Produkt"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 158,
|
|
columnNumber: 21
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("select", {
|
|
className: "w-full border border-slate-300 p-2 rounded-lg text-sm bg-white",
|
|
value: item.productId || '',
|
|
onChange: (e)=>updateItem(idx, 'productId', e.target.value || null),
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("option", {
|
|
value: "",
|
|
children: "Freitext"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 160,
|
|
columnNumber: 23
|
|
}, this),
|
|
products.map((p)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("option", {
|
|
value: p.id,
|
|
children: p.name
|
|
}, p.id, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 161,
|
|
columnNumber: 42
|
|
}, this))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 159,
|
|
columnNumber: 21
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 157,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "col-span-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-[10px] font-medium text-slate-500 mb-0.5",
|
|
children: "Beschreibung *"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 165,
|
|
columnNumber: 21
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("input", {
|
|
type: "text",
|
|
required: true,
|
|
className: "w-full border border-slate-300 p-2 rounded-lg text-sm",
|
|
value: item.description,
|
|
onChange: (e)=>updateItem(idx, 'description', e.target.value)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 166,
|
|
columnNumber: 21
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 164,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "col-span-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-[10px] font-medium text-slate-500 mb-0.5",
|
|
children: "Menge"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 169,
|
|
columnNumber: 21
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("input", {
|
|
type: "number",
|
|
step: "0.01",
|
|
min: "0.01",
|
|
className: "w-full border border-slate-300 p-2 rounded-lg text-sm",
|
|
value: item.quantity,
|
|
onChange: (e)=>updateItem(idx, 'quantity', e.target.value)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 170,
|
|
columnNumber: 21
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 168,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "col-span-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("label", {
|
|
className: "block text-[10px] font-medium text-slate-500 mb-0.5",
|
|
children: "Einzelpreis €"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 173,
|
|
columnNumber: 21
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("input", {
|
|
type: "number",
|
|
step: "0.01",
|
|
className: "w-full border border-slate-300 p-2 rounded-lg text-sm",
|
|
value: item.unitPrice,
|
|
onChange: (e)=>updateItem(idx, 'unitPrice', e.target.value)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 174,
|
|
columnNumber: 21
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 172,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "col-span-1 flex justify-center",
|
|
children: items.length > 1 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
type: "button",
|
|
onClick: ()=>removeItem(idx),
|
|
className: "p-2 text-slate-400 hover:text-red-600 rounded-lg transition",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Trash2$3e$__["Trash2"], {
|
|
className: "w-4 h-4"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 179,
|
|
columnNumber: 25
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 178,
|
|
columnNumber: 23
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 176,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, idx, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 156,
|
|
columnNumber: 17
|
|
}, this))
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 154,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 147,
|
|
columnNumber: 11
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 107,
|
|
columnNumber: 9
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "space-y-6",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-white p-6 rounded-2xl shadow-lg shadow-slate-200/50 border border-slate-100 sticky top-6",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h2", {
|
|
className: "font-semibold text-slate-800 mb-4",
|
|
children: "Zusammenfassung"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 192,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "space-y-3 text-sm",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex justify-between text-slate-600",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: "Netto"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 195,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "font-semibold",
|
|
children: [
|
|
subtotal.toFixed(2),
|
|
" €"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 195,
|
|
columnNumber: 35
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 194,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex justify-between text-slate-600",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: "MwSt (19%)"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 198,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "font-semibold",
|
|
children: [
|
|
tax.toFixed(2),
|
|
" €"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 198,
|
|
columnNumber: 40
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 197,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex justify-between text-lg font-bold text-slate-900 pt-3 border-t border-slate-200",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: "Gesamt"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 201,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: [
|
|
total.toFixed(2),
|
|
" €"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 201,
|
|
columnNumber: 36
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 200,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "text-xs text-slate-400",
|
|
children: [
|
|
items.filter((i)=>i.description).length,
|
|
" Position(en)"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 203,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 193,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: handleSubmit,
|
|
disabled: saving,
|
|
className: "w-full mt-6 bg-indigo-600 text-white py-3 rounded-xl font-bold hover:bg-indigo-700 transition disabled:opacity-50",
|
|
children: saving ? 'Erstelle...' : 'Beleg erstellen'
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 205,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 191,
|
|
columnNumber: 11
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 190,
|
|
columnNumber: 9
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 105,
|
|
columnNumber: 7
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/sales/new/page.tsx",
|
|
lineNumber: 97,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/arrow-left.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"__iconNode",
|
|
()=>__iconNode,
|
|
"default",
|
|
()=>ArrowLeft
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.mjs [app-ssr] (ecmascript)");
|
|
;
|
|
const __iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
d: "m12 19-7-7 7-7",
|
|
key: "1l729n"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M19 12H5",
|
|
key: "x3x0zl"
|
|
}
|
|
]
|
|
];
|
|
const ArrowLeft = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("arrow-left", __iconNode);
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/arrow-left.mjs [app-ssr] (ecmascript) <export default as ArrowLeft>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ArrowLeft",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$left$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$left$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/arrow-left.mjs [app-ssr] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/plus.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"__iconNode",
|
|
()=>__iconNode,
|
|
"default",
|
|
()=>Plus
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.mjs [app-ssr] (ecmascript)");
|
|
;
|
|
const __iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
d: "M5 12h14",
|
|
key: "1ays0h"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M12 5v14",
|
|
key: "s699le"
|
|
}
|
|
]
|
|
];
|
|
const Plus = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("plus", __iconNode);
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/plus.mjs [app-ssr] (ecmascript) <export default as Plus>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Plus",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/plus.mjs [app-ssr] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/trash-2.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"__iconNode",
|
|
()=>__iconNode,
|
|
"default",
|
|
()=>Trash2
|
|
]);
|
|
/**
|
|
* @license lucide-react v1.14.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.mjs [app-ssr] (ecmascript)");
|
|
;
|
|
const __iconNode = [
|
|
[
|
|
"path",
|
|
{
|
|
d: "M10 11v6",
|
|
key: "nco0om"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M14 11v6",
|
|
key: "outv1u"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",
|
|
key: "miytrc"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M3 6h18",
|
|
key: "d0wm0j"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
|
|
key: "e791ji"
|
|
}
|
|
]
|
|
];
|
|
const Trash2 = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("trash-2", __iconNode);
|
|
;
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/trash-2.mjs [app-ssr] (ecmascript) <export default as Trash2>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Trash2",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trash$2d$2$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/trash-2.mjs [app-ssr] (ecmascript)");
|
|
}),
|
|
];
|
|
|
|
//# sourceMappingURL=_04jx5~o._.js.map
|