AccountingPlanImport
extends AccountingPlanImport
in package
Class created by Core/Internal/PluginsDeploy
Table of Contents
Properties
- $convertedCodes : array<string|int, mixed>
- Códigos de subcuenta ya convertidos en esta importación, para detectar colisiones.
- $dataBase : DataBase
- $exercise : Ejercicio
- Ejercicio sobre el que se importa el plan contable.
- $subaccountLength : int
- Longitud a la que convertir las subcuentas importadas. 0 para usar la del fichero.
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.
- checkSubaccountLength() : bool
- Comprueba que la longitud de las subcuentas del plan coincide con la del ejercicio. Si no coincide y el ejercicio está vacío, alinea la longitud del ejercicio avisando al usuario; si ya tiene subcuentas, devuelve false.
- convertSubaccountCode() : string
- Convierte un código de subcuenta a la longitud indicada, quitando o añadiendo ceros en la mayor secuencia de ceros del código. Si el código no tiene ceros, se insertan tras el código de la cuenta padre. Devuelve cadena vacía si el código no cabe en la longitud pedida.
- 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. Si ya existe con ese código, la deja como está.
- 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
$convertedCodes
Códigos de subcuenta ya convertidos en esta importación, para detectar colisiones.
protected
array<string|int, mixed>
$convertedCodes
= []
$dataBase
protected
DataBase
$dataBase
$exercise
Ejercicio sobre el que se importa el plan contable.
protected
Ejercicio
$exercise
$subaccountLength
Longitud a la que convertir las subcuentas importadas. 0 para usar la del fichero.
protected
int
$subaccountLength
= 0
Methods
__construct()
public
__construct() : mixed
importCSV()
Importa el plan contable desde un fichero CSV en el ejercicio indicado.
public
importCSV(string $filePath, string $codejercicio[, int $subaccountLength = 0 ]) : bool
Todo el proceso se ejecuta en una transacción: si algo falla, se revierte.
Parameters
- $filePath : string
- $codejercicio : string
- $subaccountLength : int = 0
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[, int $subaccountLength = 0 ]) : bool
Parameters
- $filePath : string
- $codejercicio : string
- $subaccountLength : int = 0
Return values
boolcheckSubaccountLength()
Comprueba que la longitud de las subcuentas del plan coincide con la del ejercicio. Si no coincide y el ejercicio está vacío, alinea la longitud del ejercicio avisando al usuario; si ya tiene subcuentas, devuelve false.
protected
checkSubaccountLength(int $length) : bool
Parameters
- $length : int
Return values
boolconvertSubaccountCode()
Convierte un código de subcuenta a la longitud indicada, quitando o añadiendo ceros en la mayor secuencia de ceros del código. Si el código no tiene ceros, se insertan tras el código de la cuenta padre. Devuelve cadena vacía si el código no cabe en la longitud pedida.
protected
convertSubaccountCode(string $code, string $parentCode, int $length) : string
Parameters
- $code : string
- $parentCode : string
- $length : int
Return values
stringcreateAccount()
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. Si ya existe con ese código, la deja como está.
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