Mecánica & Repuestos
SANDOVAL EIRL
Sistema Profesional de Gestión
{{pageTitle}}
{{user.nombre}}
{{user.rol}}
{{initials}}
{{saludo}}, Taller Sandoval
{{hoy}} · Aquí tienes el resumen de hoy
sync
dashboardCargando dashboard...
Órdenes de Servicio
Gestión completa de órdenes de trabajo del taller
Total
{{rows.length}}
{{f}}
{{countFase(f)}}
Todas {{rows.length}} {{f}} {{countFase(f)}}
search
{{ordenesFilt.length}} orden{{ordenesFilt.length!==1?'es':''}}
sync
{{o.consecutivo}}
{{o.fecha?.slice(0,10)}}
{{o.cliente}}
{{o.placa}} {{o.tecnico||'Sin técnico'}}
{{o.motivo?.slice(0,50)}}{{(o.motivo?.length||0)>50?'…':''}}
{{o.estado}} {{o.estado==='ARCHIVADO'?'PAGADO':o.pago_estado}}
{{fmt(o.total)}}
Cob: {{fmt(o.cobrado||0)}}
build_circle No se encontraron órdenes
Clientes
Base de datos de clientes del taller
Total Clientes
{{rows.length}}
registrados
Empresas
{{rows.filter(x=>x.tipo==='empresa').length}}
tipo empresa
Personas
{{rows.filter(x=>!x.tipo||x.tipo==='persona').length}}
tipo persona
search
{{rowsFilt.length}} resultado{{rowsFilt.length!==1?'s':''}}
sync
Cliente Tipo DNI / RUC Teléfono Ciudad Acciones
{{(c.nombre||'?').charAt(0).toUpperCase()}}
{{c.nombre}}
{{c.email||'Sin email'}}
{{c.tipo||'persona'}} {{c.documento||'—'}} {{c.telefono||'—'}} {{c.ciudad||c.pais||'—'}}
people No se encontraron clientes
people {{rows.length}} clientes en total · Base de datos centralizada
Vehículos
Gestión integral del parque automotor y expedientes técnicos
Total registrados
{{rows.length}}
Con tipo registrado
{{rows.filter(v=>v.tipo&&v.tipo!=='Otro').length}}
Con historial de servicio
{{rows.filter(v=>v.ordenes_count>0).length||rows.length}}
search
{{rowsFilt.length}} vehículos
sync
Placa Propietario Vehículo / Marca Detalles Órdenes Acciones
{{v.placa}}
{{v.cliente||v.cliente_nombre||'—'}}
{{v.cliente_telefono||'Sin teléfono'}}
{{v.tipo==='Moto Lineal'||v.tipo==='Mototaxi'?'two_wheeler':v.tipo==='Camión'||v.tipo==='Bus / Cúster'?'local_shipping':'directions_car'}}
{{v.marca||'—'}} {{v.modelo||''}}
{{v.tipo||'Vehículo'}}
Año: {{v['año']||v.anio||'—'}}
{{v.color||'Sin color'}}
{{v.ordenes_count||0}}
directions_car
Sin vehículos registrados
{{rowsFilt.length}} de {{rows.length}} vehículos
database Base de datos centralizada
Inventario
Control de stock de repuestos e insumos
Total Productos
{{rows.length}}
en catálogo
Stock Bajo
{{rows.filter(x=>x.stock<=x.stock_minimo).length}}
bajo mínimo
Stock OK
{{rows.filter(x=>x.stock>x.stock_minimo).length}}
nivel normal
search
{{rowsFilt.length}} resultado{{rowsFilt.length!==1?'s':''}}
sync
Código Producto Categoría Stock Mínimo Precio Acción
{{it.codigo}} {{it.nombre}} {{it.categoria||'—'}}
{{it.stock}} {{it.unidad}} ⚠ BAJO
{{it.stock_minimo}} {{fmt(it.precio)}}
inventory_2 No se encontraron productos
inventory_2 {{rows.length}} productos · {{rows.filter(x=>x.stock<=x.stock_minimo).length}} bajo stock mínimo
Citas / Agenda
Programación de citas y servicios
search
sync
FechaHoraPlacaTeléfonoMotivoEstadoAcciones
{{c.fecha_cita||c.fecha||'—'}}{{c.hora||'—'}} {{c.placa||c.vehiculo_placa||'—'}} {{c.cliente||'—'}} {{c.motivo?.slice(0,40)}}{{(c.motivo?.length||0)>40?'...':''}} {{c.estado}}
eventSin citas
Cotizaciones
Presupuestos y propuestas de servicio
search
sync
#ClientePlacaFechaTotalEstadoAcciones
{{c.id}} {{c.nombre_cliente||c.cliente||'—'}}{{c.placa||'—'}} {{c.fecha?.slice(0,10)||'—'}} {{fmt(c.total)}} {{c.estado||'pendiente'}}
request_quoteSin cotizaciones
Notas de Venta
Ventas directas de repuestos e insumos
receipt_long
{{rows.length}}
Total Notas
payments
{{fmt(rows.reduce((s,n)=>s+(n.total||0),0))}}
Total Vendido
today
{{fmt(rows.filter(n=>n.fecha?.slice(0,10)===todayISO).reduce((s,n)=>s+(n.total||0),0))}}
Vendido Hoy
search
sync
NúmeroClienteFechaSubtotalIGV TotalMétodoEstadoPDFAcciones
{{n.numero||n.id}} {{n.cliente||'Consumidor Final'}} {{n.fecha?.slice(0,10)||'—'}} {{fmt(n.subtotal)}} {{fmt(n.igv)}} {{fmt(n.total)}} {{n.metodo_pago||'—'}} {{n.estado||'—'}}
receiptSin notas de venta
Facturas / Compras
Registro de compras, gastos y mercancía
Total Compras
{{fmt(rows.reduce((s,f)=>s+(f.total||0),0))}}
{{rows.length}} facturas
Mercancía
{{fmt(rows.filter(f=>f.tipo==='mercaderia').reduce((s,f)=>s+(f.total||0),0))}}
{{rows.filter(f=>f.tipo==='mercaderia').length}} facturas
Gastos
{{fmt(rows.filter(f=>f.tipo==='gasto').reduce((s,f)=>s+(f.total||0),0))}}
{{rows.filter(f=>f.tipo==='gasto').length}} facturas
⚠️ Por Corregir
{{rows.filter(f=>f.estado==='pendiente_correccion').length}}
Subidas por Telegram
search
sync
TipoProveedor / RUCN° FacturaFechaSubIGVTotalAcciones
{{f.tipo==='mercaderia'?'🛒 Mercancía':'📋 Gasto'}} ✏️ CORREGIR
{{f.proveedor||'—'}}
RUC: {{f.ruc_proveedor}}
{{f.numero_factura||'—'}} {{f.fecha||'—'}} {{fmt(f.subtotal)}} {{fmt(f.igv)}} {{fmt(f.total)}} ✅ En inventario
receipt_longSin facturas registradas
Créditos / Fiado
Gestión de créditos y cuentas por cobrar
search
sync
ClienteFechaTotalCobradoSaldoEstadoAcciones
{{c.cliente||c.cliente_nombre||'—'}} {{(c.fecha_venta||c.fecha||'').slice(0,10)||'—'}} {{fmt(c.total)}} {{fmt((c.total||0)-(c.pendiente||0))}} {{fmt(c.pendiente||0)}} {{c.estado}}
account_balance_walletSin créditos
Apertura / Cierre Caja
{{hoy}} · Control de ingresos diarios
sync
lock_open
Abrir Turno de Caja
Registra el saldo inicial del turno
calendar_today {{hoy}}
S/.
info Ingresa el efectivo físico disponible al abrir el turno
{{initials}}
{{user.nombre || 'Operador'}}
{{user.rol || 'Operario'}}
Activo
Historial Detallado
Ventas · Órdenes · Abonos · Cierres de caja
Ventas
{{fmt(histTotales.venta)}}
{{histCounts.venta}} eventos
Órdenes
{{fmt(histTotales.orden)}}
{{histCounts.orden}} eventos
Abonos
{{fmt(histTotales.abono)}}
{{histCounts.abono}} eventos
Cierres Caja
{{histCounts.cierre}}
registros
Total Movimientos
{{fmt((histTotales.venta||0)+(histTotales.orden||0)+(histTotales.abono||0))}}
{{histEventosFiltrados.length}} visibles
sync
inbox Sin movimientos en el rango seleccionado
Tipo Fecha Descripción Cliente Método Monto
{{histColors[e.tipo]?.lbl || e.tipo}} {{e.fecha}} {{e.descripcion}} {{e.cliente}} {{e.metodo_pago||'—'}} {{fmt(e.monto||0)}}
Gastos Operacionales
Registro de ítems del inventario usados internamente por el taller (sin ganancia)
remove_shopping_cart
{{fmt(gastosMes)}}
Egresos del Mes
receipt_long
{{gastosRows.length}}
Total Registros
inventory_2
{{fmt(gastosRows.filter(g=>g.fecha===todayISO).reduce((s,g)=>s+(g.costo_total||0),0))}}
Egresos Hoy
add_circle Registrar Nuevo Gasto Operacional
Egreso total estimado
{{fmt((gastosForm.cantidad||1)*(gastosForm.costo_unitario||0))}}
Historial de Gastos Operacionales
search
FechaÍtemDescripción Cant. Costo Unit. Egreso Total Registrado por
{{g.fecha}}
{{g.nombre_item||'—'}}
{{g.codigo_inventario}}
{{g.descripcion||'—'}} {{g.cantidad}} {{fmt(g.costo_unitario)}} {{fmt(g.costo_total)}} {{g.registrado_por||'—'}}
Sin registros aún. Comienza registrando el primer gasto operacional.
Centro Financiero Live · {{finDash.generated_at?.slice(11,16)}}
Inteligencia ejecutiva en tiempo real · cobranza, ganancia neta, proyecciones e insights
sync
Calculando ganancias, costos y proyecciones…
Proveedores
Gestión de proveedores y suministros del taller
Total Proveedores
{{rows.length}}
registrados
Con RUC
{{rows.filter(x=>x.ruc).length}}
identificados
Con Email
{{rows.filter(x=>x.email).length}}
contactables
search
{{rowsFilt.length}} resultado{{rowsFilt.length!==1?'s':''}}
sync
Proveedor RUC Teléfono Email Dirección Acciones
local_shipping
{{p.nombre}}
{{p.ruc}} {{p.telefono||'—'}} {{p.email||'—'}} {{p.direccion||'—'}}
local_shipping No se encontraron proveedores
local_shipping {{rows.length}} proveedores registrados
Equipo de trabajo
Técnicos, recepcionistas y demás miembros. Pagos y saldos pendientes.
Activos
{{equipoResumen.trabajadores_activos}}
miembros del equipo
Nómina comprometida
S/ {{Number(equipoResumen.nomina_mensual_comprometida||0).toLocaleString('es-PE',{minimumFractionDigits:2})}}
suma de salarios
Pagado este mes
S/ {{Number(equipoResumen.pagado_mes||0).toLocaleString('es-PE',{minimumFractionDigits:2})}}
sueldos + adelantos + bonos
Pendiente del mes
S/ {{Number(equipoResumen.pendiente_mes_mensuales||0).toLocaleString('es-PE',{minimumFractionDigits:2})}}
solo mensuales
search
sync
Nombre Rol Periodicidad Salario Pagado ({{rows[0]?.periodo||'—'}}) Pendiente Acciones
{{(t.nombre||'?')[0].toUpperCase()}}
{{t.nombre}}
{{t.dni||'—'}} · {{t.telefono||'—'}}
{{t.rol}} {{t.periodicidad}} S/ {{Number(t.salario||0).toLocaleString('es-PE',{minimumFractionDigits:2})}} S/ {{Number(t.pagado_periodo||0).toLocaleString('es-PE',{minimumFractionDigits:2})}} S/ {{Number(t.pendiente_periodo||0).toLocaleString('es-PE',{minimumFractionDigits:2})}}
groups Aún no hay miembros registrados
Historial de pagos — {{equipoSelected.nombre}}
{{equipoSelected.rol}} · {{equipoSelected.periodicidad}} · salario S/ {{Number(equipoSelected.salario||0).toLocaleString('es-PE',{minimumFractionDigits:2})}}
Fecha Tipo Método Observación Monto
{{p.fecha}} {{p.tipo}} {{p.metodo_pago}} {{p.observacion||'—'}} S/ {{Number(p.monto||0).toLocaleString('es-PE',{minimumFractionDigits:2})}}
Sin pagos registrados
Usuarios
Administración de usuarios del sistema
sync
NombreUsuarioRolEmailEstadoAcciones
{{u.nombre}}{{u.username}} {{u.rol}} {{u.email||'—'}} {{u.activo?'Activo':'Inactivo'}}
manage_accountsSin usuarios
Configuración
Parámetros del sistema SANDOVAL PRO
sync
Términos y Condiciones
Aparecen en el link de aprobación que ve el cliente. Uno por línea.
{{(terminosTexto||'').split('\n').filter(l=>l.trim()).length}} términos configurados
Cuentas Bancarias
Aparecen en el link de aprobación que envía al cliente.
Sin cuentas registradas. Agregue al menos una para que aparezca en los presupuestos.
{{c.banco}}
{{c.titular || '—'}} · {{c.tipo}} {{c.moneda}}
INACTIVA
directions_car
{{vehEditing ? 'Editar Vehículo' : 'Registrar Vehículo'}}
{{vehEditing ? 'Modifica los datos o cambia el propietario' : 'Completa los datos y asigna un propietario'}}
1 Propietario del Vehículo
search refresh
{{(cl.nombre||'?')[0].toUpperCase()}}
{{cl.nombre}}
{{cl.telefono||'Sin teléfono'}}
check_circle
{{(vehClienteSel.nombre||'?')[0].toUpperCase()}}
{{vehClienteSel.nombre}}
{{vehClienteSel.telefono||'Sin teléfono'}} · ID {{vehClienteSel.id}}
info Escribe al menos 2 caracteres para buscar
2 Tipo de Vehículo
3 Datos del Vehículo
request_quote
{{cotizacionModal.data?.numero||'Cotización'}}
{{cotizacionModal.data?.nombre_cliente||'—'}} · {{cotizacionModal.data?.fecha?.slice(0,10)||'—'}}
sync
analytics
Análisis ABC — Rotación de Inventario
Clasificación Pareto: A=80% volumen · B=15% · C=5% (baja rotación)
sync
{{t.type==='success'?'check_circle':t.type==='error'?'error':'info'}} {{t.msg}}