feat(mappings): strict validation + silent CSV skip for missing CODMAT
Add Pydantic validators and service-level checks that reject empty SKU/CODMAT on create/edit (400). CSV import now silently skips rows without CODMAT and counts them in skipped_no_codmat instead of treating them as errors. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -669,9 +669,13 @@ async function importCsv() {
|
||||
try {
|
||||
const res = await fetch('/api/mappings/import-csv', { method: 'POST', body: formData });
|
||||
const data = await res.json();
|
||||
let html = `<div class="alert alert-success">Procesate: ${data.processed}</div>`;
|
||||
let msg = `${data.processed} mapări importate`;
|
||||
if (data.skipped_no_codmat > 0) {
|
||||
msg += `, ${data.skipped_no_codmat} rânduri fără CODMAT omise`;
|
||||
}
|
||||
let html = `<div class="alert alert-success">${msg}</div>`;
|
||||
if (data.errors && data.errors.length > 0) {
|
||||
html += `<div class="alert alert-warning">Erori: <ul>${data.errors.map(e => `<li>${esc(e)}</li>`).join('')}</ul></div>`;
|
||||
html += `<div class="alert alert-warning">Erori (${data.errors.length}): <ul>${data.errors.map(e => `<li>${esc(e)}</li>`).join('')}</ul></div>`;
|
||||
}
|
||||
document.getElementById('importResult').innerHTML = html;
|
||||
loadMappings();
|
||||
|
||||
Reference in New Issue
Block a user