LoaderWorker
extends AbstractWorker
in package
implements
LoaderWorkerInterface
uses
StrategiesAwareTrait
Worker "billing.book.loader".
Normaliza los datos de entrada de cualquier tipo de libro tributario desde cualquier formato de origen (array, CSV, XML, etc.).
Construye el nombre de estrategia como {tipo}.{formato} donde:
tipoproviene deBookBagInterface::getTipo().formatoproviene de la opciónformatdel bag (por defecto 'array').
Ejemplos de estrategias disponibles:
libro_ventas.array,libro_ventas.csv,libro_ventas.xmllibro_compras.array,libro_compras.csvlibro_boletas.arraylibro_guias.arrayresumen_ventas_diarias.array
Attributes
- #[Worker]
- $name: 'loader'
- $component: 'book'
- $package: 'billing'
Table of Contents
Interfaces
- LoaderWorkerInterface
- Interfaz para el worker `billing.book.loader`.
Properties
- $optionsSchema : array<string, array<string, mixed>>
- Esquema de las opciones del worker.
Methods
- __construct() : mixed
- load() : BookBagInterface
- Carga y normaliza los datos de entrada de un libro tributario.
Properties
$optionsSchema
Esquema de las opciones del worker.
protected
array<string, array<string, mixed>>
$optionsSchema
= ['format' => ['types' => 'string', 'default' => 'array']]
Methods
__construct()
public
__construct([iterable<string|int, mixed> $strategies = [] ]) : mixed
Parameters
- $strategies : iterable<string|int, mixed> = []
load()
Carga y normaliza los datos de entrada de un libro tributario.
public
load(BookBagInterface $bag) : BookBagInterface
Parameters
- $bag : BookBagInterface
-
Datos de entrada del libro, junto con su tipo y el emisor.
Attributes
- #[Operation]
- $parameters: ['bag' => ['example' => ['tipo' => TipoLibro::VENTAS, 'caratula' => ['RutEmisorLibro' => '76192083-9', 'PeriodoTributario' => '2024-01'], 'detalle' => [['TpoDoc' => 33, 'NroDoc' => 1, 'TasaImp' => 19, 'FchDoc' => '2024-01-10', 'RUTDoc' => '12345678-9', 'RznSoc' => 'Empresa Compradora SpA', 'MntNeto' => 100000, 'MntIVA' => 19000, 'MntTotal' => 119000]], 'certificate' => ['certificate' => '', 'privateKey' => ''], 'emisor' => ['rut' => '76192083-9', 'razon_social' => 'SASCO SpA']]]]
Return values
BookBagInterface —Los mismos datos, con la carátula y el detalle ya normalizados.