public function postIssueOther()
 {
     $queue_platform = 'web';
     $terminal_id = 0;
     $business_id = Input::get('business_id');
     $forwarder_id = Input::get('forwarder_id');
     $transaction_number = Input::get('transaction_number');
     if (Business::getForwarderAllowedInBusiness($business_id, $forwarder_id)) {
         $name = PriorityQueue::name($transaction_number);
         $phone = PriorityQueue::phone($transaction_number);
         $email = PriorityQueue::email($transaction_number);
         $service = Service::getFirstServiceOfBusiness($business_id);
         $service_id = $service->service_id;
         $next_number = ProcessQueue::nextNumber(ProcessQueue::lastNumberGiven($service_id), QueueSettings::numberStart($service_id), QueueSettings::numberLimit($service_id));
         $priority_number = $next_number;
         $number = ProcessQueue::issueNumber($service_id, $priority_number, null, $queue_platform, $terminal_id);
         PriorityQueue::updatePriorityQueueUser($number['transaction_number'], $name, $phone, $email);
         return json_encode(['success' => 1, 'number' => $number]);
     }
     return json_encode(['error' => 'You are not allowed to issue a number to this business']);
 }
 public function postPersonalizedBusinesses()
 {
     $processing = array();
     $not_processing = array();
     $post = json_decode(file_get_contents("php://input"));
     if ($post) {
         $user_timezone = isset($post->user_timezone) ? $post->user_timezone : 'Asia/Manila';
         //ARA set user timezone if any
         if ($post->latitude && $post->longitude) {
             $res = Business::getBusinessByLatitudeLongitude($post->latitude, $post->longitude, $user_timezone);
             // get location first
             if (!count($res)) {
                 $res = Business::all();
             }
         } else {
             $res = Business::all();
         }
         foreach ($res as $count => $data) {
             $first_service = Service::getFirstServiceOfBusiness($data->business_id);
             $all_numbers = ProcessQueue::allNumbers($first_service->service_id);
             $time_open = $data->open_hour . ':' . Helper::doubleZero($data->open_minute) . ' ' . strtoupper($data->open_ampm);
             $time_close = $data->close_hour . ':' . Helper::doubleZero($data->close_minute) . ' ' . strtoupper($data->close_ampm);
             // check if business is currently processing numbers
             if (Business::processingBusinessBool($data->business_id)) {
                 if (Auth::check()) {
                     $processing[] = array('business_id' => $data->business_id, 'business_name' => $data->name, 'local_address' => $data->local_address, 'time_open' => Helper::changeBusinessTimeTimezone($time_open, $data->timezone, $user_timezone), 'time_close' => Helper::changeBusinessTimeTimezone($time_close, $data->timezone, $user_timezone), 'waiting_time' => Analytics::getWaitingTimeString($data->business_id), 'last_number_called' => count($all_numbers->called_numbers) > 0 ? $all_numbers->called_numbers[0]['priority_number'] : 'none', 'next_available_number' => $all_numbers->next_number, 'last_active' => Analytics::getLastActive($data->business_id), 'card_bool' => true);
                 } else {
                     $processing[] = array('business_id' => $data->business_id, 'business_name' => $data->name, 'local_address' => $data->local_address);
                 }
             } else {
                 if (Auth::check()) {
                     $not_processing[] = array('business_id' => $data->business_id, 'business_name' => $data->name, 'local_address' => $data->local_address, 'time_open' => Helper::changeBusinessTimeTimezone($time_open, $data->timezone, $user_timezone), 'time_close' => Helper::changeBusinessTimeTimezone($time_close, $data->timezone, $user_timezone), 'waiting_time' => Analytics::getWaitingTimeString($data->business_id), 'last_number_called' => count($all_numbers->called_numbers) > 0 ? $all_numbers->called_numbers[0]['priority_number'] : 'none', 'next_available_number' => $all_numbers->next_number, 'last_active' => Analytics::getLastActive($data->business_id), 'card_bool' => false);
                 } else {
                     $not_processing[] = array('business_id' => $data->business_id, 'business_name' => $data->name, 'local_address' => $data->local_address);
                 }
             }
         }
         $merged_businesses = array_merge($processing, $not_processing);
         if (Auth::check()) {
             // dashboard business boxes should be 8; known users will be redirected to dashboard
             $merged_businesses = array_slice($merged_businesses, 0, 8);
         } else {
             // homepage business boxes should be only 7 to give space for (more business) box; anon users will be redirected to homepage
             $merged_businesses = array_slice($merged_businesses, 0, 7);
         }
         return json_encode($merged_businesses);
     }
 }
