Inmuebles
{{ inmuebles.length }} en cartera · {{ inmuebles.filter(i=>i.activo).length }} activos
No hay inmuebles todavía. Crea el primero con "Nuevo inmueble".
| {{ est.label }} · {{ inmueblesPorEstado(est.id).length }} | ||||
|---|---|---|---|---|
| Inmueble | Localidad | Gestor | Próxima acción | Cambiar estado |
| {{ inm.nombre }} | {{ inm.localidad || '—' }} | {{ inm.gestor || '—' }} | {{ inm.proxima_accion }} · {{ fmtFecha(inm.proxima_accion_fecha) }} — | |
{{ inmuebleDetalle.nombre }}
{{ cfgEstado(inmuebleDetalle.estado).label }}{{ inmuebleDetalle.direccion }}{{ inmuebleDetalle.codigo_postal ? ', ' + inmuebleDetalle.codigo_postal : '' }} — {{ inmuebleDetalle.localidad }}{{ inmuebleDetalle.provincia ? ' (' + inmuebleDetalle.provincia + ')' : '' }}
{{ gestoresDe(inmuebleDetalle.id).map(g => g.nombre + (g.telefono ? ' (' + g.telefono + ')' : '')).join(', ') }}
Ref. catastral
{{ inmuebleDetalle.referencia_catastral || '—' }}
Superficie
{{ inmuebleDetalle.superficie_m2 ? inmuebleDetalle.superficie_m2 + ' m²' : '—' }}
Tipo
{{ inmuebleDetalle.tipo_inmueble === 'habitaciones' ? 'Por habitaciones' : 'Tradicional' }}
Propietario
{{ inmuebleDetalle.propietario_nombre || '—' }}
NIF propietario
{{ inmuebleDetalle.propietario_nif || '—' }}
Ocupación
{{ ocupacionInmueble(inmuebleDetalle).label }}
Total cobrado
{{ formatoEUR(estadisticaDe(inmuebleDetalle.id).totalCobrado) }}
Rentabilidad anual
{{ estadisticaDe(inmuebleDetalle.id).rentabilidadPct !== null ? estadisticaDe(inmuebleDetalle.id).rentabilidadPct.toFixed(2) + '%' : '—' }}
{{ inmuebleDetalle.notas }}
Gestores
- {{ g.nombre }} · {{ g.telefono }}
- Sin gestores asignados.
Datos económicos
Precio de compra
{{ inmuebleDetalle.precio_compra ? formatoEUR(inmuebleDetalle.precio_compra) : '—' }}
Fecha de compra
{{ inmuebleDetalle.fecha_compra || 'Pendiente escritura' }}
Importe hipoteca
{{ inmuebleDetalle.importe_hipoteca ? formatoEUR(inmuebleDetalle.importe_hipoteca) : '—' }}
Entidad hipoteca
{{ inmuebleDetalle.entidad_hipoteca || '—' }}
Cuota hipoteca
{{ inmuebleDetalle.cuota_hipoteca ? formatoEUR(inmuebleDetalle.cuota_hipoteca) : '—' }}
Notas y actividad
Próxima acción
{{ inmuebleDetalle.proxima_accion }}{{ inmuebleDetalle.proxima_accion_fecha ? ' — ' + fmtFecha(inmuebleDetalle.proxima_accion_fecha) : '' }}{{ inmuebleDetalle.proxima_accion_hora ? ' ' + inmuebleDetalle.proxima_accion_hora : '' }}
-
{{ a.texto }}
{{ new Date(a.fecha).toLocaleString('es-ES') }}{{ a.autor ? ' · ' + a.autor : '' }}
- Sin notas todavía. Los cambios de estado y las notas que añadas aparecerán aquí.
Habitaciones ({{ habitacionesDe(inmuebleDetalle.id).filter(h=>h.inquilino_id).length }}/{{ habitacionesDe(inmuebleDetalle.id).length }} ocupadas)
| Habitación | Inquilino | Renta | Estado | |
|---|---|---|---|---|
| {{ h.nombre }} | {{ h.renta ? formatoEUR(h.renta) : '—' }} | {{ h.inquilino_id ? 'Ocupada' : 'Libre' }} | ||
| Sin habitaciones definidas. Añade las habitaciones y asigna un inquilino a cada una. | ||||
Contratos
| Inquilino | Inicio | Fin | Renta/mes | Estado |
|---|---|---|---|---|
| {{ nombreInquilino(c.inquilino_id) }} | {{ c.fecha_inicio }} | {{ c.fecha_fin || '—' }} | {{ formatoEUR(c.renta_mensual) }} | {{ c.estado }} |
| Sin contratos para este inmueble. | ||||
Recibos
| Nº | Periodo | Total | Estado |
|---|---|---|---|
| {{ r.numero }} | {{ nombresMeses[r.periodo_mes-1] }} {{ r.periodo_anio }} | {{ formatoEUR(r.total) }} | {{ r.estado }} |
| Sin recibos todavía. | |||
Inquilinos y contratos
| Inmueble | Inquilino | Inicio | Fin | Renta/mes | Estado | |
|---|---|---|---|---|---|---|
| {{ nombreInmueble(c.inmueble_id) }} | {{ nombreInquilino(c.inquilino_id) }} | {{ c.fecha_inicio }} | {{ c.fecha_fin || '—' }} | {{ formatoEUR(c.renta_mensual) }} | {{ c.estado }} | |
| No hay contratos todavía. | ||||||
Inquilinos ({{ inquilinos.length }})
| Nombre | NIF | Teléfono | ||
|---|---|---|---|---|
| {{ i.nombre }} | {{ i.nif || '—' }} | {{ i.email || '—' }} | {{ i.telefono || '—' }} | |
| No hay inquilinos todavía. | ||||
Ingresos
El día 1 de cada mes se generan solos los ingresos del mes. El cobro se marca automáticamente al conciliar con el banco (no a mano).
{{ recibosVencidos.length }} recibo(s) vencido(s) sin cobrar — {{ formatoEUR(recibosVencidos.reduce((a,r)=>a+Number(r.total),0)) }}
Recibos de meses anteriores aún pendientes. Usa el botón "Recordatorio" para reclamar por email.
{{ mensajeGeneracion }}
Pendiente de cobro
{{ formatoEUR(totalesRecibos.pendiente) }}
{{ recibos.filter(r=>r.estado==='pendiente').length }} recibos
Cobrado
{{ formatoEUR(totalesRecibos.cobrado) }}
{{ recibos.filter(r=>r.estado==='cobrado').length }} recibos
Total emitido
{{ formatoEUR(totalesRecibos.pendiente + totalesRecibos.cobrado) }}
{{ recibos.filter(r=>r.estado!=='anulado').length }} recibos
| Nº | Periodo | Inmueble | Inquilino | Total | Estado | |
|---|---|---|---|---|---|---|
| {{ r.numero }} | {{ nombresMeses[r.periodo_mes-1] }} {{ r.periodo_anio }} | {{ nombreInmueble(contratoDe(r.contrato_id)?.inmueble_id) }} | {{ nombreInquilino(contratoDe(r.contrato_id)?.inquilino_id) }} | {{ formatoEUR(r.total) }}cobrado {{ formatoEUR(r.importe_cobrado) }} | vencido {{ r.estado }} | Recordatorio |
| No hay ingresos para este filtro. | ||||||
Conciliación bancaria
Sube el extracto de cada banco y casa cada movimiento con un recibo, factura o gasto. Al conciliar se crea el asiento contable; al desconciliar se elimina.
{{ mensajeExtracto }}
| {{ c }} | Conciliado con | Acción |
|---|---|---|
| {{ celdaBanco(m, c) }} Quedan {{ formatoEUR(restanteMovimiento(m)) }} |
{{ detalleCasado(m).titulo }}
Parcial
{{ detalleCasado(m).subtitulo }} Cobrado {{ detalleCasado(m).progreso }} |
|
| {{ buscarConcil ? 'Sin resultados para la búsqueda.' : (subVistaConcil === 'desconciliado' ? 'No hay movimientos sin conciliar en ' + bancoActivo + '. Sube el extracto arriba.' : 'Todavía no has conciliado ningún movimiento de ' + bancoActivo + '.') }} |
Contabilidad analítica
Cada asiento se imputa a su inmueble (centro de coste). Filtra por inmueble para ver su resultado.
Resultado por inmueble
| Inmueble | Ingresos | Gastos | Resultado | |
|---|---|---|---|---|
| {{ r.nombre }} | {{ formatoEUR(r.ingresos) }} | {{ formatoEUR(r.gastos) }} | {{ formatoEUR(r.resultado) }} | |
| Sin asientos todavía. | ||||
Libro de asientos ({{ asientosFiltrados.length }})
| Fecha | Concepto | Cuenta | Inmueble | Tipo | Importe |
|---|---|---|---|---|---|
| {{ a.fecha }} | {{ a.concepto }} | {{ nombreCuenta(a.cuenta_codigo) }} | {{ a.inmueble_id ? nombreInmueble(a.inmueble_id) : '—' }} | {{ a.tipo }} | {{ formatoEUR(a.importe) }} |
| Sin asientos para este filtro. Se crean automáticamente al conciliar movimientos bancarios. | |||||
Próximos hitos
Firmas en notaría, fin de contratos y vencimientos de proveedores. Pulsa "Añadir a Google Calendar" para crear el evento en tu calendario.
| Fecha | Hito | Tipo | |
|---|---|---|---|
| {{ fmtFecha(h.fecha) }} {{ diasParaVencer(h.fecha) < 0 ? 'pasado' : 'en ' + diasParaVencer(h.fecha) + ' días' }} | {{ h.titulo }} | {{ h.tipo }} | Añadir a Google Calendar |
| No hay hitos con fecha. Añade una "próxima acción" con fecha a un inmueble, o fechas de fin a contratos/proveedores. | |||
Estadísticas y rentabilidad
Ingresos y gastos según el periodo elegido (de los asientos contables). Mostrando: {{ etiquetaPeriodoStats() }}.
Inversión total
{{ formatoEUR(statsTotales.inversion) }}
Ingresos ({{ etiquetaPeriodoStats() }})
{{ formatoEUR(statsTotales.ingresos) }}
Gastos ({{ etiquetaPeriodoStats() }})
{{ formatoEUR(statsTotales.gastos) }}
Resultado ({{ etiquetaPeriodoStats() }})
{{ formatoEUR(statsTotales.resultado) }}
| Inmueble | Precio compra | Renta actual/mes | Ingresos ({{ etiquetaPeriodoStats() }}) | Gastos ({{ etiquetaPeriodoStats() }}) | Resultado | Rentab. bruta | Rentab. neta |
|---|---|---|---|---|---|---|---|
| {{ inm.nombre }} | {{ inm.precio_compra ? formatoEUR(inm.precio_compra) : '—' }} | {{ contratoActivoDe(inm.id) ? formatoEUR(contratoActivoDe(inm.id).renta_mensual) : '—' }} | {{ formatoEUR(statsInmueble(inm.id).ingresos) }} | {{ statsInmueble(inm.id).gastos ? formatoEUR(statsInmueble(inm.id).gastos) : '—' }} | {{ formatoEUR(statsInmueble(inm.id).resultado) }} | {{ estadisticaDe(inm.id).rentabilidadPct.toFixed(2) }}% — | {{ estadisticaDe(inm.id).rentabilidadNetaPct.toFixed(2) }}% — |
La rentabilidad bruta/neta es una estimación anual sobre el contrato activo y el precio de compra (no depende del periodo).
Facturación
Crea la factura en borrador y, al aprobarla, se le asigna el número correlativo definitivo.
| Nº | Fecha | Cliente | Concepto | Total | Estado | |
|---|---|---|---|---|---|---|
| {{ f.numero || '(borrador)' }} | {{ f.fecha_emision || '—' }} | {{ f.cliente_nombre }} | {{ f.concepto }} | {{ formatoEUR(f.total) }} | {{ f.estado }} | |
| No hay facturas para este filtro. | ||||||
Contratos con proveedores
Seguros, mantenimiento, suministros... con su fecha de vencimiento.
{{ proveedoresVencenPronto.length }} contrato(s) vencen en los próximos 60 días: {{ proveedoresVencenPronto.map(p => p.proveedor).join(', ') }}
| Proveedor | Tipo | Inmueble | Vencimiento | Importe | |
|---|---|---|---|---|---|
| {{ p.proveedor }} | {{ p.tipo }} | {{ p.inmueble_id ? nombreInmueble(p.inmueble_id) : 'General' }} | {{ p.fecha_fin }} ({{ diasParaVencer(p.fecha_fin) < 0 ? 'vencido' : 'en ' + diasParaVencer(p.fecha_fin) + ' días' }}) — | {{ p.importe ? formatoEUR(p.importe) + '/' + p.periodicidad : '—' }} | |
| Sin contratos de proveedores. Añade aquí seguros, mantenimiento, alarmas... | |||||
Gastos
{{ formatoEUR(totalGastosAnio) }} este año · {{ formatoEUR(totalGastosMes) }} este mes
{{ errorFactura }}
Recurrentes mensuales (se generan solos el día 1)
| Concepto | Inmueble | Categoría | Importe/mes | Día | Estado | |
|---|---|---|---|---|---|---|
| {{ g.concepto }} | {{ nombreInmueble(g.inmueble_id) }} | {{ g.categoria }} | {{ formatoEUR(g.importe) }} | {{ g.dia_mes }} | {{ g.activo ? 'Activo' : 'Pausado' }} | |
| Sin gastos recurrentes. Crea aquí la hipoteca, comunidad, seguros... y se registrarán solos cada mes. | ||||||
Histórico de gastos
| Fecha | Inmueble | Concepto | Categoría | Proveedor | Importe | |
|---|---|---|---|---|---|---|
| {{ g.fecha }} | {{ nombreInmueble(g.inmueble_id) }} | {{ g.concepto }} | {{ g.categoria }} | {{ g.proveedor || '—' }} | {{ formatoEUR(g.importe) }} | |
| No hay gastos registrados todavía. | ||||||
Incidencias
{{ incidencias.filter(i=>i.estado!=='resuelta').length }} abiertas · {{ incidencias.filter(i=>i.estado==='resuelta').length }} resueltas
| Apertura | Inmueble | Incidencia | Prioridad | Proveedor | Coste | Estado | |
|---|---|---|---|---|---|---|---|
| {{ i.fecha_apertura }} | {{ nombreInmueble(i.inmueble_id) }} | {{ i.titulo }} | {{ i.prioridad }} | {{ i.proveedor || '—' }} | {{ i.coste ? formatoEUR(i.coste) : '—' }} | ||
| No hay incidencias para este filtro. | |||||||
Asistente IA
Pregunta lo que quieras sobre tu cartera: impagos, rentabilidades, contratos que vencen, gastos de un piso...
Ej.: "¿Qué recibos están sin cobrar?", "¿Cuál es el piso más rentable?", "¿Cuánto he gastado en reparaciones este año?"
Pensando...
Ajustes
Mi perfil
Tu nombre y correo. El rol lo asigna un administrador.
| Orden | Estado | Inmuebles | |
|---|---|---|---|
| {{ e.orden }} | {{ e.label }} | {{ inmuebles.filter(i => i.estado === e.id).length }} |
| Código | Cuenta | Tipo | |
|---|---|---|---|
| {{ c.codigo }} | {{ c.nombre }} | {{ c.tipo }} | |
| Ejecuta el SQL 13 para cargar el plan de cuentas básico. | |||
Recomendación automática por categoría:
Alquiler → 752 · Repercusiones (agua/luz al inquilino) → 759 · Comunidad → 629 · Suministros → 628 · IBI → 631 · Seguro → 625 · Reparación → 622 · Hipoteca (intereses) → 662 · Gestoría → 623
Usuarios con acceso
| Nombre | Rol | ||
|---|---|---|---|
| {{ u.nombre }} | {{ u.email }} | {{ u.rol }} |