BuilderStrategy
extends AbstractLibroComprasVentasBuilderStrategy
in package
implements
BuilderStrategyInterface
Estrategia `libro_compras` del `BuilderWorker`.
Construye el XML del Libro de Compras (IECV con TipoOperacion COMPRA)
a partir de los detalles normalizados por el LoaderWorker.
Attributes
- #[Strategy]
- $name: 'libro_compras'
- $worker: 'builder'
- $component: 'book'
- $package: 'billing'
Table of Contents
Interfaces
- BuilderStrategyInterface
- Interfaz para las estrategias del `BuilderWorker`.
Constants
- CARATULA_REQUERIDA : array<string, string> = ['ESPECIAL' => 'FolioNotificacion', 'RECTIFICA'...
- Dato de la carátula que exige cada tipo de libro.
- TIPOS_RESUMEN_MANUAL : array<int, int> = [35, 38, 48]
- Tipos de documento que se pueden informar solo con su resumen: boletas, boletas exentas y pagos electrónicos.
Methods
- __construct() : mixed
- build() : LibroComprasVentasInterface
- Construye el Libro de Compras/Ventas a partir del bag normalizado.
- filterDetalle() : array<int, array<string, mixed>>
- Entrega las filas del detalle que van en el XML del libro.
Constants
CARATULA_REQUERIDA
Dato de la carátula que exige cada tipo de libro.
public
array<string, string>
CARATULA_REQUERIDA
= ['ESPECIAL' => 'FolioNotificacion', 'RECTIFICA' => 'CodAutRec']
El esquema deja estos campos como opcionales: que sean obligatorios para estos tipos de libro no lo valida el esquema, por eso se valida al construir el libro.
TIPOS_RESUMEN_MANUAL
Tipos de documento que se pueden informar solo con su resumen: boletas, boletas exentas y pagos electrónicos.
public
array<int, int>
TIPOS_RESUMEN_MANUAL
= [35, 38, 48]
Methods
__construct()
public
__construct(XmlEncoderInterface $xmlEncoder) : mixed
Parameters
- $xmlEncoder : XmlEncoderInterface
build()
Construye el Libro de Compras/Ventas a partir del bag normalizado.
public
build(BookBagInterface $bag) : LibroComprasVentasInterface
Parameters
- $bag : BookBagInterface
Return values
LibroComprasVentasInterfacefilterDetalle()
Entrega las filas del detalle que van en el XML del libro.
protected
filterDetalle(array<int, array<string, mixed>> $detalles) : array<int, array<string, mixed>>
Por defecto son todas. Una estrategia puede dejar fuera algunas: sus totales igual se cuentan en el resumen del período.
Parameters
- $detalles : array<int, array<string, mixed>>