Ejemplo n.º 3
0
 public static function sendNumberNextSms($transaction_number, $diff)
 {
     $phone = PriorityQueue::phone($transaction_number);
     $name = PriorityQueue::name($transaction_number);
     if ($phone) {
         $pq = Helper::firstFromTable('priority_queue', 'transaction_number', $transaction_number);
         $terminal_id = TerminalTransaction::terminalId($transaction_number);
         $service_id = PriorityNumber::serviceId($pq->track_id);
         $priority_number = PriorityQueue::priorityNumber($transaction_number);
         $current_number = ProcessQueue::currentNumber($service_id);
         $terminal_name = $terminal_id != 0 ? Terminal::name($terminal_id) : '';
         $business_name = $terminal_id != 0 ? Business::name(Business::getBusinessIdByTerminalId($terminal_id)) : '';
         $name = $name == null ? null : ' ' . $name;
         $message = "Hello{$name}, Your number, ({$priority_number}), will be called soon. ";
         $message .= "Number ({$current_number}) has been called by {$terminal_name}. ";
         if ($diff >= 1) {
             $message .= $diff == 1 ? "There is currently " . $diff . " person ahead of you " : "There are currently " . $diff . " people ahead of you ";
         }
         $message .= "at the {$terminal_name} at {$business_name}.";
         Notifier::sendServiceSms($message, $phone, $service_id);
     }
 }
 /**
  * @param $service_id
  * @param $name
  * @param $phone
  * @param $email
  * @return JSON-formatted queued number
  */
 public function getQueueNumber($service_id, $name, $phone, $email)
 {
     try {
         $next_number = ProcessQueue::nextNumber(ProcessQueue::lastNumberGiven($service_id), QueueSettings::numberStart($service_id), QueueSettings::numberLimit($service_id));
         $priority_number = $next_number;
         $queue_platform = 'kiosk';
         $number = ProcessQueue::issueNumber($service_id, $priority_number, null, $queue_platform);
         PriorityQueue::updatePriorityQueueUser($number['transaction_number'], $name, $phone, $email);
         $details = ['number_assigned' => $priority_number];
         return Response::json($details, 200, array(), JSON_PRETTY_PRINT);
     } catch (Exception $e) {
         return json_encode(['error' => 'Something went wrong!']);
     }
 }
Ejemplo n.º 5
0
 public static function getServiceRemainingCount($service_id)
 {
     $all_numbers = ProcessQueue::allNumbers($service_id);
     return isset($all_numbers->uncalled_numbers) ? count($all_numbers->uncalled_numbers) : 0;
 }
Ejemplo n.º 6
0
 public static function processingBusinessBool($business_id)
 {
     /*
       $filepath = public_path() . '/json/' . $business_id . '.json';
       $data = json_decode(file_get_contents($filepath));
       if ($data->box1->number != '') {
           return TRUE;
       } elseif (isset($data->box2)) {
           if ($data->box2->number != '') {
               return TRUE;
           }
       } elseif (isset($data->box3)) {
           if ($data->box3->number != '') {
               return TRUE;
           }
       } elseif (isset($data->box4)) {
           if ($data->box4->number != '') {
               return TRUE;
           }
       } elseif (isset($data->box5)) {
           if ($data->box5->number != '') {
               return TRUE;
           }
       } elseif (isset($data->box6)) {
           if ($data->box6->number != '') {
               return TRUE;
           }
       } elseif ($data->get_num != '') {
           return TRUE;
       }
       return FALSE;
     */
     // will be using Aunne's data from process queue to determine if the business is active or inactive
     $first_service = Service::getFirstServiceOfBusiness($business_id);
     $all_numbers = ProcessQueue::allNumbers($first_service->service_id);
     $is_calling = count($all_numbers->called_numbers) > 0 ? true : false;
     $is_issuing = count($all_numbers->uncalled_numbers) + count($all_numbers->timebound_numbers) > 0 ? true : false;
     return $is_calling || $is_issuing;
 }
 public function getAllnumbers($service_id, $terminal_id)
 {
     $numbers = ProcessQueue::allNumbers($service_id, $terminal_id);
     ProcessQueue::updateBusinessBroadcast(Business::getBusinessIdByServiceId($service_id));
     return json_encode(['success' => 1, 'numbers' => $numbers], JSON_PRETTY_PRINT);
 }