public function isVolsPlanifiedAvailable(VolsPlanified $vols, $options = array()) { $avion = $vols->getVols()->getPlanDeVols()->getAvion(); $restrictions = $avion->getRestrictionPassager(); $volsTarifaires = $vols->getVolsTarifaire(); //echo "<pre>"; //$seats = 0; foreach ($volsTarifaires as $vt) { $seatsPerCabine = 0; foreach ($restrictions as $restriction) { //Count all available seats //$seats += $vt->getPnr()->getNbPassagersAssis(); //Count all available seats per cabine if ($vt->getPnr()->getStatus()->getOrder() <= 3 && $restriction->getCabine() == $vt->getTarifaire()->getCabine()) { $seatsPerCabine += $vt->getNbPassagersByTypePassager($restriction->getTypePassager()); } if ($seatsPerCabine >= $restriction->getNbSieges()) { return false; } } } $nombrePassagerNeeded = 0; if (isset($options["typePassager"])) { foreach ($options["typePassager"] as $key => $typePassager) { if ($key != 'bebe') { $nombrePassagerNeeded += $typePassager; } } } if ($nombrePassagerNeeded > $vols->getNbAvailableSeating()) { return false; } if ($vols->getNbAvailableSeating() <= 0) { return false; } return true; }