src/Webtrees/Module/GeoDispersion/Model/GeoAnalysisProvider.php
public function createGeoAnalysis($description, $analysis_level, $map_file, $map_top_level, $use_flags, $gen_details) {
		try{
			Database::beginTransaction();
		
			Database::prepare(
				'INSERT INTO `##maj_geodispersion`'.
				' (majgd_file, majgd_descr, majgd_sublevel, majgd_map, majgd_toplevel, majgd_useflagsgen, majgd_detailsgen)'.
				' VALUES (:gedcom_id, :description, :analysis_level, :map, :map_top_level, :use_flags, :gen_details)'
			)->execute(array(
				'gedcom_id' => $this->tree->getTreeId(),
				'description' => $description,
				'analysis_level' => $analysis_level,
				'use_flags' => $use_flags ? 'yes' : 'no',
				'gen_details' => $gen_details,
				'map' => $map_file,
				'map_top_level' => $map_top_level        
			));
			
			$id = Database::lastInsertId();			
			$ga = $this->getGeoAnalysis($id, false);
			
			Database::commit();
		}
		catch(\Exception $ex) {
			Database::rollback();
			$ga = null;
			Log::addErrorLog('A new Geo Analysis failed to be created. Transaction rollbacked. Parameters ['.$description.', '.$analysis_level.','.$map_file.','.$map_top_level.','.$use_flags.', '.$gen_details.']. Exception: '.$ex->getMessage());
		}
		return $ga;
    }
public function createGeoAnalysis($description, $analysis_level, $map_file, $map_top_level, $use_flags, $gen_details) {
		try{
			Database::beginTransaction();
		
			Database::prepare(
				'INSERT INTO `##maj_geodispersion`'.
				' (majgd_file, majgd_descr, majgd_sublevel, majgd_map, majgd_toplevel, majgd_useflagsgen, majgd_detailsgen)'.
				' VALUES (:gedcom_id, :description, :analysis_level, :map, :map_top_level, :use_flags, :gen_details)'
			)->execute(array(
				'gedcom_id' => $this->tree->getTreeId(),
				'description' => $description,
				'analysis_level' => $analysis_level,
				'use_flags' => $use_flags ? 'yes' : 'no',
				'gen_details' => $gen_details,
				'map' => $map_file,
				'map_top_level' => $map_top_level        
			));
			
			$id = Database::lastInsertId();			
			$ga = $this->getGeoAnalysis($id, false);
			
			Database::commit();
		}
		catch(\Exception $ex) {
			Database::rollback();
			$ga = null;
			Log::addErrorLog('A new Geo Analysis failed to be created. Transaction rollbacked. Parameters ['.$description.', '.$analysis_level.','.$map_file.','.$map_top_level.','.$use_flags.', '.$gen_details.']. Exception: '.$ex->getMessage());
		}
		return $ga;
    }
public function createGeoAnalysis ( $ description , $ analysis_level , $ map_file , $ map_top_level , $ use_flags , $ gen_details ) { try { Database :: beginTransaction ( ) ; Database :: prepare ( 'INSERT INTO `##maj_geodispersion`' . ' (majgd_file, majgd_descr, majgd_sublevel, majgd_map, majgd_toplevel, majgd_useflagsgen, majgd_detailsgen)' . ' VALUES (:gedcom_id, :description, :analysis_level, :map, :map_top_level, :use_flags, :gen_details)' ) -> execute ( array ( 'gedcom_id' => $ this -> tree -> getTreeId ( ) , 'description' => $ description , 'analysis_level' => $ analysis_level , 'use_flags' => $ use_flags ? 'yes' : 'no' , 'gen_details' => $ gen_details , 'map' => $ map_file , 'map_top_level' => $ map_top_level ) ) ; $ id = Database :: lastInsertId ( ) ; $ ga = $ this -> getGeoAnalysis ( $ id , false ) ; Database :: commit ( ) ; } catch ( \ Exception $ ex ) { Database :: rollback ( ) ; $ ga = null ; Log :: addErrorLog ( 'A new Geo Analysis failed to be created. Transaction rollbacked. Parameters [' . $ description . ', ' . $ analysis_level . ',' . $ map_file . ',' . $ map_top_level . ',' . $ use_flags . ', ' . $ gen_details . ']. Exception: ' . $ ex -> getMessage ( ) ) ; } return $ ga ; }
Add a new geodispersion analysis in the database, in a transactional manner.
When successful, eturns the newly created GeoAnalysis object.

@param string $description geodispersion analysis title
@param int $analysis_level Analysis level
@param string $map_file Filename of the map
@param int $map_top_level Parent level of the map
@param bool $use_flags Use flag in the place display
@param int $gen_details Number of top places to display
@return GeoAnalysis
Add a new geodispersion analysis in the database in a transactional manner . When successful eturns the newly created GeoAnalysis object .