' + info + '
';
+ if (ed.ok) {
+ var info = (ed.skipped ? '⏭ ' : '✓ ') + (data.rows[i].type || '') + ': ' + ed.rows_saved + ' строк';
+ diffBody.innerHTML += '' + info + '
';
} else {
- diffBody.innerHTML += '✗ ' + (ed.ERROR||'') + '
';
+ diffBody.innerHTML += '✗ ' + (ed.error||'') + '
';
}
} catch(e) {}
}
@@ -403,31 +403,31 @@ document.getElementById('llmBtn').addEventListener('click', async function() {
try {
var resp = await fetch('/differ.cfm?contract_id=' + contractId);
var data = await resp.json();
- if (data.OK && data.ALL_CHANGES) {
- var all = data.ALL_CHANGES;
+ if (data.ok && data.all_changes) {
+ var all = data.all_changes;
diffBody.innerHTML = '';
all.forEach(function(ch) {
- var s = ch.SUMMARY || {};
- diffBody.innerHTML += '📄 Допник (' + ch.TYPE + ')
';
- diffBody.innerHTML += '+' + (s.ADDED||0) + ' ~' + (s.CHANGED||0) + ' -' + (s.DELETED||0) + '
';
- diffStatus.textContent = 'изм:' + (s.CHANGED||0) + ' +' + (s.ADDED||0) + ' -' + (s.DELETED||0);
+ var s = ch.summary || {};
+ diffBody.innerHTML += '📄 Допник (' + ch.type + ')
';
+ diffBody.innerHTML += '+' + (s.added||0) + ' ~' + (s.changed||0) + ' -' + (s.deleted||0) + '
';
+ diffStatus.textContent = 'изм:' + (s.changed||0) + ' +' + (s.added||0) + ' -' + (s.deleted||0);
- var changes = ch.CHANGES || [];
+ var changes = ch.changes || [];
if (changes.length === 0) {
diffBody.innerHTML += 'Нет изменений
';
} else {
var tbl = '| № | Услуга | Цена | Объём | Сумма | Начало |
|---|---|---|---|---|---|
| ' + (c.ROW_NUM||'') + ' | ' + (vals.NAME||'') + ' | ' + _dc(c,'PRICE') + ' | ' + _dc(c,'QTY') + ' | ' + _dc(c,'SUM') + ' | ' + (vals.DATE_START||'') + ' |
| ' + (c.row_num||'') + ' | ' + (vals.name||'') + ' | ' + _dc(c,'price') + ' | ' + _dc(c,'qty') + ' | ' + _dc(c,'sum') + ' | ' + (vals.date_start||'') + ' |
✗ ' + (data.ERROR||'') + '
';
+ diffBody.innerHTML += '✗ ' + (data.error||'') + '
';
}
} catch(e) { diffBody.innerHTML += '✗ ' + e.message + '
'; }
@@ -440,12 +440,12 @@ document.getElementById('llmBtn').addEventListener('click', async function() {
});
function _dc(c, field) {
- if (c.CHANGE_TYPE === 'changed' && c.OLD_VALUES && c.NEW_VALUES) {
- var ov = (c.OLD_VALUES||{})[field], nv = (c.NEW_VALUES||{})[field];
+ if (c.change_type === 'changed' && c.old_values && c.new_values) {
+ var ov = (c.old_values||{})[field], nv = (c.new_values||{})[field];
if (ov !== nv && ov !== undefined)
return '' + (ov||'—') + ' → ' + (nv||'—') + '';
}
- var v = ((c.NEW_VALUES || c.OLD_VALUES || {})[field]);
+ var v = ((c.new_values || c.old_values || {})[field]);
return v != null ? v : '—';
}