Example #1
0
 /**
  * remove from inventory
  * @param  array $details order to checkout. $details['user_auth','user_id,'order_shipping_city','order_shipping_address','zipcode', 'data'[album_id','order_total']]
  * @return bool          status.
  */
 public function checkoutOrder($details)
 {
     $arr = array('success' => false);
     if (!isset($details['user_auth']) || !isset($details['user_id'])) {
         apiConf::$ERROR = 'missing data';
     } else {
         $user_auth = $this->escapeString($details['user_auth']);
         if ($user_auth != Config::getUserAuth($details['user_id'])) {
             apiConf::$ERROR = 'not authorized';
         } else {
             $available_info = $this->checkAvilable($details);
             if (count($available_info) > 0) {
                 $arr['data'] = $available_info;
             } else {
                 $shipping_city = $this->escapeString($details['order_shipping_city']);
                 $shiping_address = $this->escapeString($details['order_shipping_address']);
                 $zipcode = $this->escapeString($details['zipcode']);
                 $user_id = $this->escapeString($details['user_id']);
                 $total_amount = 0;
                 foreach ($details['amount'] as $value) {
                     $total_amount += $value;
                 }
                 if ($total_amount == 0) {
                     apiConf::$ERROR = 'no amount pointed';
                 } else {
                     $order_query = "INSERT INTO orders\n\t\t\t\t\t\t\t\t(`user_id`, `order_created`, `order_shipping_city`, `order_shipping_address`, `order_shipping_zipcode`, `order_total`) \n\t\t\t\t\t\t\t\tVALUES ('{$user_id}', DEFAULT, '{$shipping_city}', '{$shiping_address}', '{$zipcode}', '{$total_amount}')";
                     $result = $this->_db->query($order_query);
                     if (!$result) {
                         apiConf::$ERROR = 'order generating failed';
                     } else {
                         $order_id = $this->_db->insert_id;
                         $album_to_order_query = "INSERT INTO orders_to_albums (`order_id`, `album_id`) VALUES ";
                         $i = 0;
                         $albums_count = count($details['albums']);
                         foreach ($details['albums'] as $v) {
                             $i++;
                             $album_id = $v;
                             $album_to_order_query .= "('{$order_id}','{$album_id}')";
                             if ($i < $albums_count) {
                                 $album_to_order_query .= ", ";
                             }
                         }
                         if (!$this->_db->query($album_to_order_query)) {
                             apiConf::$ERROR = 'add albums to order failed';
                         } else {
                             $arr['success'] = true;
                             $arr['order_id'] = $order_id;
                         }
                     }
                 }
             }
         }
     }
     return $arr;
 }