Donijher

Repuestos celulares · sistema multi-sucursal

{{ loginError }}

© copyright power by F16BOLIVIA TECHNOLOGY 2026

Donijher
Viendo:

Alertas de stock

Sin alertas por ahora

{{ n.producto_nombre }}

{{ n.sucursal_nombre }} · {{ n.tipo === 'agotado' ? 'Agotado' : 'Stock bajo' }} ({{ n.stock_actual }}/{{ n.stock_minimo }})

Punto de venta

{{ sucursalActual?.nombre || 'Selecciona una sucursal' }}

Inventario

{{ sucursalActual?.nombre || 'Vista consolidada — todas las sucursales' }}

Productos activos

{{ productos.length }}

Valor de inventario (costo)

Bs {{ fmt(valorInventarioCosto) }}

Alertas de stock bajo

{{ bajoStockVisible.length }}

Toca una fila (o la flecha) para ver el detalle completo del producto.

Gestionar sucursales

Nueva sucursal

Toca un producto para agregarlo a la venta y ver su información completa

Sin productos que coincidan con la búsqueda.

Información del producto

{{ posDetalleProducto.nombre }}

{{ [posDetalleProducto.marca, posDetalleProducto.modelo].filter(Boolean).join(' · ') || '—' }}

Precio

Bs {{ fmt(posDetalleProducto.precio) }}

Stock disponible

{{ posDetalleProducto.stock }} (mín. {{ posDetalleProducto.stock_minimo }})

Costo

Bs {{ fmt(posDetalleProducto.costo) }}

Categoría

{{ posDetalleProducto.categoria || '—' }}

Calidad

{{ posDetalleProducto.calidad || '—' }}

Color

{{ posDetalleProducto.color || '—' }}

Ubicación

{{ posDetalleProducto.ubicacion || '—' }}

SKU

{{ posDetalleProducto.sku }}

Código de barras

{{ posDetalleProducto.codigo_barras }}

Sin stock: no se puede agregar a la venta.

Ya agregaste todo el stock disponible ({{ cantidadEnVenta(posDetalleProducto.id) }} en la venta).

Agregado a la venta · {{ cantidadEnVenta(posDetalleProducto.id) }} en la venta actual

Venta actual

{{ carrito.length }} {{ carrito.length === 1 ? 'producto' : 'productos' }}

{{ item.nombre }}

Bs {{ fmt(item.precio) }} c/u · {{ etiquetaModoPrecio(item) }}

{{ item.cantidad }}

Aún no agregaste productos

Datos del cliente

Método de pago

Precio y descuento

Subtotal Bs {{ fmt(totalCarrito) }}
Descuento − Bs {{ fmt(montoDescuento) }}
Total a pagar Bs {{ fmt(totalFinalVenta) }}
Cambio a entregar Bs {{ fmt(Math.abs(cambioCalculado)) }}{{ cambioCalculado < 0 ? ' (falta)' : '' }}

Selecciona una sucursal arriba antes de cobrar.

SKU / Código Producto Categoría Ubicación Costo / Venta Stock Acciones
Sin productos que coincidan
Producto Sucursal Ubicación Stock actual Stock mínimo Acción

{{ p.nombre }}

{{ p.marca }} · {{ p.modelo }} · {{ p.sku }}

{{ p.color }}

{{ p.sucursal_nombre || sucursalActual?.nombre || '—' }} {{ p.ubicacion || '—' }} {{ p.stock }} {{ p.stock_minimo }}
Sin alertas de stock bajo 🎉
Fecha Producto Sucursal Tipo Cantidad Usuario / Nota
{{ formatFecha(m.creado_en) }}

{{ m.producto_nombre }}

{{ m.sku }}

{{ m.sucursal_nombre }} {{ movimientoLabel(m.tipo) }} {{ m.cantidad >= 0 ? '+' : '' }}{{ m.cantidad }} {{ m.usuario_nombre }} · {{ m.nota }}
Sin movimientos registrados

