示例#1
0
 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;
 }