Phase 1 du chantier filtrage serveur de /lignes : l'écart devient une vraie valeur stockée plutôt que recalculée à la volée en résolvant les paragraphes de répartition, pour que le futur filtre "Écarts uniquement" côté serveur puisse filtrer directement dessus. Contrairement au Montant TTC (protégé par un garde-fou pour ne jamais altérer un TTC historique), l'écart n'a pas de valeur passée à protéger -- il reflète l'état *actuel* de la répartition, donc recalculé sans condition à chaque sauvegarde. figli_compta_ledger_ node_presave() calculait déjà cette somme pour la validation répartition == HT ; le stockage était quasi gratuit à ajouter au même endroit. Migration (update hooks 8009/8010) : rétro-calcul mécanique pour les 1556 lignes existantes (tous types, contrairement aux migrations TVA/ cotisation qui ne concernaient que les entrées client) -- aucune ambiguïté à arbitrer, juste HT moins répartition. Vérifié indépendamment ligne par ligne après coup : 0 écart entre la valeur recalculée à la main et celle stockée par la migration. Nouveau flag d'état 'figli_compta_ledger.skip_revision', utilisé uniquement par cette migration : backfiller un champ purement calculé sur 1556 lignes déjà migrées n'est pas un changement éditorial qui justifie 1556 nouvelles révisions -- vérifié qu'aucune révision supplémentaire n'a été créée. Reste indépendant de skip_validation (déjà utilisé par tous les autres scripts de migration de ce module, et qui doit continuer à créer une révision). Restructuration de figli_compta_ledger_node_presave() : le calcul de l'écart et son stockage se font maintenant même sous skip_validation (seul le lancement de l'exception reste conditionnel) -- vérifié que l'exception se déclenche toujours normalement sur une vraie répartition incohérente, et que Montant TTC/Cotisation restent inchangés sur une sauvegarde qui ne touche ni HT ni TVA.
24 lines
457 B
YAML
24 lines
457 B
YAML
uuid: 79bd7ee6-1e84-4edd-8065-775929c45fcb
|
|
langcode: en
|
|
status: true
|
|
dependencies:
|
|
config:
|
|
- field.storage.node.field_ecart
|
|
- node.type.ligne_comptable
|
|
id: node.ligne_comptable.field_ecart
|
|
field_name: field_ecart
|
|
entity_type: node
|
|
bundle: ligne_comptable
|
|
label: Écart
|
|
description: ''
|
|
required: false
|
|
translatable: true
|
|
default_value: { }
|
|
default_value_callback: ''
|
|
settings:
|
|
min: null
|
|
max: null
|
|
prefix: ''
|
|
suffix: ''
|
|
field_type: decimal
|