BookBag
in package
implements
BookBagInterface
uses
OptionsAwareTrait
Contenedor de datos para la construcción de un libro tributario.
Permite transportar el tipo de libro, la carátula, los detalles, el
certificado digital y las opciones de procesamiento entre el código cliente
y los workers de billing.book.
El flujo normal es:
- El usuario crea un
BookBagcontipo,caratulaydetallescrudos. LoaderWorker::load()normaliza los detalles según el tipo y formato.BuilderWorker::build()genera el XML y retorna la entidad resultante.
Table of Contents
Interfaces
- BookBagInterface
- Interfaz para el contenedor de datos de un libro tributario.
Properties
- $optionsSchema : array<string, array<string, mixed>>
- Esquema de las opciones del contenedor.
- $book : BookInterface|null
- Libro resultante tras la construcción por el worker.
- $caratula : array<string, mixed>
- Carátula del libro.
- $certificate : CertificateInterface|null
- Certificado digital para la firma del XML.
- $detalle : array<int, array<string, mixed>>
- Detalles normalizadosdel libro.
- $emisor : EmisorInterface|null
- Emisor del libro.
- $inputData : array<string|int, mixed>|string
- Datos originales de entrada que se utilizarán para construir el libro.
- $tipo : TipoLibro
- Tipo de libro tributario.
Methods
- __construct() : mixed
- Constructor del contenedor.
- getBook() : BookInterface|null
- Obtiene el libro resultante de la construcción.
- getBookAuth() : array<string|int, mixed>|null
- Obtiene los datos de la autorización del emisor para emitir el libro.
- getBuilderOptions() : array<string, mixed>
- Obtiene las opciones del `BuilderWorker`.
- getCaratula() : array<string, mixed>
- Obtiene la carátula del libro.
- getCertificate() : CertificateInterface|null
- Obtiene el certificado digital.
- getData() : array<string|int, mixed>|null
- Obtiene los datos del libro.
- getDetalle() : array<int, array<string, mixed>>
- Obtiene los detalles del libro.
- getEmisor() : EmisorInterface|null
- Obtiene el emisor del libro.
- getInputData() : array<string|int, mixed>|string
- Obtiene los datos de entrada del libro.
- getLoaderOptions() : array<string, mixed>
- Obtiene las opciones del `LoaderWorker`.
- getRendererOptions() : array<string, mixed>
- Obtiene las opciones del `RendererWorker`.
- getTipo() : TipoLibro
- Obtiene el tipo de libro tributario.
- getValidatorOptions() : array<string, mixed>
- Obtiene las opciones del `ValidatorWorker`.
- jsonSerialize() : array<string|int, mixed>
- {@inheritDoc}
- setBook() : static
- Asigna el libro resultante de la construcción.
- setCaratula() : static
- Asigna la carátula del libro.
- setCertificate() : static
- Asigna el certificado digital para firmar el XML del libro.
- setDetalle() : static
- Asigna los detalles del libro.
- setEmisor() : static
- Asigna el emisor del libro.
- setInputData() : static
- Asigna los datos de entrada del libro.
- toArray() : array<string|int, mixed>
- Entrega los datos de la bolsa como un arreglo.
- withCertificate() : static
- Retorna una nueva bolsa con el mismo contenido pero con el certificado reemplazado.
Properties
$optionsSchema
Esquema de las opciones del contenedor.
protected
array<string, array<string, mixed>>
$optionsSchema
= ['loader' => ['types' => 'array', 'default' => []], 'builder' => ['types' => 'array', 'default' => []]]
$book
Libro resultante tras la construcción por el worker.
private
BookInterface|null
$book
$caratula
Carátula del libro.
private
array<string, mixed>
$caratula
$certificate
Certificado digital para la firma del XML.
private
CertificateInterface|null
$certificate
$detalle
Detalles normalizadosdel libro.
private
array<int, array<string, mixed>>
$detalle
$emisor
Emisor del libro.
private
EmisorInterface|null
$emisor
$inputData
Datos originales de entrada que se utilizarán para construir el libro.
private
array<string|int, mixed>|string
$inputData
$tipo
Tipo de libro tributario.
private
TipoLibro
$tipo
Determina qué estrategias del LoaderWorker y BuilderWorker se utilizan.
Methods
__construct()
Constructor del contenedor.
public
__construct(TipoLibro $tipo[, array<string|int, mixed>|string $inputData = [] ][, array<string, mixed> $caratula = [] ][, array<int, array<string, mixed>> $detalle = [] ][, array<string, mixed>|OptionsInterface|null $options = null ][, CertificateInterface|null $certificate = null ][, BookInterface|null $book = null ][, EmisorInterface|null $emisor = null ]) : mixed
Parameters
- $tipo : TipoLibro
-
Tipo de libro tributario.
- $inputData : array<string|int, mixed>|string = []
-
Datos originales de entrada que se utilizarán para construir el libro. Si es un arreglo son los datos crudos. Si es un string podrá ser un CSV, XML, JSON, etc, dependiendo del formato de entrada en las opciones del
LoaderWorker. - $caratula : array<string, mixed> = []
-
Datos de la carátula del libro.
- $detalle : array<int, array<string, mixed>> = []
-
Filas del libro.
- $options : array<string, mixed>|OptionsInterface|null = null
-
Opciones de procesamiento. La clave
loader.formatelige el formato de entrada (por defecto 'array'). - $certificate : CertificateInterface|null = null
-
Certificado para firmar.
- $book : BookInterface|null = null
- $emisor : EmisorInterface|null = null
getBook()
Obtiene el libro resultante de la construcción.
public
getBook() : BookInterface|null
Return values
BookInterface|nullgetBookAuth()
Obtiene los datos de la autorización del emisor para emitir el libro.
public
getBookAuth() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetBuilderOptions()
Obtiene las opciones del `BuilderWorker`.
public
getBuilderOptions() : array<string, mixed>
Return values
array<string, mixed>getCaratula()
Obtiene la carátula del libro.
public
getCaratula() : array<string, mixed>
Return values
array<string, mixed>getCertificate()
Obtiene el certificado digital.
public
getCertificate() : CertificateInterface|null
Return values
CertificateInterface|nullgetData()
Obtiene los datos del libro.
public
getData() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetDetalle()
Obtiene los detalles del libro.
public
getDetalle() : array<int, array<string, mixed>>
Return values
array<int, array<string, mixed>>getEmisor()
Obtiene el emisor del libro.
public
getEmisor() : EmisorInterface|null
Return values
EmisorInterface|nullgetInputData()
Obtiene los datos de entrada del libro.
public
getInputData() : array<string|int, mixed>|string
Return values
array<string|int, mixed>|stringgetLoaderOptions()
Obtiene las opciones del `LoaderWorker`.
public
getLoaderOptions() : array<string, mixed>
Return values
array<string, mixed>getRendererOptions()
Obtiene las opciones del `RendererWorker`.
public
getRendererOptions() : array<string, mixed>
Return values
array<string, mixed>getTipo()
Obtiene el tipo de libro tributario.
public
getTipo() : TipoLibro
Return values
TipoLibrogetValidatorOptions()
Obtiene las opciones del `ValidatorWorker`.
public
getValidatorOptions() : array<string, mixed>
Return values
array<string, mixed>jsonSerialize()
{@inheritDoc}
public
jsonSerialize() : array<string|int, mixed>
Return values
array<string|int, mixed>setBook()
Asigna el libro resultante de la construcción.
public
setBook(BookInterface $book) : static
Parameters
- $book : BookInterface
Return values
staticsetCaratula()
Asigna la carátula del libro.
public
setCaratula(array<string|int, mixed> $caratula) : static
Parameters
- $caratula : array<string|int, mixed>
Return values
staticsetCertificate()
Asigna el certificado digital para firmar el XML del libro.
public
setCertificate(CertificateInterface $certificate) : static
Parameters
- $certificate : CertificateInterface
Return values
staticsetDetalle()
Asigna los detalles del libro.
public
setDetalle(array<string|int, mixed> $detalles) : static
Parameters
- $detalles : array<string|int, mixed>
Return values
staticsetEmisor()
Asigna el emisor del libro.
public
setEmisor(EmisorInterface $emisor) : static
Parameters
- $emisor : EmisorInterface
Return values
staticsetInputData()
Asigna los datos de entrada del libro.
public
setInputData(array<string|int, mixed>|string $inputData) : static
Parameters
- $inputData : array<string|int, mixed>|string
Return values
statictoArray()
Entrega los datos de la bolsa como un arreglo.
public
toArray() : array<string|int, mixed>
Return values
array<string|int, mixed>withCertificate()
Retorna una nueva bolsa con el mismo contenido pero con el certificado reemplazado.
public
withCertificate(CertificateInterface $certificate) : static
Parameters
- $certificate : CertificateInterface