diff --git a/src/pages/Cutting.tsx b/src/pages/Cutting.tsx index 8c117d8..351034e 100644 --- a/src/pages/Cutting.tsx +++ b/src/pages/Cutting.tsx @@ -1,6 +1,6 @@ import { useEffect, useMemo, useState } from 'react'; import { Link, useOutletContext } from 'react-router-dom'; -import { AlertTriangle, ClipboardList, Download, Layers3, Package, Palette, RotateCcw, Ruler, Save as SaveIcon, Scissors, Search, Settings2, X } from 'lucide-react'; +import { AlertTriangle, ArrowLeft, ClipboardList, Download, Layers3, Package, Palette, RotateCcw, Ruler, Save as SaveIcon, Scissors, Search, Settings2, X } from 'lucide-react'; import DateRangePicker from '../components/DateRangePicker'; import PaginationControls from '../components/PaginationControls'; import ProductColorBadge from '../components/ProductColorBadge'; @@ -399,6 +399,10 @@ const Cutting = () => {
+ + + Voltar para Suprimentos +

Plano de Corte

Necessidade por família, cor e tamanho calculada com vendas, estoque e cobertura alvo. diff --git a/src/pages/ProductionOrders.tsx b/src/pages/ProductionOrders.tsx index c5e97ca..e8fc9d1 100644 --- a/src/pages/ProductionOrders.tsx +++ b/src/pages/ProductionOrders.tsx @@ -1,6 +1,6 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; -import { useOutletContext } from 'react-router-dom'; -import { CalendarDays, CheckCircle2, ClipboardList, Clock3, Download, PackageCheck, Search } from 'lucide-react'; +import { Link, useOutletContext } from 'react-router-dom'; +import { ArrowLeft, CalendarDays, CheckCircle2, ClipboardList, Clock3, Download, PackageCheck, Search } from 'lucide-react'; import DateRangePicker from '../components/DateRangePicker'; import PaginationControls from '../components/PaginationControls'; import RefreshStatus from '../components/RefreshStatus'; @@ -198,6 +198,10 @@ const ProductionOrders = () => {

+ + + Voltar para Suprimentos +

Ordens de Produção

Acompanhe as ordens de produção sincronizadas do Tiny.

diff --git a/src/pages/Replenishment.tsx b/src/pages/Replenishment.tsx index 7a286a1..b76d09a 100644 --- a/src/pages/Replenishment.tsx +++ b/src/pages/Replenishment.tsx @@ -1,6 +1,6 @@ import { useEffect, useMemo, useState } from 'react'; import { Link, useOutletContext, useSearchParams } from 'react-router-dom'; -import { AlertTriangle, CheckCircle2, Download, Package, Search, TrendingUp } from 'lucide-react'; +import { AlertTriangle, ArrowLeft, CheckCircle2, Download, Package, Search, TrendingUp } from 'lucide-react'; import DateRangePicker from '../components/DateRangePicker'; import PaginationControls from '../components/PaginationControls'; import RefreshStatus from '../components/RefreshStatus'; @@ -314,6 +314,10 @@ const Replenishment = () => {
+ + + Voltar para Suprimentos +

Necessidade de Reposição

O período selecionado define a base de vendas; a cobertura define quantos dias de estoque sugerir. diff --git a/src/pages/Supplies.tsx b/src/pages/Supplies.tsx index 1d33371..09b977d 100644 --- a/src/pages/Supplies.tsx +++ b/src/pages/Supplies.tsx @@ -125,7 +125,7 @@ const SuppliesHub = () => ( - +

@@ -325,12 +325,50 @@ const FabricPlanningScreen = () => (
); +const PurchaseNeedsScreen = () => ( +
+
+
+ {[ + { label: 'Itens críticos', value: '0' }, + { label: 'Compra sugerida', value: '0 kg' }, + { label: 'Fornecedores pendentes', value: '0' }, + ].map(stat => ( +
+

{stat.label}

+

{stat.value}

+
+ ))} +
+
+
+
+

Necessidade por material

+

Calculada com estoque atual, mínimo configurado e consumo dos planos.

+
+ +
+
+ +

Nenhuma necessidade de compra

+

Configure mínimos e registre estoque para gerar sugestões.

+
+
+
+

Estoque mínimo por item

+

Defina o ponto de pedido de cada matéria-prima para aparecer aqui quando ficar abaixo do mínimo.

+ +
+
+); + const Supplies = () => { const { section } = useParams<{ section?: string }>(); if (!section) return ; if (section === 'inventory') return ; if (section === 'fabric-planning') return ; + if (section === 'purchase-needs') return ; return ; };