Traslados entre sucursales

Pendientes de recibir (todas las sucursales) Pendientes de recibir en {{ sucursalActual?.nombre }}

Desde {{ t.sucursal_origen }} · {{ t.items.length }} producto(s) · enviado por {{ t.enviado_por }}
Origen → Destino Productos Estado Fecha envío Acciones
{{ t.sucursal_origen }} {{ t.sucursal_destino }} {{ t.items.map(i => i.nombre + ' x' + i.cantidad).join(', ') }} {{ estadoLabel(t.estado) }} {{ formatFecha(t.fecha_envio) }}
Sin traslados registrados

Usuarios

Nombre Usuario Rol Sucursal Estado Acciones
{{ u.nombre }} {{ u.nombre_usuario }} {{ rolLabel(u.rol) }} {{ u.sucursal_nombre || '—' }} {{ u.activo === false ? 'Inactivo' : 'Activo' }}
Sin usuarios registrados

Historial de ventas

{{ sucursalActual?.nombre || 'Todas las sucursales' }}

Fecha y hora Cliente Sucursal Productos Cant. Total Pago Vendido por
Sin ventas registradas

{{ (auth.usuario.rol === 'dueno' && !sucursalSeleccionada) ? 'Reporte consolidado' : 'Reporte — ' + (sucursalActual?.nombre || '') }}

Ventas por sucursal (30 días)

Valor de inventario por sucursal (a costo)

Ventas por producto

Producto Unidades vendidas Costo total Venta total Utilidad Margen
{{ f.nombre }} {{ f.cantidad }} {{ f.costoDisponible ? 'Bs ' + fmt(f.costoTotal) : '—' }} Bs {{ fmt(f.ingreso) }} {{ f.costoDisponible ? 'Bs ' + fmt(f.utilidad) : '—' }} {{ f.costoDisponible ? fmt(f.margen) + '%' : '—' }}
Sin ventas registradas
Total {{ totalesVentasPorProducto.cantidad }} {{ totalesVentasPorProducto.hayCosto ? 'Bs ' + fmt(totalesVentasPorProducto.costoTotal) : '—' }} Bs {{ fmt(totalesVentasPorProducto.ingreso) }} {{ totalesVentasPorProducto.hayCosto ? 'Bs ' + fmt(totalesVentasPorProducto.ingreso - totalesVentasPorProducto.costoTotal) : '—' }}

El costo no aparece porque estas ventas se registraron antes de guardar el costo por unidad. Las ventas nuevas ya lo incluyen.

© copyright power by F16BOLIVIA TECHNOLOGY 2026

Ajustar stock — {{ modalAjuste.producto?.nombre }}

{{ modalProducto.editandoId ? 'Editar producto' : 'Nuevo producto' }}

Precio manual
Se escribe al momento de vender

En la venta, cada producto permite elegir entre precio unitario, precio por mayor o precio manual.

Estás en la vista consolidada de todas las sucursales: para editar el stock, selecciona primero una sucursal específica arriba, o usa el botón "Ajustar stock" (⇄) desde Inventario.

Escanear código

Usa la cámara o un lector USB (funciona como teclado: escanea y listo).

Cámara no disponible en este navegador/dispositivo.
Usa el lector USB o el campo de abajo.

Buscando producto...

Administrar catálogo

Marcas

{{ m.nombre }} predet.

Categorías

{{ c.nombre }} predet.

Calidades

{{ q }}

Aún no hay calidades

Colores

{{ c }}

Aún no hay colores

Nuevo traslado

Productos a trasladar

Seleccionar producto

Leyendo stock de la sucursal de origen...

Sin resultados (solo aparecen productos con stock en la sucursal de origen)

{{ modalUsuario.editandoId ? 'Editar usuario' : 'Nuevo usuario' }}

{{ toast.mensaje }}