Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2310 → Rev 2311

/branches/v2.4-fourche/jrest/lib/FormateurGroupeColonne.php
710,32 → 710,37
return NULL;
}
 
/**
* Attention la fonction suppose que l'on ait fait appel à baseflor_preload avant
* d'être appelée
* @CASSECOUILLES elle pourrait le détecter et le faire elle-même
*/
static function baseflor_ligne($obs, &$ligne) {
// Attention la fonction suppose que l'on ait fait appel à baseflor_preload avant
// d'être appelée
if(!$obs['nom_ret_nn'] || !self::referenceTableExiste()) {
$ligne = array_merge($ligne, array_fill_keys(self::$baseflor_col, " "));
return;
}
$clefsBF = array_keys(self::$baseflor_col);
// par défaut des colonnes vides pour ne pas décaler le bousin
$donneesBF = array_fill_keys($clefsBF, "");
 
list($referentiel) = explode(':', strtolower($obs['nom_referentiel']));
$cache_id = $referentiel . '-' . $obs['nom_ret_nn'];
// s'il y a des données baseflor
if ($obs['nom_ret_nn'] && self::referenceTableExiste() && count(self::$cache['getBaseflor']) > 0) {
// l'astuce à un franc vingt
list($referentiel) = explode(':', strtolower($obs['nom_referentiel']));
$cache_id = $referentiel . '-' . $obs['nom_ret_nn'];
 
// XXX: problème de valeurs NULL pour utiliser simplement isset() ?
// @ car getBaseflor[] n'est peut-être pas encore initialisé
if(@array_key_exists($cache_id, self::$cache['getBaseflor'])) {
$ligne = array_merge($ligne, self::$cache['getBaseflor'][$cache_id]);
foreach(self::$baseflor_col as $col_baseflor) {
if(!array_key_exists($col_baseflor, $ligne)) {
$ligne[$col_baseflor] = " ";
// si les données baseflor existent dans le cache pour ce nom_ret_nn
if (array_key_exists($cache_id, self::$cache['getBaseflor'])) {
$donneesBFATrous = self::$cache['getBaseflor'][$cache_id];
foreach($clefsBF as $colbf) { // remplit les trous tout en préservant l'ordre
if(array_key_exists($colbf, $donneesBFATrous)) {
$donneesBF[$colbf] = $donneesBFATrous[$colbf];
} else {
$donneesBF[$colbf] = "";
}
}
}
return;
} else {
$ligne = array_merge($ligne, array_fill_keys(self::$baseflor_col, " "));
return;
}
 
// Quand les données sont prêtes, on les fusionne
$ligne = array_merge($ligne, $donneesBF);
}
 
static function champsEtendus_preload($cel, $obsids) {