feat(pos): chatbot busca en inventario local + catalogo TecDoc

El chatbot ahora busca primero en el inventario local del tenant
y luego en el catalogo TecDoc. Resultados muestran badge:
- Verde "MI INVENTARIO" para partes locales
- Azul "CATALOGO" para partes del catalogo TecDoc
Busqueda local funciona en español e inglés.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-02 07:46:08 +00:00
parent 77e45bdc1e
commit 1a770999f5
2 changed files with 88 additions and 9 deletions

View File

@@ -191,16 +191,21 @@
const card = document.createElement('div');
card.className = 'chat-part-card';
const isLocal = p.source === 'local';
const stockQty = p.local_stock || 0;
const stockClass = stockQty > 0 ? 'in-stock' : '';
const stockText = stockQty > 0 ? (stockQty + ' en stock') : 'Sin stock local';
const name = p.name_es || p.name_part || '';
const partNum = p.oem_part_number || '';
const partNum = p.oem_part_number || p.part_number || '';
const brand = p.brand || '';
const priceText = p.price_1 ? ('$' + parseFloat(p.price_1).toFixed(2)) : '';
const sourceTag = isLocal
? '<span style="background:var(--color-success);color:#fff;padding:1px 6px;border-radius:4px;font-size:0.65rem;margin-left:6px;">MI INVENTARIO</span>'
: '<span style="background:var(--color-primary);color:#fff;padding:1px 6px;border-radius:4px;font-size:0.65rem;margin-left:6px;">CATÁLOGO</span>';
card.innerHTML =
'<div class="part-number">' + esc(partNum) + (priceText ? ' &mdash; ' + priceText : '') + '</div>' +
'<div class="part-name">' + esc(name) + '</div>' +
'<div class="part-number">' + esc(partNum) + sourceTag + (priceText ? ' &mdash; ' + priceText : '') + '</div>' +
'<div class="part-name">' + esc(name) + (brand ? ' <span style="color:var(--color-text-muted);">(' + esc(brand) + ')</span>' : '') + '</div>' +
'<div class="part-stock ' + stockClass + '">' + esc(stockText) + '</div>';
// Click to open detail (if catalog page has a detail function)