🟦 Estructura de tablas
🟦 Tabla 0. Personal
| Campo |
Tipo |
Propiedades / Detalles |
| Estado |
Opciones |
(Activo, Inactivo) |
| Nombre |
Texto |
— |
| Coste/Hora (€) |
Numérico |
— |
| NIF |
Texto |
— |
| Teléfono |
Texto |
— |
| Fecha Nac. |
Fecha |
— |
| Fecha Alta |
Fecha |
— |
| Fecha Baja |
Fecha |
— |
| Documentación |
Archivo |
— |
| Usuario |
Miembro |
— |
🟦 Tabla 0.1 Vacaciones y ausencias
| Campo |
Tipo |
Propiedades / Detalles |
| Usuario |
Miembro |
— |
| Fecha Inicio |
Fecha |
— |
| Fecha Fin |
Fecha |
— |
| Días Periodo |
Fórmula |
datetime_diff([Fecha Inicio],[Fecha Fin],"wd") |
| Tipo |
Opciones |
(Vacaciones, Baja) |
| Estado |
Opciones |
(Pendiente validar, Aprobada, Denegada). Valor por defecto: Pendiente validar |
| Estado (no Edit) |
Fórmula |
[Estado] |
🟦 Tabla 0.2 Registro de jornada
| Campo |
Tipo |
Propiedades / Detalles |
| Usuario |
Miembro |
— |
| Inicio jornada |
Fecha |
Mostrar hora |
| Fin jornada |
Fecha |
Mostrar hora |
| Estado usuario |
Opciones |
(Pendiente, Confirmada). Bloquear tras seleccionar |
| Horas jornadas |
Fórmula |
datetime_diff([Inicio jornada], [Fin jornada], "ss"). Mostrar como duración (HH:mm) |
| Validación |
Opciones |
(Pendiente, Validada, Rechazada). Valor por defecto: Pendiente |
| Validación (no Edit) |
Fórmula |
[Validación] |
🟦 Tabla 1. Entidades
| Campo |
Tipo |
Propiedades / Detalles |
| entidad_tipo |
Opciones |
(Cliente, Proveedor, Ourselves) |
| Razón Social |
Texto |
— |
| entidad_fiscal |
Opciones |
(Empresa, Persona Física) |
| Nombre |
Texto |
— |
| Apellido 1 |
Texto |
— |
| Apellido 2 |
Texto |
— |
| CIF/NIF |
Texto |
— |
| Contacto |
Texto |
— |
| Contacto 2 |
Relación |
Tabla: 1.1 Contactos. Campo: Contacto. Filtro: Empresa = Nombre |
| Teléfono |
Texto |
— |
| email |
Texto |
— |
| país |
Relación |
Tabla: Países ISO_3166. Selecciona el país tras crear el catálogo |
| provincia |
Texto |
— |
| ciudad |
Texto |
— |
| direccion |
Texto |
— |
| CP |
Numérico |
— |
| Logo |
Archivo |
— |
| Verifactu |
Texto |
— |
| CCC Recibo Dom. |
Texto |
— |
| Campo |
Tipo |
Propiedades / Detalles |
| Contacto |
Texto |
— |
| Empresa |
Relación |
Tabla: 1. Entidades. Campo: Nombre |
| Teléfono |
Numérico |
— |
| red social |
Texto |
— |
🟦 Tabla 2. Proyectos
| | |
|---|
| Campo | Tipo | Propiedades / Detalles |
| Proy Id | Fórmula | concat("PROY-",[ID]) |
| Estado | Opciones | (Opp. Ganada... Bloqueado) |
| Cliente | Relación | Tabla: 1. Entidades. Campo: Nombre. Filtro: entidad_tipo = Cliente |
| Proyecto | Texto | — |
| Descripción | Texto | — |
| Respo. comercial | Usuario | — |
| Tipología Serv. | Opciones | (Mantenimiento, Instalación) |
| Fecha Inicio | Fecha | — |
| Fecha Fin | Fecha | — |
| Docs. | Archivo | — |
| Coste Pers. (€) | Fórmula | sumifs([6. Incurridos->Coste Asignación (€)],[6. Incurridos->Proy Id] = [Proy Id]) |
| Coste Gastos (€) | Fórmula | sumifs([7. Gastos->Importe (€)],[7. Gastos->Proy Id] = [Proy Id]) |
| Coste Fact. (€) | Fórmula | sumifs([8. Facturas Recibidas->Base Imponible (€)],[8. Facturas Recibidas->Proy Id] = [Proy Id]) |
| Coste Total (€) | Fórmula | [Coste Pers. (€)]+[Coste Gastos (€)]+[Coste Fact. (€)] |
| Ingreso Ppto. (€) | Fórmula | sumifs([3. Presupuestos->Importe Final (€)],[3. Presupuestos->Proy Id] = [Proy Id],[3. Presupuestos->Estado] = "Aprobado") |
| Rentabilidad (%) | Fórmula | if([Ingreso Ppto. (€)]!=0,([Ingreso Ppto. (€)]-[Coste Total (€)])/[Ingreso Ppto. (€)],0). Formato: % |
| Ingreso Ppto. Cert. (€) | Fórmula | sumifs([3. Presupuestos->Importe Ppto Cert. (€)],[3. Presupuestos->Proy Id] = [Proy Id],[3. Presupuestos->Estado] = "Aprobado") |
| % Avance | Fórmula | [Ingreso Ppto. Cert. (€)]/[Ingreso Ppto. (€)]. Formato: % |
| Rentabilidad (€) | Fórmula | [Ingreso Ppto. (€)]-[Coste Total (€)] |
🟦 Tabla 3. Presupuestos
| Campo |
Tipo |
Propiedades / Detalles |
| Duplicar Pres. |
Opciones |
(Duplicar, Duplicado). Valor defecto: Duplicar. Bloquear tras selección |
| Ppto Id |
Fórmula |
concat("PPTO-",[ID]) |
| Proy Id |
Relación |
Tabla: 2. Proyectos. Campo: Proy Id |
| Nombre Ppto |
Texto |
— |
| Estado |
Opciones |
(Aprobado, Descartado, Pendiente). Valor defecto: Pendiente |
| Coste Ppto (€) |
Fórmula |
sumifs([3.1 Presupuestos Desglose->Coste Item (€)],[3.1 Presupuestos Desglose->Ppto Id] = [Ppto Id]) |
| Coste Material (€) |
Fórmula |
sumifs([3.1 Presupuestos Desglose->Coste Mat. Item (€)],[3.1 Presupuestos Desglose->Ppto Id] = [Ppto Id]) |
| Coste MO (€) |
Fórmula |
sumifs([3.1 Presupuestos Desglose->Coste MO Item (€)],[3.1 Presupuestos Desglose->Ppto Id] = [Ppto Id]) |
| Coste Maquinaria (€) |
Fórmula |
sumifs([3.1 Presupuestos Desglose->Coste Maq. Item (€)],[3.1 Presupuestos Desglose->Ppto Id] = [Ppto Id]) |
| BC3 Import |
Archivo |
— |
| Importe Ppto (€) |
Fórmula |
sumifs([3.1 Presupuestos Desglose->ImpPres],[3.1 Presupuestos Desglose->Ppto Id] = [Ppto Id]) |
| Dto. (%) |
Numérico |
— |
| Importe Final (€) |
Fórmula |
[Importe Ppto (€)]*(1-[Dto. (%)]/100) |
| Rentabilidad (%) |
Fórmula |
if([Importe Final (€)]!=0,(([Importe Final (€)]-[Coste Ppto (€)])/[Importe Final (€)]*100),0) |
| Acciones |
Opciones |
(Generar doc de presupuesto, Doc de presupuesto generado). Valor defecto: Generar doc... Bloquear tras selección |
| Ppto Doc |
Archivo |
— |
| Crear de plantilla |
Opciones |
(Plantilla Clima Hotel... aerotermina). Bloquear tras selección |
| Plantilla |
Opciones |
(Climatización Hotel, Electricidad Vivienda) |
| Importe Ppto Cert. (€) |
Fórmula |
sumifs([3.1 Presupuestos Desglose->Imp. Ppto Cert. (€)],[3.1 Presupuestos Desglose->Ppto Id] = [Ppto Id]) |
| % Avance |
Fórmula |
[Importe Ppto Cert. (€)]/[Importe Ppto (€)]. Formato: %, Barra |
🟦 Tabla 3.1 Presupuesto desglose
| Campo |
Tipo |
Propiedades / Detalles |
| Ppto Id |
Relación |
Tabla: 3. Presupuestos. Campo: Ppto Id. Descripción: Nombre Ppto |
| Concepto Id |
Fórmula |
concat("PPTO-",[ID]) |
| Padre |
Relación |
Tabla: 3.1. Campo: Concepto Id. Filtros: ID ≠ ID, Ppto Id = Ppto Id. Descripción: Concepto |
| Concepto |
Texto |
— |
| Descripción |
Texto |
— |
| Nombre Desc |
Fórmula |
lookup([Descompuesto],[4. Descompuestos->Desc. Id],[4. Descompuestos->Descompuesto]) |
| Estado Ppto |
Fórmula |
lookup([Ppto Id],[3. Presupuestos->Ppto Id],[3. Presupuestos->Estado]) |
| Uds |
Texto |
— |
| Descompuesto |
Relación |
Tabla: 4. Descompuesto. Campo: Desc. Id |
| CantPres |
Numérico |
— |
| Coste Ud (€) |
Numérico |
— |
| plantilla |
Opciones |
(Plantilla Hotel Clima) |
| PrPres |
Fórmula |
[Precio Ud (€)]*(1-([Dto. (%)]/100)) |
| Proy Id |
Fórmula |
lookup([Ppto Id],[3. Presupuestos->Ppto Id], [3. Presupuestos->Proy Id]) |
| ImpPres |
Fórmula |
[CantPres]*[PrPres] |
| Certific. Acum. |
Fórmula |
sumifs([10.1. Líneas Certificación->Certificación],[10.1. Líneas Certificación->Concepto Id] = [Concepto Id],[10.1. Líneas Certificación->Estado] = "Certificada") |
| Coste Mat. Ud (€) |
Numérico |
— |
| Coste MO Ud (€) |
Numérico |
— |
| Coste Maq. Ud (€) |
Numérico |
— |
| Coste Mat. Item (€) |
Fórmula |
[CantPres]*[Coste Mat. Ud (€)] |
| Coste MO Item (€) |
Fórmula |
[CantPres]*[Coste MO Ud (€)] |
| Coste Maq. Item (€) |
Fórmula |
[CantPres]*[Coste Maq. Ud (€)] |
| BC3 code |
Texto |
— |
| Certificado (%) |
Fórmula |
if([CantPres] != 0, [Certific. Acum.]/[CantPres],0). Formato: %, Barra |
| Imp. Ppto Cert. (€) |
Fórmula |
[Certific. Acum.]*[PrPres] |
🟦 Tabla 4. Descompuestos
| Campo |
Tipo |
Propiedades / Detalles |
| Estado |
Opciones |
(Activo, Inactivo) |
| Catálogo |
Relación |
Tabla: Catálogos. Campo: Catálogo |
| Desc. Id |
Fórmula |
concat("DESC-",[ID]) |
| Descompuesto |
Texto |
— |
| Coste Desc. (€) |
Fórmula |
sumifs([4.1 Descompuestos Desglose->Coste Item (€)],[4.1 Descompuestos Desglose->Descompuesto] = [Desc. Id]) |
| Coste Material (€) |
Fórmula |
sumifs([4.1 Descompuestos Desglose->Coste Item (€)],[4.1 Descompuestos Desglose->Descompuesto] = [Desc. Id],[4.1 Descompuestos Desglose->Categoría Art.] = "Material") |
| Coste MO (€) |
Fórmula |
sumifs([4.1 Descompuestos Desglose->Coste Item (€)],[4.1 Descompuestos Desglose->Descompuesto] = [Desc. Id],[4.1 Descompuestos Desglose->Categoría Art.] = "Mano Obra") |
| Coste Maquinaria (€) |
Fórmula |
sumifs([4.1 Descompuestos Desglose->Coste Item (€)],[4.1 Descompuestos Desglose->Descompuesto] = [Desc. Id],[4.1 Descompuestos Desglose->Categoría Art.] = "Maquinaria") |
🟦 Tabla 4.1 Descompuestos Desglose
| Campo |
Tipo |
Propiedades / Detalles |
| Descompuesto |
Relación |
Tabla: 4. Descompuestos. Campo: Desc. Id |
| Artículo |
Relación |
Tabla: 5. Artículos Simples. Campo: Art. Id. Filtro: Estado = Activo |
| Coste Ud (€) |
Fórmula |
lookup([Artículo],[5. Artículos Simples->Art. Id],[5. Artículos Simples->Coste Ud (€)]) |
| Cantidad |
Numérico |
— |
| Coste Item (€) |
Fórmula |
[Coste Ud (€)]*[Cantidad] |
| Categoría Art. |
Fórmula |
lookup([Artículo],[5. Artículos Simples->Art. Id],[5. Artículos Simples->Categoría]) |
| Art. Desc. |
Fórmula |
lookup([Artículo],[5. Artículos Simples->Art. Id],[5. Artículos Simples->Artículo]) |
🟦 Tabla 5. Artículos Simples
| Campo |
Tipo |
Propiedades / Detalles |
| Art- Id |
Fórmula |
concat("ART-",[ID]) |
| Artículo |
Texto |
— |
| Descripción |
Texto |
— |
| Proveedor |
Relación |
Tabla: 1. Entidades. Campo: Nombre. Filtro: entidad_tipo = Proveedor |
| Coste Ud (€) |
Numérico |
— |
| Categoría |
Opciones |
(Material, Mano Obra, Maquinaria, Subcontrata) |
| Estado |
Opciones |
(Activo, Inactivo). Valor defecto: Activo |
| Catálogo |
Relación |
Tabla: Catálogos. Campo: Catálogo |
| Descuento proveedor |
Numérico |
Formato: % |
| Coste final |
Fórmula |
[Coste Ud (€)]*(1-[Descuento proveedor]) |
| Ficha técnica |
Archivo |
— |
🟦 Tabla 6. Incurridos
| Campo |
Tipo |
Propiedades / Detalles |
| Art- Id |
Fórmula |
concat("ART-",[ID]) |
| Proy Id |
Relación |
Tabla: 2. Proyectos. Campo: Proy Id. Filtro: Estado = (En curso, Bloqueado) |
| Empleado |
Fórmula |
lookup([Usuario],[0. Personal->Usuario],[0. Personal->Nombre]) |
| Estado |
Opciones |
(Validado, Pendiente). Valor defecto: Pendiente |
| Estado (No Edit) |
Fórmula |
[Estado] |
| Día Asignación |
Fecha |
Valor defecto: Hoy |
| Horas |
Numérico |
— |
| Coste/Hora (€) |
Fórmula |
lookup([Usuario],[0. Personal->Usuario],[0. Personal->Coste/Hora (€)]) |
| Coste Asignación (€) |
Fórmula |
[Coste/Hora (€)]*[Horas] |
| Usuario |
Miembro |
— |
| Nombre Empleado |
Texto |
— |
🟦 Tabla 7. Gastos
| Campo |
Tipo |
Propiedades / Detalles |
| Proy Id |
Relación |
Tabla: 2. Proyectos. Campo: Proy Id |
| Usuario |
Miembro |
— |
| Gasto |
Texto |
— |
| Importe (€) |
Numérico |
— |
| Fecha |
Fecha |
— |
| Justificación |
Texto |
— |
| Tipo Gasto |
Opciones |
(Dieta, Kilometraje, Alojamiento) |
| Estado |
Opciones |
(Validado, Pdte. Justificación, Rechazado) |
| Estado (no edit) |
Fórmula |
[Estado] |
| Ticket |
Archivo |
— |
🟦 Tabla 8. Facturas Recibidas
| Campo |
Tipo |
Propiedades / Detalles |
| Nombre Proveedor |
Relación |
Tabla: 1. Entidades. Campo: Razón Social. Filtro: entidad_tipo = Proveedor |
| CIF/NIF |
Fórmula |
if([Nombre Proveedor] != "", lookup([Nombre Proveedor], [1. Entidades->Razón Social], [1. Entidades->CIF/NIF]), "") |
| Número Factura |
Texto |
— |
| Fecha |
Fecha |
— |
| Base Imponible (€) |
Numérico |
— |
| IVA (%) |
Numérico |
— |
| IVA (€) |
Numérico |
— |
| Total (€) |
Numérico |
— |
| Documento |
Archivo |
— |
| (AI-Agent) sellerTax... |
Texto |
— |
| (AI-Agent) sellerCorp... |
Fórmula |
if([(AI-Agent) sellerTaxIdentificationNumber] != "", lookup([(AI-Agent) sellerTaxIdentificationNumber], [1. Entidades->CIF/NIF],[1. Entidades->Razón Social]), "") |
| Email Factura |
Texto |
— |
| Proy Id |
Relación |
Tabla: 2. Proyectos. Campo: Proy Id. Filtro: Estado = (En Curso... Bloqueado) |
| Nombre Proyecto |
Fórmula |
lookup([Proy Id], [2. Proyectos->Proy Id], [2. Proyectos->Proyecto]) |
| Proveedor |
Fórmula |
if([Nombre Proveedor] != "", lookup([Nombre Proveedor], [1. Entidades->Razón Social], [1. Entidades->Nombre]), "") |
🟦 Tabla 9. Pedidos
| Campo |
Tipo |
Propiedades / Detalles |
| Pedido Id |
Fórmula |
concat("PO-",[ID]) |
| Proy Id |
Relación |
Tabla: 2. Proyectos. Campo: Proy Id. Filtro: Estado = (En Curso... Bloqueado) |
| Proveedor |
Relación |
Tabla: 1. Entidades. Campo: Razón Social. Filtro: entidad_tipo = Proveedor |
| Fecha |
Fecha |
— |
| Documento |
Archivo |
— |
| Acciones |
Opciones |
(1. Generar Pedido) |
| Observaciones |
Texto |
— |
| Estado |
Opciones |
(1. En Curso... 4. Recibido). Valor defecto: 1. En Curso |
🟦 Tabla 10. Certificaciones
| Campo |
Tipo |
Propiedades / Detalles |
| Cert Id |
Fórmula |
concat("CERT-",[ID]) |
| Proy Id |
Relación |
Tabla: 2. Proyectos. Campo: Proy Id |
| Ppto Id |
Relación |
Tabla: 3. Presupuestos. Filtros: Proy Id = Proy Id, Estado = Aprobado |
| Proy Id - calc |
Fórmula |
lookup([Ppto Id],[3. Presupuestos->Ppto Id],[3. Presupuestos->Proy Id]) |
| Cert. Actual (€) |
Fórmula |
sumifs([10.1. Líneas Certificación->Imp. Cert.],[10.1. Líneas Certificación->Cert Id] = [Cert Id]) |
| Cert. Origen Ant. (€) |
Fórmula |
sumifs([10. Certificaciones->Cert. Actual (€)],[10. Certificaciones->Ppto Id] = [Ppto Id],[10. Certificaciones->ID] < [ID], [10. Certificaciones->Estado] = "Certificada") |
| Cert. A Origen (€) |
Fórmula |
[Cert. Actual (€)]+[Cert. Origen Ant. (€)] |
| Acciones |
Opciones |
(1. Generar Certificación, 2. Validar Certificación) |
| Doc. Cert. |
Archivo |
— |
| Cert. Fecha |
Fecha |
— |
| Estado |
Opciones |
(Pendiente, Certificada). Valor defecto: Pendiente |
🟦 Tabla 10.1 Líneas Certificación
| Campo |
Tipo |
Propiedades / Detalles |
| Cert Id |
Relación |
Tabla: 10. Certificaciones. Campo: Cert Id |
| Ppto Id |
Relación |
Tabla: 3. Presupuestos. Campo: Ppto Id |
| Concepto Id |
Relación |
Tabla: 3.1. Filtros: Ppto Id = Ppto Id, Padre ≠ vacío. Descripción: Concepto |
| CantPres |
Fórmula |
lookup([Concepto Id],[3.1->Concepto Id],[3.1->CantPres]) |
| Certific. Acum. |
Fórmula |
lookup([Concepto Id],[3.1->Concepto Id],[3.1->Certific. Acum.]) |
| Certificación |
Numérico |
— |
| PrPres |
Fórmula |
lookup([Concepto Id],[3.1->Concepto Id],[3.1->PrPres]) |
| Imp. Cert. |
Fórmula |
[Certificación]*[PrPres] |
| Concepto |
Fórmula |
lookup([Concepto Id],[3.1->Concepto Id],[3.1->Concepto]) |
| Estado |
Opciones |
(Pendiente, Certificada). Valor defecto: Pendiente |
Tablas de facturación con VERI*FACTU
La plantilla de facturación nativa incorpora borradores, líneas, facturas
expedidas, historial y correcciones, además de los catálogos fiscales. Consulta
la guía de recursos de VERI*FACTU
para completar los datos y activar las automatizaciones actuales.