DocumentBag
in package
implements
DocumentBagInterface
uses
OptionsAwareTrait
Contenedor de datos del documento tributario electrónico.
Permite "mover" un documento, junto a otros datos asociados, por métodos de manera sencilla y, sobre todo, extensible.
Table of Contents
Interfaces
- DocumentBagInterface
- Interfaz para el contenedor de un documento.
Properties
- $optionsSchema : array<string|int, mixed>
- Reglas de esquema de las opciones del documento.
- $caf : CafInterface|null
- Código de Asignación de Folios (CAF) para timbrar el Documento Tributario Electrónico (DTE) que se generará.
- $certificate : CertificateInterface|null
- Certificado digital (firma electrónica) para la firma del documento.
- $data : array<string|int, mixed>|null
- Arreglo con los datos normalizados consolidados con el timbre y la firma si existen en la bolsa.
- $document : DocumentInterface|null
- Entidad con el documento tributario electrónico generado.
- $documentType : TipoDocumentoInterface|null
- Entidad que representa al tipo de documento tributario que está contenido en esta bolsa.
- $emisor : EmisorInterface|null
- Emisor del documento tributario.
- $inputData : string|null
- Datos originales de entrada que se utilizarán para construir el documento tributario.
- $libredteData : array<string|int, mixed>|null
- Datos de LibreDTE asociados al documento tributario.
- $normalizedData : array<string|int, mixed>|null
- Datos normalizados del documento tributario.
- $parsedData : array<string|int, mixed>|null
- Datos de entrada procesados (parseados).
- $receptor : ReceptorInterface|null
- Receptor del documento tributario.
- $timbre : array<string|int, mixed>|null
- Arreglo con la estructura del nodo TED del documento.
- $xmlDocument : XmlInterface|null
- Instancia del documento XML asociada al DTE.
Methods
- __construct() : mixed
- Constructor del contenedor.
- getAlias() : string
- Entrega el alias del tipo de documento que contiene la bolsa.
- getBuilderOptions() : array<string|int, mixed>
- Obtiene las opciones del constructor del documento.
- getCaf() : CafInterface|null
- Obtiene el CAF para timbrar el documento.
- getCertificate() : CertificateInterface|null
- Obtiene el certificado para firmar el documento.
- getCodigoTipoDocumento() : int|null
- getData() : array<string|int, mixed>|null
- Obtiene los datos del documento.
- getDocument() : DocumentInterface|null
- Obtiene el documento tributario electrónico.
- getDocumentAuth() : array<string|int, mixed>|null
- Obtiene los datos de la autorización del emisor para emitir DTE.
- getDocumentData() : array<string|int, mixed>|null
- Obtiene los datos del documento agregando los datos específicos de LibreDTE.
- getDocumentExtra() : array<string|int, mixed>|null
- Obtiene los datos extras del documento.
- getDocumentStamp() : string|null
- Obtiene el timbre del DTE.
- getDocumentType() : TipoDocumentoInterface|null
- Obtiene el tipo de documento tributario electrónico.
- getDocumentTypeId() : int|null
- Obtiene el código numérico del documento tributario electrónico.
- getEmisor() : EmisorInterface|null
- Obtiene el emisor del documento.
- getFolio() : int|string|null
- Obtiene el folio del documento.
- getId() : string
- Entrega el ID del documento.
- getInputData() : string|null
- Obtiene los datos de entrada del documento.
- getLibredteData() : array<string|int, mixed>|null
- Obtiene los datos de LibreDTE que están asociados al documento pero no son parte de la estructura oficial que utiliza el SII.
- getNormalizedData() : array<string|int, mixed>|null
- Obtiene los datos normalizados del documento.
- getNormalizerOptions() : array<string|int, mixed>
- Obtiene las opciones del normalizador del documento.
- getParsedData() : array<string|int, mixed>|null
- Obtiene los datos procesados (parseados) del documento.
- getParserOptions() : array<string|int, mixed>
- Obtiene las opciones del procesador (parser) del documento.
- getReceptor() : ReceptorInterface|null
- Obtiene el receptor del documento.
- getRendererOptions() : array<string|int, mixed>
- Obtiene las opciones del renderizador del documento.
- getSanitizerOptions() : array<string|int, mixed>
- Obtiene las opciones del sanitizador del documento.
- getTimbre() : array<string|int, mixed>|null
- Obtiene el timbre del documento.
- getTipoDocumento() : TipoDocumentoInterface|null
- getValidatorOptions() : array<string|int, mixed>
- Obtiene las opciones del validador del documento.
- getXmlDocument() : XmlInterface|null
- Obtiene el documento XML.
- setCaf() : static
- Asigna el CAF para timbrar el documento.
- setCertificate() : static
- Asigna el certificado para firmar el documento.
- setDocument() : static
- Asigna el documento tributario electrónico.
- setDocumentType() : static
- Asigna el tipo de documento tributario electrónico.
- setEmisor() : static
- Asigna el emisor del documento.
- setFolio() : static
- Asigna el folio numérico al documento.
- setInputData() : static
- Asignar los datos de entrada del documento.
- setLibredteData() : static
- Asigna los datos de LibreDTE que están asociados al documento pero no son parte de la estructura oficial que utiliza el SII.
- setNormalizedData() : static
- Asigna los datos normalizados del documento.
- setParsedData() : static
- Asigna los datos procesados (parseados) del documento.
- setReceptor() : static
- Asigna el receptor del documento.
- setTimbre() : static
- Asigna el timbre del documento.
- setTipoDocumento() : static
- setXmlDocument() : static
- Asigna el documento XML.
- withCaf() : DocumentBagInterface
- Retorna una nueva bolsa con los datos del DTE e incluye un archivo CAF.
- withCertificate() : DocumentBagInterface
- Retorna una nueva bolsa con los datos del DTE e incluye un certificado.
Properties
$optionsSchema
Reglas de esquema de las opciones del documento.
protected
array<string|int, mixed>
$optionsSchema
= ['builder' => ['types' => 'array', 'default' => []], 'normalizer' => ['types' => 'array', 'default' => []], 'parser' => ['types' => 'array', 'default' => []], 'renderer' => ['types' => 'array', 'default' => []], 'sanitizer' => ['types' => 'array', 'default' => []], 'validator' => ['types' => 'array', 'default' => []]]
Acá solo se indicarán los índices que deben pueden existir en las opciones. No se define el esquema de cada opción pues cada clase que utilice estas opciones deberá resolver y validar sus propias opciones.
$caf
Código de Asignación de Folios (CAF) para timbrar el Documento Tributario Electrónico (DTE) que se generará.
private
CafInterface|null
$caf
$certificate
Certificado digital (firma electrónica) para la firma del documento.
private
CertificateInterface|null
$certificate
$data
Arreglo con los datos normalizados consolidados con el timbre y la firma si existen en la bolsa.
private
array<string|int, mixed>|null
$data
= null
$document
Entidad con el documento tributario electrónico generado.
private
DocumentInterface|null
$document
$documentType
Entidad que representa al tipo de documento tributario que está contenido en esta bolsa.
private
TipoDocumentoInterface|null
$documentType
= null
$emisor
Emisor del documento tributario.
private
EmisorInterface|null
$emisor
= null
$inputData
Datos originales de entrada que se utilizarán para construir el documento tributario.
private
string|null
$inputData
El formato de estos datos puede ser cualquiera soportado por los parsers.
$libredteData
Datos de LibreDTE asociados al documento tributario.
private
array<string|int, mixed>|null
$libredteData
Estos son datos que LibreDTE utiliza asociados al documento pero no son parte de la estructura oficial que utiliza el SII.
Por ejemplo se puede incluir:
- Tags de facturas en PDF de boletas. Ejemplo: TermPagoGlosa.
- Datos adicionales para los PDF. Ejemplo: historial.
$normalizedData
Datos normalizados del documento tributario.
private
array<string|int, mixed>|null
$normalizedData
Son los datos con todos sus campos necesarios ya determinados, calculados y validados.
La estructura de estos datos depende de los normalizadores.
Importante: si se desactiva la normalización este arreglo contendrá lo mismo que $parsedData pues no se tocarán los datos de entrada procesados.
$parsedData
Datos de entrada procesados (parseados).
private
array<string|int, mixed>|null
$parsedData
Están en el formato estándar de LibreDTE. Que es básicamente el oficial del SII.
Estos son los datos que se usarán para construir el documento. Estos datos no están normaliados, solo parseados.
$receptor
Receptor del documento tributario.
private
ReceptorInterface|null
$receptor
= null
$timbre
Arreglo con la estructura del nodo TED del documento.
private
array<string|int, mixed>|null
$timbre
= null
$xmlDocument
Instancia del documento XML asociada al DTE.
private
XmlInterface|null
$xmlDocument
Methods
__construct()
Constructor del contenedor.
public
__construct([string|array<string|int, mixed>|stdClass|null $inputData = null ][, array<string|int, mixed>|null $parsedData = null ][, array<string|int, mixed>|null $normalizedData = null ][, array<string|int, mixed>|null $libredteData = null ][, array<string|int, mixed>|DataContainerInterface $options = [] ][, XmlInterface|null $xmlDocument = null ][, CafInterface|null $caf = null ][, CertificateInterface|null $certificate = null ][, DocumentInterface|null $document = null ][, TipoDocumentoInterface|null $documentType = null ][, EmisorInterface|null $emisor = null ][, ReceptorInterface|null $receptor = null ]) : mixed
Recibe los datos en diferentes formatos para pasarlos a los setters que los normalizan y asignan al contenedor.
Parameters
- $inputData : string|array<string|int, mixed>|stdClass|null = null
- $parsedData : array<string|int, mixed>|null = null
- $normalizedData : array<string|int, mixed>|null = null
- $libredteData : array<string|int, mixed>|null = null
- $options : array<string|int, mixed>|DataContainerInterface = []
- $xmlDocument : XmlInterface|null = null
- $caf : CafInterface|null = null
- $certificate : CertificateInterface|null = null
- $document : DocumentInterface|null = null
- $documentType : TipoDocumentoInterface|null = null
- $emisor : EmisorInterface|null = null
- $receptor : ReceptorInterface|null = null
getAlias()
Entrega el alias del tipo de documento que contiene la bolsa.
public
getAlias() : string
Return values
stringgetBuilderOptions()
Obtiene las opciones del constructor del documento.
public
getBuilderOptions() : array<string|int, mixed>
Return values
array<string|int, mixed>getCaf()
Obtiene el CAF para timbrar el documento.
public
getCaf() : CafInterface|null
Return values
CafInterface|nullgetCertificate()
Obtiene el certificado para firmar el documento.
public
getCertificate() : CertificateInterface|null
Return values
CertificateInterface|nullgetCodigoTipoDocumento()
public
getCodigoTipoDocumento() : int|null
Return values
int|nullgetData()
Obtiene los datos del documento.
public
getData() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetDocument()
Obtiene el documento tributario electrónico.
public
getDocument() : DocumentInterface|null
Return values
DocumentInterface|nullgetDocumentAuth()
Obtiene los datos de la autorización del emisor para emitir DTE.
public
getDocumentAuth() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetDocumentData()
Obtiene los datos del documento agregando los datos específicos de LibreDTE.
public
getDocumentData() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetDocumentExtra()
Obtiene los datos extras del documento.
public
getDocumentExtra() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetDocumentStamp()
Obtiene el timbre del DTE.
public
getDocumentStamp() : string|null
Return values
string|nullgetDocumentType()
Obtiene el tipo de documento tributario electrónico.
public
getDocumentType() : TipoDocumentoInterface|null
Return values
TipoDocumentoInterface|nullgetDocumentTypeId()
Obtiene el código numérico del documento tributario electrónico.
public
getDocumentTypeId() : int|null
Return values
int|nullgetEmisor()
Obtiene el emisor del documento.
public
getEmisor() : EmisorInterface|null
Return values
EmisorInterface|nullgetFolio()
Obtiene el folio del documento.
public
getFolio() : int|string|null
Return values
int|string|nullgetId()
Entrega el ID del documento.
public
getId() : string
Return values
stringgetInputData()
Obtiene los datos de entrada del documento.
public
getInputData() : string|null
Return values
string|nullgetLibredteData()
Obtiene los datos de LibreDTE que están asociados al documento pero no son parte de la estructura oficial que utiliza el SII.
public
getLibredteData() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetNormalizedData()
Obtiene los datos normalizados del documento.
public
getNormalizedData() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetNormalizerOptions()
Obtiene las opciones del normalizador del documento.
public
getNormalizerOptions() : array<string|int, mixed>
Return values
array<string|int, mixed>getParsedData()
Obtiene los datos procesados (parseados) del documento.
public
getParsedData() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetParserOptions()
Obtiene las opciones del procesador (parser) del documento.
public
getParserOptions() : array<string|int, mixed>
Return values
array<string|int, mixed>getReceptor()
Obtiene el receptor del documento.
public
getReceptor() : ReceptorInterface|null
Return values
ReceptorInterface|nullgetRendererOptions()
Obtiene las opciones del renderizador del documento.
public
getRendererOptions() : array<string|int, mixed>
Return values
array<string|int, mixed>getSanitizerOptions()
Obtiene las opciones del sanitizador del documento.
public
getSanitizerOptions() : array<string|int, mixed>
Return values
array<string|int, mixed>getTimbre()
Obtiene el timbre del documento.
public
getTimbre() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetTipoDocumento()
public
getTipoDocumento() : TipoDocumentoInterface|null
Return values
TipoDocumentoInterface|nullgetValidatorOptions()
Obtiene las opciones del validador del documento.
public
getValidatorOptions() : array<string|int, mixed>
Return values
array<string|int, mixed>getXmlDocument()
Obtiene el documento XML.
public
getXmlDocument() : XmlInterface|null
Return values
XmlInterface|nullsetCaf()
Asigna el CAF para timbrar el documento.
public
setCaf(CafInterface|null $caf) : static
Parameters
- $caf : CafInterface|null
Return values
staticsetCertificate()
Asigna el certificado para firmar el documento.
public
setCertificate(CertificateInterface|null $certificate) : static
Parameters
- $certificate : CertificateInterface|null
Return values
staticsetDocument()
Asigna el documento tributario electrónico.
public
setDocument(DocumentInterface|null $document) : static
Parameters
- $document : DocumentInterface|null
Return values
staticsetDocumentType()
Asigna el tipo de documento tributario electrónico.
public
setDocumentType(TipoDocumentoInterface|null $documentType) : static
Parameters
- $documentType : TipoDocumentoInterface|null
Return values
staticsetEmisor()
Asigna el emisor del documento.
public
setEmisor(EmisorInterface|null $emisor) : static
Parameters
- $emisor : EmisorInterface|null
Return values
staticsetFolio()
Asigna el folio numérico al documento.
public
setFolio(int $folio) : static
Parameters
- $folio : int
Return values
staticsetInputData()
Asignar los datos de entrada del documento.
public
setInputData(string|array<string|int, mixed>|stdClass|null $inputData) : static
Parameters
- $inputData : string|array<string|int, mixed>|stdClass|null
Return values
staticsetLibredteData()
Asigna los datos de LibreDTE que están asociados al documento pero no son parte de la estructura oficial que utiliza el SII.
public
setLibredteData(array<string|int, mixed>|null $libredteData) : static
Parameters
- $libredteData : array<string|int, mixed>|null
Return values
staticsetNormalizedData()
Asigna los datos normalizados del documento.
public
setNormalizedData(array<string|int, mixed>|null $normalizedData) : static
Parameters
- $normalizedData : array<string|int, mixed>|null
Return values
staticsetParsedData()
Asigna los datos procesados (parseados) del documento.
public
setParsedData(array<string|int, mixed>|null $parsedData) : static
Parameters
- $parsedData : array<string|int, mixed>|null
Return values
staticsetReceptor()
Asigna el receptor del documento.
public
setReceptor(ReceptorInterface|null $receptor) : static
Parameters
- $receptor : ReceptorInterface|null
Return values
staticsetTimbre()
Asigna el timbre del documento.
public
setTimbre(array<string|int, mixed>|null $timbre) : static
Parameters
- $timbre : array<string|int, mixed>|null
Return values
staticsetTipoDocumento()
public
setTipoDocumento(TipoDocumentoInterface|null $tipoDocumento) : static
Parameters
- $tipoDocumento : TipoDocumentoInterface|null
Return values
staticsetXmlDocument()
Asigna el documento XML.
public
setXmlDocument(XmlInterface|null $xmlDocument) : static
Parameters
- $xmlDocument : XmlInterface|null
Return values
staticwithCaf()
Retorna una nueva bolsa con los datos del DTE e incluye un archivo CAF.
public
withCaf(CafInterface $caf) : DocumentBagInterface
Parameters
- $caf : CafInterface
Return values
DocumentBagInterfacewithCertificate()
Retorna una nueva bolsa con los datos del DTE e incluye un certificado.
public
withCertificate(CertificateInterface $certificate) : DocumentBagInterface
Parameters
- $certificate : CertificateInterface