mirror of
https://github.com/JMP-MS/ASPIC.git
synced 2026-10-27 16:07:10 +00:00
V1.17.18 Modifications consignes correction bugs
This commit is contained in:
+32
-2
@@ -106,6 +106,23 @@
|
||||
* d'un code postal déduit par l'IA) verrait la valeur D'AVANT cet appel IA,
|
||||
* puisque les Tests s'exécutent avant l'étape 3 — aucune consigne actuelle
|
||||
* n'est dans ce cas.
|
||||
*
|
||||
* Test à un champ avec accès base (8 septembre 2026) : première consigne de
|
||||
* cette nature (unicité du mail/portable, voir consigne_mail_unique() et
|
||||
* consigne_portable_unique() dans consignes_fonctions.php). Le contrat de
|
||||
* base d'un Test à un champ reste (string $valeur): bool (voir en-tête de
|
||||
* consignes_fonctions.php), mais le moteur appelle désormais TOUJOURS ces
|
||||
* fonctions avec deux arguments supplémentaires, $pdo et $idExclusion — sans
|
||||
* effet sur les fonctions existantes qui ne déclarent qu'un seul paramètre
|
||||
* (PHP ignore silencieusement les arguments en trop), et exploitable par une
|
||||
* nouvelle fonction qui déclare ces deux paramètres en plus. $idExclusion est
|
||||
* l'identifiant (ex. CNT_Incr) de la fiche en cours de modification — null en
|
||||
* Création (rien à exclure), ou en Modification si l'appelant ne le fournit
|
||||
* pas — pour qu'une consigne d'unicité ne se bloque jamais elle-même en
|
||||
* retrouvant la propre valeur déjà enregistrée de la fiche qu'on modifie.
|
||||
* Fourni par l'appelant (voir $idExclusion du paramètre d'appliquerConsignes()
|
||||
* ci-dessous) : ce fichier n'a connaissance d'aucun identifiant métier propre
|
||||
* à un contexte précis, volontairement générique.
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -280,12 +297,21 @@ function executerTraitements(array $consignesTraitement, array &$data, array &$j
|
||||
* l'appelant (ex. un toast par message),
|
||||
* indépendamment de $journalisations qui
|
||||
* couvre l'historique, pas l'écran.
|
||||
* @param int|null $idExclusion Identifiant de la fiche en cours de
|
||||
* modification (ex. CNT_Incr), à exclure
|
||||
* d'une éventuelle vérification
|
||||
* d'unicité — null en Création, ou si
|
||||
* aucune consigne du contexte n'en a
|
||||
* besoin (8 septembre 2026, voir
|
||||
* commentaire d'en-tête). Simplement
|
||||
* retransmis tel quel aux fonctions de
|
||||
* Test à un champ qui le demandent.
|
||||
* @return string|null Message d'erreur du premier test en
|
||||
* échec (déjà le texte à renvoyer tel
|
||||
* quel au front-end), ou null si tout est
|
||||
* passé.
|
||||
*/
|
||||
function appliquerConsignes(PDO $pdo, string $contexte, string $portee, array &$data, ?string &$agentEchec = null, ?array &$journalisations = null, ?array &$avertissements = null): ?string
|
||||
function appliquerConsignes(PDO $pdo, string $contexte, string $portee, array &$data, ?string &$agentEchec = null, ?array &$journalisations = null, ?array &$avertissements = null, ?int $idExclusion = null): ?string
|
||||
{
|
||||
// Type nullable en entrée (comme $agentEchec ci-dessus) : un appelant qui
|
||||
// passe une variable non initialisée par référence la fait exister à
|
||||
@@ -317,7 +343,11 @@ function appliquerConsignes(PDO $pdo, string $contexte, string $portee, array &$
|
||||
$champs = array_map('trim', explode(',', $c['CNS_Champ']));
|
||||
if (count($champs) === 1) {
|
||||
$valeur = (string)($data[$champs[0]] ?? '');
|
||||
$ok = call_user_func($c['FON_NomPHP'], $valeur);
|
||||
// $pdo et $idExclusion toujours passés (voir commentaire
|
||||
// d'en-tête, 8 septembre 2026) : sans effet pour une fonction qui
|
||||
// ne déclare que (string $valeur), exploités par une fonction qui
|
||||
// a besoin d'interroger la base (ex. unicité mail/portable).
|
||||
$ok = call_user_func($c['FON_NomPHP'], $valeur, $pdo, $idExclusion);
|
||||
} else {
|
||||
$valeurs = [];
|
||||
foreach ($champs as $champ) {
|
||||
|
||||
Reference in New Issue
Block a user