diff --git a/src/food-market.web/src/pages/SupplyEditPage.tsx b/src/food-market.web/src/pages/SupplyEditPage.tsx index c2528bb..e44cfbf 100644 --- a/src/food-market.web/src/pages/SupplyEditPage.tsx +++ b/src/food-market.web/src/pages/SupplyEditPage.tsx @@ -1,7 +1,7 @@ import { useState, useEffect, useRef, type FormEvent, type ReactNode } from 'react' import { useNavigate, useParams, Link } from 'react-router-dom' import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query' -import { ArrowLeft, Plus, Trash2, Save, CheckCircle } from 'lucide-react' +import { ArrowLeft, Plus, Trash2, Save, CheckCircle, Undo2 } from 'lucide-react' import { api } from '@/lib/api' import { Button } from '@/components/Button' import { Field, TextArea, Select, AsyncSelect, Checkbox, MoneyInput, NumberInput } from '@/components/Field' @@ -216,6 +216,13 @@ export function SupplyEditPage() { meta: { successMessage: 'Удалено' }, }) + // «Создать на основании»: возврат поставщику с преднабором строк приёмки. + const createReturn = useMutation({ + mutationFn: async () => (await api.post<{ id: string }>(`/api/purchases/supplier-returns/from-supply/${id}`)).data, + onSuccess: (d) => { if (d?.id) navigate(`/purchases/supplier-returns/${d.id}`) }, + onError: (e: Error) => setError((e as { response?: { data?: { error?: string } } }).response?.data?.error ?? e.message), + }) + const onSubmit = (e: FormEvent) => { e.preventDefault(); save.mutate() } const addLineFromProduct = (p: Product) => { @@ -326,6 +333,12 @@ export function SupplyEditPage() { Удалить )} + {isPosted && ( + + )} {isDraft && (