FacturaScripts

ApiEditDocument extends ApiController
in package
uses ApiBusinessDocumentTrait

Edita un documento de negocio existente (factura, albarán, pedido o presupuesto) en una sola llamada: modificación tanto el documento como las líneas, recalculando totales y manteniendo el stock consistente.

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
$model  : string
$request  : Request
$response  : Response
$url  : string

Methods

__construct()  : mixed
getPageData()  : array<string|int, mixed>
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.

Constants

INCIDENT_EXPIRATION_TIME

public mixed INCIDENT_EXPIRATION_TIME = 600

Properties

Methods

__construct()

public __construct(string $className[, string $url = '' ]) : mixed
Parameters
$className : string
$url : string = ''

getPageData()

public getPageData() : array<string|int, mixed>
Return values
array<string|int, mixed>

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
bool

checkWarehouse()

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
bool

editLockedDocument()

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
bool

getUriParam()

protected getUriParam(string $num) : string
Parameters
$num : string
Return values
string

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
bool

toBool()

Convierte un valor a booleano.

protected toBool(mixed $value) : bool

Acepta: true, false, 1, 0, "1", "0", "true", "false"

Parameters
$value : mixed
Return values
bool

updateHeader()

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

Search results