BuilderStrategy
extends AbstractLibroComprasVentasBuilderStrategy
in package
implements
BuilderStrategyInterface
Estrategia `libro_ventas` del `BuilderWorker`.
Construye el XML del Libro de Ventas (IECV con TipoOperacion VENTA)
a partir de los detalles normalizados por el LoaderWorker.
Attributes
- #[Strategy]
- $name: 'libro_ventas'
- $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_FUERA_DEL_DETALLE : array<int, int> = [35, 38, 39, 41, 105, 500, 501, 919, 920, 922,...
- Tipos de documento que no van en el detalle del libro de ventas.
- 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_FUERA_DEL_DETALLE
Tipos de documento que no van en el detalle del libro de ventas.
public
array<int, int>
TIPOS_FUERA_DEL_DETALLE
= [35, 38, 39, 41, 105, 500, 501, 919, 920, 922, 924]
El esquema acepta estos tipos en el detalle, pero la biblioteca los omite a propósito, como una regla propia: se informan solo en el resumen del período (sus totales igual se cuentan).
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<string|int, mixed> $detalles) : array<int, array<string, mixed>>
Parameters
- $detalles : array<string|int, mixed>