cadrumo.application.filing._m296_projection module¶
Project modelo 296’s repeated detail rows.
Modelo 296 is the IRNR annual summary of retenciones e ingresos a cuenta, and four of its five records are lists in AEAT’s own design: the Tipo 2 perceptor record and its intereses hoja are emitted once per payee, and the two valores-negociables anexos are relaciones, one row per pago and one per certificado.
All four were published as single non-repeating records, so each could hold exactly ONE row. That failure is silent – the emitted file is structurally valid and simply under-declares by every row after the first – and their fields were declared as header producers that nothing resolved, so even the one row each could hold rendered blank.
Row identity is the render OCCURRENCE, not a slot on the reference. Unlike modelo 200’s
party blocks, which AEAT prints a fixed number of times, none of these has a ceiling in the
design: the number of rows is the number of payees, pagos and certificados. That is why
none of the modelo-296 projection references carries a slot – one would be a second row
axis always equal to 1, and at worst an invitation to cap the rows at whatever was declared.
A filing with no rows of a family emits no occurrence of that record, which is what AEAT
expects of an anexo a filer has nothing to put on; whether that absence is admissible is the
record’s own required flag, checked by the renderer.
- build_m296_filing_projection_plan(*, registry_snapshot, layout, producer_snapshot)[source]¶
Project one record occurrence per row, for every modelo 296 detail family.
Core types:
RegistrySnapshot.- Return type:
- Parameters:
registry_snapshot (RegistrySnapshot)
layout (ExportLayoutDefinition)
producer_snapshot (FilingProducerSnapshot)