FacturaScripts

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

Raul Jimenez [email protected]

collaborator

Daniel Fernández Giménez [email protected]

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 = []

$subaccountLength

Longitud a la que convertir las subcuentas importadas. 0 para usar la del fichero.

protected int $subaccountLength = 0

Methods

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
bool

importXML()

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
bool

checkSubaccountLength()

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
bool

convertSubaccountCode()

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
string

createAccount()

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
bool

createSubaccount()

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
bool

getData()

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
bool

importEpigrafe()

Importa los epígrafes del XML (nodo <epigrafes>) creándolos bajo su grupo.

protected importEpigrafe(SimpleXMLElement $data) : bool
Parameters
$data : SimpleXMLElement
Return values
bool

importEpigrafeGroup()

Importa los grupos del XML (nodo <grupo_epigrafes>) como cuentas raíz.

protected importEpigrafeGroup(SimpleXMLElement $data) : bool
Parameters
$data : SimpleXMLElement
Return values
bool

importSubcuenta()

Importa las subcuentas del XML (nodo <subcuenta>) bajo su cuenta padre.

protected importSubcuenta(SimpleXMLElement $data) : bool
Parameters
$data : SimpleXMLElement
Return values
bool

processCsvData()

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
bool

searchParent()

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
string

updateSpecialAccounts()

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
On this page

Search results