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:
@@ -7,6 +7,7 @@ dependencies:
|
||||
- field.field.node.ligne_comptable.field_cotisation_active
|
||||
- field.field.node.ligne_comptable.field_cotisation_urssaf
|
||||
- field.field.node.ligne_comptable.field_date_ligne
|
||||
- field.field.node.ligne_comptable.field_ecart
|
||||
- field.field.node.ligne_comptable.field_entree_liee
|
||||
- field.field.node.ligne_comptable.field_flag
|
||||
- field.field.node.ligne_comptable.field_montant_ht
|
||||
@@ -175,5 +176,6 @@ content:
|
||||
placeholder: ''
|
||||
third_party_settings: { }
|
||||
hidden:
|
||||
field_ecart: true
|
||||
promote: true
|
||||
sticky: true
|
||||
|
||||
@@ -7,6 +7,7 @@ dependencies:
|
||||
- field.field.node.ligne_comptable.field_cotisation_active
|
||||
- field.field.node.ligne_comptable.field_cotisation_urssaf
|
||||
- field.field.node.ligne_comptable.field_date_ligne
|
||||
- field.field.node.ligne_comptable.field_ecart
|
||||
- field.field.node.ligne_comptable.field_entree_liee
|
||||
- field.field.node.ligne_comptable.field_flag
|
||||
- field.field.node.ligne_comptable.field_montant_ht
|
||||
@@ -65,6 +66,17 @@ content:
|
||||
third_party_settings: { }
|
||||
weight: 0
|
||||
region: content
|
||||
field_ecart:
|
||||
type: number_decimal
|
||||
label: above
|
||||
settings:
|
||||
thousand_separator: ''
|
||||
decimal_separator: .
|
||||
scale: 2
|
||||
prefix_suffix: true
|
||||
third_party_settings: { }
|
||||
weight: 13
|
||||
region: content
|
||||
field_entree_liee:
|
||||
type: entity_reference_label
|
||||
label: above
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
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
|
||||
@@ -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