BuchungssatzImpl.javaProxy/adaptador para BuchungssatzDO — la entidad JPA que representa un asiento contable en org.projectforge.business.fibu.kost. Implementa la interfaz de informes Buchungssatz de org.projectforge.reporting. Javadoc: "Proxy para BuchungssatzDO".
Este es el clásico patrón Adaptador: una entidad JPA no puede implementar directamente una interfaz de informes (viven en módulos separados con diferentes grafos de dependencia), por lo que un envoltorio delega todas las llamadas al DO. Con 143 líneas, es el envoltorio Impl más grande del paquete de informes.
En su constructor, acepta un BuchungssatzDO, extrae objetos relacionados (Konto, GegenKonto, Kost1, Kost2) y envuelve cada uno en su clase Impl correspondiente: KontoImpl (#795), Kost1Impl, Kost2Impl. Todos los campos se almacenan en caché como final — se crean una vez durante la construcción y nunca se recalculan.
BuchungssatzDO implements Buchungssatz?La entidad JPA reside en el módulo projectforge-business, mientras que la interfaz de informes es consumida por el módulo de informes financieros. Una dependencia directa crearía una dependencia circular. El Adaptador resuelve esto: el DO no sabe nada sobre informes, y los informes obtienen datos a través del envoltorio. Además, el Impl puede transformar datos (ej. getFormattedMonth() llamando a StringHelper.format2DigitNumber()) sin contaminar el DO con lógica de formato específica de informes.
Cada getter simplemente delega al BuchungssatzDO subyacente:
| Método | Retorna | Fuente |
|---|---|---|
getId() | Long | Delegación directa |
getBeleg() | Número de documento | Delegación directa |
getBetrag() | BigDecimal importe | Delegación directa |
getComment() | String | Delegación directa |
getDatum() | LocalDate | Delegación directa |
getGegenKonto() | Konto | Proxy Impl en caché |
getKonto() | Konto | Proxy Impl en caché |
getKost1() | Kost1 | Proxy Impl en caché |
getKost2() | Kost2 | Proxy Impl en caché |
getMenge() | Cadena de cantidad | Delegación directa |
getMonth() | Integer | Delegación directa |
getFormattedMonth() | Cadena de 2 dígitos | Formateado vía StringHelper |
getSatznr() | Integer | Delegación directa |
getSh() | SHType (débito/crédito) | Delegación directa |
getText() | String | Delegación directa |
getYear() | Integer | Delegación directa |
El ID se migró de Integer a Long en el commit 4c04cfd65. Los campos de fecha usan java.time.LocalDate (migrado desde java.util.Date en 78b436d9e).
868d6abb7 2025 -> 2026 63081666f Encabezados de archivos fuente: 2024 -> 2025. 4c04cfd65 CAMBIO MAYOR! Migración de ids integer a ids Long (incluyendo fk's etc.) b6092df09 Copyright 2023 -> 2024 ab45d51fa Copyright 2001-2022 -> 2001-2023. 5f7ef41b8 Copyright 2021 -> 2022 ceb63e8a1 Encabezado de código fuente: (C) 2001-2021. a6a7aece4 Optimizar Importaciones 78b436d9e Reemplazar instancias de java.util.date y java.sql.Date con java.time.LocalDate 7c79f1922 Copyright del encabezado fuente -> 2020.