import React,{useEffect,useState} from 'react'; const labels={invoice:'Factura de teste',invoice_receipt:'Factura-recibo',receipt:'Recibo',credit_note:'Nota de crédito',quote:'Orçamento',draft:'Rascunho'}; const states={issued:'Emitido em teste',cancelled:'Anulado tecnicamente',draft:'Rascunho',approved:'Aprovado',rejected:'Recusado',refused:'Recusado',customer_accepted:'Aceite pelo cliente',customer_declined:'Recusado pelo cliente',converted:'Convertido',confirmed_internal:'Confirmado internamente',superseded:'Histórico / substituído'}; export default function BillingRegisterWorkspace({api,context,navigate,section}){ const initial={kind:section==='service_invoices'?'invoice':'',search:'',currency:'',series:'',author:'',state:'',from:'',to:'',per_page:'25'}; const [form,setForm]=useState(initial),[query,setQuery]=useState({...initial,page:1}),[result,setResult]=useState(null),[error,setError]=useState(''),[loading,setLoading]=useState(false); useEffect(()=>{setForm(initial);setQuery({...initial,page:1});setResult(null);},[context.token,section]); useEffect(()=>{let current=true;setLoading(true);setError('');setResult(null);const p=new URLSearchParams(Object.entries(query).filter(([,v])=>v!==''));api('/api/service-documents/register?'+p).then(v=>{if(current)setResult(v);}).catch(e=>{if(current)setError(e.message);}).finally(()=>{if(current)setLoading(false);});return()=>{current=false;};},[context.token,query]); const input=(key,value)=>setForm(v=>({...v,[key]:value}));const rows=result?.documents?.data??[],p=result?.documents; return

COMERCIAL

{section==='service_invoices'?'Facturas':'Todos os documentos'}

Consulta unificada por empresa, unidade e módulo. Factura-recibo representa a sua factura de origem uma única vez nesta lista. Rascunhos e orçamentos não são facturas.

{e.preventDefault();setQuery({...form,page:1});}}>
{error&&

{error}

}{loading&&

A consultar…

}{p&&<>

{p.total} registo(s); página {p.current_page} de {p.last_page}.

{rows.map(r=>)}
Referência / tipoClienteEmissãoMontante documentalEstadoSaldo da factura de origemConsultar
{r.reference}{labels[r.kind]} · versão {r.version}{r.client??'Por determinar'}{r.nuit&&NUIT {r.nuit}}{r.document_on??'Não emitido'}{r.amount!==null?`${r.amount} ${r.currency}`:r.base!==null?`Base ${r.base} ${r.currency}; imposto por conferir`:'Não determinado'}{states[r.document_state]??r.document_state}{r.balance_available?`${r.origin_invoice_balance} MZN`:r.invoice_id?'Sem consulta financeira autorizada ou sem reconhecimento':'Não aplicável'}{r.pdf_url&&PDF de teste}{r.print_url&&Orçamento desta versão}{r.kind==='draft'&&}{['receipt','credit_note','invoice_receipt'].includes(r.kind)&&Histórico e decisões}
{rows.length===0&&

Nenhum documento corresponde aos filtros autorizados.

}}

Sem validade fiscal. Os montantes de facturas, recibos, créditos e bases não são somados. O saldo mostrado é o da factura de origem, podendo repetir-se em documentos ligados; não representa dinheiro recebido nem saldo próprio do recibo. Datas de emissão excluem rascunhos e orçamentos não emitidos.

; }