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) { |