Интегрирован компонент поиска товаров в документы списания с фильтром по складу

- Добавлен параметр warehouse в API search_products_and_variants
- API фильтрует товары по наличию на указанном складе через Stock
- Обновлен _apply_product_filters для поддержки warehouse_id
- ProductSearchPicker теперь поддерживает data-warehouse-id
- Warehouse автоматически передается в AJAX запросы
- В WriteOffDocumentDetailView добавлены categories и tags в контекст
- Компонент поиска встроен в detail.html с жестким фильтром по складу документа
- Single-select режим для выбора одного товара
- JS автоматически заполняет select формы при выборе товара
- Отображение выбранного товара с фото и артикулом
- Автофокус на поле количества после выбора товара
- Пользователь видит только товары доступные на складе документа
This commit is contained in:
2025-12-11 00:02:37 +03:00
parent 542b90c3f1
commit 2e5ebabf22
5 changed files with 138 additions and 7 deletions

View File

@@ -64,7 +64,8 @@
search: '',
category: '',
tag: '',
inStock: false
inStock: false,
warehouse: '' // ID склада для фильтрации
}
};
@@ -106,6 +107,11 @@
this.state.currentView = initialView;
this._updateViewButtons();
}
// Инициализация warehouse из data-атрибута
if (this.container.dataset.warehouseId) {
this.state.filters.warehouse = this.container.dataset.warehouseId;
}
};
/**
@@ -278,6 +284,9 @@
if (this.state.filters.inStock) {
params.append('in_stock', 'true');
}
if (this.state.filters.warehouse) {
params.append('warehouse', this.state.filters.warehouse);
}
fetch(this.options.apiUrl + '?' + params.toString())
.then(function(response) {