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:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user