Update lot recalc flow
This commit is contained in:
@@ -537,16 +537,41 @@ async function deleteStockMapping(partnumber) {
|
||||
|
||||
async function recalculateAll() {
|
||||
try {
|
||||
const resp = await fetch('/api/admin/pricing/recalculate-all', {method: 'POST'});
|
||||
const resp = await fetch('/api/admin/pricing/recalculate-all?force=1', {method: 'POST'});
|
||||
const data = await resp.json();
|
||||
if (data.task_id) {
|
||||
showToast('Пересчёт цен запущен в фоне', 'info');
|
||||
await waitForTaskCompletion(data.task_id);
|
||||
if (currentTab === 'components') {
|
||||
loadData();
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
showToast('Ошибка запуска пересчёта', 'error');
|
||||
}
|
||||
}
|
||||
|
||||
function sleep(ms) {
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
async function waitForTaskCompletion(taskId) {
|
||||
if (!taskId) return;
|
||||
for (;;) {
|
||||
await sleep(2500);
|
||||
try {
|
||||
const resp = await fetch(`/api/tasks/${taskId}`);
|
||||
if (!resp.ok) return;
|
||||
const task = await resp.json();
|
||||
if (task.status === 'completed' || task.status === 'error') {
|
||||
return;
|
||||
}
|
||||
} catch (_) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// LOT Creation Functions
|
||||
function openCreateLotModal() {
|
||||
document.getElementById('create-lot-modal').classList.remove('hidden');
|
||||
@@ -668,4 +693,4 @@ if (document.getElementById('price-modal')) {
|
||||
</script>
|
||||
{{end}}
|
||||
|
||||
{{template "base" .}}
|
||||
{{template "base" .}}
|
||||
|
||||
Reference in New Issue
Block a user