public function ajaxProcessAddDataToCart() { // for Add Quantity $id_room = Tools::getValue('id_room'); $booking_type = Tools::getValue('booking_type'); $comment = Tools::getValue('comment'); // for both (add , delete) $id_hotel = Tools::getValue('id_hotel'); $id_product = Tools::getValue('id_prod'); $date_from = Tools::getValue('date_from'); $date_to = Tools::getValue('date_to'); $search_id_prod = Tools::getValue('search_id_prod'); $search_date_from = Tools::getValue('search_date_from'); $search_date_to = Tools::getValue('search_date_to'); // for delete quantity $id_cart = Tools::getValue('id_cart'); $id_cart_book_data = Tools::getValue('id_cart_book_data'); $ajax_delete = Tools::getValue('ajax_delete'); // If delete from cart(not for room list delete(pagebottom tabs)) $opt = Tools::getValue('opt'); // if 1 then add quantity or if 0 means delete quantity // discuss later // // $obj_hotel_info = new HotelBranchInformation(); // $hotel_info = $obj_hotel_info->hotelBranchInfoById($id_hotel); // $date_from = date('Y-m-d H:i:s', strtotime("$date_from +".date('H', strtotime($hotel_info['check_in']))." hours +".date('i', strtotime($hotel_info['check_in']))." minutes")); // $date_to = date('Y-m-d H:i:s', strtotime("$date_to +".date('H', strtotime($hotel_info['check_out']))." hours +".date('i', strtotime($hotel_info['check_out']))." minutes")); $obj_booking_dtl = new HotelBookingDetail(); $num_day = $obj_booking_dtl->getNumberOfDays($date_from, $date_to); //quantity of product $product = new Product($id_product, false, Configuration::get('PS_LANG_DEFAULT')); // $id_product_attribute = $product->getDefaultIdProductAttribute(); if ($opt) { // $cart_rules = $this->context->cart->getCartRules(); $amount = Product::getPriceStatic($id_product, true, null, 6, null, false, true, $num_day); } if ($opt) { $direction = 'up'; } else { $direction = 'down'; } $this->context->cart->updateQty($num_day, $id_product, null, false, $direction); $total_amount = $this->context->cart->getOrderTotal(); $id_cart = $this->context->cart->id; $id_guest = $this->context->cookie->id_guest; $obj_cart_book_data = new HotelCartBookingData(); if ($opt) { $obj_cart_book_data->id_cart = $id_cart; $obj_cart_book_data->id_guest = $id_guest; $obj_cart_book_data->id_product = $id_product; $obj_cart_book_data->id_room = $id_room; $obj_cart_book_data->id_hotel = $id_hotel; $obj_cart_book_data->amount = $amount; $obj_cart_book_data->booking_type = $booking_type; $obj_cart_book_data->comment = $comment; $obj_cart_book_data->date_from = $date_from; $obj_cart_book_data->date_to = $date_to; $obj_cart_book_data->save(); $obj_rm_info = new HotelRoomInformation($id_room); $rms_in_cart = $obj_cart_book_data->getCountRoomsInCart($id_cart, $id_guest); $booking_stats = $obj_booking_dtl->getBookingData($date_from, $date_to, $id_hotel, $search_id_prod, 0, 0, 1, 1, 1, 1, 0, 0, $id_cart, $id_guest, 1); $cart_data = array('room_num' => $obj_rm_info->room_num, 'room_type' => Product::getProductName((int) $id_product), 'date_from' => date('Y-M-d', strtotime($date_from)), 'date_to' => date('Y-M-d', strtotime($date_to)), 'amount' => $amount, 'qty' => $num_day, 'rms_in_cart' => $rms_in_cart, 'total_amount' => $total_amount, 'booking_stats' => $booking_stats, 'id_cart_book_data' => $obj_cart_book_data->id); if ($obj_cart_book_data->id) { die(Tools::jsonEncode($cart_data)); } else { die(0); } } else { $data_dlt = $obj_cart_book_data->deleteRowById($id_cart_book_data); if ($data_dlt) { $rms_in_cart = $obj_cart_book_data->getCountRoomsInCart($id_cart, $id_guest); if (!$ajax_delete) { $booking_stats = $obj_booking_dtl->getBookingData($date_from, $date_to, $id_hotel, $search_id_prod, 0, 0, 1, 1, 1, 1, 0, 0, $id_cart, $id_guest, 1); $cart_data = array('total_amount' => $total_amount, 'rms_in_cart' => $rms_in_cart, 'booking_stats' => $booking_stats); } if ($ajax_delete) { $obj_htl_info = new HotelBranchInformation(); $obj_rm_type = new HotelRoomType(); $this->context->smarty->assign(array('id_cart' => $id_cart, 'id_guest' => $id_guest)); // No use of adult, child, num_rooms $adult = 0; $children = 0; $num_rooms = 1; $booking_data = array(); $booking_data = $obj_booking_dtl->getBookingData($search_date_from, $search_date_to, $id_hotel, $search_id_prod, $adult, $children, $num_rooms, 0, 1, 1, 1, 1, $id_cart, $id_guest, 1); $this->context->smarty->assign(array('date_from' => $date_from, 'date_to' => $date_to, 'booking_data' => $booking_data, 'ajax_delete' => $ajax_delete)); $tpl_path = 'hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/view.tpl'; $room_tpl = $this->context->smarty->fetch(_PS_MODULE_DIR_ . $tpl_path); $cart_data = array('total_amount' => $total_amount, 'room_tpl' => $room_tpl, 'rms_in_cart' => $rms_in_cart, 'booking_data' => $booking_data); } die(Tools::jsonEncode($cart_data)); } else { die(0); } } }