CsvBatchProcessorStrategy
extends AbstractStrategy
in package
implements
BatchProcessorStrategyInterface
Estrategia "billing.document.batch_processor.strategy:spreadsheet.csv".
Procesa en lote los documentos tributarios de un archivo CSV con el formato estándar de LibreDTE.
Table of Contents
Interfaces
- BatchProcessorStrategyInterface
- Interfaz para las estrategias de los procesadores de documentos en lote.
Properties
- $entityComponent : EntityComponentInterface
Methods
- __construct() : mixed
- process() : array<string|int, DocumentInterface>
- Procesa masivamente documentos tributarios electrónicos.
- addItem() : void
- Agrega un ítem al documento.
- addReference() : void
- Agrega una referencia a un documento.
- addTransport() : void
- Agrega información de transporte a un documento.
- createDocument() : array<string|int, mixed>
- Crea un documento a partir de los datos proporcionados.
- getCurrency() : string|null
- Obtiene la glosa de una moneda a partir de su código ISO.
- setInitialDTE() : array<string|int, mixed>
- Genera la estructura inicial del DTE.
Properties
$entityComponent
private
EntityComponentInterface
$entityComponent
Methods
__construct()
public
__construct(EntityComponentInterface $entityComponent) : mixed
Parameters
- $entityComponent : EntityComponentInterface
process()
Procesa masivamente documentos tributarios electrónicos.
public
process(DocumentBatchInterface $batch) : array<string|int, DocumentInterface>
Parameters
- $batch : DocumentBatchInterface
-
Contenedor del lote a procesar.
Return values
array<string|int, DocumentInterface>addItem()
Agrega un ítem al documento.
private
addItem(array<string|int, mixed> &$documento, array<string|int, mixed> $item) : void
Procesa los datos de un ítem y lo agrega al arreglo de detalles. Valida que los campos mínimos estén presentes y ajusta la longitud de los datos.
Parameters
- $documento : array<string|int, mixed>
-
Documento al que se agregará el ítem. Modificado directamente.
- $item : array<string|int, mixed>
-
Datos del ítem. Los índices corresponden a:
- 0: Código del ítem (opcional).
- 1: Indicador de exención (opcional).
- 2: Nombre del ítem (obligatorio).
- 3: Descripción del ítem (opcional).
- 4: Cantidad del ítem (obligatorio).
- 5: Unidad de medida (opcional).
- 6: Precio del ítem (obligatorio).
- 7: Descuento (opcional, porcentaje o monto).
- 8: Código de impuesto adicional (opcional).
Tags
addReference()
Agrega una referencia a un documento.
private
addReference(array<string|int, mixed> &$documento, array<string|int, mixed> $referencia) : void
Procesa los datos de referencia y los agrega al arreglo Referencia
dentro del documento. Valida los campos obligatorios y ajusta su
longitud si es necesario.
Parameters
- $documento : array<string|int, mixed>
-
Documento al que se agregará la referencia. Se pasa por referencia para modificarlo.
- $referencia : array<string|int, mixed>
-
Datos de la referencia a agregar. Los índices deben ser:
- 0: Tipo del documento referenciado (obligatorio).
- 1: Folio del documento referenciado (obligatorio).
- 2: Fecha del documento en formato AAAA-MM-DD (obligatorio).
- 3: Código de referencia (opcional).
- 4: Razón de la referencia (opcional).
Tags
Return values
void —Modifica el documento directamente.
addTransport()
Agrega información de transporte a un documento.
private
addTransport(array<string|int, mixed> &$documento, array<string|int, mixed> $transporte) : void
Procesa los datos de transporte proporcionados y los agrega al arreglo
Transporte
dentro del documento. Los datos incluyen información de
patente, transportista, chofer y destino.
Parameters
- $documento : array<string|int, mixed>
-
Documento al que se agregará la información de transporte. Se pasa por referencia para modificarlo.
- $transporte : array<string|int, mixed>
-
Datos de transporte a procesar. Los índices son:
- 0: Patente del vehículo (opcional).
- 1: RUT del transportista (opcional).
- 2: RUT del chofer (opcional).
- 3: Nombre del chofer (opcional).
- 4: Dirección del destino (opcional).
- 5: Comuna del destino (opcional).
Return values
void —Modifica el documento directamente.
createDocument()
Crea un documento a partir de los datos proporcionados.
private
createDocument(array<string|int, mixed> $datos) : array<string|int, mixed>
Verifica los datos mínimos requeridos y genera la estructura base. También agrega ítems, transporte y referencias al documento.
Parameters
- $datos : array<string|int, mixed>
-
Datos para crear el documento. Los índices corresponden a:
- 0: Tipo de documento (obligatorio).
- 1: Folio del documento (obligatorio).
- 2: Fecha de emisión (opcional).
- 3: Fecha de vencimiento (opcional).
- 4: RUT del receptor (obligatorio).
- 5: Razón social del receptor (obligatoria si no es boleta).
- 6: Giro del receptor (obligatorio si no es boleta).
- 7: Contacto del receptor (opcional).
- 8: Correo del receptor (opcional, validado si se proporciona).
- 9: Dirección del receptor (obligatoria si no es boleta).
- 10: Comuna del receptor (obligatoria si no es boleta).
- 33: Tipo de moneda (opcional, por defecto USD si aplica).
- 34: Número de identificación del receptor extranjero (opcional).
- 35: Descuento global (opcional, porcentaje o monto).
- 36: Nombre del PDF (opcional).
- 37: Forma de pago (opcional, 1, 2 o 3).
- 38: Código de impuesto adicional (opcional).
Tags
Return values
array<string|int, mixed> —Estructura del documento generado.
getCurrency()
Obtiene la glosa de una moneda a partir de su código ISO.
private
getCurrency(string $moneda) : string|null
Este método busca en el repositorio de la entidad AduanaMoneda
un registro que coincida con el código ISO proporcionado.
Si encuentra un resultado, devuelve la glosa asociada; de lo
contrario, retorna null
.
Parameters
- $moneda : string
-
Código ISO de la moneda que se desea buscar.
Return values
string|null —La glosa de la moneda o null
si no existe.
setInitialDTE()
Genera la estructura inicial del DTE.
private
setInitialDTE(array<string|int, mixed> $datos) : array<string|int, mixed>
Este método crea un arreglo con la estructura base del DTE, incluyendo encabezado, emisor, receptor y detalles. Configura valores predeterminados para los campos opcionales y procesa algunos datos de entrada.
Parameters
- $datos : array<string|int, mixed>
-
Datos de entrada para generar la estructura del DTE.
Return values
array<string|int, mixed> —Arreglo con la estructura inicial del DTE.