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
- 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>
- hasExtension() : bool
- pipe() : mixed
- pipeFalse() : bool
- removeExtension() : bool
- Removes all extensions with the specified name.
- run() : void
- 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
- 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()
public
__construct(string $className[, string $url = '' ]) : mixed
Parameters
- $className : string
- $url : string = ''
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()
public
getPageData() : array<string|int, mixed>
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()
public
run() : void
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
DataBaseeditDocument()
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