Subversion Repositories eFlore/Applications.cel

Rev

Rev 2310 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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