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 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 () => {
|
const handleSave = async () => {
|
||||||
if (!form.name.trim() || !form.phone.trim()) {
|
if (!form.name.trim() || !form.phone.trim()) {
|
||||||
setError('Имя и телефон обязательны');
|
setError('Имя и телефон обязательны');
|
||||||
@@ -85,11 +92,11 @@ const OrderModal = ({ order, onClose, onSaved, mode = 'edit' }) => {
|
|||||||
if (mode === 'create') {
|
if (mode === 'create') {
|
||||||
const { error } = await supabase
|
const { error } = await supabase
|
||||||
.from('orders')
|
.from('orders')
|
||||||
.insert({ ...form, source: 'manual' });
|
.insert({ ...toPayload(form), source: 'manual' });
|
||||||
if (error) { setError(error.message); setSaving(false); return; }
|
if (error) { setError(error.message); setSaving(false); return; }
|
||||||
} else {
|
} else {
|
||||||
const statusChanged = form.status !== order.status;
|
const statusChanged = form.status !== order.status;
|
||||||
const updates = { ...form };
|
const updates = { ...toPayload(form) };
|
||||||
if (statusChanged) {
|
if (statusChanged) {
|
||||||
if (form.status === 'закрыт') {
|
if (form.status === 'закрыт') {
|
||||||
updates.closed_at = new Date().toISOString();
|
updates.closed_at = new Date().toISOString();
|
||||||
|
|||||||
Reference in New Issue
Block a user