Vehículos disponibles
{{pubCatalogFiltered.length}} unidad{{pubCatalogFiltered.length!==1?'es':''}} en stock
🚗

Sin unidades disponibles

🚗
{{v.marca}} {{v.modelo}}
{{v.tipo}} • {{v.anio}} • {{fmtKm(v.km)}} km

Vehículo no encontrado

{{pubVehicle.marca}} {{pubVehicle.modelo}}
{{pubVehicle.tipo}} • {{pubVehicle.anio}}
KILOMETRAJE
{{fmtKm(pubVehicle.km)}} km
TIPO
{{pubVehicle.tipo}}
DOMINIO
{{pubVehicle.dominio||'—'}}
UBICACIÓN
{{pubVehicle.ubicacion||'—'}}
{{pubVehicle.comentarios}}
🚗 CRM DIRECTA
{{currentUser.nombre[0].toUpperCase()}}
{{currentUser.nombre}} {{currentUser.rol}}

Cargando...

Error de conexión

{{dbError}}

Filtrar:
{{stage.emoji}} {{stage.label}} {{leadsForStage(stage.id).length}}

Soltar aquí

{{lead.nombre}}
WA

🚗 {{lead.vehiculo}}

💰 {{lead.presupuesto}}

👤 {{lead.vendedor}}

{{isVencido(lead)?'🔴':isHoy(lead)?'⏰':'📅'}} {{fmt(lead.seguimiento)}}{{isVencido(lead)?' ✗':isHoy(lead)?' hoy':''}}

💬 {{lastNota(lead).texto}}

{{LEAD_TAGS.find(t=>t.id===tid)?.label||tid}}
Filtrar:
NombreTeléfonoVehículoPresupuestoOrigenEstadoVendedorSeguimientoIngreso
Sin resultados
{{lead.nombre}} 📱 {{lead.telefono}} {{lead.vehiculo||'—'}} {{lead.presupuesto||'—'}} {{lead.origen}} {{stageEmoji(lead.estado)}} {{lead.estado}} {{lead.vendedor||'—'}} {{fmt(lead.seguimiento)}} {{fmt(lead.fecha_ingreso)}} WA

{{filteredLeads.length}} leads

{{statsLeads.length}} leads en el período
{{s.icon}}
{{s.val}}
{{s.label}}
TASA DE CONVERSIÓN
{{stats.conv}}%

{{stats.vendidos}} vendidos de {{visibleLeads.length}} leads

PIPELINE
{{s.emoji}} {{s.label}}
{{s.n}}
ORIGEN

Sin datos

{{o.name}}
{{o.n}}
RENDIMIENTO POR VENDEDOR

Sin leads asignados

👤 {{v.name}}
{{v.n}}
🔴 SEGUIMIENTOS VENCIDOS ({{vencidos.length}})
{{l.nombre}}{{fmt(l.seguimiento)}}
🏆 RANKING DE VENDEDORES — Ventas Cerradas

Sin datos aún

{{rankingVendedores[1]?.name[0]?.toUpperCase()}}
{{rankingVendedores[1]?.name}}
{{rankingVendedores[1]?.ganados}}
🥈
{{rankingVendedores[0]?.name[0]?.toUpperCase()}}
{{rankingVendedores[0]?.name}}
{{rankingVendedores[0]?.ganados}}
🥇
{{rankingVendedores[2]?.name[0]?.toUpperCase()}}
{{rankingVendedores[2]?.name}}
{{rankingVendedores[2]?.ganados}}
🥉
{{i===0?'🥇':i===1?'🥈':i===2?'🥉':'#'+(i+1)}}
{{v.name}}
{{v.total}} leads · {{v.conv}}% conversión
{{mes}}: {{cnt}} Sin ventas registradas
{{v.ganados}}
{{v.conv}}%

{{leads.length}} leads totales

{{etapa.emoji}} {{etapa.label}} {{gestByEtapa(etapa.id).length}}
Sin trámites
{{t.cliente}}
🚗 {{t.vehiculo||'—'}}
📄 {{t.dominio}}
👤 Vendido por: {{t.vendedor||'—'}}
{{calTitle}}
{{d}}
{{day.day}}
{{lead.nombre}}
⚙️ Configuración inicial requerida
Necesitás crear 2 tablas en tu proyecto Supabase. Copiá y ejecutá este SQL en SQL Editor → New query:
-- 1. Tabla de datos de compra por vehículo CREATE TABLE IF NOT EXISTS compras ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), stock_id uuid REFERENCES stock(id) ON DELETE CASCADE, codigo_vehiculo text, proveedor text DEFAULT '', costo_compra numeric(12,2) DEFAULT 0, fecha_compra date, precio_venta_real numeric(12,2) DEFAULT 0, observaciones text DEFAULT '', created_at timestamptz DEFAULT now(), updated_at timestamptz DEFAULT now() ); -- 2. Tabla de gastos por vehículo CREATE TABLE IF NOT EXISTS gastos_vehiculo ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), stock_id uuid REFERENCES stock(id) ON DELETE CASCADE, codigo_vehiculo text, categoria text DEFAULT 'Otro', descripcion text DEFAULT '', monto numeric(12,2) DEFAULT 0, fecha date DEFAULT CURRENT_DATE, created_at timestamptz DEFAULT now() ); -- 3. Habilitar acceso público ALTER TABLE compras ENABLE ROW LEVEL SECURITY; ALTER TABLE gastos_vehiculo ENABLE ROW LEVEL SECURITY; CREATE POLICY "allow all" ON compras FOR ALL USING (true) WITH CHECK (true); CREATE POLICY "allow all" ON gastos_vehiculo FOR ALL USING (true) WITH CHECK (true);
🚗

Sin vehículos en stock

🚗
📷 {{v.fotos.length}} {{v.codigo}}
{{v.marca}} {{v.modelo}}
{{v.tipo}} • {{v.anio}} • {{fmtKm(v.km)}} km • {{v.dominio}}
Lista:{{fmtPrice(v.precio_lista)}}
Financiado:{{fmtPrice(v.precio_financiado)}}
Contado:{{fmtPrice(v.precio_contado)}}
🚗
{{v.marca}} {{v.modelo}} {{v.anio}}
{{v.tipo}} · {{fmtKm(v.km)}} km · {{v.dominio}} · {{v.codigo}}
{{v.estado}}
{{fmtPrice(v.precio_contado)}}
👥 Usuarios
{{u.nombre[0].toUpperCase()}}
{{u.rol}}
{{toast.msg}}