diff --git a/src/private/fornitures/AddOrEditFurnitureVariantForm.jsx b/src/private/fornitures/AddOrEditFurnitureVariantForm.jsx index eca2ca9..e1b5cb1 100644 --- a/src/private/fornitures/AddOrEditFurnitureVariantForm.jsx +++ b/src/private/fornitures/AddOrEditFurnitureVariantForm.jsx @@ -4,6 +4,8 @@ import { Box, Button, TextField, MenuItem, Grid } from '@mui/material'; import FurnitureVariantApi from '../../api/furnitureVariantApi'; import { useAuth } from '../../context/AuthContext'; +const DEFAULT_MODEL_ID = '8a23117b-acaf-4d87-b64f-a98e9b414796'; + export default function AddOrEditFurnitureVariantForm({ initialData, onAdd, onCancel }) { const { user } = useAuth(); const token = user?.thalosToken || localStorage.getItem('thalosToken'); @@ -11,6 +13,7 @@ export default function AddOrEditFurnitureVariantForm({ initialData, onAdd, onCa const [form, setForm] = useState({ _Id: '', + id: '', modelId: '', name: '', color: '', @@ -28,6 +31,7 @@ export default function AddOrEditFurnitureVariantForm({ initialData, onAdd, onCa if (initialData) { setForm({ _Id: initialData._id || initialData._Id || '', + id: initialData.id || initialData.Id || initialData._id || initialData._Id || '', modelId: initialData.modelId ?? '', name: initialData.name ?? '', color: initialData.color ?? '', @@ -47,7 +51,8 @@ export default function AddOrEditFurnitureVariantForm({ initialData, onAdd, onCa } else { setForm({ _Id: '', - modelId: '', + id: '', + modelId: DEFAULT_MODEL_ID, name: '', color: '', line: '', @@ -70,6 +75,7 @@ export default function AddOrEditFurnitureVariantForm({ initialData, onAdd, onCa if (form._Id) { // UPDATE const payload = { + Id: form.id || form._Id, // backend requires Id _Id: form._Id, modelId: form.modelId, name: form.name, @@ -119,8 +125,37 @@ export default function AddOrEditFurnitureVariantForm({ initialData, onAdd, onCa - setVal('modelId', e.target.value)} /> + setVal('modelId', e.target.value)} + disabled={!initialData} + helperText={!initialData ? 'Preset for new variant' : ''} + /> + {form.id && ( + + + + )} + {form._Id && ( + + + + )} setVal('name', e.target.value)} /> diff --git a/src/private/fornitures/FurnitureVariantManagement.jsx b/src/private/fornitures/FurnitureVariantManagement.jsx index 725d8ac..e55dc02 100644 --- a/src/private/fornitures/FurnitureVariantManagement.jsx +++ b/src/private/fornitures/FurnitureVariantManagement.jsx @@ -99,6 +99,7 @@ export default function FurnitureVariantManagement() { const r = params.row; const normalized = { _id: r._id || r._Id || '', + _Id: r._id || r._Id || '', id: r.id || r.Id || '', modelId: r.modelId ?? '', name: r.name ?? '', @@ -127,7 +128,7 @@ export default function FurnitureVariantManagement() { const handleConfirmDelete = async () => { try { - if (!apiRef.current || !rowToDelete?._id) throw new Error('Missing API or id'); + if (!apiRef.current || !(rowToDelete?._id || rowToDelete?._Id)) throw new Error('Missing API or id'); // If your inventory BFF uses soft delete via Update (status=Inactive), do this: const payload = { _Id: rowToDelete._id || rowToDelete._Id,