import React, { useState } from 'react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; import { CheckCircle, Search, Download, Filter, Truck } from 'lucide-react'; import { useOFsConcluidas } from '@/hooks/useOFsConcluidas'; import { OFConcluidaCard } from '@/components/of/OFConcluidaCard'; import { toast } from 'sonner'; const OFsConcluidas = () => { const [searchTerm, setSearchTerm] = useState(''); const [activeTab, setActiveTab] = useState('concluidas'); const { ofsConcluidas, ofsEntregues, entregarOF, reverterEntregueParaConcluida, reverterConcluidaParaAtiva, loading } = useOFsConcluidas(); const handleEntregarOF = async (of: any) => { try { await entregarOF(of.id); toast.success('OF marcada como entregue com sucesso!'); } catch (error) { toast.error('Erro ao marcar OF como entregue'); } }; const handleReverterEntregue = async (of: any) => { try { await reverterEntregueParaConcluida(of.id); toast.success('OF revertida para concluída com sucesso!'); } catch (error) { toast.error('Erro ao reverter OF entregue'); } }; const handleReverterConcluida = async (of: any) => { try { await reverterConcluidaParaAtiva(of.id); toast.success('OF reativada com sucesso!'); } catch (error) { toast.error('Erro ao reativar OF'); } }; const filterOFs = (ofs: any[]) => { if (!searchTerm) return ofs; return ofs.filter(of => of.num_of.toLowerCase().includes(searchTerm.toLowerCase()) || of.descritivo?.toLowerCase().includes(searchTerm.toLowerCase()) ); }; const filteredOfsConcluidas = filterOFs(ofsConcluidas); const filteredOfsEntregues = filterOFs(ofsEntregues); if (loading) { return (

Carregando OFs...

); } return (

OFs Concluídas

Histórico de ordens de fabricação finalizadas

Concluídas ({filteredOfsConcluidas.length}) Concl ({filteredOfsConcluidas.length}) Entregues ({filteredOfsEntregues.length}) Entr ({filteredOfsEntregues.length}) Relatórios Rel OFs Concluídas
setSearchTerm(e.target.value)} className="pl-8 sm:pl-10 text-xs sm:text-sm" />
{filteredOfsConcluidas.length === 0 ? (

{searchTerm ? 'Nenhuma OF concluída encontrada com esse termo' : 'Nenhuma OF concluída encontrada'}

As OFs finalizadas aparecerão aqui

) : (
{filteredOfsConcluidas.map((of) => ( ))}
)}
OFs Entregues
setSearchTerm(e.target.value)} className="pl-8 sm:pl-10 text-xs sm:text-sm" />
{filteredOfsEntregues.length === 0 ? (

{searchTerm ? 'Nenhuma OF entregue encontrada com esse termo' : 'Nenhuma OF entregue encontrada'}

As OFs entregues aparecerão aqui

) : (
{filteredOfsEntregues.map((of) => ( ))}
)}
Relatórios de OFs Concluídas

Relatórios em desenvolvimento

Em breve você poderá gerar relatórios detalhados

); }; export default OFsConcluidas;