/** * 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; }