fix: validate firm email consistently before bid output
This commit is contained in:
@@ -9,3 +9,15 @@ export const bidFirmFields = [
|
||||
{ k: 'telefon', l: 'Telefon', zorunlu: true },
|
||||
{ k: 'eposta', l: 'E-posta', zorunlu: true },
|
||||
];
|
||||
|
||||
// Form-level completeness and syntax only; no registry or legal eligibility check.
|
||||
export function bidFirmIssues(firma={}) {
|
||||
return bidFirmFields.flatMap(field=>{
|
||||
const raw=firma?.[field.k];
|
||||
const text=typeof raw==='string' || typeof raw==='number' ? String(raw).trim() : '';
|
||||
if(field.zorunlu && !text)return [{...field,message:`${field.l} bilgisini doldurun.`}];
|
||||
if(field.k==='eposta' && text && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(text))
|
||||
return [{...field,message:'E-posta adresini ad@firma.com biçiminde girin.'}];
|
||||
return [];
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {bidFirmFields} from './bidFirmFields.js';
|
||||
import {bidFirmIssues} from './bidFirmFields.js';
|
||||
import {sourceRows,bidSourceOptions,bidSourceSnapshot,restoreBidPrices} from './bidSource.js';
|
||||
import {selectBidLots} from './bidLots.js';
|
||||
import {bidTotal,bidAmount,validateBidRows} from './bidValidation.js';
|
||||
@@ -21,7 +21,7 @@ export function preparationSummary(tender,vault,now=new Date()) {
|
||||
if(draft.reviewedSource!==snapshot)add('source','Resmi kaynak karşılaştırması gerekli.');
|
||||
if(analysis.sourceReview?.status==='partial')add('analysis','Analiz kısmi; kaynak kontrolünü tamamlayın.');
|
||||
if(options.needsSelection)add('itemSource','Resmi cetvele uygun kalem listesini seçin.');
|
||||
for(const field of bidFirmFields)if(field.zorunlu&&!String(draft.firma?.[field.k] || '').trim())add(`firm:${field.k}`,`${field.l} kayıtlı taslakta eksik.`);
|
||||
for(const issue of bidFirmIssues(draft.firma))add(`firm:${issue.k}`,issue.message);
|
||||
const type=bidTypeForForm(tender.aciklama,analysis.procurementTerms?.bidType),bidType=draft.teklifTuru || type.type || '';
|
||||
if(!['birim','goturu'].includes(bidType)||type.status==='conflict'||(type.type&&type.type!==bidType))add('bidType','Teklif türünü doğrulayın.');
|
||||
const validity=bidValidityForForm(tender.aciklama,analysis.procurementTerms?.bidValidity),days=Number(draft.gecerlilikGun || validity.days || '');
|
||||
|
||||
Reference in New Issue
Block a user