/**
  * @name getListeAdherent()
  * @return ListeAdherentResponse
  * @desc Recherche la liste des adherents
  */
 public function getListeAdherent()
 {
     // Lancement de la recherche
     $lResponse = new ListeAdherentRechargementResponse();
     $lAdherentService = new AdherentService();
     $lResponse->setListeAdherent($lAdherentService->getAllResumeSolde());
     $lTypePaiementService = new TypePaiementService();
     $lResponse->setTypePaiement($lTypePaiementService->selectVisible());
     return $lResponse;
 }
 /**
  * @name getListePaiement()
  * @desc Donne liste des paiements non enregistrés
  */
 public function getListePaiement()
 {
     $lOperationService = new OperationService();
     $lResponse = new ListePaiementResponse();
     $lResponse->setListeCheque($lOperationService->getListeChequeAssociationNonEnregistre());
     $lResponse->setListeEspece($lOperationService->getListeEspeceAssociationNonEnregistre());
     $lBanqueService = new BanqueService();
     $lResponse->setBanques($lBanqueService->getAllActif());
     $lTypePaiementService = new TypePaiementService();
     $lResponse->setTypePaiement($lTypePaiementService->selectVisible());
     return $lResponse;
 }
 /**
  * @name afficher($pParam)
  * @return InfoCompteAdherentResponse
  * @desc Renvoie le Compte du controleur après avoir récupérer les informations dans la BDD en fonction de l'ID.
  */
 public function afficher($pParam)
 {
     $lVr = AdherentValid::validAffiche($pParam);
     if ($lVr->getValid()) {
         $lIdAdherent = $pParam['id'];
         $lAdherentService = new AdherentService();
         $lResponse = new InfoCompteAdherentResponse();
         $lAdherent = $lAdherentService->get($lIdAdherent);
         $lResponse->setAdherent($lAdherent);
         $lResponse->setAutorisations($lAdherentService->getAutorisation($lIdAdherent));
         $lResponse->setOperationAvenir($lAdherentService->getOperationAvenir($lIdAdherent));
         $lResponse->setOperationPassee($lAdherentService->getOperationPassee($lIdAdherent));
         $lModuleService = new ModuleService();
         $lResponse->setModules($lModuleService->selectAllNonDefautVisible());
         $lTypePaiementService = new TypePaiementService();
         $lResponse->setTypePaiement($lTypePaiementService->get());
         $lCompteService = new CompteService();
         $lResponse->setAdherentCompte($lCompteService->getAdherentCompte($lAdherent->getAdhIdCompte()));
         $lAdhesionService = new AdhesionService();
         $lResponse->setNbAdhesionEnCours($lAdhesionService->getNbAdhesionEnCoursSurAdherent($lIdAdherent));
         return $lResponse;
     }
     return $lVr;
 }
 /**
  * @name validModifierPaiement($pData)
  * @return RechargementCompteVR
  * @desc Test la validite de l'élément
  */
 public static function validModifierPaiement($pData)
 {
     $lVr = new RechargementCompteVR();
     //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['montant'])) {
         $lVr->setValid(false);
         $lVr->getMontant()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getMontant()->addErreur($lErreur);
     }
     if (!isset($pData['champComplementaire'])) {
         $lVr->setValid(false);
         $lVr->getChampComplementaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getChampComplementaire()->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 ($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_CODE);
             $lVr->getId()->addErreur($lErreur);
         }
         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['montant'], 0, 12) || $pData['montant'] > 999999999.99) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if (!is_float((double) $pData['montant'])) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getMontant()->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 (!is_array($pData['champComplementaire'])) {
             $lVr->setValid(false);
             $lVr->getChampComplementaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_115_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_115_MSG);
             $lVr->getChampComplementaire()->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);
         }
         if (empty($pData['montant'])) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if ($pData['montant'] < 0) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         $lOperationService = new OperationService();
         $lOperation = $lOperationService->get($pData['id']);
         if ($lOperation->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);
         }
         if ($lOperation->getType() != 0) {
             $lVr->setValid(false);
             $lVr->getId()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_227_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_227_MSG);
             $lVr->getId()->addErreur($lErreur);
         }
         $lTypePaiementService = new TypePaiementService();
         $lTypePaiement = $lTypePaiementService->selectVisible($pData['typePaiement']);
         // Il est autorisé d'enregistrer un facture (réception de produit) sans payer.
         if ($lTypePaiement->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);
         } else {
             $lChampComplementaire = array();
             foreach ($pData['champComplementaire'] as $lChamp) {
                 if (!is_null($lChamp)) {
                     $lObligatoire = NULL;
                     foreach ($lTypePaiement->getChampComplementaire() as $lChampTypePaiement) {
                         if ($lChampTypePaiement->getId() == $lChamp['id']) {
                             $lObligatoire = $lChampTypePaiement->getObligatoire();
                         }
                     }
                     $lVrChampComplementaire = ChampComplementaireValid::validUpdate($lChamp, $lObligatoire);
                     if (!$lVrChampComplementaire->getValid()) {
                         $lVr->setValid(false);
                     }
                     $lChampComplementaire[$lChamp['id']] = $lVrChampComplementaire;
                 }
             }
             $lVr->setChampComplementaire($lChampComplementaire);
         }
     }
     return $lVr;
 }
 /**
  * @name getInfoOperation($pParam)
  * @return InfoOperationResponse
  * @desc Retourne les infos pour l'ajout d'une opération
  */
 public function getInfoOperation()
 {
     $lTypePaiementService = new TypePaiementService();
     $lBanqueService = new BanqueService();
     return new InfoOperationResponse($lTypePaiementService->selectVisible(), $lBanqueService->getAllActif());
 }
 /**
  * @name validAjout($pData)
  * @return OperationDetailVR
  * @desc Test la validite de l'élément
  */
 public static function validAjout($pData, $pParam = array("negatif" => false))
 {
     $lVr = new OperationDetailVR();
     //Tests inputs
     if (!isset($pData['id'])) {
         $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->getIdCompte()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getIdCompte()->addErreur($lErreur);
     }
     if (!isset($pData['montant'])) {
         $lVr->setValid(false);
         $lVr->getMontant()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getMontant()->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['champComplementaire'])) {
         $lVr->setValid(false);
         $lVr->getChampComplementaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getChampComplementaire()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!TestFonction::checkLength($pData['idCompte'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getIdCompte()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getIdCompte()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['idCompte'])) {
             $lVr->setValid(false);
             $lVr->getIdCompte()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_104_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_104_MSG);
             $lVr->getIdCompte()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['montant'], 0, 12) || $pData['montant'] > 999999999.99) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if (!is_float((double) $pData['montant'])) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getMontant()->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 (!is_array($pData['champComplementaire'])) {
             $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);
         }
         //Tests Fonctionnels
         if (empty($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);
         }
         // Le compte doit exister
         $lCompteService = new CompteService();
         if (!$lCompteService->existe($pData['idCompte'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         if (empty($pData['montant'])) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if ($pParam["negatif"] && $pData['montant'] > 0) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_267_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_267_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if (!$pParam["negatif"] && $pData['montant'] < 0) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_MSG);
             $lVr->getMontant()->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);
         }
         $lTypePaiementService = new TypePaiementService();
         $lTypePaiement = $lTypePaiementService->selectDetail($pData['typePaiement']);
         if ($lTypePaiement->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);
         } else {
             $lChampComplementaire = array();
             foreach ($pData['champComplementaire'] as $lChamp) {
                 if (!is_null($lChamp)) {
                     $lObligatoire = NULL;
                     foreach ($lTypePaiement->getChampComplementaire() as $lChampTypePaiement) {
                         if ($lChampTypePaiement->getId() == $lChamp['id']) {
                             $lObligatoire = $lChampTypePaiement->getObligatoire();
                         }
                     }
                     $lVrChampComplementaire = ChampComplementaireValid::validUpdate($lChamp, $lObligatoire);
                     if (!$lVrChampComplementaire->getValid()) {
                         $lVr->setValid(false);
                     }
                     $lChampComplementaire[$lChamp['id']] = $lVrChampComplementaire;
                 }
             }
             $lVr->setChampComplementaire($lChampComplementaire);
         }
     }
     return $lVr;
 }
 /**
  * @name getInfoAchatMarche($pParam)
  * @return InfoAchatCommandeResponse
  * @desc Retourne les infos de réservation d'un adhérent
  */
 public function getInfoAchatMarche($pParam)
 {
     $lVr = AchatValid::validInfoAchatMarche($pParam);
     if ($lVr->getValid()) {
         $lResponse = new InfoAchatCommandeResponse();
         $lProduitsAchat = array();
         $lIdMarche = 0;
         $lIdCompte = 0;
         if (!empty($pParam["id_commande"])) {
             $lIdMarche = $pParam["id_commande"];
         }
         if (!empty($pParam["id"])) {
             $lAchatService = new AchatService();
             $lAchat = $lAchatService->get($pParam["id"]);
             $lProduitsAchat = $lAchat->getProduits();
             $lResponse->setAchats($lAchat);
             // L'achat
             if (!is_null($lAchat->getOperationAchat())) {
                 $lIdCompte = $lAchat->getOperationAchat()->getIdCompte();
                 $lChcp = $lAchat->getOperationAchat()->getChampComplementaire();
                 if (isset($lChcp[1])) {
                     $lIdMarche = $lChcp[1]->getValeur();
                 }
             }
             if (!is_null($lAchat->getOperationAchatSolidaire())) {
                 $lIdCompte = $lAchat->getOperationAchatSolidaire()->getIdCompte();
                 $lChcp = $lAchat->getOperationAchatSolidaire()->getChampComplementaire();
                 if (isset($lChcp[1])) {
                     $lIdMarche = $lChcp[1]->getValeur();
                 }
             }
         }
         if ($pParam["id_adherent"] > 0) {
             // Si c'est un compte adhérent
             $lData = $lVr->getData();
             $lIdCompte = $lData['adherent']->getAdhIdCompte();
             $lResponse->setAdherent($lData['adherent']);
             $lAdhesionService = new AdhesionService();
             $lResponse->setNbAdhesionEnCours($lAdhesionService->getNbAdhesionEnCoursSurAdherent($pParam["id_adherent"]));
         }
         $lStockService = new StockService();
         $lStockProduitsDisponible = $lStockService->getProduitsDisponible();
         $lStock = array();
         $lProduitsMarche = array();
         if ($lIdMarche != 0) {
             // Si ce n'est pas la caisse permanente
             $lMarcheService = new MarcheService();
             $lMarche = $lMarcheService->get($lIdMarche);
             $lProduitsMarche = $lMarche->getProduits();
             $lResponse->setMarche($lMarche);
             // Les informations du marché
         }
         // Fusion des stocks
         $lLotsProduits = array();
         foreach ($lStockProduitsDisponible as $lProduitStock) {
             $lAjout = true;
             foreach ($lProduitsMarche as $lProduitMarche) {
                 if ($lProduitStock->getIdNom() == $lProduitMarche->getIdNom() && $lProduitStock->getUnite() == $lProduitMarche->getUnite()) {
                     $lAjout = false;
                 }
             }
             if ($lAjout) {
                 if (!isset($lStock[$lProduitStock->getCproNom()])) {
                     $lStock[$lProduitStock->getCproNom()] = array("cproId" => $lProduitStock->getIdCategorie(), "cproNom" => $lProduitStock->getCproNom(), "produits" => array());
                 }
                 $lUnite = !is_null($lProduitStock->getUnite()) ? $lProduitStock->getUnite() : $lProduitStock->getUniteSolidaire();
                 $lStock[$lProduitStock->getCproNom()]["produits"][$lProduitStock->getNom() . $lProduitStock->getUnite()] = new ProduitDetailAchatAfficheVO($lProduitStock->getIdNom(), null, null, null, null, null, null, null, null, null, $lUnite, null, $lUnite, null, null, $lProduitStock->getIdCategorie(), $lProduitStock->getCproNom(), null, $lProduitStock->getNom());
                 $lLotsProduits[$lProduitStock->getIdNom() . $lProduitStock->getUnite()] = array("nom" => $lProduitStock->getNom(), "type" => "modele", "lots" => $lProduitStock->getLots());
             }
         }
         foreach ($lProduitsMarche as $lProduitMarche) {
             if (!isset($lStock[$lProduitMarche->getCproNom()])) {
                 $lStock[$lProduitMarche->getCproNom()] = array("cproId" => $lProduitMarche->getIdCategorie(), "cproNom" => $lProduitMarche->getCproNom(), "produits" => array());
             }
             $lUnite = !is_null($lProduitMarche->getUnite()) ? $lProduitMarche->getUnite() : $lProduitMarche->getUniteSolidaire();
             $lStock[$lProduitMarche->getCproNom()]["produits"][$lProduitMarche->getNom() . $lProduitMarche->getUnite()] = new ProduitDetailAchatAfficheVO($lProduitMarche->getIdNom(), null, null, null, null, null, null, null, null, null, $lUnite, null, $lUnite, null, null, $lProduitMarche->getIdCategorie(), $lProduitMarche->getCproNom(), null, $lProduitMarche->getNom());
             $lLotsProduits[$lProduitMarche->getIdNom() . $lProduitMarche->getUnite()] = array("nom" => $lProduitMarche->getNom(), "type" => "marche", "lots" => $lProduitMarche->getLots());
         }
         foreach ($lProduitsAchat as $lProduitAchat) {
             $lUnite = !is_null($lProduitAchat->getUnite()) ? $lProduitAchat->getUnite() : $lProduitAchat->getUniteSolidaire();
             if (!is_null($lUnite)) {
                 if (isset($lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite])) {
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdStock($lProduitAchat->getIdStock());
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdStockSolidaire($lProduitAchat->getIdStockSolidaire());
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdDetailCommande($lProduitAchat->getIdDetailCommande());
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdModeleLot($lProduitAchat->getIdModeleLot());
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdDetailCommandeSolidaire($lProduitAchat->getIdDetailCommandeSolidaire());
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdModeleLotSolidaire($lProduitAchat->getIdModeleLotSolidaire());
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setQuantite($lProduitAchat->getQuantite());
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setQuantiteSolidaire($lProduitAchat->getQuantiteSolidaire());
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setMontant($lProduitAchat->getMontant());
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setMontantSolidaire($lProduitAchat->getMontantSolidaire());
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdDetailOperation($lProduitAchat->getIdDetailOperation());
                     $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdDetailOperationSolidaire($lProduitAchat->getIdDetailOperationSolidaire());
                 } else {
                     if (!isset($lStock[$lProduitAchat->getCproNom()])) {
                         $lStock[$lProduitAchat->getCproNom()] = array("cproId" => $lProduitAchat->getCproId(), "cproNom" => $lProduitAchat->getCproNom(), "produits" => array());
                     }
                     $lProduitAchat->setUnite($lUnite);
                     $lProduitAchat->setUniteSolidaire($lUnite);
                     $lStock[$lProduitAchat->getCproNom()]["produits"][$lProduitAchat->getNproNom() . $lUnite] = $lProduitAchat;
                     // Ajout des lots
                     $lModelesLot = ModeleLotManager::selectByIdNomProduit($lProduitAchat->getIdNomProduit());
                     // Récupère même les lots supprimés car il y a peut être eu un achat sur ce lot précédemment
                     $lLots = array();
                     foreach ($lModelesLot as $lModeleLot) {
                         $lLot = new DetailMarcheVO();
                         $lLot->setId($lModeleLot->getId());
                         $lLot->setTaille($lModeleLot->getQuantite());
                         $lLot->setPrix($lModeleLot->getPrix());
                         $lLots[$lModeleLot->getId()] = $lLot;
                     }
                     $lLotsProduits[$lProduitAchat->getIdNomProduit() . $lUnite] = array("nom" => $lProduitAchat->getNproNom(), "type" => "modele", "lots" => $lLots);
                 }
             }
         }
         ksort($lStock);
         $lResponse->setStock($lStock);
         // Stock de produit disponible
         $lResponse->setLots($lLotsProduits);
         // Lots des produits
         $lBanqueService = new BanqueService();
         $lTypePaiementService = new TypePaiementService();
         $lResponse->setTypePaiement($lTypePaiementService->selectVisible());
         // Type de paiment
         $lResponse->setBanques($lBanqueService->getAllActif());
         // Liste des banques
         $lResponse->setIdRequete(uniqid());
         return $lResponse;
     }
     return $lVr;
 }
 /**
  * @name validAjout($pData)
  * @return FactureVR
  * @desc Test la validite de l'élément
  */
 public static function validEnregistrer($pData)
 {
     $lVr = new FactureVR();
     //Tests Techniques
     if (!isset($pData['id'])) {
         $lVr->setValid(false);
         $lVr->getOperation()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getOperation()->addErreur($lErreur);
     }
     if (!isset($pData['operationProducteur'])) {
         $lVr->setValid(false);
         $lVr->getOperationProducteur()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getOperationProducteur()->addErreur($lErreur);
     }
     if (!isset($pData['operationZeybu'])) {
         $lVr->setValid(false);
         $lVr->getOperationZeybu()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getOperationZeybu()->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['operationProducteur']['idCompte'])) {
         $lVr->setValid(false);
         $lVr->getOperationProducteur()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getOperationProducteur()->addErreur($lErreur);
     }
     if (!isset($pData['operationProducteur']['montant'])) {
         $lVr->setValid(false);
         $lVr->getMontant()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getMontant()->addErreur($lErreur);
     }
     if (!isset($pData['operationProducteur']['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['operationProducteur']['champComplementaire'])) {
         $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()) {
         // Dans le cas d'une modification
         if ($pData['id']['id'] != '' && !TestFonction::checkLength($pData['id']['id'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getOperation()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_CODE);
             $lVr->getOperation()->addErreur($lErreur);
         }
         if ($pData['id']['id'] != '' && !is_int((int) $pData['id']['id'])) {
             $lVr->setValid(false);
             $lVr->getOperation()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getOperation()->addErreur($lErreur);
         }
         // Pour création ou modification
         if (!TestFonction::checkLength($pData['operationProducteur']['idCompte'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getOperationProducteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getOperationProducteur()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['operationProducteur']['idCompte'])) {
             $lVr->setValid(false);
             $lVr->getOperationProducteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getOperationProducteur()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['operationProducteur']['montant'], 0, 12) || $pData['operationProducteur']['montant'] > 999999999.99) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if (!is_float((double) $pData['operationProducteur']['montant'])) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['operationProducteur']['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['operationProducteur']['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 (!is_array($pData['operationProducteur']['champComplementaire'])) {
             $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_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['operationProducteur']['idCompte'])) {
             $lVr->setValid(false);
             $lVr->getOperationProducteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getOperationProducteur()->addErreur($lErreur);
         }
         if (empty($pData['operationProducteur']['typePaiement']) && $pData['operationProducteur']['typePaiement'] != 0) {
             $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['operationProducteur']['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 (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 (isset($pData['id']['champComplementaire'][1])) {
             // Si Marché
             $lVrChampComplementaire = ChampComplementaireValid::validUpdate($pData['id']['champComplementaire'][1], 0);
             if (!$lVrChampComplementaire->getValid()) {
                 $lVr->setValid(false);
             }
             $lVr->setChampComplementaire(array(1 => $lVrChampComplementaire));
         }
         if ($pData['id']['id'] != '') {
             // Modification
             // La facture doit exister
             $lOperationService = new OperationService();
             $lOperationId = $lOperationService->get($pData['id']['id']);
             if ($lOperationId->getId() != $pData['id']['id']) {
                 $lVr->setValid(false);
                 $lVr->getOperation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
                 $lVr->getOperation()->addErreur($lErreur);
             }
         }
         if (empty($pData['operationProducteur']['montant']) && $pData['operationProducteur']['montant'] != 0) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if ($pData['operationProducteur']['montant'] < 0) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         // Il est autorisé d'enregistrer un facture (réception de produit) sans payer.
         if ($pData['operationProducteur']['montant'] == 0 && $pData['operationProducteur']['typePaiement'] != 0 || $pData['operationProducteur']['montant'] != 0 && $pData['operationProducteur']['typePaiement'] == 0) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lVr->getTypePaiement()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
             $lVr->getMontant()->addErreur($lErreur);
             $lVr->getTypePaiement()->addErreur($lErreur);
         }
         $lFerme = FermeManager::selectByIdCompte($pData['operationProducteur']['idCompte']);
         if ($lFerme[0]->getIdCompte() != $pData['operationProducteur']['idCompte']) {
             $lVr->setValid(false);
             $lVr->getOperationProducteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
             $lVr->getOperationProducteur()->addErreur($lErreur);
         }
         $lTypePaiementService = new TypePaiementService();
         $lTypePaiement = $lTypePaiementService->selectVisible($pData['operationProducteur']['typePaiement']);
         // Il est autorisé d'enregistrer un facture (réception de produit) sans payer.
         if ($lTypePaiement->getId() != $pData['operationProducteur']['typePaiement'] && $pData['operationProducteur']['typePaiement'] != 0) {
             $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);
         } else {
             $lChampComplementaire = array();
             foreach ($pData['operationProducteur']['champComplementaire'] as $lChamp) {
                 if (!is_null($lChamp)) {
                     $lObligatoire = NULL;
                     foreach ($lTypePaiement->getChampComplementaire() as $lChampTypePaiement) {
                         if ($lChampTypePaiement->getId() == $lChamp['id']) {
                             $lObligatoire = $lChampTypePaiement->getObligatoire();
                         }
                     }
                     $lVrChampComplementaire = ChampComplementaireValid::validUpdate($lChamp, $lObligatoire);
                     if (!$lVrChampComplementaire->getValid()) {
                         $lVr->setValid(false);
                     }
                     $lChampComplementaire[$lChamp['id']] = $lVrChampComplementaire;
                 }
             }
             $lVr->setChampComplementaire($lChampComplementaire);
         }
         if (is_array($pData['produits'])) {
             $lValidProduit = new ProduitDetailFactureValid();
             //$i = 0;
             //while(isset($pData['produits'][$i])) {
             foreach ($pData['produits'] as $lIndice => $lProduit) {
                 if (!is_null($pData['produits'][$lIndice])) {
                     $lVrProduit = $lValidProduit->validAjout($pData['produits'][$lIndice], $lFerme[0]->getId());
                     if (!$lVrProduit->getValid()) {
                         $lVr->setValid(false);
                     }
                     $lVr->addProduits($lVrProduit);
                 }
                 //	$i++;
             }
         }
     }
     return $lVr;
 }
 /**
  * @name getFacture($pParam)
  * @return FactureResponse
  * @desc Retourne la facture
  */
 public function getFacture($pParam)
 {
     $lVr = FactureValid::validDelete($pParam);
     if ($lVr->getValid()) {
         $lBanqueService = new BanqueService();
         $lTypePaiementService = new TypePaiementService();
         $lFermeService = new FermeService();
         $lData = $lVr->getData();
         $lFermes = $lFermeService->getByIdCompte($lData['facture']->getId()->getIdCompte());
         $lFerme = $lFermes[0];
         return new FactureResponse($lData['facture'], $lBanqueService->getAllActif(), $lTypePaiementService->selectVisible(), $lFerme, ListeNomProduitViewManager::select($lFerme->getId()));
     }
     return $lVr;
 }
 /**
  * @name getInfoModificationAdhesionAdherent($pParam)
  * @return InfoModificationAdhesionAdherentResponse
  * @desc Retourne les informations sur l'adhésion d'un adhérent à une adhésion
  */
 public function getInfoModificationAdhesionAdherent($pParam)
 {
     $lVr = AdhesionAdherentValid::validDelete($pParam);
     if ($lVr->getValid()) {
         $lAdhesionService = new AdhesionService();
         $lTypePaiementService = new TypePaiementService();
         $lBanqueService = new BanqueService();
         $lAdhesionAdherent = $lAdhesionService->getAdhesionAdherent($pParam['id']);
         $lAdhesion = $lAdhesionAdherent->getAdhesionDetail();
         $lPerimetre = $lAdhesionService->getTypeAdhesion($lAdhesionAdherent->getAdhesionAdherent()->getIdTypeAdhesion())->getIdPerimetre();
         if ($lPerimetre == 1) {
             // Si seul adhérent sur le compte ne propose pas les adhésions sur périmètre adhérent
             $lFiltrePerimetre = 1;
         } else {
             // Si plusieurs adhérents uniquement les types adhésion compte
             $lFiltrePerimetre = 2;
         }
         $lTypes = array();
         foreach ($lAdhesion->getTypes() as $i => $lType) {
             if ($lType->getPerId() == $lFiltrePerimetre) {
                 array_push($lTypes, $lType);
             }
         }
         $lAdhesion->setTypes($lTypes);
         return new InfoAjoutAdhesionAdherentResponse($lAdhesion, $lTypePaiementService->selectVisible(), $lBanqueService->getAllActif(), $lAdhesionAdherent);
     }
     return $lVr;
 }
 /**
  * @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;
 }