Ajoute field_ecart (Montant HT - somme répartition), stocké à la sauvegarde
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.
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
uuid: 95ae1d5b-db18-4ebf-93a4-34d6522a32d6
|
||||
langcode: en
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- node
|
||||
id: node.field_ecart
|
||||
field_name: field_ecart
|
||||
entity_type: node
|
||||
type: decimal
|
||||
settings:
|
||||
precision: 12
|
||||
scale: 2
|
||||
module: core
|
||||
locked: false
|
||||
cardinality: 1
|
||||
translatable: true
|
||||
indexes: { }
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
||||
Reference in New Issue
Block a user