/* ============================================================ EMPRESA > FINANCEIRO > SERVIÇOS (editar/excluir) ============================================================ */ function PageFinServicos({ servicos, onSave, onDelete, showToast }){ const [editing, setEditing] = useState(null); const editingObj = editing ? servicos.find(s=>s.id===editing) : null; const [busca, setBusca] = useState(''); const [nome,setNome] = useState(''); const [valor,setValor] = useState(''); const [comissao,setComissao] = useState(''); useEffect(()=>{ if(editingObj){ setNome(editingObj.nome); setValor(String(editingObj.valor)); setComissao(String(editingObj.comissaoPercent)); } else { setNome(''); setValor(''); setComissao(''); } }, [editing]); function submit(e){ e.preventDefault(); if(!nome || valor==='' || comissao==='') return; onSave({ nome, valor:parseFloat(valor), comissaoPercent:parseFloat(comissao) }, editing); setEditing(null); } function remove(id){ onDelete(id); if(editing===id) setEditing(null); } return (

{editing?'Editar Serviço':'Novo Serviço'}

setNome(e.target.value)} placeholder="Ex: Suporte N3" required/>
setValor(e.target.value)} placeholder="0,00" required/>
setComissao(e.target.value)} placeholder="20" required/>
{editing && }

Serviços Cadastrados ({servicos.length})

setBusca(e.target.value)}/>
{servicos.filter(s=>!busca || s.nome.toLowerCase().includes(busca.toLowerCase())).map(s=>( ))} {servicos.length>0 && servicos.filter(s=>!busca || s.nome.toLowerCase().includes(busca.toLowerCase())).length===0 && }
ServiçoValor PadrãoComissão
{s.nome}{fmtBRL(s.valor)}{s.comissaoPercent}%
Nenhum serviço encontrado com essa busca.

Estes serviços ficam disponíveis para seleção rápida na aba Orçamentos.

); }