Source code for cadrumo.application.calculations.relation_prefill_m202
"""Generic relation-prefill mechanics for registry-selected declarations."""from__future__importannotationsfromdecimalimportDecimalfrom...core.aggregationimportBindingSourceKindfrom...domain.calculations.registry.authorityimportPinnedAuthorityOperationfrom...domain.calculations.registry.binding_temporalimportbinding_applies_to_periodfrom...domain.calculations.registry.errorsimportRegistrySnapshotError,RegistryValidationErrorfrom...domain.calculations.registry.formula_initial_valuesimport(binding_values_with_absent_by_design_defaults,)from...domain.calculations.registry.idsimportBindingIdfrom...domain.calculations.registry.relation_prefill_bindingsimportRelationPrefillProviderfrom...domain.calculations.registry.schemaimportModeloRevision# Registry authority: selected M202 relation and absent-by-design defaults are# consumed through the registry query boundary.def_registry_relation_prefill_binding_ids(revision:ModeloRevision,*,modelo:str,filing_year:int,period:str,operation:PinnedAuthorityOperation,)->frozenset[BindingId]:"""Resolve period-default relation slots for one selected filing scope. The scoped query selects the revision for the caller's actual filing year and period. Compare every returned coordinate with the already-selected snapshot before reading any row; a missing or divergent declaration has no fallback relation slot. """try:selected_revision=operation.revision_for_context(modelo,filing_year=filing_year,period=period,)except(RegistrySnapshotError,RegistryValidationError):returnfrozenset[BindingId]()ifstr(selected_revision.id)!=str(revision.id):returnfrozenset[BindingId]()returnfrozenset(binding.idforbindinginselected_revision.bindingsifbinding.sourceisBindingSourceKind.RELATION_PREFILLandisinstance(binding.provider,RelationPrefillProvider)andbinding.provider.relation_kind=="previous_period"andstr(binding.provider.source_modelo)==modeloandnotbinding_applies_to_period(binding.applicability,period))
[docs]defrelation_prefill_period_zero_default_binding_ids(revision:ModeloRevision,*,modelo:str,filing_year:int,period:str,operation:PinnedAuthorityOperation,)->frozenset[BindingId]:"""Resolve relation-prefill default binding identities from the registry. Core types: :class:`~cadrumo.domain.calculations.registry.schema.ModeloRevision`. """return_registry_relation_prefill_binding_ids(revision,modelo=modelo,filing_year=filing_year,period=period,operation=operation,)
[docs]defmodelo_202_first_period_previous_payment_defaults(revision:ModeloRevision,*,modelo:str,filing_year:int,period:str,operation:PinnedAuthorityOperation,)->dict[BindingId,Decimal]:"""Resolve relation-prefill default values from the selected registry revision. Core types: :class:`~cadrumo.domain.calculations.registry.schema.ModeloRevision`. """default_binding_ids=relation_prefill_period_zero_default_binding_ids(revision,modelo=modelo,filing_year=filing_year,period=period,operation=operation,)ifnotdefault_binding_ids:return{}default_values=binding_values_with_absent_by_design_defaults(revision,{},target_period=period,)return{binding_id:default_values[binding_id]forbinding_idindefault_binding_idsifbinding_idindefault_values}