Example #1
0
 public function invoice_cobot_bookings()
 {
     error_log('In invoice and charge last 24 hours bookings');
     $util = new utilities();
     $access_token = $util->get_current_environment_cobot_access_token();
     $to = date_create();
     $from = date_add(date_create(), date_interval_create_from_date_string("-24 hours"));
     $from = date_format($from, 'Y-m-d H:i O');
     $to = date_format($to, 'Y-m-d H:i O');
     $query = $this->db->get("cobot_spaces");
     $spaces = $query->result();
     foreach ($spaces as $space) {
         $bookings_url = 'https://' . $space->id . '.cobot.me/api/bookings';
         $bookings = $util->do_get($bookings_url, $params = array('access_token' => $access_token, 'from' => rawurlencode($from), 'to' => rawurlencode($to)));
         if (count($bookings) < 1) {
             echo " *** No bookings in the last 24 hours for space: " . $space->id . "\r\n";
             error_log(" *** No bookings in the last 24 hours for space: " . $space->id);
         } else {
             error_log('Bookings for space: ' . $space->id . ' are: ' . json_encode($bookings));
         }
         $memberships = array();
         foreach ($bookings as $booking) {
             $booking = (array) $booking;
             $membership = $booking['membership'];
             if ($membership) {
                 if (!isset($memberships[$membership->id])) {
                     $memberships[$membership->id] = 1;
                 }
             }
         }
         $membership_ids = array_keys($memberships);
         error_log('Memberships to be charged: ' . json_encode($membership_ids));
         foreach ($membership_ids as $membership_id) {
             echo " *** Trying to generate invoice for membership id: " . $membership_id . " for space: " . $space->id . "\r\n";
             error_log(" *** Trying to generate invoice for membership id: " . $membership_id . " for space: " . $space->id);
             $invoice_url = 'https://' . $space->id . '.cobot.me/api/memberships/' . $membership_id . '/charges_based_invoices';
             $params = array();
             $result = $util->do_post($invoice_url, $params, $access_token);
             if ($result && count($result) > 0 && !array_key_exists('error', $result)) {
                 error_log('Invoice created with id: ' . $result['id'] . ' and number: ' . $result['invoice_number'] . ' and url: ' . $result['url'] . ' for membership id: ' . $membership_id);
                 echo ' *** Invoice created with id: ' . $result['id'] . ' and number: ' . $result['invoice_number'] . ' and url: ' . $result['url'] . ' for membership id: ' . $membership_id . "\r\n";
                 $charge_url = 'https://' . $space->id . '.cobot.me/api/invoices/' . $result['invoice_number'] . '/charges';
                 $charge_result = $util->do_post($charge_url, array(), $access_token);
                 echo " *** Charge made for invoice number: " . $result['invoice_number'] . "\r\n";
                 error_log(" *** Charge made for invoice number: " . $result['invoice_number']);
             }
         }
     }
 }
 public function create_cobot_membership($id, $user_id, $plan_name)
 {
     error_log('... creating cobot membership');
     error_log($id);
     $cobot_authorization_token = $this->tp->get_cobot_access_token($user_id);
     if ($cobot_authorization_token) {
         $query = $this->db->get("cobot_spaces");
         $spaces = $query->result();
         foreach ($spaces as $space) {
             $d = array('address' => array('name' => $plan_name, 'full_address' => 'broadway 12345 New York', 'country' => 'USA'), 'plan' => array('id' => $space->default_plan_id), 'phone' => '9999999999');
             $url = 'https://' . $space->id . '.cobot.me/api/membership';
             $util = new utilities();
             $response = $util->do_post($url, $params = $d, $cobot_authorization_token);
         }
     }
 }
Example #3
0
 function add_rfid_tokens()
 {
     $util = new utilities();
     $access_token = $util->get_current_environment_cobot_access_token();
     $query = $this->db->get("cobot_spaces");
     $spaces = $query->result();
     foreach ($spaces as $space) {
         $token_url = 'https://' . $space->id . '.cobot.me/api/check_in_tokens';
         $sql = "SELECT u.id as user_id, u.rfid as user_rfid, cm.id as membership_id FROM cobot_memberships cm join user u on cm.user_id = u.id where cm.space_id = '" . $space->id . "'";
         error_log($sql);
         $query = $this->db->query($sql);
         $members = $query->result();
         error_log(json_encode($members));
         foreach ($members as $member) {
             $token = "test-token-" . "{$member->membership_id}";
             if ($member->user_rfid) {
                 $token = "{$member->user_rfid}";
             }
             $params = array("membership_id" => "{$member->membership_id}", "token" => $token);
             $util->do_post($token_url, $params, $access_token);
         }
     }
 }
 function book_space($space_id, $user_id, $resource_id = null, $from = null, $to = null)
 {
     error_log('booking space');
     $response = array();
     if (!$resource_id) {
         $sql = "SELECT main_area_id FROM cobot_spaces where id = '" . $space_id . "'";
         error_log($sql);
         $query = $this->db->query($sql);
         $results = (array) $query->result();
         error_log(json_encode($results));
         $main_area_id = NULL;
         if (count($results) > 0) {
             $main_area_id = current($results)->main_area_id;
         }
         error_log($main_area_id);
         $resource_id = $main_area_id;
     }
     if ($resource_id) {
         $sql = "select m.*, u.first_name, u.last_name from cobot_memberships m join user u on m.user_id = u.id where u.id='" . $user_id . "' and m.space_id='" . $space_id . "'";
         error_log($sql);
         $query = $this->db->query($sql);
         $result = $query->result();
         error_log(json_encode($result));
         $membership = current($result);
         error_log(json_encode($membership));
         $membership_id = $membership->id;
         $title = $membership->first_name . ' ' . $membership->last_name;
         $util = new utilities();
         $url = "https://" . $space_id . ".cobot.me/api/resources/" . $resource_id . "/bookings";
         error_log('Booking url: ' . $url);
         if (!$from) {
             $from = date_add(date_create(), date_interval_create_from_date_string("5 minutes"));
             $from = date_format($from, 'Y-m-d H:i O');
         }
         if (!$to) {
             $resource_url = 'https://' . $space_id . '.cobot.me/api/resources/' . $resource_id;
             $resource = $util->do_get($resource_url, $params = array('access_token' => $util->get_current_environment_cobot_access_token()));
             $hours = 5;
             $minutes = 5;
             if ($resource && $resource['max_booking_duration']) {
                 error_log('Max booking duration: ' . $resource['max_booking_duration']);
                 $total_minutes = intval($resource['max_booking_duration']) + 5;
                 $hours = intval($total_minutes / 60);
                 $minutes = $total_minutes % 60;
             }
             error_log($hours . " hours + " . $minutes . " minutes");
             $to = date_add(date_create(), date_interval_create_from_date_string($hours . " hours + " . $minutes . " minutes"));
             $to = date_format($to, 'Y-m-d H:i O');
         }
         $data = array("membership_id" => $membership_id, "from" => $from, "to" => $to, "title" => $title, "comments" => "tea please");
         $this->load->model("thirdpartyusermodel", "tpum", true);
         $cobot_access_token = $this->tpum->get_cobot_access_token($user_id);
         if ($cobot_access_token) {
             $response = $util->do_post($url, $params = $data, $cobot_access_token);
         } else {
             $response['error'] = "Could not find Cobot Access Token for the user";
         }
     } else {
         $response['error'] = "No resource to book";
     }
     error_log(json_encode($response));
     return $response;
 }