ApiEditDocument
extends ApiEditDocument
in package
uses
ExtensionsTrait
Class created by Core/Internal/PluginsDeploy
Table of Contents
Constants
- API_VERSION : mixed = 3
- INCIDENT_EXPIRATION_TIME : mixed = 600
- IP_LIST : mixed = 'api-ip-list'
- MAX_INCIDENT_COUNT : mixed = 5
Properties
- $apiKey : ApiKey
- $extensionCache : array<string|int, mixed>
- Cache for extension lookups by method name.
- $extensions : array<string|int, mixed>
- Stores class extensions.
- $model : string
- $request : Request
- $response : Response
- $url : string
Methods
- __call() : mixed
- Executes the first matched extension.
- __construct() : mixed
- Inicializa el controlador asociado a una ruta.
- addExtension() : void
- clearExtensions() : void
- Clears all registered extensions.
- getExtensions() : array<string|int, mixed>
- Returns a list of all registered extension names.
- getPageData() : array<string|int, mixed>
- Devuelve los metadatos de la página, como el nombre, título, icono y ubicación en el menú.
- hasExtension() : bool
- pipe() : mixed
- pipeFalse() : bool
- removeExtension() : bool
- Removes all extensions with the specified name.
- run() : void
- Ejecuta el ciclo principal del controlador para procesar la petición actual.
- applyLineFields() : void
- Asigna a la línea los campos recibidos en el array de datos.
- checkCompany() : bool
- Comprueba que la empresa (idempresa) no se cambia, porque rompería la numeración, la contabilidad y el stock asociado al documento.
- checkSubject() : bool
- Comprueba que el sujeto (codcliente / codproveedor) no se cambia.
- checkWarehouse() : bool
- Comprueba que el almacén (codalmacen) no se cambia, porque descuadraría el stock de las líneas existentes.
- db() : DataBase
- decodeLines() : array<string|int, mixed>|null
- Decodifica y valida la lista de líneas recibida por la API.
- editDocument() : bool
- editLockedDocument() : bool
- Edita un documento no editable: solo se permiten los campos desbloqueados (femail, idestado, idestado_ant, numdocs, pagada). Cualquier intento de modificar la cabecera o las líneas se rechaza con 422.
- getUriParam() : string
- loadModel() : bool
- processInvoicePaid() : void
- runResource() : void
- syncLines() : bool
- Sincroniza las líneas del documento (full sync): las líneas con idlinea existente se modifican, las que no traen idlinea se crean y las líneas existentes ausentes del payload se borran (revirtiendo el stock).
- toBool() : bool
- Convierte un valor a booleano.
- updateHeader() : bool
- Actualiza la cabecera del documento con los campos permitidos. No toca el sujeto ni el almacén (ya validados como inmutables), ni la clave primaria, la numeración (numero, codigo, codejercicio) ni el estado (idestado), que deben cambiarse por sus mecanismos propios y no por asignación directa.
- buildExtensionCache() : void
- Builds and caches sorted extensions for a method name.
Constants
API_VERSION
public
mixed
API_VERSION
= 3
INCIDENT_EXPIRATION_TIME
public
mixed
INCIDENT_EXPIRATION_TIME
= 600
IP_LIST
public
mixed
IP_LIST
= 'api-ip-list'
MAX_INCIDENT_COUNT
public
mixed
MAX_INCIDENT_COUNT
= 5
Properties
$apiKey
protected
ApiKey
$apiKey
$extensionCache
Cache for extension lookups by method name.
protected
static array<string|int, mixed>
$extensionCache
= []
$extensions
Stores class extensions.
protected
static array<string|int, mixed>
$extensions
= []
$model
protected
string
$model
$request
protected
Request
$request
$response
protected
Response
$response
$url
protected
string
$url
Methods
__call()
Executes the first matched extension.
public
__call(string $name[, array<string|int, mixed> $arguments = [] ]) : mixed
Parameters
- $name : string
- $arguments : array<string|int, mixed> = []
Tags
__construct()
Inicializa el controlador asociado a una ruta.
public
__construct(string $className[, string $url = '' ]) : mixed
Parameters
- $className : string
-
Nombre de la clase final del controlador.
- $url : string = ''
-
Ruta solicitada por el usuario.
addExtension()
public
static addExtension(mixed $extension[, int $priority = 100 ]) : void
Parameters
- $extension : mixed
- $priority : int = 100
-
Priority for all methods in this extension (0-1000, default 100)
clearExtensions()
Clears all registered extensions.
public
static clearExtensions() : void
getExtensions()
Returns a list of all registered extension names.
public
static getExtensions() : array<string|int, mixed>
Return values
array<string|int, mixed>getPageData()
Devuelve los metadatos de la página, como el nombre, título, icono y ubicación en el menú.
public
getPageData() : array<string|int, mixed>
Este método se consulta durante la construcción y no debe depender de que el usuario esté autenticado.
Return values
array<string|int, mixed>hasExtension()
public
hasExtension(mixed $name) : bool
Parameters
- $name : mixed
Return values
boolpipe()
public
pipe(string $name, array<string|int, mixed> ...$arguments) : mixed
Parameters
- $name : string
- $arguments : array<string|int, mixed>
pipeFalse()
public
pipeFalse(string $name, array<string|int, mixed> ...$arguments) : bool
Parameters
- $name : string
- $arguments : array<string|int, mixed>
Return values
boolremoveExtension()
Removes all extensions with the specified name.
public
static removeExtension(string $name) : bool
Parameters
- $name : string
Return values
bool —True if at least one extension was removed
run()
Ejecuta el ciclo principal del controlador para procesar la petición actual.
public
run() : void
El kernel invoca este método una vez después de construir el controlador.
applyLineFields()
Asigna a la línea los campos recibidos en el array de datos.
protected
applyLineFields(BusinessDocumentLine &$line, array<string|int, mixed> $data, bool $isNew) : void
Si un campo no viene en los datos se conserva el valor actual de la línea, salvo la cantidad, que en una línea nueva ($isNew) toma 1 por defecto.
Parameters
- $line : BusinessDocumentLine
- $data : array<string|int, mixed>
- $isNew : bool
checkCompany()
Comprueba que la empresa (idempresa) no se cambia, porque rompería la numeración, la contabilidad y el stock asociado al documento.
protected
checkCompany(BusinessDocument &$doc) : bool
Parameters
- $doc : BusinessDocument
Return values
boolcheckSubject()
Comprueba que el sujeto (codcliente / codproveedor) no se cambia.
protected
checkSubject(BusinessDocument &$doc) : bool
Parameters
- $doc : BusinessDocument
Return values
boolcheckWarehouse()
Comprueba que el almacén (codalmacen) no se cambia, porque descuadraría el stock de las líneas existentes.
protected
checkWarehouse(BusinessDocument &$doc) : bool
Parameters
- $doc : BusinessDocument
Return values
booldb()
protected
db() : DataBase
Return values
DataBasedecodeLines()
Decodifica y valida la lista de líneas recibida por la API.
protected
decodeLines(mixed $data) : array<string|int, mixed>|null
Parameters
- $data : mixed
Return values
array<string|int, mixed>|nulleditDocument()
protected
editDocument(BusinessDocument &$doc) : bool
Parameters
- $doc : BusinessDocument
Return values
booleditLockedDocument()
Edita un documento no editable: solo se permiten los campos desbloqueados (femail, idestado, idestado_ant, numdocs, pagada). Cualquier intento de modificar la cabecera o las líneas se rechaza con 422.
protected
editLockedDocument(BusinessDocument &$doc) : bool
Parameters
- $doc : BusinessDocument
Return values
boolgetUriParam()
protected
getUriParam(string $num) : string
Parameters
- $num : string
Return values
stringloadModel()
protected
loadModel() : bool
Return values
boolprocessInvoicePaid()
protected
processInvoicePaid(BusinessDocument &$doc) : void
Parameters
- $doc : BusinessDocument
runResource()
protected
runResource() : void
syncLines()
Sincroniza las líneas del documento (full sync): las líneas con idlinea existente se modifican, las que no traen idlinea se crean y las líneas existentes ausentes del payload se borran (revirtiendo el stock).
protected
syncLines(BusinessDocument &$doc) : bool
Parameters
- $doc : BusinessDocument
Return values
booltoBool()
Convierte un valor a booleano.
protected
toBool(mixed $value) : bool
Acepta: true, false, 1, 0, "1", "0", "true", "false"
Parameters
- $value : mixed
Return values
boolupdateHeader()
Actualiza la cabecera del documento con los campos permitidos. No toca el sujeto ni el almacén (ya validados como inmutables), ni la clave primaria, la numeración (numero, codigo, codejercicio) ni el estado (idestado), que deben cambiarse por sus mecanismos propios y no por asignación directa.
protected
updateHeader(BusinessDocument &$doc) : bool
Parameters
- $doc : BusinessDocument
Return values
boolbuildExtensionCache()
Builds and caches sorted extensions for a method name.
private
buildExtensionCache(string $name) : void
Parameters
- $name : string