import { Head, Link, useForm } from '@inertiajs/react';
import { Check, Circle, Pencil, Send } from 'lucide-react';
import {
FormErrors,
PageTitle,
Panel,
Status,
controlClass,
} from '@/components/procurement';
import { Button } from '@/components/ui/button';
import { Label } from '@/components/ui/label';
import { date, money, priorityLabels, roleLabels } from '@/types/procurement';
import type { Requisition } from '@/types/procurement';
type Audit = {
id: number;
action: string;
user_id: number;
created_at: string;
};
const actions: Record
Responsável da área, distinto do solicitante. Finanças é obrigatória para qualquer valor. A adjudicação e a emissão exigem regra de investimento vigente, com duas aprovações administrativas, e reserva em dotação de investimento. Sem estas condições permanecem bloqueadas. O orçamento ainda não é validado; documentos de desenvolvimento não autorizam compras reais.
{technical?.reviews.map((t) => ({t.decision === 'approved' ? 'Validado' : 'Rejeitado'}{' '} por {t.snapshot.reviewer.name} ·{' '} {t.basis_hash === technical.basis_hash ? 'Versão actual' : 'Versão anterior, decisão preservada'}{' '} · {t.reason}
))} {technical?.canReview && ( )}Confira o pedido antes de o enviar para aprovação.
| Artigo | Qtd. | Preço s/ IVA | IVA | Total c/ IVA |
|---|---|---|---|---|
|
{i.description} {i.category} {i.equipment_id && (Equipamento # {i.equipment_id} · Peça # {i.spare_part_id} {i.downtime_started_at && ` · Paragem: ${i.downtime_started_at} UTC`} )} {i.production_area && (Área de destino:{' '} {i.production_area} )} |
{Number(i.quantity)}{' '} {i.unit} | {money(i.unit_price_minor)} | {Number(i.tax_rate)}% | {money(i.total_minor)} |
As etapas serão calculadas pelo servidor quando submeter o pedido.
) : ({roleLabels[s.role]}
{s.decision === 'pending' ? r.status === 'rejected' ? 'Não realizada' : 'Aguarda decisão' : s.decision === 'approved' ? 'Aprovada' : 'Rejeitada'} {s.approver_id ? ` · Utilizador #${s.approver_id}` : ''}
{s.comment && ({s.comment}
)}Regras provisórias guardadas na submissão. Base:{' '} {r.approval_snapshot.approval_includes_tax ? 'com' : 'sem'}{' '} IVA.
)}{actions[a.action] ?? a.action}
{date(a.created_at)} · Utilizador # {a.user_id}