fix: convert empty numeric fields to null before insert/update orders

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-10 16:18:07 +03:00
parent d4030d9c88
commit 73516f69a0
+9 -2
View File
@@ -73,6 +73,13 @@ const OrderModal = ({ order, onClose, onSaved, mode = 'edit' }) => {
const set = (e) => setForm((prev) => ({ ...prev, [e.target.name]: e.target.value }));
const toPayload = (f) => ({
...f,
area_sqm: f.area_sqm === '' ? null : Number(f.area_sqm),
estimated_cost: f.estimated_cost === '' ? null : Number(f.estimated_cost),
final_cost: f.final_cost === '' ? null : Number(f.final_cost),
});
const handleSave = async () => {
if (!form.name.trim() || !form.phone.trim()) {
setError('Имя и телефон обязательны');
@@ -85,11 +92,11 @@ const OrderModal = ({ order, onClose, onSaved, mode = 'edit' }) => {
if (mode === 'create') {
const { error } = await supabase
.from('orders')
.insert({ ...form, source: 'manual' });
.insert({ ...toPayload(form), source: 'manual' });
if (error) { setError(error.message); setSaving(false); return; }
} else {
const statusChanged = form.status !== order.status;
const updates = { ...form };
const updates = { ...toPayload(form) };
if (statusChanged) {
if (form.status === 'закрыт') {
updates.closed_at = new Date().toISOString();