Files
compras/resources/js/components/comparison-policy-summary.tsx
T
nala c6373365bf
tests / ci (push) Canceled after 0s
commit9
2026-10-30 20:02:30 +02:00

47 lines
1.3 KiB
TypeScript

export type ComparisonPolicy = {
revision: number;
configured: boolean;
minimum_proposals: number;
minimum_evaluators: number;
weights: Record<
'price' | 'quality' | 'delivery' | 'history' | 'payment',
number
>;
};
export const comparisonCriteria = {
price: 'Preço',
quality: 'Qualidade',
delivery: 'Prazo de entrega',
history: 'Histórico',
payment: 'Condições de pagamento',
};
export function ComparisonPolicySummary({
policy,
}: {
policy: ComparisonPolicy;
}) {
return (
<div className="space-y-2 text-sm">
<p>
{policy.configured
? `Regra da empresa · revisão ${policy.revision}`
: 'Regras iniciais de compatibilidade'}
: mínimo de {policy.minimum_proposals} propostas elegíveis de
fornecedores distintos e {policy.minimum_evaluators} avaliações
independentes por proposta.
</p>
<p>
{Object.entries(comparisonCriteria)
.map(
([key, label]) =>
`${label} ${policy.weights[key as keyof typeof comparisonCriteria]}%`,
)
.join(' · ')}
.
</p>
</div>
);
}