/**
  * @name update($pDetailOperation)
  * @param DetailOperationVO
  * @return integer
  * @desc Met à jour une opération
  */
 private function update($pDetailOperation)
 {
     $pDetailOperation->setDate(StringUtils::dateTimeAujourdhuiDb());
     $pDetailOperation->setIdConnexion($_SESSION[ID_CONNEXION]);
     $this->insertHistorique($pDetailOperation);
     // Ajout historique
     return DetailOperationManager::update($pDetailOperation);
     // update de l'opération
 }
 /**
  * @name modifierInformation($pParam)
  * @return VR
  * @desc Modification des informations de l'adhérent.
  */
 public function modifierInformation($pParam)
 {
     $lVr = InfoAdherentValid::validUpdateInformation($pParam);
     if ($lVr->getValid()) {
         // Chargement de l'adherent
         $lAdherentActuel = AdherentManager::select($pParam['id_adherent']);
         //Mise à jour des inscriptions de mailing liste
         $lMailingListeService = new MailingListeService();
         if ($lAdherentActuel->getCourrielPrincipal() != "") {
             $lMailingListeService->delete($lAdherentActuel->getCourrielPrincipal());
         }
         if ($lAdherentActuel->getCourrielSecondaire() != "") {
             $lMailingListeService->delete($lAdherentActuel->getCourrielSecondaire());
         }
         if ($pParam['courrielPrincipal'] != "") {
             $lMailingListeService->insert($pParam['courrielPrincipal']);
         }
         if ($pParam['courrielSecondaire'] != "") {
             $lMailingListeService->insert($pParam['courrielSecondaire']);
         }
         $lAdherentActuel->setNom($pParam['nom']);
         $lAdherentActuel->setPrenom($pParam['prenom']);
         $lAdherentActuel->setCourrielPrincipal($pParam['courrielPrincipal']);
         $lAdherentActuel->setCourrielSecondaire($pParam['courrielSecondaire']);
         $lAdherentActuel->setTelephonePrincipal($pParam['telephonePrincipal']);
         $lAdherentActuel->setTelephoneSecondaire($pParam['telephoneSecondaire']);
         $lAdherentActuel->setAdresse($pParam['adresse']);
         $lAdherentActuel->setCodePostal($pParam['codePostal']);
         $lAdherentActuel->setVille($pParam['ville']);
         $lAdherentActuel->setDateNaissance($pParam['dateNaissance']);
         $lAdherentActuel->setCommentaire($pParam['commentaire']);
         // Insertion de la première mise à jour
         $lAdherentActuel->setDateMaj(StringUtils::dateTimeAujourdhuiDb());
         // Maj de l'adherent dans la BDD
         AdherentManager::update($lAdherentActuel);
         $lCompteService = new CompteService();
         $lCompte = $lCompteService->get($lAdherentActuel->getIdCompte());
         $lCompte->setIdAdherentPrincipal($pParam['idAdherentPrincipal']);
         $lCompteService->set($lCompte);
     }
     return $lVr;
 }
 /**
  * @name delete($pId)
  * @param integer
  * @desc Met à jour une opération
  */
 public function delete($pId)
 {
     $lOperationValid = new OperationValid();
     if ($lOperationValid->delete($pId)) {
         $lOperation = $this->getDetail($pId);
         // Maj du solde du compte
         $lTypeModificationSolde = array(1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14);
         if (in_array($lOperation->getTypePaiement(), $lTypeModificationSolde)) {
             $lCompteService = new CompteService();
             // Mise à jour du solde
             $lCompte = $lCompteService->get($lOperation->getIdCompte());
             $lCompte->setSolde($lCompte->getSolde() - $lOperation->getMontant());
             $lCompteService->set($lCompte);
         }
         // Si c'est un paiement de facture de producteur il faut mettre à jour les paiements associés
         $lOperationChampComplementaireFacture = OperationChampComplementaireManager::recherche(array(OperationChampComplementaireManager::CHAMP_OPERATIONCHAMPCOMPLEMENTAIRE_CHCP_ID, OperationChampComplementaireManager::CHAMP_OPERATIONCHAMPCOMPLEMENTAIRE_VALEUR), array('=', '='), array(9, $pId), array(), array());
         if (!is_null($lOperationChampComplementaireFacture[0]->getOpeId())) {
             // Suppression de l'operation de facture
             $lOperationFacture = $this->getDetail($lOperationChampComplementaireFacture[0]->getOpeId());
             $this->delete($lOperationFacture->getId());
             // Suppression de l'operation zeybu
             $lOpeFacChampComp = $lOperationFacture->getChampComplementaire();
             $this->delete($lOpeFacChampComp[10]->getValeur());
         }
         switch ($lOperation->getTypePaiement()) {
             case 0:
                 // Annulation de la reservation
             // Annulation de la reservation
             case 16:
             case 22:
                 $lOperation->setTypePaiement(16);
                 return $this->update($lOperation);
                 break;
             case 15:
                 // Réservation non récupérée
                 $lOperation->setTypePaiement(15);
                 return $this->update($lOperation);
                 break;
             case 1:
                 // Annulation achat/dépot
             // Annulation achat/dépot
             case 2:
             case 6:
                 $lOperation->setTypePaiement(18);
                 return $this->update($lOperation);
                 break;
             case 7:
                 $lOperation->setTypePaiement(18);
                 return $this->update($lOperation);
                 break;
             case 8:
                 $lOperation->setTypePaiement(20);
                 return $this->update($lOperation);
                 break;
             default:
                 $lOperation->setDate(StringUtils::dateTimeAujourdhuiDb());
                 $lOperation->setlibelle("Supression");
                 $this->insertHistorique($lOperation);
                 // Ajout historique
                 //$this->insertHistorique($lDetailOperation); // Ajout historique
                 return OperationManager::delete($pId);
                 // delete de l'opération
                 break;
         }
     } else {
         return false;
     }
 }
 /**
  * @name validDelete($pData)
  * @return ReservationMarcheVR
  * @desc Test la validite de l'élément
  */
 public static function validDelete($pData)
 {
     $lVr = new ReservationMarcheVR();
     //Tests inputs
     if (!isset($pData['id_commande'])) {
         $lVr->setValid(false);
         $lVr->getLog()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getLog()->addErreur($lErreur);
     }
     if (!isset($pData['idCompte'])) {
         $lVr->setValid(false);
         $lVr->getLog()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getLog()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!is_int((int) $pData['id_commande'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_104_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_104_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['idCompte'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_104_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_104_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         //Tests Fonctionnels
         if (empty($pData['id_commande'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_207_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_207_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         if (empty($pData['idCompte'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_207_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_207_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         $lCommande = CommandeManager::select($pData['id_commande']);
         // Marché : réservation non terminée
         if (!TestFonction::dateTimeEstPLusGrandeEgale($lCommande->getDateFinReservation(), StringUtils::dateTimeAujourdhuiDb())) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_221_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_221_MSG);
             $lVr->getLog()->addErreur($lErreur);
         } else {
             $lIdReservation = new IdReservationVO();
             $lIdReservation->setIdCompte($pData['idCompte']);
             $lIdReservation->setIdCommande($pData['id_commande']);
             $lReservationService = new ReservationService();
             $lOperations = $lReservationService->selectOperationReservation($lIdReservation);
             $lOperation = $lOperations[0];
             $lIdOperation = $lOperation->getId();
             // Si il y a bien une réservation existante
             if (is_null($lIdOperation) || $lOperation->getTypePaiement() != 0) {
                 $lVr->setValid(false);
                 $lVr->getLog()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_238_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_238_MSG);
                 $lVr->getLog()->addErreur($lErreur);
             }
         }
     }
     return $lVr;
 }
 /**
  * @name modifierProducteur($pParam)
  * @desc Met à jour les informations du Producteur ainsi que ses autorisations
  */
 public function modifierProducteur($pParam)
 {
     $lVr = ProducteurValid::validUpdate($pParam);
     if ($lVr->getValid()) {
         $lProducteur = new ProducteurVO();
         $lProducteur->setId($pParam["id"]);
         $lProducteur->setIdFerme($pParam["idFerme"]);
         $lProducteur->setNom($pParam["nom"]);
         $lProducteur->setPrenom($pParam["prenom"]);
         $lProducteur->setCourrielPrincipal($pParam["courrielPrincipal"]);
         $lProducteur->setCourrielSecondaire($pParam["courrielSecondaire"]);
         $lProducteur->setTelephonePrincipal($pParam["telephonePrincipal"]);
         $lProducteur->setTelephoneSecondaire($pParam["telephoneSecondaire"]);
         $lProducteur->setAdresse($pParam["adresse"]);
         $lProducteur->setCodePostal($pParam["codePostal"]);
         $lProducteur->setVille($pParam["ville"]);
         $lProducteur->setDateNaissance($pParam["dateNaissance"]);
         $lProducteur->setCommentaire($pParam["commentaire"]);
         // Insertion de la date de mise à jour
         $lProducteur->setDateMaj(StringUtils::dateTimeAujourdhuiDb());
         // On reporte le numero dans la maj
         $lProducteurActuel = ProducteurManager::select($lProducteur->getId());
         $lProducteur->setNumero($lProducteurActuel->getNumero());
         // L'adherent n'est pas supprimé
         $lProducteur->setEtat(0);
         // Maj du producteur dans la BDD
         ProducteurManager::update($lProducteur);
         $lResponse = new ModifierProducteurResponse();
         $lResponse->setNumero($lProducteur->getNumero());
         return $lResponse;
     }
     return $lVr;
 }
 /**
  * @name suspendreAbonnement($pCompteAbonnement)
  * @param CompteAbonnementVO
  * @return bool
  * @desc Suspen les abonnements d'un compte
  */
 public function suspendreAbonnement($pCompteAbonnement)
 {
     $lAbonnementValid = new AbonnementValid();
     if ($lAbonnementValid->inputAbonnement($pCompteAbonnement)) {
         CompteAbonnementManager::suspendreCompte($pCompteAbonnement);
         $lHistoriqueSuspensionAbonnement = new HistoriqueSuspensionAbonnementVO();
         $lHistoriqueSuspensionAbonnement->setDateDebutSuspension($pCompteAbonnement->getDateDebutSuspension());
         $lHistoriqueSuspensionAbonnement->setDateFinSuspension($pCompteAbonnement->getDateFinSuspension());
         $lHistoriqueSuspensionAbonnement->setIdProduitAbonnement(0);
         $lHistoriqueSuspensionAbonnement->setIdCompte($pCompteAbonnement->getIdCompte());
         $lHistoriqueSuspensionAbonnement->setDate(StringUtils::dateTimeAujourdhuiDb());
         $lHistoriqueSuspensionAbonnement->setIdConnexion($_SESSION[ID_CONNEXION]);
         HistoriqueSuspensionAbonnementManager::insert($lHistoriqueSuspensionAbonnement);
         // Récupère l'ensemble des abonnements et met à jour les réservations en conséquence
         $lListeCompteAbonnement = CompteAbonnementManager::selectActifByIdCompte($pCompteAbonnement->getIdCompte());
         foreach ($lListeCompteAbonnement as $lCompteAbonnement) {
             $this->updateAbonnement($lCompteAbonnement);
         }
     } else {
         return false;
     }
 }
 /**
  * @name updateStockQuantite($pStockQuantite)
  * @param StockQuantiteVO
  * @return integer
  * @desc Met à jour un stock quantite
  */
 private function updateStockQuantite($pStockQuantite)
 {
     $lStockActuel = $this->getStockQuantite($pStockQuantite->getId());
     $pStockQuantite->setIdNomProduit($lStockActuel->getIdNomProduit());
     $pStockQuantite->setUnite($lStockActuel->getUnite());
     $pStockQuantite->setDateCreation($lStockActuel->getDateCreation());
     $pStockQuantite->setDateModification(StringUtils::dateTimeAujourdhuiDb());
     $pStockQuantite->setIdLogin($_SESSION[DROIT_ID]);
     //$pStock->setEtat($lStockActuel->getEtat());
     return StockQuantiteManager::update($pStockQuantite);
     // update
 }
 /**
  * @name identifier($pParam)
  * @return VR
  * @desc Vérifie le login et mot de passe dans la BDD et renvoie un IdentificationPO avec l'authorisation et place les autorisations dans les variables de session
  */
 public function identifier($pParam)
 {
     // En cas de nouvelle connexion sans déconnexion on supprime les droits
     session_unset();
     $lValid = new IdentificationValid();
     $lVr = $lValid->validAjout($pParam);
     if ($lVr->getValid()) {
         $lLogin = $pParam["login"];
         // Version cryptée du mot de pass pour le comparer avec celui de la BDD
         $lPass = md5($pParam["pass"]);
         // Sélection des adhérents ayant le login de l'identification
         $lListeIdentification = IdentificationManager::selectByLogin($lLogin);
         // Recherche de correspondance de login et mot de passe dans la base
         $lAutorisation = false;
         $lModules = array();
         if (is_array($lListeIdentification)) {
             foreach ($lListeIdentification as $lIdentification) {
                 if ($lIdentification->getLogin() === $lLogin && $lIdentification->getPass() === $lPass && $lIdentification->getAutorise() == 1) {
                     switch ($lIdentification->getType()) {
                         case 1:
                             // Adhérent
                             $lModules = $this->identifierAdherent($lIdentification);
                             break;
                         case 2:
                             // SuperZeybu
                             $lModules = $this->identifierSuperZeybu($lIdentification);
                             break;
                         case 3:
                             // Caisse
                             $lModules = $this->identifierCaisse($lIdentification);
                             break;
                         case 4:
                             // Compte Solidaire
                             $lModules = $this->identifierCompteSolidaire($lIdentification);
                             break;
                     }
                     $_SESSION[TYPE_ID] = $lIdentification->getType();
                     $lAutorisation = true;
                     $lAcces = new AccesVO();
                     $lAcces->setIdLogin($lIdentification->getIdLogin());
                     $lAcces->setTypeLogin($lIdentification->getType());
                     $lAcces->setIp($_SERVER["REMOTE_ADDR"]);
                     $lAcces->setNav($_SERVER['HTTP_USER_AGENT']);
                     $lAcces->setDateCreation(StringUtils::dateTimeAujourdhuiDb());
                     $lAcces->setAutorise(1);
                     $_SESSION[ID_CONNEXION] = AccesManager::insert($lAcces);
                 }
             }
         }
         if ($lAutorisation) {
             $lResponse = new IdentificationResponse();
             $lResponse->setType($_SESSION[TYPE_ID]);
             $lResponse->setModules($lModules);
             $lResponse->setIdConnexion($_SESSION[ID_CONNEXION]);
             return $lResponse;
         } else {
             $lVr = new TemplateVR();
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_222_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_222_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
     }
     return $lVr;
 }
 //L'adhérent
 $lAdherent = new AdherentVO();
 $lAdherent->setIdCompte($lIdCompte);
 $lAdherent->setNumero($lNumero);
 $lAdherent->setNom(StringUtils::formaterNom(trim($lNom)));
 $lAdherent->setPrenom(StringUtils::formaterPrenom(trim($lPrenom)));
 $lAdherent->setCourrielPrincipal(trim($lCourrielP));
 $lAdherent->setCourrielSecondaire(trim($lCourrielS));
 $lAdherent->setTelephonePrincipal(trim($lTelephoneP));
 $lAdherent->setTelephoneSecondaire(trim($lTelephoneS));
 $lAdherent->setAdresse(trim($lAdresse));
 $lAdherent->setCodePostal(trim($lCodePostal));
 $lAdherent->setVille(StringUtils::formaterVille(trim($lVille)));
 $lAdherent->setDateNaissance($lDateNaissance);
 $lAdherent->setDateAdhesion($lDateAdhesion);
 $lAdherent->setDateMaj(StringUtils::dateTimeAujourdhuiDb());
 $lAdherent->setCommentaire(trim($lCommentaire));
 $lAdherent->setEtat(1);
 // Protection des dates vides
 if ($lAdherent->getDateNaissance() == '') {
     $lAdherent->setDateNaissance(StringUtils::FORMAT_DATE_NULLE);
 }
 $lRequete = "INSERT INTO " . AdherentManager::TABLE_ADHERENT . "\n\t\t\t\t\t\t\t(" . AdherentManager::CHAMP_ADHERENT_ID . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_NUMERO . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_ID_COMPTE . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_NOM . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_PRENOM . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_COURRIEL_PRINCIPAL . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_COURRIEL_SECONDAIRE . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_TELEPHONE_PRINCIPAL . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_TELEPHONE_SECONDAIRE . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_ADRESSE . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_CODE_POSTAL . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_VILLE . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_DATE_NAISSANCE . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_DATE_ADHESION . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_DATE_MAJ . "\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_COMMENTAIRE . "\t\t\t\t\n\t\t\t\t\t\t\t," . AdherentManager::CHAMP_ADHERENT_ETAT . ")\n\t\t\t\t\t\t\tVALUES (NULL\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getNumero()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getIdCompte()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getNom()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getPrenom()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getCourrielPrincipal()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getCourrielSecondaire()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getTelephonePrincipal()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getTelephoneSecondaire()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getAdresse()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getCodePostal()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getVille()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getDateNaissance()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getDateAdhesion()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getDateMaj()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getCommentaire()) . "'\n\t\t\t\t\t\t\t\t,'" . StringUtils::securiser($lAdherent->getEtat()) . "')";
 $lId = Dbutils::executerRequeteInsertRetourId($lRequete);
 // Execution de la requete et récupération de l'Id généré par la BDD
 // Les modules autorisés des adhérents
 $lAutorisation = new AutorisationVO();
 $lAutorisation->setIdAdherent($lId);
 $lAutorisation->setIdModule(1);
 AutorisationManager::insert($lAutorisation);
 $lAutorisation = new AutorisationVO();
                 $lData["categories"][$lProduit->getIdCategorie()] = array("nom" => $lProduit->getCproNom(), "produits" => array());
             }
             array_push($lData["categories"][$lProduit->getIdCategorie()]["produits"], $lPdt);
         }
     }
 }
 foreach ($lData["categories"] as $lCategorie) {
     $lTemplate->assign_block_vars('categories', array('nom' => $lCategorie["nom"]));
     foreach ($lCategorie["produits"] as $lProduit) {
         $lTemplate->assign_block_vars('categories.produits', $lProduit);
     }
 }
 $lSolde = $lPage->getAdherent()->getCptSolde();
 $lSoldeNv = $lSolde - $lTotal;
 $lTemplate->assign_vars(array('idMarche' => $_GET["id_marche"], 'sigleMonetaire' => SIGLE_MONETAIRE, 'solde' => StringUtils::affichageMonetaireFr($lSolde), 'soldeNv' => StringUtils::affichageMonetaireFr($lSoldeNv), 'comNumero' => $lPage->getMarche()->getNumero(), 'total' => StringUtils::affichageMonetaireFr($lTotal), 'dateFinReservation' => StringUtils::extractDate($lPage->getMarche()->getDateFinReservation()), 'heureFinReservation' => StringUtils::extractDbHeure($lPage->getMarche()->getDateFinReservation()), 'minuteFinReservation' => StringUtils::extractDbMinute($lPage->getMarche()->getDateFinReservation()), 'dateMarcheDebut' => StringUtils::extractDate($lPage->getMarche()->getDateMarcheDebut()), 'heureMarcheDebut' => StringUtils::extractDbHeure($lPage->getMarche()->getDateMarcheDebut()), 'minuteMarcheDebut' => StringUtils::extractDbMinute($lPage->getMarche()->getDateMarcheDebut()), 'heureMarcheFin' => StringUtils::extractDbHeure($lPage->getMarche()->getDateMarcheFin()), 'minuteMarcheFin' => StringUtils::extractDbMinute($lPage->getMarche()->getDateMarcheFin())));
 if (TestFonction::dateTimeEstPLusGrandeEgale($lPage->getMarche()->getDateFinReservation(), StringUtils::dateTimeAujourdhuiDb())) {
     $lTemplate->set_filenames(array('boutonValiderReservation' => MOD_COMMANDE . '/' . 'BoutonValiderNvReservation.html'));
     $lTemplate->assign_var_from_handle('GESTION_RESERVATION', 'boutonValiderReservation');
 }
 // Pied de Page
 $lTemplate->set_filenames(array('piedPage' => COMMUN_TEMPLATE . 'PiedPage.html'));
 $lTemplate->assign_vars(array('PROP_NOM' => PROP_NOM, 'PROP_ADRESSE' => PROP_ADRESSE, 'PROP_CODE_POSTAL' => PROP_CODE_POSTAL, 'PROP_VILLE' => PROP_VILLE, 'PROP_TEL' => PROP_TEL, 'PROP_MEL' => PROP_MEL, 'ZEYBUX_TITRE_SITE' => ZEYBUX_TITRE_SITE));
 $lTemplate->assign_var_from_handle('PIED_PAGE', 'piedPage');
 $lTemplate->set_filenames(array('page' => 'Page.html'));
 $lTemplate->assign_var_from_handle('CONTENU', 'body');
 // Stock les infos pour une modification
 foreach ($_POST['id-produit'] as $lIdProduit) {
     if (isset($_POST['produit-' . $lIdProduit . '-lot']) && isset($_POST['produit-' . $lIdProduit . '-quantite'])) {
         $lParamRetour["detailReservation"][$lIdProduit] = array("id" => "", "stoIdDetailCommande" => $_POST['produit-' . $lIdProduit . '-lot'], "stoQuantite" => StringUtils::decimalFrToDb($_POST['produit-' . $lIdProduit . '-quantite']) * -1, "idProduit" => $lIdProduit);
     }
 }
 /**
  * @name validUpdate($pData)
  * @return CommandeReservationVR
  * @desc Test la validite de l'élément
  */
 public static function validUpdate($pData)
 {
     $lVr = new CommandeReservationVR();
     //Tests inputs
     if (!isset($pData['detailReservation'])) {
         $lVr->setValid(false);
         $lVr->getLog()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getLog()->addErreur($lErreur);
     }
     if (!isset($pData['idCompte'])) {
         $lVr->setValid(false);
         $lVr->getLog()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getLog()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!is_array($pData['detailReservation'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_115_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_115_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['idCompte'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_104_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_104_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         //Tests Fonctionnels
         if (empty($pData['detailReservation'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_207_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_207_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         if (empty($pData['idCompte'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_207_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_207_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         if (isset($pData["detailReservation"][0]["stoIdDetailCommande"])) {
             $lIdLot = $pData["detailReservation"][0]["stoIdDetailCommande"];
             $lDetailMarche = DetailMarcheViewManager::selectByLot($lIdLot);
             // Marché : réservation non terminée
             if (!TestFonction::dateTimeEstPLusGrandeEgale($lDetailMarche[0]->getComDateFinReservation(), StringUtils::dateTimeAujourdhuiDb())) {
                 $lVr->setValid(false);
                 $lVr->getLog()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_221_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_221_MSG);
                 $lVr->getLog()->addErreur($lErreur);
             } else {
                 $lIdReservation = new IdReservationVO();
                 $lIdReservation->setIdCompte($pData['idCompte']);
                 $lIdReservation->setIdCommande($lDetailMarche[0]->getComId());
                 $lReservationService = new ReservationService();
                 $lOperations = $lReservationService->selectOperationReservation($lIdReservation);
                 $lOperation = $lOperations[0];
                 $lIdOperation = $lOperation->getId();
                 // Si il y a bien une réservation existante
                 if (is_null($lIdOperation) || $lOperation->getTypePaiement() != 0) {
                     $lVr->setValid(false);
                     $lVr->getLog()->setValid(false);
                     $lErreur = new VRerreur();
                     $lErreur->setCode(MessagesErreurs::ERR_238_CODE);
                     $lErreur->setMessage(MessagesErreurs::ERR_238_MSG);
                     $lVr->getLog()->addErreur($lErreur);
                 }
                 if ($lVr->getValid()) {
                     foreach ($pData['detailReservation'] as $lReservation) {
                         $lReservation["idOperation"] = $lIdOperation;
                         $lVrReservation = CommandeDetailReservationValid::validUpdate($lReservation);
                         if (!$lVrReservation->getValid()) {
                             $lVr->setValid(false);
                         }
                         //$lVr->addCommandes($lVrReservation);
                         if (isset($lReservation["stoIdDetailCommande"])) {
                             $lCommandes = $lVr->getCommandes();
                             $lCommandes[$lReservation["stoIdDetailCommande"]] = $lVrReservation;
                             $lVr->setCommandes($lCommandes);
                         }
                     }
                 }
             }
         } else {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_117_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_117_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
     }
     return $lVr;
 }
 /**
  * @name update($pAdherent)
  * @param AdherentVO
  * @return AdherentVO
  * @desc Modifie un adherent
  */
 private function update($pAdherent)
 {
     $lAdherentActuel = AdherentManager::select($pAdherent->getId());
     // Si pas de liaison création d'un nouveau compte
     if ($pAdherent->getIdCompte() == 0) {
         // Création d'un nouveau compte
         $lCompte = new CompteVO();
         $lCompteService = new CompteService();
         $lCompte = $lCompteService->set($lCompte);
         $pAdherent->setIdCompte($lCompte->getId());
         // Laision avec l'adhérent
         $lCompte->setIdAdherentPrincipal($pAdherent->getId());
         // Positionnement de l'adhérent en adhérent principal du compte
         $lCompteService->set($lCompte);
     } else {
         if ($pAdherent->getIdCompte() != $lAdherentActuel->getIdCompte()) {
             // Liaison avec un autre compte
             $lAdhesionService = new AdhesionService();
             // Suppression des adhésions actuelles
             $lAdhesionService->deleteAdhesionAdherentByIdAdherent($pAdherent->getId());
             // Les adhérents du compte
             $lListeAdherent = $this->selectActifByIdCompte($pAdherent->getIdCompte());
             // Le premier adhérent
             $lAdherent = $lListeAdherent[0];
             // Les adhésions sur le premier adhérent
             $lAdhesions = $lAdhesionService->getAdhesionSurAdherent($lAdherent->getId());
             // Positionne les mêmes adhésions si elles existent
             foreach ($lAdhesions as $lAdhesion) {
                 $lAdhesionAdherentDetail = $lAdhesionService->getAdhesionAdherent($lAdhesion->getAdadId());
                 if ($lAdhesionAdherentDetail) {
                     $lAdhesionAdherent = $lAdhesionAdherentDetail->getAdhesionAdherent();
                     $lTypeAdhesion = $lAdhesionService->getTypeAdhesion($lAdhesionAdherent->getIdTypeAdhesion());
                     if ($lTypeAdhesion->getIdPerimetre() == 2) {
                         // Si type d'adhésion sur périmètre compte
                         $lAdhesionAdherent->setId('');
                         $lAdhesionAdherent->setIdAdherent($pAdherent->getId());
                         $lAdhesionService->setAdhesionAdherent($lAdhesionAdherent);
                     }
                 }
             }
         }
     }
     // Insertion de la date de mise à jour
     $pAdherent->setDateMaj(StringUtils::dateTimeAujourdhuiDb());
     // On reporte le numero dans la maj
     $pAdherent->setNumero($lAdherentActuel->getNumero());
     // L'adherent n'est pas supprimé
     $pAdherent->setEtat(1);
     // Mise en forme des données
     $pAdherent->setNom(StringUtils::formaterNom(trim($pAdherent->getNom())));
     $pAdherent->setPrenom(StringUtils::formaterPrenom(trim($pAdherent->getPrenom())));
     $pAdherent->setCourrielPrincipal(trim($pAdherent->getCourrielPrincipal()));
     $pAdherent->setCourrielSecondaire(trim($pAdherent->getCourrielSecondaire()));
     $pAdherent->setTelephonePrincipal(trim($pAdherent->getTelephonePrincipal()));
     $pAdherent->setTelephoneSecondaire(trim($pAdherent->getTelephoneSecondaire()));
     $pAdherent->setAdresse(trim($pAdherent->getAdresse()));
     $pAdherent->setCodePostal(trim($pAdherent->getCodePostal()));
     $pAdherent->setVille(StringUtils::formaterVille(trim($pAdherent->getVille())));
     $pAdherent->setCommentaire(trim($pAdherent->getCommentaire()));
     // Protection des dates vides
     if ($pAdherent->getDateNaissance() == '') {
         $pAdherent->setDateNaissance(StringUtils::FORMAT_DATE_NULLE);
     }
     if ($pAdherent->getDateAdhesion() == '') {
         $pAdherent->setDateAdhesion(StringUtils::FORMAT_DATE_NULLE);
     }
     if ($pAdherent->getDateMaj() == '') {
         $pAdherent->setDateMaj(StringUtils::FORMAT_DATE_NULLE);
     }
     // Maj de l'adherent dans la BDD
     $lRetour = AdherentManager::update($pAdherent);
     // Récupération des autorisations acutelles
     $lAutorisationsActuelles = AutorisationManager::selectByIdAdherent($pAdherent->getId());
     $lModuleService = new ModuleService();
     $lModulesDefaut = $lModuleService->selectAllDefautVisible();
     $lIdModuleDefaut = array();
     foreach ($lModulesDefaut as $lModule) {
         array_push($lIdModuleDefaut, $lModule->getId());
     }
     // Suppression des autorisations
     $lIdSuppAutorisation = array();
     foreach ($lAutorisationsActuelles as $lAutorisationActu) {
         // Suppression si ce n'est pas un module par defaut
         if (!in_array($lAutorisationActu->getIdModule(), $lIdModuleDefaut)) {
             $lSupp = true;
             foreach ($pAdherent->getListeModule() as $lIdModule) {
                 if ($lAutorisationActu->getIdModule() == $lIdModule) {
                     $lSupp = false;
                 }
             }
             if ($lSupp) {
                 array_push($lIdSuppAutorisation, $lAutorisationActu->getId());
             }
         }
     }
     if (!empty($lIdSuppAutorisation)) {
         AutorisationManager::deleteByArray($lIdSuppAutorisation);
     }
     // Ajout des nouvelles autorisations du compte
     $lAutorisations = array();
     foreach ($pAdherent->getListeModule() as $lIdModule) {
         $lAjout = true;
         foreach ($lAutorisationsActuelles as $lAutorisationActu) {
             if ($lAutorisationActu->getIdModule() == $lIdModule) {
                 $lAjout = false;
             }
         }
         if ($lAjout) {
             $lAutorisation = new AutorisationVO();
             $lAutorisation->setIdAdherent($pAdherent->getId());
             $lAutorisation->setIdModule($lIdModule);
             array_push($lAutorisations, $lAutorisation);
         }
     }
     if (!empty($lAutorisations)) {
         AutorisationManager::insertByArray($lAutorisations);
     }
     //Mise à jour des inscriptions de mailing liste
     $lMailingListeService = new MailingListeService();
     // Suppression des anciens mails
     if ($lAdherentActuel->getCourrielPrincipal() != "") {
         $lMailingListeService->delete($lAdherentActuel->getCourrielPrincipal());
     }
     if ($lAdherentActuel->getCourrielSecondaire() != "") {
         $lMailingListeService->delete($lAdherentActuel->getCourrielSecondaire());
     }
     // Ajout des nouveaux mails
     if ($pAdherent->getCourrielPrincipal() != "") {
         $lMailingListeService->insert($pAdherent->getCourrielPrincipal());
     }
     if ($pAdherent->getCourrielSecondaire() != "") {
         $lMailingListeService->insert($pAdherent->getCourrielSecondaire());
     }
     return $lRetour;
 }