Apply saved filters to tender search with visible region criteria
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
const norm=value=>String(value || '').normalize('NFC').trim().toLocaleUpperCase('tr-TR');
|
||||
export const REGION_CITIES={
|
||||
'MARMARA BÖLGESİ':'Balıkesir,Bilecik,Bursa,Çanakkale,Edirne,İstanbul,Kırklareli,Kocaeli,Sakarya,Tekirdağ,Yalova',
|
||||
'EGE BÖLGESİ':'Afyonkarahisar,Aydın,Denizli,İzmir,Kütahya,Manisa,Muğla,Uşak',
|
||||
'AKDENİZ BÖLGESİ':'Adana,Antalya,Burdur,Hatay,Isparta,Kahramanmaraş,Mersin,Osmaniye',
|
||||
'İÇ ANADOLU BÖLGESİ':'Aksaray,Ankara,Çankırı,Eskişehir,Karaman,Kayseri,Kırıkkale,Kırşehir,Konya,Nevşehir,Niğde,Sivas,Yozgat',
|
||||
'KARADENİZ BÖLGESİ':'Amasya,Artvin,Bartın,Bayburt,Bolu,Çorum,Düzce,Giresun,Gümüşhane,Karabük,Kastamonu,Ordu,Rize,Samsun,Sinop,Tokat,Trabzon,Zonguldak',
|
||||
'DOĞU ANADOLU BÖLGESİ':'Ağrı,Ardahan,Bingöl,Bitlis,Elazığ,Erzincan,Erzurum,Hakkari,Iğdır,Kars,Malatya,Muş,Tunceli,Van',
|
||||
'GÜNEYDOĞU ANADOLU BÖLGESİ':'Adıyaman,Batman,Diyarbakır,Gaziantep,Kilis,Mardin,Siirt,Şanlıurfa,Şırnak',
|
||||
};
|
||||
const cityRegions=new Map(Object.entries(REGION_CITIES).flatMap(([region,cities])=>cities.split(',').map(city=>[norm(city),region])));
|
||||
export function matchesRegion(tender,region){return !region || cityRegions.get(norm(tender.sehir))===norm(region);}
|
||||
export function matchesProcurement(tender,procedure){return !procedure || [tender.usul,tender.ihaleUsulu,tender.alimTuru].some(value=>norm(value)===norm(procedure));}
|
||||
export function savedFilterCriteria(filter){
|
||||
const read=key=>{if(filter[key]!=null&&typeof filter[key]!=='string')throw new Error('Kayıtlı filtre ölçütü geçersiz.');return (filter[key] || '').trim();};
|
||||
const region=read('bolge');
|
||||
if(region&&!Object.keys(REGION_CITIES).includes(norm(region)))throw new Error('Kayıtlı bölge tanınmadı; filtreyi yeniden düzenleyin.');
|
||||
return {city:read('sehir'),region:region?norm(region):'',sector:read('sektor'),institution:read('kurumTipi'),procedure:read('usul')};
|
||||
}
|
||||
Reference in New Issue
Block a user