import React from 'react'; import { useApp } from '../../context/AppContext'; import { redFlags, marketConcentration, formatTL } from '../../services/analytics'; import { ShieldAlert, AlertTriangle, TrendingDown, Building2, Users, Info } from 'lucide-react'; const SEVIYE = { yuksek: { etiket: 'Yüksek', kutu: 'bg-red-50 border-red-200', rozet: 'bg-red-100 text-red-800', cizgi: 'bg-red-500' }, orta: { etiket: 'Orta', kutu: 'bg-amber-50 border-amber-200', rozet: 'bg-amber-100 text-amber-800', cizgi: 'bg-amber-500' }, dusuk: { etiket: 'Düşük', kutu: 'bg-slate-50 border-slate-200', rozet: 'bg-slate-100 text-slate-700', cizgi: 'bg-slate-400' }, }; const TUR_IKON = { 'Tek teklif': Users, 'Düşük kırım': TrendingDown, 'Tahmin üstü bedel': AlertTriangle, 'Aşırı düşük teklif': TrendingDown, 'Tedarikçi yoğunlaşması': Building2, }; export const RedFlags = () => { const { tenders, setActiveTenderDetail } = useApp(); const { flags, yuksek, orta, analiz } = redFlags(tenders); const { hhi, seviye } = marketConcentration(tenders); return (
Tek teklifli ihaleler, olağandışı kırım oranları ve tedarikçi yoğunlaşması otomatik tespit edilir.
Bu sinyaller kamuya açık ihale verisinden otomatik hesaplanır ve incelenmeye değer durumları işaret eder — tek başlarına usulsüzlük kanıtı değildir. Tek teklif ve kırım analizleri, ilgili alanların (teklif sayısı, yaklaşık maliyet, sözleşme bedeli) veride bulunduğu ihaleler için üretilir.
Henüz kırmızı bayrak tespit edilmedi
Analiz için sonuç verisi (kazanan firma, sözleşme bedeli, teklif sayısı) gerekir. Doğrudan temin sonuçları ve EKAP sonuç ilanları biriktikçe bu liste otomatik dolar.
{f.aciklama}
{f.tender ? ( ) : ({f.kurum}
)}