AccountingPlanImport
in package
Importa un plan contable (cuentas y subcuentas) en un ejercicio desde un fichero CSV o XML, dentro de una transacción. Actualiza primero la tabla de cuentas especiales y, si algo falla, revierte todos los cambios.
Tags
Table of Contents
Properties
Methods
- __construct() : mixed
- importCSV() : bool
- Importa el plan contable desde un fichero CSV en el ejercicio indicado.
- importXML() : bool
- Importa el plan contable desde un fichero XML en el ejercicio indicado, procesando en orden grupos, epígrafes, cuentas y subcuentas dentro de una transacción. Si algo falla, se revierte todo.
- createAccount() : bool
- Crea una cuenta en el ejercicio si no existe. Si ya existe con ese código, la deja como está (no actualiza descripción ni cuenta especial).
- createSubaccount() : bool
- Crea una subcuenta en el ejercicio si no existe, ajustando además la longitud de subcuenta del ejercicio al tamaño del primer código importado.
- getData() : SimpleXMLElement|array<string|int, mixed>
- Devuelve el contenido del XML como SimpleXMLElement, o un array vacío si el fichero no existe.
- importCuenta() : bool
- Importa las cuentas del XML (nodo <cuenta>) creándolas bajo su epígrafe.
- importEpigrafe() : bool
- Importa los epígrafes del XML (nodo <epigrafes>) creándolos bajo su grupo.
- importEpigrafeGroup() : bool
- Importa los grupos del XML (nodo <grupo_epigrafes>) como cuentas raíz.
- importSubcuenta() : bool
- Importa las subcuentas del XML (nodo <subcuenta>) bajo su cuenta padre.
- processCsvData() : bool
- Lee el CSV (código, descripción, cuenta especial) y, deduciendo los niveles de la jerarquía por la longitud de los códigos, crea cuentas para la longitud mínima e intermedia, y subcuentas para la longitud máxima. El padre de cada código se localiza buscando otro código que sea prefijo suyo.
- searchParent() : string
- Devuelve el código padre del código indicado: el código más largo de la lista que sea prefijo del actual (sin incluirlo a sí mismo).
- updateSpecialAccounts() : void
- Actualiza la tabla de cuentas especiales desde el CSV de datos por defecto (Core/Data) antes de importar el plan, para que los códigos de cuenta especial referenciados estén disponibles.
Properties
$dataBase
protected
DataBase
$dataBase
$exercise
Ejercicio sobre el que se importa el plan contable.
protected
Ejercicio
$exercise
Methods
__construct()
public
__construct() : mixed
importCSV()
Importa el plan contable desde un fichero CSV en el ejercicio indicado.
public
importCSV(string $filePath, string $codejercicio) : bool
Todo el proceso se ejecuta en una transacción: si algo falla, se revierte.
Parameters
- $filePath : string
- $codejercicio : string
Return values
boolimportXML()
Importa el plan contable desde un fichero XML en el ejercicio indicado, procesando en orden grupos, epígrafes, cuentas y subcuentas dentro de una transacción. Si algo falla, se revierte todo.
public
importXML(string $filePath, string $codejercicio) : bool
Parameters
- $filePath : string
- $codejercicio : string
Return values
boolcreateAccount()
Crea una cuenta en el ejercicio si no existe. Si ya existe con ese código, la deja como está (no actualiza descripción ni cuenta especial).
protected
createAccount(string $code, string $definition[, string|null $parentCode = '' ][, string|null $codcuentaesp = '' ]) : bool
Parameters
- $code : string
- $definition : string
- $parentCode : string|null = ''
- $codcuentaesp : string|null = ''
Return values
boolcreateSubaccount()
Crea una subcuenta en el ejercicio si no existe, ajustando además la longitud de subcuenta del ejercicio al tamaño del primer código importado.
protected
createSubaccount(string $code, string $description, string $parentCode[, string|null $codcuentaesp = '' ]) : bool
Parameters
- $code : string
- $description : string
- $parentCode : string
- $codcuentaesp : string|null = ''
Return values
boolgetData()
Devuelve el contenido del XML como SimpleXMLElement, o un array vacío si el fichero no existe.
protected
getData(string $filePath) : SimpleXMLElement|array<string|int, mixed>
Parameters
- $filePath : string
Return values
SimpleXMLElement|array<string|int, mixed>importCuenta()
Importa las cuentas del XML (nodo <cuenta>) creándolas bajo su epígrafe.
protected
importCuenta(SimpleXMLElement $data) : bool
Parameters
- $data : SimpleXMLElement
Return values
boolimportEpigrafe()
Importa los epígrafes del XML (nodo <epigrafes>) creándolos bajo su grupo.
protected
importEpigrafe(SimpleXMLElement $data) : bool
Parameters
- $data : SimpleXMLElement
Return values
boolimportEpigrafeGroup()
Importa los grupos del XML (nodo <grupo_epigrafes>) como cuentas raíz.
protected
importEpigrafeGroup(SimpleXMLElement $data) : bool
Parameters
- $data : SimpleXMLElement
Return values
boolimportSubcuenta()
Importa las subcuentas del XML (nodo <subcuenta>) bajo su cuenta padre.
protected
importSubcuenta(SimpleXMLElement $data) : bool
Parameters
- $data : SimpleXMLElement
Return values
boolprocessCsvData()
Lee el CSV (código, descripción, cuenta especial) y, deduciendo los niveles de la jerarquía por la longitud de los códigos, crea cuentas para la longitud mínima e intermedia, y subcuentas para la longitud máxima. El padre de cada código se localiza buscando otro código que sea prefijo suyo.
protected
processCsvData(string $filePath) : bool
Parameters
- $filePath : string
Return values
boolsearchParent()
Devuelve el código padre del código indicado: el código más largo de la lista que sea prefijo del actual (sin incluirlo a sí mismo).
protected
searchParent(array<string|int, mixed> &$accountCodes, string $account) : string
Parameters
- $accountCodes : array<string|int, mixed>
- $account : string
Return values
stringupdateSpecialAccounts()
Actualiza la tabla de cuentas especiales desde el CSV de datos por defecto (Core/Data) antes de importar el plan, para que los códigos de cuenta especial referenciados estén disponibles.
protected
updateSpecialAccounts() : void