Preserve preparation conditions and invalidate outdated source reviews
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { preparationAnalysisSource } from './preparationAnalysis.js';
|
||||
// Prices belong to a specific source row, never to its current array position.
|
||||
export function sourceRows(tender, results, preferredSource = 'tender') {
|
||||
const items = preferredSource !== 'analysis' && tender?.items?.length
|
||||
@@ -33,6 +34,7 @@ export function bidSourceSnapshot(tender, results, rows = sourceRows(tender, res
|
||||
deadline: [tender?.tarih || '', tender?.saat || ''],
|
||||
documentVersion: results?.documentVersion ?? tender?.documentVersion ?? null,
|
||||
procurementTerms: results?.procurementTerms || null,
|
||||
analysis: preparationAnalysisSource(results),
|
||||
humanReview: results?.sourceReview?.humanReview || null,
|
||||
analyzedItems: results?.itemsAndSpecs || [],
|
||||
rows: rows.map(r => r.priceKey).sort(),
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
export const preparationConditionSections = [
|
||||
['qualificationCriteria','Yeterlik koşulları'],
|
||||
['criticalRequirements','Kritik şartlar'],
|
||||
['risksAndPenalties','Riskler ve cezalar'],
|
||||
['disqualificationRisks','Değerlendirme dışı kalma riskleri'],
|
||||
['criticalDetails','Kontrol edilecek ayrıntılar'],
|
||||
['deadlines','Süreler ve tarihler'],
|
||||
['costDrivers','Maliyet yükümlülükleri'],
|
||||
['questionsForAdministration','İdareye sorulacak sorular'],
|
||||
];
|
||||
export function preparationAnalysisSource(results = {}) {
|
||||
const fields = ['itemsAndSpecs','documentChecklist','roadmap',...preparationConditionSections.map(([field])=>field)];
|
||||
return Object.fromEntries([
|
||||
...fields.map(field=>[field,results[field] || []]),
|
||||
...['documentVersion','procurementTerms','sourceReview','sourceEvidence','citations','summary','scopeOfWork'].map(field=>[field,results[field] ?? null]),
|
||||
]);
|
||||
}
|
||||
export function conditionText(row) {
|
||||
if (typeof row === 'string') return row;
|
||||
return ['title','label','value','clause','text','detail','where','whyItMatters','note'].map(key=>row?.[key]).filter(Boolean).join(' — ');
|
||||
}
|
||||
Reference in New Issue
Block a user