Show tender source changes against saved preparation metadata

This commit is contained in:
2026-09-06 10:47:07 +03:00
parent f51f9b4eb0
commit a0f4824c7e
6 changed files with 46 additions and 3 deletions
+1
View File
@@ -32,6 +32,7 @@ export function bidSourceSnapshot(tender, results, rows = sourceRows(tender, res
tender: tender?.ikn || tender?.id,
announcement: tender?.aciklama || '',
deadline: [tender?.tarih || '', tender?.saat || ''],
status: tender?.durum || '',
documentVersion: results?.documentVersion ?? tender?.documentVersion ?? null,
procurementTerms: results?.procurementTerms || null,
analysis: preparationAnalysisSource(results),
+10 -2
View File
@@ -1,11 +1,19 @@
export const tenderStateKey = t => String(t?.ikn || t?.id || '').trim();
export const TENDER_SOURCE_FIELDS = [['tarih','İhale tarihi'],['saat','İhale saati'],['durum','İhale durumu'],['baslik','İhale başlığı'],['kurum','İdare'],['alimTuru','Alım türü'],['documentVersion','Doküman sürümü']];
export function tenderSourceChanges(previous = {}, current = {}) {
return TENDER_SOURCE_FIELDS.flatMap(([field,label]) => {
const before = previous[field], after = current[field];
if (before == null || before === '' || after == null || after === '' || String(before) === String(after)) return [];
return [{field,label,before:String(before),after:String(after)}];
});
}
export const USER_STATE_FIELDS = ['takipte', 'incelendi', 'kanbanStatus', 'atananPersonel', 'gorev', 'notes', 'checklist', 'bidDraft'];
export function applyTenderStates(tenders, records = {}) {
const seen = new Set();
const result = tenders.map(t => {
const key = tenderStateKey(t); seen.add(key);
const record = records[key];
return record ? { ...t, ...record.data } : t;
return record ? { ...t, ...record.data, sourceChanges:tenderSourceChanges(record.snapshot,t) } : t;
});
for (const [key, record] of Object.entries(records)) {
if (!seen.has(key) && record.snapshot && (record.data.takipte || record.data.gorev || record.data.incelendi || record.data.bidDraft || record.data.notes?.length))
@@ -14,7 +22,7 @@ export function applyTenderStates(tenders, records = {}) {
return result;
}
export function tenderSnapshot(t) {
return Object.fromEntries(['id','ikn','baslik','kurum','tarih','saat','sehir','alimTuru'].map(k => [k,t[k] ?? '']));
return Object.fromEntries(['id','ikn','baslik','kurum','tarih','saat','sehir','alimTuru','durum','documentVersion'].map(k => [k,t[k] ?? '']));
}
export function publicTender(tender) {