LibreDTE

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.

Attributes
#[Strategy]
$name: 'spreadsheet.csv'
$worker: 'batch_processor'
$component: 'document'
$package: 'billing'

Table of Contents

Interfaces

BatchProcessorStrategyInterface
Interfaz para las estrategias de los procesadores de documentos en lote.

Properties

$repositoryManager  : RepositoryManagerInterface

Methods

__construct()  : mixed
Constructor de la estrategia con sus dependencias.
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

Methods

__construct()

Constructor de la estrategia con sus dependencias.

public __construct(RepositoryManagerInterface $repositoryManager) : mixed
Parameters
$repositoryManager : RepositoryManagerInterface

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
throws
BatchProcessorException

Si faltan datos obligatorios.

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
throws
BatchProcessorException

Si algún campo obligatorio está vacío o no es válido.

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
throws
BatchProcessorException

Si faltan datos mínimos o son inválidos.

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.


        
On this page

Search results