Subversion Repositories eFlore/Applications.cel

Rev

Rev 2308 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2308 Rev 2312
Line 708... Line 708...
708
		}
708
		}
Line 709... Line 709...
709
 
709
 
710
		return NULL;
710
		return NULL;
Line -... Line 711...
-
 
711
	}
-
 
712
 
-
 
713
	/** 
-
 
714
	 * Attention la fonction suppose que l'on ait fait appel à baseflor_preload avant
-
 
715
	 * d'être appelée
711
	}
716
	 * @CASSECOUILLES elle pourrait le détecter et le faire elle-même
712
 
717
	 */
713
	static function baseflor_ligne($obs, &$ligne) {
-
 
714
		// Attention la fonction suppose que l'on ait fait appel à baseflor_preload avant 
-
 
715
		// d'être appelée
718
	static function baseflor_ligne($obs, &$ligne) {
716
		
719
		$clefsBF = array_keys(self::$baseflor_col);
717
		if(!$obs['nom_ret_nn'] || !self::referenceTableExiste()) {
-
 
718
			$ligne = array_merge($ligne, array_fill_keys(self::$baseflor_col, ""));
-
 
Line -... Line 720...
-
 
720
		// par défaut des colonnes vides pour ne pas décaler le bousin
-
 
721
		$donneesBF = array_fill_keys($clefsBF, "");
-
 
722
 
719
			return;
723
		// s'il y a des données baseflor
720
		}
724
		if ($obs['nom_ret_nn'] && self::referenceTableExiste() && count(self::$cache['getBaseflor']) > 0) {
Line 721... Line -...
721
 
-
 
722
		list($referentiel) = explode(':', strtolower($obs['nom_referentiel']));
725
			// l'astuce à un franc vingt
723
		$cache_id = $referentiel . '-' . $obs['nom_ret_nn'];
726
			list($referentiel) = explode(':', strtolower($obs['nom_referentiel']));
724
 
727
			$cache_id = $referentiel . '-' . $obs['nom_ret_nn'];
-
 
728
 
725
		// XXX: problème de valeurs NULL pour utiliser simplement isset() ?
729
			// si les données baseflor existent dans le cache pour ce nom_ret_nn
-
 
730
			if (array_key_exists($cache_id, self::$cache['getBaseflor'])) {
726
		// @ car getBaseflor[] n'est peut-être pas encore initialisé
731
				$donneesBFATrous = self::$cache['getBaseflor'][$cache_id];
727
		if(@array_key_exists($cache_id, self::$cache['getBaseflor'])) {
732
				foreach($clefsBF as $colbf) { // remplit les trous tout en préservant l'ordre
728
			$ligne = array_merge($ligne, self::$cache['getBaseflor'][$cache_id]);
733
					if(array_key_exists($colbf, $donneesBFATrous)) {
-
 
734
						$donneesBF[$colbf] = $donneesBFATrous[$colbf];
-
 
735
					} else {
729
			return;
736
						$donneesBF[$colbf] = "";
-
 
737
					}
-
 
738
				}
-
 
739
			}
730
		} else {
740
		}
Line 731... Line 741...
731
			$ligne = array_merge($ligne, array_fill_keys(self::$baseflor_col, ""));
741
 
732
			return;
742
		// Quand les données sont prêtes, on les fusionne
733
		}
743
		$ligne = array_merge($ligne, $donneesBF);