public function ajouterEvenementNouveauDossier($id = null)
 {
     $idAdresse = is_null($id) ? 0 : $id;
     $retour = array('idEvenementGroupeAdresse' => 0, 'idSousEvenement' => 0, 'errors' => array());
     $idEvenementGroupeAdresse = 0;
     $formulaire = new formGenerator();
     $tabForm = $this->getEvenementFields('nouveauDossier');
     $errors = $formulaire->getArrayFromPost($tabForm);
     $authentification = new archiAuthentification();
     $idUtilisateur = $authentification->getIdUtilisateur();
     $idEvenementGroupeAdresse = 0;
     /*
     debug(array(
     	'isset'=>isset($idAdresse),
     	'not empty'=>empty($idAdresse),
     	'test idAdresse'=>($idAdresse!=0),
     	'is_null' => is_null($idAdresse),
     	'idAdresse' => $idAdresse
     ));
     */
     if (isset($idAdresse) && !is_null($idAdresse) && $idAdresse != 0) {
         $requeteIdEvtGa = "\n\t\t\t\t\tSELECT idEvenement\n\t\t\t\t\tFROM _adresseEvenement\n\t\t\t\t\tWHERE idAdresse =" . $idAdresse;
         $resultatIdEvtGa = $this->connexionBdd->requete($requeteIdEvtGa);
         $array_idEvt = mysql_fetch_assoc($resultatIdEvtGa);
         $idEvenementGroupeAdresse = $array_idEvt['idEvenement'];
     }
     if (count($errors) == 0) {
         //$this->connexionBdd->getLock(array('historiqueEvenement'));
         /*
         			if( isset($idAdresse) &&  !is_null($idAdresse ) && $idAdresse==0 ){
         */
         // *****************************************************
         // ajout de l'evenement groupe d'adresses
         $idEvenementGroupeAdresse = $this->getNewIdEvenement();
         // creation de l'evenement parent groupe d'adresse
         $sql = "INSERT INTO evenements (idEvenement, titre, description, dateDebut, dateFin, idSource, idUtilisateur, idTypeStructure, idTypeEvenement,dateCreationEvenement)\n\t\t\t\t\t\tVALUES (" . $idEvenementGroupeAdresse . ", '', '', '', '', " . $tabForm['source']['value'] . ", " . $idUtilisateur . ", 0, " . $this->getIdTypeEvenementGroupeAdresse() . ",now())";
         $this->connexionBdd->requete($sql);
         $idEvenementGroupeAdresse = $this->connexionBdd->getLastId();
         /*
         }
         */
         // *****************************************************
         // on recupere l'id de l'evenement enfant ( construction)
         //$idSousEvenement = $this->getNewIdEvenement();
         // ajout de l'evenement fils
         $libelle = $tabForm['titre']['value'];
         $description = $tabForm['description']['value'];
         $dateDebut = $this->date->toBdd($this->date->convertYears($tabForm['dateDebut']['value']));
         $isDateDebutEnviron = $tabForm['isDateDebutEnviron']['value'];
         $dateFin = $this->date->toBdd($this->date->convertYears($tabForm['dateFin']['value']));
         $idSource = $tabForm['source']['value'];
         $idTypeStructure = $tabForm['typeStructure']['value'];
         $idTypeEvenement = $tabForm['typeEvenement']['value'];
         $numeroArchive = $tabForm['numeroArchive']['value'];
         $groupeFromTypeEvenement = $this->getGroupeFromTypeEvenement($idTypeEvenement);
         switch ($groupeFromTypeEvenement) {
             case '1':
                 // culturel
                 $ISMH = $tabForm['ISMH']['value'];
                 $MH = $tabForm['MH']['value'];
                 $nbEtages = '';
                 break;
             case '2':
                 // travaux
                 $ISMH = 0;
                 $MH = 0;
                 $nbEtages = $tabForm['nbEtages']['value'];
                 // enregistrement des courants architecturaux liés au sous evenement 'construction'
                 $courants = new archiCourantArchitectural();
                 $courants->enregistreLiaisonEvenement($idSousEvenement);
                 break;
         }
         //Valeurs vides si le contenu n'est pas concerné
         $ISMH = isset($ISMH) ? $ISMH : "";
         $MH = isset($MH) ? $MH : "";
         $nbEtages = isset($nbEtages) ? $nbEtages : "";
         $idTypeStructure = isset($idTypeStructure) ? $idTypeStructure : 0;
         $idTypeEvenement = isset($idTypeEvenement) ? $idTypeEvenement : 0;
         $sqlHistoriqueEvenement = "INSERT INTO evenements ( titre, description, dateDebut, dateFin, idSource, idUtilisateur, idTypeStructure, idTypeEvenement,dateCreationEvenement,ISMH , MH , nbEtages,isDateDebutEnviron,numeroArchive)\n\t\t\t\t\tVALUES ( \"" . mysql_real_escape_string($libelle) . "\", \"" . mysql_real_escape_string($description) . "\", '" . mysql_real_escape_string($dateDebut) . "', '" . mysql_real_escape_string($dateFin) . "', " . mysql_real_escape_string($idSource) . ", " . mysql_real_escape_string($idUtilisateur) . ", '" . mysql_real_escape_string($idTypeStructure) . "', '" . mysql_real_escape_string($idTypeEvenement) . "', now(), '" . mysql_real_escape_string($ISMH) . "', '" . mysql_real_escape_string($MH) . "', '" . mysql_real_escape_string($nbEtages) . "', '" . mysql_real_escape_string($isDateDebutEnviron) . "',\"" . mysql_real_escape_string($numeroArchive) . "\")";
         $this->connexionBdd->requete($sqlHistoriqueEvenement);
         $idEvenement = $this->connexionBdd->getLastId();
         $idSousEvenement = $idEvenement;
         // on met a jour les positions des evenements du groupe d'adresse (meme s'il n'y en a qu'une)
         $this->majPositionsEvenements(array('idEvenementGroupeAdresse' => $idEvenementGroupeAdresse, 'idNouvelEvenement' => $idSousEvenement));
         // enregistrement des personnes liées au sous evenement 'construction'
         $personnes = new archiPersonne();
         $personnes->enregistreLiaisonEvenement($idSousEvenement);
         //$this->connexionBdd->freeLock(array('historiqueEvenement'));
         $retour = array('idEvenementGroupeAdresse' => $idEvenementGroupeAdresse, 'idSousEvenement' => $idSousEvenement, 'errors' => array());
     } else {
         // erreur dans la saisie de l'evenement
         $this->erreurs->ajouter("Erreur dans la saisie de l'événement");
         echo "erreur dans la saise de l'evenement";
         $retour = array('idEvenementGroupeAdresse' => 0, 'idSousEvenement' => 0, 'errors' => $errors);
     }
     return $retour;
 }