/**
  * @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 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;
 }
Ejemplo n.º 3
0
 /**
  * @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;
 }