/**
  * @name modifierPaiement($pParam)
  * @desc modifie un paiement
  */
 public function modifierPaiement($pParam)
 {
     $lVr = SuiviPaiementValid::validModifierPaiement($pParam);
     if ($lVr->getValid()) {
         $lOperationService = new OperationService();
         $lOperationInitiale = $lOperationService->getDetail($pParam["id"]);
         $lOperationInitiale->setTypePaiement($pParam["typePaiement"]);
         $lOperationInitiale->setMontant($pParam["montant"]);
         $lChampComplementaire = array();
         foreach ($pParam['champComplementaire'] as $lChamp) {
             if (!is_null($lChamp)) {
                 array_push($lChampComplementaire, OperationChampComplementaireToVO::convertFromArray($lChamp));
             }
         }
         $lOperationInitiale->setChampComplementaire($lChampComplementaire);
         $lOperationService->set($lOperationInitiale);
     }
     return $lVr;
 }
 /**
  * @name validValider($pData)
  * @return validerPaiementVR
  * @desc Test la validite de l'élément
  */
 public static function validValider($pData)
 {
     $lVr = new validerPaiementVR();
     //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);
         }
         $lOperationService = new OperationService();
         $lOperation = $lOperationService->getDetail($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);
         }
         if ($lVr->getValid()) {
             $lVr->setData(array('operation' => $lOperation));
         }
     }
     return $lVr;
 }
 /**
  * @name select($pId)
  * @param integer(11)
  * @return AchatVO
  * @desc Retourne un achat
  */
 private function select($pId)
 {
     $lOperationService = new OperationService();
     $lOperationInitiale = $lOperationService->getDetail($pId);
     $lChampComplementaire = $lOperationInitiale->getChampComplementaire();
     $lOperationAchat = NULL;
     $lOperationAchatSolidaire = NULL;
     $lRechargement = NULL;
     $lIdOperationAchat = 0;
     $lIdOperationAchatSolidaire = 0;
     switch ($lOperationInitiale->getTypePaiement()) {
         case 7:
             $lOperationAchat = $lOperationInitiale;
             $lIdOperationAchat = $lOperationAchat->getId();
             if (isset($lChampComplementaire[13]) && !is_null($lChampComplementaire[13])) {
                 $lIdOperationAchatSolidaire = $lChampComplementaire[13]->getValeur();
                 if (!is_null($lIdOperationAchatSolidaire)) {
                     $lOperationAchatSolidaire = $lOperationService->getDetail($lIdOperationAchatSolidaire);
                 }
             }
             if (isset($lChampComplementaire[14]) && !is_null($lChampComplementaire[14])) {
                 $lIdRechargement = $lChampComplementaire[14]->getValeur();
                 if (!is_null($lIdRechargement)) {
                     $lRechargement = $lOperationService->getDetail($lIdRechargement);
                 }
             }
             break;
         case 8:
             $lOperationAchatSolidaire = $lOperationInitiale;
             $lIdOperationAchatSolidaire = $lOperationAchatSolidaire->getId();
             if (isset($lChampComplementaire[12]) && !is_null($lChampComplementaire[12])) {
                 $lIdOperationAchat = $lChampComplementaire[12]->getValeur();
                 if (!is_null($lIdOperationAchat)) {
                     $lOperationAchat = $lOperationService->getDetail($lIdOperationAchat);
                 }
             }
             if (isset($lChampComplementaire[14]) && !is_null($lChampComplementaire[14])) {
                 $lIdRechargement = $lChampComplementaire[14]->getValeur();
                 if (!is_null($lIdRechargement)) {
                     $lRechargement = $lOperationService->getDetail($lIdRechargement);
                 }
             }
             break;
         default:
             $lRechargement = $lOperationInitiale;
             if (isset($lChampComplementaire[12]) && !is_null($lChampComplementaire[12])) {
                 $lIdOperationAchat = $lChampComplementaire[12]->getValeur();
                 if (!is_null($lIdOperationAchat)) {
                     $lOperationAchat = $lOperationService->getDetail($lIdOperationAchat);
                 }
             }
             if (isset($lChampComplementaire[13]) && !is_null($lChampComplementaire[13])) {
                 $lIdOperationAchatSolidaire = $lChampComplementaire[13]->getValeur();
                 if (!is_null($lIdOperationAchatSolidaire)) {
                     $lOperationAchatSolidaire = $lOperationService->getDetail($lIdOperationAchatSolidaire);
                 }
             }
             break;
     }
     $lProduits = DetailAchatManager::selectProduitsDetailAchat($lIdOperationAchat, $lIdOperationAchatSolidaire);
     return new AchatVO($lOperationAchat, $lOperationAchatSolidaire, $lProduits, $lRechargement);
 }
 /**
  * @name select($pId)
  * @param integer
  * @return FactureVO
  * @desc Retourne une Facture
  */
 private function select($pId)
 {
     $lFacture = new FactureVO();
     $lOperationService = new OperationService();
     $lFacture->setId($lOperationService->getDetail($pId));
     $lOpeFacChampComp = $lFacture->getId()->getChampComplementaire();
     $lIdOperationProducteur = $lOpeFacChampComp[9]->getValeur();
     $lFacture->setOperationProducteur($lOperationService->getDetail($lIdOperationProducteur));
     $lIdOperationZeybu = $lOpeFacChampComp[10]->getValeur();
     $lFacture->setOperationZeybu($lOperationService->getDetail($lIdOperationZeybu));
     $lFacture->setProduits(DetailFactureManager::selectProduitsDetailFacture($pId));
     return $lFacture;
 }
 /**
  * @name updateEnAchat($pIdReservation)
  * @param IdReservationVO
  * @desc Met à jour une réservation
  */
 public function updateEnAchat($pIdReservation)
 {
     $lOperations = $this->selectOperationReservation($pIdReservation);
     $lOperation = $lOperations[0];
     $lIdOperation = $lOperation->getId();
     if (!is_null($lIdOperation)) {
         // Maj du type paiement
         $lOperationService = new OperationService();
         $lOperation = $lOperationService->getDetail($lIdOperation);
         $lOperation->setTypePaiement(22);
         $lOperationService->set($lOperation);
     }
 }
 /**
  * @name validUpdate($pData)
  * @return CompteSolidaireModifierVirementVR
  * @desc Test la validite de l'élément
  */
 public static function validUpdate($pData)
 {
     $lVr = new CompteSolidaireModifierVirementVR();
     //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 ($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['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);
         }
         //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);
         }
         if ($lVr->getValid()) {
             $lOperationService = new OperationService();
             $lOperation = $lOperationService->getDetail($pData['id']);
             $lOpeChampComp = $lOperation->getChampComplementaire();
             if ($lOperation->getTypePaiement() == 3 || $lOperation->getTypePaiement() == 9) {
                 $lOperationSoeur = $lOperationService->getDetail($lOpeChampComp[4]->getValeur());
             } else {
                 if ($lOperation->getTypePaiement() == 4 || $lOperation->getTypePaiement() == 10) {
                     $lOperationSoeur = $lOperationService->getDetail($lOpeChampComp[5]->getValeur());
                 }
             }
             $lCompteService = new CompteService();
             if (!$lCompteService->existe($lOperationSoeur->getIdCompte()) || !$lCompteService->existe($lOperation->getIdCompte())) {
                 $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);
             }
             // Le Montant dans l'operation est négatif donc solde - montant
             if ($pData['montant'] > $lCompteService->get(-2)->getSolde() - $lOperation->getMontant()) {
                 $lVr->setValid(false);
                 $lVr->getMontant()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_237_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_237_MSG);
                 $lVr->getMontant()->addErreur($lErreur);
             }
         }
     }
     return $lVr;
 }