Esempio n. 1
0
 public static function getFullDetailed($poster)
 {
     $prices = Prices::getList(array('afisha_id' => $poster->id));
     if ($prices->count() == 0) {
         return null;
     }
     $pricesIdArr = array();
     foreach ($prices as $price) {
         $pricesIdArr[] = $price->id;
     }
     $orders = Orders::getList(array('afisha_id' => $poster->id));
     $seats = Seats::getList(array('price_id_in' => $pricesIdArr, 'group_by' => 'view_key'));
     $seatsArrVKey = array();
     foreach ($seats as $seat) {
         $seatsArrVKey[] = $seat->view_key;
     }
     $seatsNames = Afisha::getMapSeats($poster->filename, $seatsArrVKey);
     $adminBrone = array();
     $siteBrone = array();
     $residue = array();
     foreach ($seats as $key => $seat) {
         $findedInOrders = false;
         //            Search in orders
         foreach ($orders as $order) {
             $orderSeats = array_filter(explode(',', $order->seats_keys));
             if (in_array($seat->view_key, $orderSeats)) {
                 $findedInOrders = true;
                 //                    Admin brone
                 if ($order->admin_brone == 1) {
                     $adminBrone[$seatsNames[$seat->view_key]['row']][] = $seatsNames[$seat->view_key]['seat'];
                 } elseif ($order->status != 'success' && $order->created_at > time() - Config::get('reserved_days') * 24 * 60 * 60) {
                     $siteBrone[$seatsNames[$seat->view_key]['row']][] = $seatsNames[$seat->view_key]['seat'];
                 } elseif ($order->status != 'success' && $order->created_at < time() - Config::get('reserved_days') * 24 * 60 * 60) {
                     $residue[$seatsNames[$seat->view_key]['row']][] = $seatsNames[$seat->view_key]['seat'];
                 }
             }
         }
         if ($findedInOrders == false) {
             $residue[$seatsNames[$seat->view_key]['row']][] = $seatsNames[$seat->view_key]['seat'];
         }
     }
     return array('adminBrone' => $adminBrone, 'siteBrone' => $siteBrone, 'residue' => $residue);
 }