use canonical province map for direct tenders
This commit is contained in:
@@ -2284,3 +2284,9 @@ Doğrulama: `npm run qa:browser` başarılı; `accountScopedAnalyticsTarget`, `p
|
|||||||
Üretimde kullanılmayan ancak kendisini gerçek canlı EKAP akışı gibi tanımlayan sabit ihale modülü kaldırıldı. Modül, resmî kaynaktan alınmış gibi görünen geleceğe tarihli ihale, miktar ve fiyatlar içeriyordu; bu kayıtların yanlışlıkla canlı havuza veya teklif hazırlığına girmesi engellendi. Yerel sentetik kabul verileri yalnız `tests/fixtures` ve `tests/browser-qa.mjs` altında açık test kapsamıyla tutuluyor.
|
Üretimde kullanılmayan ancak kendisini gerçek canlı EKAP akışı gibi tanımlayan sabit ihale modülü kaldırıldı. Modül, resmî kaynaktan alınmış gibi görünen geleceğe tarihli ihale, miktar ve fiyatlar içeriyordu; bu kayıtların yanlışlıkla canlı havuza veya teklif hazırlığına girmesi engellendi. Yerel sentetik kabul verileri yalnız `tests/fixtures` ve `tests/browser-qa.mjs` altında açık test kapsamıyla tutuluyor.
|
||||||
|
|
||||||
Doğrulama: depo içinde bu modüle ait import/referans kalmadı; `npm test` ve üretim derlemesi başarılı. Canlı adayların resmî ilan/doküman doğrulaması ve kaynak sağlayıcı kabulü ayrıca açık.
|
Doğrulama: depo içinde bu modüle ait import/referans kalmadı; `npm test` ve üretim derlemesi başarılı. Canlı adayların resmî ilan/doküman doğrulaması ve kaynak sağlayıcı kabulü ayrıca açık.
|
||||||
|
|
||||||
|
### 2026-09-06 · D05 doğrudan temin il kodlarının tamamlanması
|
||||||
|
|
||||||
|
Doğrudan temin worker’ı yalnızca seçili illeri tanıyan yerel tablo yerine ortak 81 il plaka haritasını kullanıyor. Böylece 2–5 ve 28–81 arası kodlar artık “Plaka N” olarak kaybolmuyor; arama, bölge ve sağlık tedarikçisi filtreleri kanonik il adını alıyor.
|
||||||
|
|
||||||
|
Doğrulama: yeni regresyon 1–81 kodlarının tamamını ve Giresun, Aksaray, Iğdır, Düzce örneklerini doğruluyor. `npm test` 297/297 ve üretim derlemesi başarılı; gerçek DT worker taraması ve canlı veri kabulü hâlâ açık.
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import fs from 'node:fs';
|
|||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import { fileURLToPath } from 'node:url';
|
import { fileURLToPath } from 'node:url';
|
||||||
import { chromium } from 'playwright';
|
import { chromium } from 'playwright';
|
||||||
|
import { IL_PLAKA } from './il-plaka.mjs';
|
||||||
|
|
||||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||||
const DATA_DIR = path.join(__dirname, 'data');
|
const DATA_DIR = path.join(__dirname, 'data');
|
||||||
@@ -187,11 +188,6 @@ async function refreshSession(sess) {
|
|||||||
// E1=DTN E2=işin adı E3=idare adı E4=tür kodu E7=DT tarihi E8=yayım tarihi
|
// E1=DTN E2=işin adı E3=idare adı E4=tür kodu E7=DT tarihi E8=yayım tarihi
|
||||||
// E10=dogrudanTeminId E11=idareId E12=il plaka kodu E13=ilan var E14=e-ihale
|
// E10=dogrudanTeminId E11=idareId E12=il plaka kodu E13=ilan var E14=e-ihale
|
||||||
const TUR_KODU = { 1: 'Mal Alımı', 2: 'Hizmet Alımı', 3: 'Konaklama/Hizmet', 4: 'Danışmanlık' };
|
const TUR_KODU = { 1: 'Mal Alımı', 2: 'Hizmet Alımı', 3: 'Konaklama/Hizmet', 4: 'Danışmanlık' };
|
||||||
const IL_PLAKA = {
|
|
||||||
1: 'Adana', 6: 'Ankara', 7: 'Antalya', 16: 'Bursa', 21: 'Diyarbakır', 25: 'Erzurum',
|
|
||||||
26: 'Eskişehir', 27: 'Gaziantep', 34: 'İstanbul', 35: 'İzmir', 38: 'Kayseri', 41: 'Kocaeli',
|
|
||||||
42: 'Konya', 44: 'Malatya', 55: 'Samsun', 61: 'Trabzon', 65: 'Van', 63: 'Şanlıurfa',
|
|
||||||
};
|
|
||||||
|
|
||||||
function mapListRow(r) {
|
function mapListRow(r) {
|
||||||
const plaka = Number(r.E12);
|
const plaka = Number(r.E12);
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import test from 'node:test';
|
||||||
|
import assert from 'node:assert/strict';
|
||||||
|
import { IL_PLAKA } from '../server/il-plaka.mjs';
|
||||||
|
|
||||||
|
test('canonical province map covers all 81 Turkish plate codes', () => {
|
||||||
|
const codes = Object.keys(IL_PLAKA).map(Number).sort((a, b) => a - b);
|
||||||
|
assert.deepEqual(codes, Array.from({ length: 81 }, (_, index) => index + 1));
|
||||||
|
assert.equal(IL_PLAKA[28], 'Giresun');
|
||||||
|
assert.equal(IL_PLAKA[68], 'Aksaray');
|
||||||
|
assert.equal(IL_PLAKA[76], 'Iğdır');
|
||||||
|
assert.equal(IL_PLAKA[81], 'Düzce');
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user