DocumentoFactory
in package
Fábrica de documentos tributarios electrónicos.
Permite crear un documento tributario electrónico a partir de los datos de un arreglo o de un string XML.
La principal ventaja de usar esta fábrica es que abstrae todo lo que se debe hacer para buscar el "builder" del documento tributario y crear un documento fácilmente a partir de sus datos. Además se preocupa de instanciar solo una vez cada "builder".
Table of Contents
Properties
- $dataProvider : DataProviderInterface
- Proveedor de datos.
- $builders : array<string|int, mixed>
- Constructores ("builders") de documentos que están inicializados.
Methods
- __construct() : mixed
- Constructor de la clase.
- createFromArray() : AbstractDocumento
- Construye un documento tributario electrónico a partir de los datos en un arreglo.
- createFromJson() : AbstractDocumento
- Construye un documento tributario electrónico a partir de los datos en un string JSON.
- createFromXml() : AbstractDocumento
- Construye un documento tributario electrónico a partir de los datos en un string XML.
- createFromYaml() : AbstractDocumento
- Construye un documento tributario electrónico a partir de los datos en un string YAML.
- loadFromXml() : AbstractDocumento
- Carga un documento tributario electrónico a partir de los datos en un string XML.
- getDocumentoBuilder() : AbstractDocumentoBuilder
- Entrega la instancia del "builder" según la clase que se ha indicado.
- getDocumentoBuilderClass() : string
- Determina qué "builder" se debe utilizar según el código del documento que viene en los datos del documento que se debe crear.
Properties
$dataProvider
Proveedor de datos.
protected
DataProviderInterface
$dataProvider
$builders
Constructores ("builders") de documentos que están inicializados.
private
array<string|int, mixed>
$builders
= []
Esta es la "caché" para evitar instanciar más de una vez un "builder".
Methods
__construct()
Constructor de la clase.
public
__construct([DataProviderInterface|null $dataProvider = null ]) : mixed
Parameters
- $dataProvider : DataProviderInterface|null = null
-
Proveedor de datos.
createFromArray()
Construye un documento tributario electrónico a partir de los datos en un arreglo.
public
createFromArray(array<string|int, mixed> $data) : AbstractDocumento
Parameters
- $data : array<string|int, mixed>
-
Arreglo con los datos del documento.
Return values
AbstractDocumento —Documento tributario construído.
createFromJson()
Construye un documento tributario electrónico a partir de los datos en un string JSON.
public
createFromJson(string $data) : AbstractDocumento
Parameters
- $data : string
-
String JSON con los datos del documento.
Return values
AbstractDocumento —Documento tributario construído.
createFromXml()
Construye un documento tributario electrónico a partir de los datos en un string XML.
public
createFromXml(string $data) : AbstractDocumento
Parameters
- $data : string
-
String XML con los datos del documento.
Return values
AbstractDocumento —Documento tributario construído.
createFromYaml()
Construye un documento tributario electrónico a partir de los datos en un string YAML.
public
createFromYaml(string $data) : AbstractDocumento
Parameters
- $data : string
-
String YAML con los datos del documento.
Return values
AbstractDocumento —Documento tributario construído.
loadFromXml()
Carga un documento tributario electrónico a partir de los datos en un string XML.
public
loadFromXml(string $xml) : AbstractDocumento
NOTE: Este método de creación de un documento espera que el XML contenga todos los nodos y datos necesarios del documento (ej: incluyendo firma). Se debe utilizar solamente para construir los documentos que vienen de un XML que ya está listo el DTE. Si se desea crear un documento a partir de datos que están en un string XML, pero que no están normalizados, timbrados o firmados, se debe utilizar createFromXml().
Parameters
- $xml : string
-
String XML con los datos del documento.
Return values
AbstractDocumento —Documento tributario construído.
getDocumentoBuilder()
Entrega la instancia del "builder" según la clase que se ha indicado.
private
getDocumentoBuilder(string $class) : AbstractDocumentoBuilder
Este método utiliza una "caché" para entregar siempre el mismo "builder" para el mismo tipo de documento.
Parameters
- $class : string
-
Clase del "builder" que se desea su instancia.
Return values
AbstractDocumentoBuilder —Instancia del "builder" solicitado.
getDocumentoBuilderClass()
Determina qué "builder" se debe utilizar según el código del documento que viene en los datos del documento que se debe crear.
private
getDocumentoBuilderClass(array<string|int, mixed> $data) : string
Parameters
- $data : array<string|int, mixed>
-
Arreglo con los datos del documento.
Return values
string —Clase del "builder" a usar para crear el documento.