TVA en sélection des taux officiels français, TTC non éditable
Le champ TVA devient un select (0 %, 2,1 %, 5,5 %, 10 %, 20 %) plutôt qu'une saisie libre, avec une option "Autre (préciser)" qui révèle le champ décimal existant -- indispensable pour les lignes migrées, dont le taux rétro-calculé (figli_compta_ledger_update_8005()) est souvent un taux effectif non standard qu'il ne faut surtout pas forcer à s'aligner sur l'une des 5 valeurs officielles. Montant TTC passe de readonly à #disabled : non focusable, non éditable même via les flèches d'un input number, et Form API rejette toute valeur soumise malgré tout au profit de #default_value. Le select est un élément de formulaire à part (pas un widget de champ) pour éviter que WidgetBase::extractFormValues() ne s'étouffe sur une clé étrangère mêlée aux valeurs de field_tva -- un #validate callback recopie la valeur choisie dans field_tva au moment opportun (après tous les #validate, avant la reconstruction de l'entité au submit). L'affichage/masquage du champ "Autre" repose sur du JS simple plutôt que sur #states : #states pose bien l'attribut data-drupal-states mais ne bascule jamais la visibilité dans cette modale AJAX précise, pour une raison non identifiée (un #states pourtant fonctionnel existe juste au-dessus, sur field_entree_liee, qui surveille un vrai champ Field API plutôt qu'un select ajouté à la main).
This commit is contained in:
@@ -58,7 +58,7 @@ content:
|
||||
third_party_settings: { }
|
||||
field_flag:
|
||||
type: entity_reference_autocomplete_tags
|
||||
weight: 10
|
||||
weight: 11
|
||||
region: content
|
||||
settings:
|
||||
match_operator: CONTAINS
|
||||
@@ -82,7 +82,7 @@ content:
|
||||
third_party_settings: { }
|
||||
field_notes:
|
||||
type: string_textarea
|
||||
weight: 9
|
||||
weight: 10
|
||||
region: content
|
||||
settings:
|
||||
rows: 5
|
||||
@@ -98,7 +98,7 @@ content:
|
||||
third_party_settings: { }
|
||||
field_repartition:
|
||||
type: paragraphs
|
||||
weight: 8
|
||||
weight: 9
|
||||
region: content
|
||||
settings:
|
||||
title: Répartition
|
||||
@@ -116,7 +116,7 @@ content:
|
||||
third_party_settings: { }
|
||||
field_tva:
|
||||
type: number
|
||||
weight: 6
|
||||
weight: 8
|
||||
region: content
|
||||
settings:
|
||||
placeholder: ''
|
||||
|
||||
@@ -56,7 +56,7 @@ content:
|
||||
settings:
|
||||
link: true
|
||||
third_party_settings: { }
|
||||
weight: 10
|
||||
weight: 11
|
||||
region: content
|
||||
field_montant_ht:
|
||||
type: number_decimal
|
||||
@@ -85,7 +85,7 @@ content:
|
||||
label: above
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
weight: 9
|
||||
weight: 10
|
||||
region: content
|
||||
field_numero_facture:
|
||||
type: string
|
||||
@@ -103,7 +103,7 @@ content:
|
||||
view_mode: default
|
||||
link: ''
|
||||
third_party_settings: { }
|
||||
weight: 8
|
||||
weight: 9
|
||||
region: content
|
||||
field_tva:
|
||||
type: number_decimal
|
||||
@@ -114,7 +114,7 @@ content:
|
||||
scale: 2
|
||||
prefix_suffix: true
|
||||
third_party_settings: { }
|
||||
weight: 6
|
||||
weight: 8
|
||||
region: content
|
||||
field_type_ligne:
|
||||
type: list_default
|
||||
|
||||
Reference in New Issue
Block a user