/**
  * @name ajouterFerme($pParam)
  * @return AjoutFermeResponse
  * @desc Ajoute une ferme
  */
 public function ajouterFerme($pParam)
 {
     $lVr = FermeValid::validAjout($pParam);
     if ($lVr->getValid()) {
         // Création d'un nouveau compte
         $lCompte = new CompteVO();
         $lCompteService = new CompteService();
         $lCompte = $lCompteService->set($lCompte);
         // Création de la ferme
         $lFerme = new FermeVO();
         $lFerme->setNom($pParam["nom"]);
         $lFerme->setIdCompte($lCompte->getId());
         $lFerme->setSiren($pParam["siren"]);
         $lFerme->setAdresse($pParam["adresse"]);
         $lFerme->setCodePostal($pParam["codePostal"]);
         $lFerme->setVille($pParam["ville"]);
         $lFerme->setDateAdhesion($pParam["dateAdhesion"]);
         $lFerme->setDescription($pParam["description"]);
         $lFerme->setEtat(0);
         $lId = FermeManager::insert($lFerme);
         $lResponse = new AjoutFermeResponse();
         $lResponse->setId($lId);
         return $lResponse;
     }
     return $lVr;
 }
 /**
  * @name validDelete($pData)
  * @return FermeVR
  * @desc Test la validite de l'élément
  */
 public static function validDelete($pData)
 {
     $lVr = new FermeVR();
     //Tests inputs
     if (!isset($pData['id'])) {
         $lVr->setValid(false);
         $lVr->getId()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getId()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!TestFonction::checkLength($pData['id'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['id'])) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         //Tests Fonctionnels
         if (empty($pData['id'])) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         // La ferme doit exister
         $lFerme = FermeManager::select($pData['id']);
         if ($lFerme->getId() != $pData['id']) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
     }
     return $lVr;
 }
 /**
  * @name supprimerFerme($pParam)
  * @return AjoutFermeResponse
  * @desc Supprime une ferme
  */
 public function supprimerFerme($pParam)
 {
     $lVr = FermeValid::validDelete($pParam);
     if ($lVr->getValid()) {
         $lFerme = FermeManager::select($pParam['id']);
         $lFerme->setEtat(1);
         FermeManager::update($lFerme);
         $lResponse = new AjoutFermeResponse();
         $lResponse->setId($lFerme->getId());
         return $lResponse;
     }
     return $lVr;
 }
 /**
  * @name validGetListeProduitCommande($pData)
  * @return GetListeProduitCommandeVR
  * @desc Test la validite de l'élément
  */
 public static function validGetListeProduitCommande($pData)
 {
     $lVr = new GetListeProduitCommandeVR();
     //Tests inputs
     if (!isset($pData['id_commande'])) {
         $lVr->setValid(false);
         $lVr->getId_commande()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getId_commande()->addErreur($lErreur);
     }
     if (!isset($pData['id_compte_ferme'])) {
         $lVr->setValid(false);
         $lVr->getId_CompteProducteur()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getId_CompteProducteur()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!TestFonction::checkLength($pData['id_commande'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['id_commande'])) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['id_compte_ferme'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getId_CompteProducteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getId_CompteProducteur()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['id_compte_ferme'])) {
             $lVr->setValid(false);
             $lVr->getId_CompteProducteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getId_CompteProducteur()->addErreur($lErreur);
         }
         //Tests Fonctionnels
         if (empty($pData['id_commande'])) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         if (empty($pData['id_compte_ferme'])) {
             $lVr->setValid(false);
             $lVr->getId_CompteProducteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId_CompteProducteur()->addErreur($lErreur);
         }
         $lCommande = CommandeManager::select($pData['id_commande']);
         if ($lCommande->getId() != $pData['id_commande']) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         $lFerme = FermeManager::selectByIdCompte($pData['id_compte_ferme']);
         if ($lFerme[0]->getIdCompte() != $pData['id_compte_ferme']) {
             $lVr->setValid(false);
             $lVr->getId_CompteProducteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
             $lVr->getId_CompteProducteur()->addErreur($lErreur);
         }
     }
     return $lVr;
 }
 /**
  * @name validAjout($pData)
  * @return ProducteurVR
  * @desc Test la validite de l'élément
  */
 public static function validAjout($pData)
 {
     $lVr = new ProducteurVR();
     //Tests inputs
     if (!isset($pData['idFerme'])) {
         $lVr->setValid(false);
         $lVr->getNom()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getNom()->addErreur($lErreur);
     }
     if (!isset($pData['nom'])) {
         $lVr->setValid(false);
         $lVr->getNom()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getNom()->addErreur($lErreur);
     }
     if (!isset($pData['prenom'])) {
         $lVr->setValid(false);
         $lVr->getPrenom()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getPrenom()->addErreur($lErreur);
     }
     if (!isset($pData['dateNaissance'])) {
         $lVr->setValid(false);
         $lVr->getDateNaissance()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_CODE);
         $lVr->getDateNaissance()->addErreur($lErreur);
     }
     if (!isset($pData['commentaire'])) {
         $lVr->setValid(false);
         $lVr->getCommentaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getCommentaire()->addErreur($lErreur);
     }
     if (!isset($pData['courrielPrincipal'])) {
         $lVr->setValid(false);
         $lVr->getCourrielPrincipal()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getCourrielPrincipal()->addErreur($lErreur);
     }
     if (!isset($pData['courrielSecondaire'])) {
         $lVr->setValid(false);
         $lVr->getCourrielSecondaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getCourrielSecondaire()->addErreur($lErreur);
     }
     if (!isset($pData['telephonePrincipal'])) {
         $lVr->setValid(false);
         $lVr->getTelephonePrincipal()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getTelephonePrincipal()->addErreur($lErreur);
     }
     if (!isset($pData['telephoneSecondaire'])) {
         $lVr->setValid(false);
         $lVr->getTelephoneSecondaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getTelephoneSecondaire()->addErreur($lErreur);
     }
     if (!isset($pData['adresse'])) {
         $lVr->setValid(false);
         $lVr->getAdresse()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getAdresse()->addErreur($lErreur);
     }
     if (!isset($pData['codePostal'])) {
         $lVr->setValid(false);
         $lVr->getCodePostal()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getCodePostal()->addErreur($lErreur);
     }
     if (!isset($pData['ville'])) {
         $lVr->setValid(false);
         $lVr->getVille()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getVille()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!TestFonction::checkLength($pData['nom'], 0, 50)) {
             $lVr->setValid(false);
             $lVr->getNom()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getNom()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['prenom'], 0, 50)) {
             $lVr->setValid(false);
             $lVr->getPrenom()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getPrenom()->addErreur($lErreur);
         }
         if ($pData['dateNaissance'] != '' && !TestFonction::checkDate($pData['dateNaissance'], 'db')) {
             $lVr->setValid(false);
             $lVr->getDateNaissance()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_103_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_103_MSG);
             $lVr->getDateNaissance()->addErreur($lErreur);
         }
         if ($pData['dateNaissance'] != '' && !TestFonction::checkDateExist($pData['dateNaissance'], 'db')) {
             $lVr->setValid(false);
             $lVr->getDateNaissance()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_105_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_105_MSG);
             $lVr->getDateNaissance()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['commentaire'], 0, 500)) {
             $lVr->setValid(false);
             $lVr->getCommentaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getCommentaire()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['courrielPrincipal'], 0, 100)) {
             $lVr->setValid(false);
             $lVr->getCourrielPrincipal()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getCourrielPrincipal()->addErreur($lErreur);
         }
         if ($pData['courrielPrincipal'] != '' && !TestFonction::checkCourriel($pData['courrielPrincipal'])) {
             $lVr->setValid(false);
             $lVr->getCourrielPrincipal()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_102_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_102_MSG);
             $lVr->getCourrielPrincipal()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['courrielSecondaire'], 0, 100)) {
             $lVr->setValid(false);
             $lVr->getCourrielSecondaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getCourrielSecondaire()->addErreur($lErreur);
         }
         if ($pData['courrielSecondaire'] != '' && !TestFonction::checkCourriel($pData['courrielSecondaire'])) {
             $lVr->setValid(false);
             $lVr->getCourrielSecondaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_102_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_102_MSG);
             $lVr->getCourrielSecondaire()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['telephonePrincipal'], 0, 20)) {
             $lVr->setValid(false);
             $lVr->getTelephonePrincipal()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getTelephonePrincipal()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['telephoneSecondaire'], 0, 20)) {
             $lVr->setValid(false);
             $lVr->getTelephoneSecondaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getTelephoneSecondaire()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['adresse'], 0, 300)) {
             $lVr->setValid(false);
             $lVr->getAdresse()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getAdresse()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['codePostal'], 0, 10)) {
             $lVr->setValid(false);
             $lVr->getCodePostal()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getCodePostal()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['ville'], 0, 100)) {
             $lVr->setValid(false);
             $lVr->getVille()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getVille()->addErreur($lErreur);
         }
         //Tests Fonctionnels
         if (empty($pData['nom'])) {
             $lVr->setValid(false);
             $lVr->getNom()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getNom()->addErreur($lErreur);
         }
         if (empty($pData['prenom'])) {
             $lVr->setValid(false);
             $lVr->getPrenom()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getPrenom()->addErreur($lErreur);
         }
         // Date Naissance <= Date Actuelle
         if ($pData['dateNaissance'] != '' && !TestFonction::dateEstPLusGrandeEgale(StringUtils::dateAujourdhuiDb(), $pData['dateNaissance'], 'db')) {
             $lVr->setValid(false);
             $lVr->getDateNaissance()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_230_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_230_MSG);
             $lVr->getDateNaissance()->addErreur($lErreur);
         }
         // La ferme doit exister
         $lFerme = FermeManager::select($pData['idFerme']);
         if ($lFerme->getId() != $pData['idFerme']) {
             $lVr->setValid(false);
             $lVr->getIdFerme()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getIdFerme()->addErreur($lErreur);
         }
     }
     return $lVr;
 }
 /**
  * @name validListeProduitFerme($pData)
  * @return ListeProduitFermeVR
  * @desc Test la validite de l'élément
  */
 public static function validListeProduitFerme($pData)
 {
     $lVr = new ListeProduitFermeVR();
     //Tests inputs
     if (!isset($pData['id'])) {
         $lVr->setValid(false);
         $lVr->getId()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getId()->addErreur($lErreur);
     }
     if (!isset($pData['idMarche'])) {
         $lVr->setValid(false);
         $lVr->getIdMarche()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getIdMarche()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!TestFonction::checkLength($pData['id'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['id'])) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['idMarche'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         if ($pData['idMarche'] != '' && !is_int((int) $pData['idMarche'])) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         //Tests Fonctionnels
         if (empty($pData['id'])) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         // La ferme doit exister
         $lFerme = FermeManager::select($pData['id']);
         if ($lFerme->getId() != $pData['id']) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         // Si il y a un marche il doit exister
         if ($pData['idMarche'] != '') {
             $lCommande = CommandeManager::select($pData['idMarche']);
             if ($lCommande->getId() != $pData['idMarche']) {
                 $lVr->setValid(false);
                 $lVr->getIdMarche()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
                 $lVr->getIdMarche()->addErreur($lErreur);
             }
         }
         if ($lVr->getValid()) {
             $lVr->setData(array('ferme' => $lFerme));
         }
     }
     return $lVr;
 }
 /**
  * @name validAjout($pData)
  * @return ProduitsBonDeCommandeVR
  * @desc Test la validite de l'élément
  */
 public static function validAjout($pData)
 {
     $lVr = new ProduitsBonDeCommandeVR();
     //Tests inputs
     if (!isset($pData['id_commande'])) {
         $lVr->setValid(false);
         $lVr->getId_commande()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getId_commande()->addErreur($lErreur);
     }
     if (!isset($pData['id_compte_ferme'])) {
         $lVr->setValid(false);
         $lVr->getId_producteur()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getId_producteur()->addErreur($lErreur);
     }
     if (!isset($pData['produits'])) {
         $lVr->setValid(false);
         $lVr->getProduits()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getProduits()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!TestFonction::checkLength($pData['id_commande'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['id_commande'])) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['id_compte_ferme'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getId_producteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getId_producteur()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['id_compte_ferme'])) {
             $lVr->setValid(false);
             $lVr->getId_producteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getId_producteur()->addErreur($lErreur);
         }
         if (!is_array($pData['produits'])) {
             $lVr->setValid(false);
             $lVr->getProduits()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_110_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_110_MSG);
             $lVr->getProduits()->addErreur($lErreur);
         }
         //Tests Fonctionnels
         if (empty($pData['id_commande'])) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         if (empty($pData['id_compte_ferme'])) {
             $lVr->setValid(false);
             $lVr->getId_producteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId_producteur()->addErreur($lErreur);
         }
         if (empty($pData['produits'])) {
             $lVr->setValid(false);
             $lVr->getProduits()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getProduits()->addErreur($lErreur);
         }
         $lCommande = CommandeManager::select($pData['id_commande']);
         if ($lCommande->getId() != $pData['id_commande']) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         $lFerme = FermeManager::selectByIdCompte($pData['id_compte_ferme']);
         if ($lFerme[0]->getIdCompte() != $pData['id_compte_ferme']) {
             $lVr->setValid(false);
             $lVr->getId_producteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
             $lVr->getId_producteur()->addErreur($lErreur);
         }
         if (is_array($pData['produits'])) {
             $lValidProduit = new ProduitBonDeCommandeValid();
             $i = 0;
             while (isset($pData['produits'][$i])) {
                 $lVrProduit = $lValidProduit->validAjout($pData['produits'][$i]);
                 if (!$lVrProduit->getValid()) {
                     $lVr->setValid(false);
                 }
                 $lVr->addProduits($lVrProduit);
                 $i++;
             }
         }
     }
     return $lVr;
 }
 /**
  * @name getByIdCompte($pId)
  * @param integer id du compte de la ferme
  * @return FermeVO
  * @desc Retourne une Ferme
  */
 public function getByIdCompte($pId = null)
 {
     return FermeManager::selectByIdCompte($pId);
 }
 /**
  * @name validAjout($pData)
  * @return ProduitsBonDeLivraisonVR
  * @desc Test la validite de l'élément
  */
 public static function validAjout($pData)
 {
     $lVr = new ProduitsBonDeLivraisonVR();
     //Tests inputs
     if (!isset($pData['id_commande'])) {
         $lVr->setValid(false);
         $lVr->getId_commande()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getId_commande()->addErreur($lErreur);
     }
     if (!isset($pData['id_compte_ferme'])) {
         $lVr->setValid(false);
         $lVr->getId_producteur()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getId_producteur()->addErreur($lErreur);
     }
     if (!isset($pData['produits'])) {
         $lVr->setValid(false);
         $lVr->getProduits()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getProduits()->addErreur($lErreur);
     }
     if (!isset($pData['typePaiement'])) {
         $lVr->setValid(false);
         $lVr->getTypePaiement()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getTypePaiement()->addErreur($lErreur);
     }
     if (!isset($pData['total'])) {
         $lVr->setValid(false);
         $lVr->getTotal()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getTotal()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!TestFonction::checkLength($pData['id_commande'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['id_commande'])) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['id_compte_ferme'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getId_producteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getId_producteur()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['id_compte_ferme'])) {
             $lVr->setValid(false);
             $lVr->getId_producteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getId_producteur()->addErreur($lErreur);
         }
         if (!is_array($pData['produits'])) {
             $lVr->setValid(false);
             $lVr->getProduits()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_110_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_110_MSG);
             $lVr->getProduits()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['typePaiement'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getTypePaiement()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getTypePaiement()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['typePaiement'])) {
             $lVr->setValid(false);
             $lVr->getTypePaiement()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getTypePaiement()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['total'], 0, 12) || $pData['total'] > 999999999.99) {
             $lVr->setValid(false);
             $lVr->getTotal()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getTotal()->addErreur($lErreur);
         }
         if (!is_float((double) $pData['total'])) {
             $lVr->setValid(false);
             $lVr->getTotal()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getTotal()->addErreur($lErreur);
         }
         if ($pData['typePaiementChampComplementaire'] != '' && !TestFonction::checkLength($pData['typePaiementChampComplementaire'], 0, 50)) {
             $lVr->setValid(false);
             $lVr->getTypePaiementChampComplementaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getTypePaiementChampComplementaire()->addErreur($lErreur);
         }
         //Tests Fonctionnels
         if (empty($pData['id_commande'])) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         if (empty($pData['id_compte_ferme'])) {
             $lVr->setValid(false);
             $lVr->getId_producteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId_producteur()->addErreur($lErreur);
         }
         if (empty($pData['produits'])) {
             $lVr->setValid(false);
             $lVr->getProduits()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getProduits()->addErreur($lErreur);
         }
         if (empty($pData['typePaiement'])) {
             $lVr->setValid(false);
             $lVr->getTypePaiement()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getTypePaiement()->addErreur($lErreur);
         }
         if ($pData['total'] == '') {
             $lVr->setValid(false);
             $lVr->getTotal()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getTotal()->addErreur($lErreur);
         }
         if ($pData['typePaiement'] <= 0) {
             $lVr->setValid(false);
             $lVr->getTypePaiement()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_236_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_236_MSG);
             $lVr->getTypePaiement()->addErreur($lErreur);
         }
         if ($pData['total'] < 0) {
             $lVr->setValid(false);
             $lVr->getTotal()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_MSG);
             $lVr->getTotal()->addErreur($lErreur);
         }
         $lCommande = CommandeManager::select($pData['id_commande']);
         if ($lCommande->getId() != $pData['id_commande']) {
             $lVr->setValid(false);
             $lVr->getId_commande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
             $lVr->getId_commande()->addErreur($lErreur);
         }
         $lFerme = FermeManager::selectByIdCompte($pData['id_compte_ferme']);
         if ($lFerme[0]->getIdCompte() != $pData['id_compte_ferme']) {
             $lVr->setValid(false);
             $lVr->getId_producteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
             $lVr->getId_producteur()->addErreur($lErreur);
         }
         $lTypePaiementService = new TypePaiementService();
         $lTypePaiement = $lTypePaiementService->selectVisible($pData['typePaiement']);
         if ($lTypePaiement[0]->getId() != $pData['typePaiement']) {
             $lVr->setValid(false);
             $lVr->getTypePaiement()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
             $lVr->getTypePaiement()->addErreur($lErreur);
         }
         if (is_array($pData['produits'])) {
             $lValidProduit = new ProduitBonDeLivraisonValid();
             $i = 0;
             while (isset($pData['produits'][$i])) {
                 $lVrProduit = $lValidProduit->validAjout($pData['produits'][$i]);
                 if (!$lVrProduit->getValid()) {
                     $lVr->setValid(false);
                 }
                 $lVr->addProduits($lVrProduit);
                 $i++;
             }
         }
     }
     return $lVr;
 }
 /**
  * @name validGetListeProduit($pData)
  * @return ListeProduitFermeVR
  * @desc Test la validite de l'élément
  */
 public static function validGetListeProduit($pData)
 {
     $lVr = new ListeProduitFermeVR();
     //Tests inputs
     if (!isset($pData['id'])) {
         $lVr->setValid(false);
         $lVr->getId()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getId()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         if (!is_int((int) $pData['id'])) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_104_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_104_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['idFerme'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getIdFerme()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getIdFerme()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['idFerme'])) {
             $lVr->setValid(false);
             $lVr->getIdFerme()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getIdFerme()->addErreur($lErreur);
         }
         if (empty($pData['id'])) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         if (empty($pData['idFerme'])) {
             $lVr->setValid(false);
             $lVr->getIdFerme()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getIdFerme()->addErreur($lErreur);
         }
         $lCompteService = new CompteService();
         if (!$lCompteService->existe($pData['id'])) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         // La ferme doit exister
         $lFerme = FermeManager::select($pData['idFerme']);
         if ($lFerme->getId() != $pData['idFerme']) {
             $lVr->setValid(false);
             $lVr->getIdFerme()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getIdFerme()->addErreur($lErreur);
         }
     }
     return $lVr;
 }
 /**
  * @name insert($pVo)
  * @param FermeVO
  * @return integer
  * @desc Insère une nouvelle ligne dans la table, à partir des informations de la FermeVO en paramètre (l'id sera automatiquement calculé par la BDD)
  */
 public static function insert($pVo)
 {
     // Initialisation du Logger
     $lLogger =& Log::singleton('file', CHEMIN_FICHIER_LOGS);
     $lLogger->setMask(Log::MAX(LOG_LEVEL));
     $lRequete = "INSERT INTO " . FermeManager::TABLE_FERME . "\n\t\t\t\t(" . FermeManager::CHAMP_FERME_ID . "\n\t\t\t\t," . FermeManager::CHAMP_FERME_NUMERO . "\n\t\t\t\t," . FermeManager::CHAMP_FERME_NOM . "\n\t\t\t\t," . FermeManager::CHAMP_FERME_ID_COMPTE . "\n\t\t\t\t," . FermeManager::CHAMP_FERME_SIREN . "\n\t\t\t\t," . FermeManager::CHAMP_FERME_ADRESSE . "\n\t\t\t\t," . FermeManager::CHAMP_FERME_CODE_POSTAL . "\n\t\t\t\t," . FermeManager::CHAMP_FERME_VILLE . "\n\t\t\t\t," . FermeManager::CHAMP_FERME_DATE_ADHESION . "\n\t\t\t\t," . FermeManager::CHAMP_FERME_DESCRIPTION . "\n\t\t\t\t," . FermeManager::CHAMP_FERME_ETAT . ")\n\t\t\tVALUES (NULL\n\t\t\t\t,'" . StringUtils::securiser($pVo->getNumero()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getNom()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getIdCompte()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getSiren()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getAdresse()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getCodePostal()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getVille()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getDateAdhesion()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getDescription()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getEtat()) . "')";
     $lLogger->log("Execution de la requete : " . $lRequete, PEAR_LOG_DEBUG);
     // Maj des logs
     $lId = Dbutils::executerRequeteInsertRetourId($lRequete);
     $pVo->setId($lId);
     $pVo->setNumero('F' . $lId);
     // Mise à jour du numéro dans l'objet
     FermeManager::update($pVo);
     // Mise à jour de la base
     return $lId;
 }
 /**
  * @name validAjout($pData)
  * @return NomProduitCatalogueVR
  * @desc Test la validite de l'élément
  */
 public static function validAjout($pData)
 {
     $lVr = new NomProduitCatalogueVR();
     //Tests inputs
     if (!isset($pData['id'])) {
         $lVr->setValid(false);
         $lVr->getId()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getId()->addErreur($lErreur);
     }
     if (!isset($pData['numero'])) {
         $lVr->setValid(false);
         $lVr->getNumero()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getNumero()->addErreur($lErreur);
     }
     if (!isset($pData['idCategorie'])) {
         $lVr->setValid(false);
         $lVr->getIdCategorie()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getIdCategorie()->addErreur($lErreur);
     }
     if (!isset($pData['nom'])) {
         $lVr->setValid(false);
         $lVr->getNom()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getNom()->addErreur($lErreur);
     }
     if (!isset($pData['description'])) {
         $lVr->setValid(false);
         $lVr->getDescription()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getDescription()->addErreur($lErreur);
     }
     if (!isset($pData['producteurs'])) {
         $lVr->setValid(false);
         $lVr->getProducteurs()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getProducteurs()->addErreur($lErreur);
     }
     if (!isset($pData['caracteristiques'])) {
         $lVr->setValid(false);
         $lVr->getCaracteristiques()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getCaracteristiques()->addErreur($lErreur);
     }
     if (!isset($pData['modelesLot'])) {
         $lVr->setValid(false);
         $lVr->getLog()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
         $lVr->getLog()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!TestFonction::checkLength($pData['id'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['id'])) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['numero'], 0, 50)) {
             $lVr->setValid(false);
             $lVr->getNumero()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getNumero()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['idCategorie'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getIdCategorie()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getIdCategorie()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['idCategorie'])) {
             $lVr->setValid(false);
             $lVr->getIdCategorie()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getIdCategorie()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['nom'], 0, 50)) {
             $lVr->setValid(false);
             $lVr->getNom()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getNom()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['description'], 0, 500)) {
             $lVr->setValid(false);
             $lVr->getDescription()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getDescription()->addErreur($lErreur);
         }
         if (!is_array($pData['producteurs'])) {
             $lVr->setValid(false);
             $lVr->getProducteurs()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_115_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_115_MSG);
             $lVr->getProducteurs()->addErreur($lErreur);
         }
         if (!is_array($pData['caracteristiques'])) {
             $lVr->setValid(false);
             $lVr->getCaracteristiques()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_115_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_115_MSG);
             $lVr->getCaracteristiques()->addErreur($lErreur);
         }
         if (!is_array($pData['modelesLot'])) {
             $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 ($lVr->getValid()) {
             //Tests Fonctionnels
             if (empty($pData['id'])) {
                 $lVr->setValid(false);
                 $lVr->getId()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getId()->addErreur($lErreur);
             }
             if (empty($pData['idCategorie'])) {
                 $lVr->setValid(false);
                 $lVr->getIdCategorie()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getIdCategorie()->addErreur($lErreur);
             }
             if ($pData['idCategorie'] == 0) {
                 $lVr->setValid(false);
                 $lVr->getIdCategorie()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getIdCategorie()->addErreur($lErreur);
             }
             if (empty($pData['nom'])) {
                 $lVr->setValid(false);
                 $lVr->getNom()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getNom()->addErreur($lErreur);
             }
             if (empty($pData['modelesLot'])) {
                 $lVr->setValid(false);
                 $lVr->getLog()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_264_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_264_MSG);
                 $lVr->getLog()->addErreur($lErreur);
             }
             // La Ferme doit exister
             $lFerme = FermeManager::select($pData['id']);
             if ($lFerme->getId() != $pData['id']) {
                 $lVr->setValid(false);
                 $lVr->getId()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getId()->addErreur($lErreur);
             }
             // La Catégorie doit exister
             $lCategorieProduit = CategorieProduitManager::select($pData['idCategorie']);
             if ($lCategorieProduit->getId() != $pData['idCategorie']) {
                 $lVr->setValid(false);
                 $lVr->getIdCategorie()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getIdCategorie()->addErreur($lErreur);
             }
             foreach ($pData['producteurs'] as $lProducteur) {
                 $lProducteurVO = ProducteurManager::select($lProducteur);
                 if ($lProducteurVO->getIdFerme() != $pData['id']) {
                     $lVr->setValid(false);
                     $lVr->getProducteurs()->setValid(false);
                     $lErreur = new VRerreur();
                     $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
                     $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
                     $lVr->getProducteurs()->addErreur($lErreur);
                 }
             }
             foreach ($pData['caracteristiques'] as $lCaracteristique) {
                 $lCaracteristiqueVO = CaracteristiqueManager::select($lCaracteristique);
                 if ($lCaracteristiqueVO->getId() != $lCaracteristique) {
                     $lVr->setValid(false);
                     $lVr->getCaracteristiques()->setValid(false);
                     $lErreur = new VRerreur();
                     $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
                     $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
                     $lVr->getCaracteristiques()->addErreur($lErreur);
                 }
             }
             foreach ($pData['modelesLot'] as $lModeleLot) {
                 $lModeleLotVR = ModeleLotValid::ValidSet($lModeleLot);
                 if (!$lModeleLotVR->getValid()) {
                     $lVr->setValid(false);
                 }
                 $lVr->addModelesLot($lModeleLotVR);
             }
         }
     }
     return $lVr;
 }
 /**
  * @name getBComPdf($pParam)
  * @return Un Fichier Pdf
  * @desc Retourne le bon de commande en pdf
  */
 public function getBComPdf($pParam)
 {
     $lVr = ExportBonCommandeValid::validAjout($pParam);
     if ($lVr->getValid()) {
         // Récupération es informations
         $lLignesBonCommande = $this->getBonCommandeExport($pParam);
         $lFerme = FermeManager::selectByIdCompte($pParam['idCompteFerme']);
         $lFerme = $lFerme[0];
         $lMarche = CommandeManager::select($pParam['id_commande']);
         $lProduit = array();
         foreach ($lLignesBonCommande as $lLigne) {
             if (isset($lProduit[$lLigne->getProId()])) {
                 $lProduit[$lLigne->getProId()] = 2;
             } else {
                 $lProduit[$lLigne->getProId()] = 1;
             }
         }
         // get the HTML
         ob_start();
         include CHEMIN_TEMPLATE . MOD_GESTION_COMMANDE . '/PDF/BonDeCommande.php';
         $content = ob_get_clean();
         // convert to PDF
         try {
             $html2pdf = new HTML2PDF('P', 'A4', 'fr');
             $html2pdf->pdf->SetDisplayMode('fullpage');
             $html2pdf->writeHTML($content, 0);
             $html2pdf->Output('Bon de Commande.pdf', 'D');
         } catch (HTML2PDF_exception $e) {
             // Initialisation du Logger
             $lLogger =& Log::singleton('file', CHEMIN_FICHIER_LOGS);
             $lLogger->setMask(Log::MAX(LOG_LEVEL));
             $lLogger->log("Erreur de génération du PDF bon de Commande : " . $e, PEAR_LOG_DEBUG);
             // Maj des logs
         }
     } else {
         return $lVr->exportToJson();
     }
 }