diff --git a/admin/themes/default/template/controllers/orders/helpers/view/view.tpl b/admin/themes/default/template/controllers/orders/helpers/view/view.tpl index 6c4efed72..2c2955ad5 100644 --- a/admin/themes/default/template/controllers/orders/helpers/view/view.tpl +++ b/admin/themes/default/template/controllers/orders/helpers/view/view.tpl @@ -912,6 +912,8 @@ {assign var=room_price_tax_incl value=$order->getTotalProductsWithTaxes(false, true)} {assign var=service_products_price_tax_excl value=$order->getTotalProductsWithoutTaxes(false, false, Product::SERVICE_PRODUCT_WITHOUT_ROOMTYPE)} {assign var=service_products_price_tax_incl value=$order->getTotalProductsWithTaxes(false, false, Product::SERVICE_PRODUCT_WITHOUT_ROOMTYPE)} + {assign var=convenience_fee_price_tax_excl value=$order->getTotalProductsWithoutTaxes(false, false, Product::SERVICE_PRODUCT_WITH_ROOMTYPE, 1, Product::PRICE_ADDITION_TYPE_INDEPENDENT)} + {assign var=convenience_fee_price_tax_incl value=$order->getTotalProductsWithTaxes(false, false, Product::SERVICE_PRODUCT_WITH_ROOMTYPE, 1, Product::PRICE_ADDITION_TYPE_INDEPENDENT)} {assign var=additional_service_price_tax_excl value=($order->getTotalProductsWithoutTaxes(false, false, Product::SERVICE_PRODUCT_WITH_ROOMTYPE) + $totalDemandsPriceTE)} {assign var=additional_service_price_tax_incl value=($order->getTotalProductsWithTaxes(false, false, Product::SERVICE_PRODUCT_WITH_ROOMTYPE) + $totalDemandsPriceTI)} {if $room_price_tax_excl} @@ -927,7 +929,7 @@ {l s='Total Extra services (tax excl.)'} - {displayPrice price=($additional_service_price_tax_excl - $totalConvenienceFeeTE) currency=$currency->id} + {displayPrice price=($additional_service_price_tax_excl - $convenience_fee_price_tax_excl) currency=$currency->id} @@ -974,11 +976,11 @@ - {if isset($totalConvenienceFeeTI) && $totalConvenienceFeeTI > 0} + {if isset($convenience_fee_price_tax_incl) && $convenience_fee_price_tax_incl > 0} {l s='Convenience Fee'} - {displayPrice price=$totalConvenienceFeeTE currency=$currency->id} + {displayPrice price=$convenience_fee_price_tax_excl currency=$currency->id} diff --git a/cache/smarty/cache/index.php b/cache/smarty/cache/index.php index 369a7a3f3..ffdebb428 100644 --- a/cache/smarty/cache/index.php +++ b/cache/smarty/cache/index.php @@ -1,6 +1,6 @@ -* @copyright 2007-2014 PrestaShop SA +* @copyright 2007-2015 PrestaShop SA * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ diff --git a/cache/smarty/compile/index.php b/cache/smarty/compile/index.php index 369a7a3f3..ffdebb428 100644 --- a/cache/smarty/compile/index.php +++ b/cache/smarty/compile/index.php @@ -1,6 +1,6 @@ -* @copyright 2007-2014 PrestaShop SA +* @copyright 2007-2015 PrestaShop SA * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ diff --git a/classes/PaymentModule.php b/classes/PaymentModule.php index d7e75b7d2..343b84e74 100644 --- a/classes/PaymentModule.php +++ b/classes/PaymentModule.php @@ -1641,8 +1641,6 @@ abstract class PaymentModuleCore extends Module $objRoomTypeServiceProductOrderDetail = new RoomTypeServiceProductOrderDetail(); $result['total_extra_demands_te'] = 0; $result['total_extra_demands_ti'] = 0; - $result['total_additional_services_te'] =0; - $result['total_additional_services_ti'] =0; $cart_htl_data = array(); if (!empty($products)) { foreach ($products as $type_key => $type_value) { @@ -1688,67 +1686,12 @@ abstract class PaymentModuleCore extends Module $cart_htl_data[$type_key]['date_diff'][$date_join]['amount'] = $roomTypeDateRangePrice['total_price_tax_incl']*$vart_quant; - // extra demands prices - $cart_htl_data[$type_key]['date_diff'][$date_join]['extra_demands'] = $objBookingDemand->getRoomTypeBookingExtraDemands( - $order->id, - $type_value['product_id'], - 0, - $data_v['date_from'], - $data_v['date_to'] - ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['extra_demands_price_te'] = $objBookingDemand->getRoomTypeBookingExtraDemands( - $order->id, - $type_value['product_id'], - 0, - $data_v['date_from'], - $data_v['date_to'], - 0, - 1, - 0 - ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['extra_demands_price_ti'] = $objBookingDemand->getRoomTypeBookingExtraDemands( - $order->id, - $type_value['product_id'], - 0, - $data_v['date_from'], - $data_v['date_to'], - 0, - 1, - 1 - ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_auto_add_ti'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $type_value['product_id'], - $data_v['date_from'], - $data_v['date_to'], - $data_v['id_room'], - 1, - 1, - 1, - Product::PRICE_ADDITION_TYPE_WITH_ROOM - ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_auto_add_te'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $type_value['product_id'], - $data_v['date_from'], - $data_v['date_to'], - $data_v['id_room'], - 1, - 0, - 1, - Product::PRICE_ADDITION_TYPE_WITH_ROOM - ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['paid_unit_price_tax_incl'] = $data_v['total_price_tax_incl']/$num_days; $cart_htl_data[$type_key]['date_diff'][$date_join]['paid_unit_price_tax_excl'] = $data_v['total_price_tax_excl']/$num_days; - $cart_htl_data[$type_key]['date_diff'][$date_join]['avg_paid_unit_price_tax_incl'] += ($cart_htl_data[$type_key]['date_diff'][$date_join]['paid_unit_price_tax_incl'] + $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_auto_add_ti']); - $cart_htl_data[$type_key]['date_diff'][$date_join]['avg_paid_unit_price_tax_excl'] += ($cart_htl_data[$type_key]['date_diff'][$date_join]['paid_unit_price_tax_excl'] + $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_auto_add_te']); - $cart_htl_data[$type_key]['date_diff'][$date_join]['amount_tax_incl'] += ($data_v['total_price_tax_incl'] + $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_auto_add_te']); - $cart_htl_data[$type_key]['date_diff'][$date_join]['amount_tax_excl'] += ($data_v['total_price_tax_excl'] + $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_auto_add_te']); + $cart_htl_data[$type_key]['date_diff'][$date_join]['avg_paid_unit_price_tax_incl'] += $cart_htl_data[$type_key]['date_diff'][$date_join]['paid_unit_price_tax_incl']; + $cart_htl_data[$type_key]['date_diff'][$date_join]['avg_paid_unit_price_tax_excl'] += $cart_htl_data[$type_key]['date_diff'][$date_join]['paid_unit_price_tax_excl']; + $cart_htl_data[$type_key]['date_diff'][$date_join]['amount_tax_incl'] += $data_v['total_price_tax_incl']; + $cart_htl_data[$type_key]['date_diff'][$date_join]['amount_tax_excl'] += $data_v['total_price_tax_excl']; } else { $num_days = $obj_htl_bk_dtl->getNumberOfDays($data_v['date_from'], $data_v['date_to']); @@ -1800,28 +1743,6 @@ abstract class PaymentModuleCore extends Module $data_v['date_from'], $data_v['date_to'] ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_ti'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $type_value['product_id'], - $data_v['date_from'], - $data_v['date_to'], - $data_v['id_room'], - 1, - 1 - ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_te'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $type_value['product_id'], - $data_v['date_from'], - $data_v['date_to'], - $data_v['id_room'], - 1, - 0 - ); $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_auto_add_ti'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( $order->id, 0, @@ -1829,7 +1750,7 @@ abstract class PaymentModuleCore extends Module $type_value['product_id'], $data_v['date_from'], $data_v['date_to'], - $data_v['id_room'], + 0, 1, 1, 1, @@ -1842,7 +1763,7 @@ abstract class PaymentModuleCore extends Module $type_value['product_id'], $data_v['date_from'], $data_v['date_to'], - $data_v['id_room'], + 0, 1, 0, 1, @@ -1858,8 +1779,6 @@ abstract class PaymentModuleCore extends Module $result['total_extra_demands_te'] += $cart_htl_data[$type_key]['date_diff'][$date_join]['extra_demands_price_te']; $result['total_extra_demands_ti'] += $cart_htl_data[$type_key]['date_diff'][$date_join]['extra_demands_price_ti']; - $result['total_additional_services_te'] += $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_te']; - $result['total_additional_services_ti'] += $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_ti']; } } // calculate averages now diff --git a/classes/order/OrderReturn.php b/classes/order/OrderReturn.php index aaace5681..04f548f01 100644 --- a/classes/order/OrderReturn.php +++ b/classes/order/OrderReturn.php @@ -215,7 +215,10 @@ class OrderReturnCore extends ObjectModel $bookingRow['id_room'], $bookingRow['date_from'], $bookingRow['date_to'], - 0 + 0, + 0, + 1, + $bookingRow['id'] ); if (count($roomSelectedDemands)) { foreach ($roomSelectedDemands as $demand) { diff --git a/classes/pdf/HTMLTemplateInvoice.php b/classes/pdf/HTMLTemplateInvoice.php index 3d28fca40..7019b83fc 100644 --- a/classes/pdf/HTMLTemplateInvoice.php +++ b/classes/pdf/HTMLTemplateInvoice.php @@ -372,60 +372,6 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate $cart_htl_data[$type_key]['unit_price_tax_incl'] = $unit_price_tax_incl; if (isset($cart_htl_data[$type_key]['date_diff'][$date_join])) { - // $cart_htl_data[$type_key]['date_diff'][$date_join]['extra_demands'] = $objBookingDemand->getRoomTypeBookingExtraDemands( - // $order_obj->id, - // $type_value['product_id'], - // 0, - // $data_v['date_from'], - // $data_v['date_to'] - // ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['extra_demands_price_te'] = $objBookingDemand->getRoomTypeBookingExtraDemands( - $order_obj->id, - $type_value['product_id'], - 0, - $data_v['date_from'], - $data_v['date_to'], - 0, - 1, - 0 - ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['extra_demands_price_ti'] = $objBookingDemand->getRoomTypeBookingExtraDemands( - $order_obj->id, - $type_value['product_id'], - 0, - $data_v['date_from'], - $data_v['date_to'], - 0, - 1, - 1 - ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_auto_add_ti'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order_obj->id, - 0, - 0, - $data_v['id_product'], - $data_v['date_from'], - $data_v['date_to'], - $data_v['id_room'], - 1, - 1, - 1, - Product::PRICE_ADDITION_TYPE_WITH_ROOM - ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_auto_add_te'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order_obj->id, - 0, - 0, - $data_v['id_product'], - $data_v['date_from'], - $data_v['date_to'], - $data_v['id_room'], - 1, - 0, - 1, - Product::PRICE_ADDITION_TYPE_WITH_ROOM - ); - $cart_htl_data[$type_key]['date_diff'][$date_join]['num_rm'] += 1; $cart_htl_data[$type_key]['date_diff'][$date_join]['adults'] += $data_v['adults']; $cart_htl_data[$type_key]['date_diff'][$date_join]['children'] += $data_v['children']; @@ -435,20 +381,13 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate $cart_htl_data[$type_key]['date_diff'][$date_join]['paid_unit_price_tax_excl'] = $data_v['total_price_tax_excl']/$num_days; $cart_htl_data[$type_key]['date_diff'][$date_join]['paid_unit_price_tax_incl'] = $data_v['total_price_tax_excl']/$num_days; - $cart_htl_data[$type_key]['date_diff'][$date_join]['avg_paid_unit_price_tax_excl'] += ($cart_htl_data[$type_key]['date_diff'][$date_join]['paid_unit_price_tax_excl'] + $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_auto_add_te']); + $cart_htl_data[$type_key]['date_diff'][$date_join]['avg_paid_unit_price_tax_excl'] += $cart_htl_data[$type_key]['date_diff'][$date_join]['paid_unit_price_tax_excl']; - $cart_htl_data[$type_key]['date_diff'][$date_join]['amount'] += ($data_v['total_price_tax_excl'] + $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services_price_auto_add_te']); + $cart_htl_data[$type_key]['date_diff'][$date_join]['amount'] += ($data_v['total_price_tax_excl']); // For order refund $cart_htl_data[$type_key]['date_diff'][$date_join]['id_room'] = $data_v['id_room']; } else { - // $cart_htl_data[$type_key]['date_diff'][$date_join]['extra_demands'] = $objBookingDemand->getRoomTypeBookingExtraDemands( - // $order_obj->id, - // $type_value['product_id'], - // 0, - // $data_v['date_from'], - // $data_v['date_to'] - // ); $cart_htl_data[$type_key]['date_diff'][$date_join]['extra_demands_price_te'] = $objBookingDemand->getRoomTypeBookingExtraDemands( $order_obj->id, $type_value['product_id'], @@ -509,7 +448,7 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate $data_v['id_product'], $data_v['date_from'], $data_v['date_to'], - $data_v['id_room'], + 0, 1, 1, 1, @@ -522,7 +461,7 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate $data_v['id_product'], $data_v['date_from'], $data_v['date_to'], - $data_v['id_room'], + 0, 1, 0, 1, @@ -555,7 +494,11 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate $type_value['product_id'], $data_v['id_room'], $data_v['date_from'], - $data_v['date_to'] + $data_v['date_to'], + 1, + 0, + 1, + $data_v['id'] )) { $extraDemands = array_shift($extraDemands); $extraDemands['product_id'] = $type_value['product_id']; @@ -565,16 +508,12 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate $room_extra_demands[] = $extraDemands; } - if ($additionalServices = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order_obj->id, + if ($additionalServices = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( + $data_v['id'], 0, - 0, - $type_value['product_id'], - $data_v['date_from'], - $data_v['date_to'], - $data_v['id_room'] + 1, + 0 )) { - $additionalServices = array_shift($additionalServices); $additionalServices['product_id'] = $type_value['product_id']; $additionalServices['room_type_name'] = $type_value['product_name']; $additionalServices['date_from'] = $data_v['date_from']; diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index d56966e0c..d6d5c6f04 100644 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -836,8 +836,9 @@ class AdminOrdersControllerCore extends AdminController && ($idRoom = Tools::getValue('id_room')) && ($dateFrom = Tools::getValue('date_from')) && ($dateTo = Tools::getValue('date_to')) + && ($productLineData = Tools::getValue('product_line_data')) ) { - $productLineData = json_decode(Tools::getValue('product_line_data'), true); + $productLineData = json_decode($productLineData, true); $smartyVars = array( 'order' => $objOrder, @@ -852,16 +853,7 @@ class AdminOrdersControllerCore extends AdminController $smartyVars['currencySign'] = $objCurrency->sign; $smartyVars['link'] = $this->context->link; - $objBookingDemand = new HotelBookingDetail(); - $htlBookingDetail = $objBookingDemand->getRowByIdOrderIdProductInDateRange( - $idOrder, - $idProduct, - $dateFrom, - $dateTo, - $idRoom - ); - - $smartyVars['id_booking_detail'] = $htlBookingDetail['id']; + $smartyVars['id_booking_detail'] = $productLineData['id']; $objBookingDemand = new HotelBookingDemands(); @@ -870,10 +862,14 @@ class AdminOrdersControllerCore extends AdminController if ($extraDemands = $objBookingDemand->getRoomTypeBookingExtraDemands( $idOrder, - $idProduct, - $idRoom, - $dateFrom, - $dateTo + 0, + 0, + 0, + 0, + 1, + 0, + 1, + $productLineData['id'] )) { $smartyVars['extraDemands'] = $extraDemands; } @@ -892,7 +888,7 @@ class AdminOrdersControllerCore extends AdminController $objRoomTypeServiceProductOrderDetail = new RoomTypeServiceProductOrderDetail(); if ($additionalServices = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( - $htlBookingDetail['id'] + $productLineData['id'] )) { $smartyVars['additionalServices'] = $additionalServices; } @@ -2542,8 +2538,6 @@ class AdminOrdersControllerCore extends AdminController $total_room_tax = 0; $totalRoomsCostTE = 0; - $totalConvenienceFeeTE = 0; - $totalConvenienceFeeTI = 0; $totalDemandsPriceTE = 0; $totalDemandsPriceTI = 0; @@ -2559,7 +2553,11 @@ class AdminOrdersControllerCore extends AdminController $value['id_product'], $value['id_room'], $value['date_from'], - $value['date_to'] + $value['date_to'], + 1, + 0, + 1, + $value['id'] ); $order_detail_data[$key]['total_room_price_ti'] += $order_detail_data[$key]['extra_demands_price_ti'] = $objBookingDemand->getRoomTypeBookingExtraDemands( $order->id, @@ -2569,7 +2567,8 @@ class AdminOrdersControllerCore extends AdminController $value['date_to'], 0, 1, - 1 + 1, + $value['id'] ); $totalDemandsPriceTI += $order_detail_data[$key]['extra_demands_price_ti']; $order_detail_data[$key]['total_room_price_te'] += $order_detail_data[$key]['extra_demands_price_te'] = $objBookingDemand->getRoomTypeBookingExtraDemands( @@ -2580,69 +2579,38 @@ class AdminOrdersControllerCore extends AdminController $value['date_to'], 0, 1, - 0 + 0, + $value['id'] ); $totalDemandsPriceTE += $order_detail_data[$key]['extra_demands_price_te']; - $order_detail_data[$key]['additional_services'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $value['id_product'], - $value['date_from'], - $value['date_to'], - $value['id_room'], - 0, - null, - null + $order_detail_data[$key]['additional_services'] = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( + $value['id'] ); - $order_detail_data[$key]['total_room_price_ti'] += $order_detail_data[$key]['additional_services_price_ti'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $value['id_product'], - $value['date_from'], - $value['date_to'], - $value['id_room'], + $order_detail_data[$key]['total_room_price_ti'] += $order_detail_data[$key]['additional_services_price_ti'] = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( + $value['id'], 1, - 1 - ); - $order_detail_data[$key]['total_room_price_te'] += $order_detail_data[$key]['additional_services_price_te'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $value['id_product'], - $value['date_from'], - $value['date_to'], - $value['id_room'], 1, 0 ); + $order_detail_data[$key]['total_room_price_te'] += $order_detail_data[$key]['additional_services_price_te'] = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( + $value['id'], + 1, + 0, + 0 + ); - $order_detail_data[$key]['convenience_fee_ti'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $value['id_product'], - $value['date_from'], - $value['date_to'], - $value['id_room'], + $order_detail_data[$key]['convenience_fee_ti'] = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( + $value['id'], 1, 1, 1, Product::PRICE_ADDITION_TYPE_INDEPENDENT ); $order_detail_data[$key]['total_room_price_ti'] += $order_detail_data[$key]['convenience_fee_ti']; - $totalConvenienceFeeTI += $order_detail_data[$key]['convenience_fee_ti']; - $order_detail_data[$key]['convenience_fee_te'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $value['id_product'], - $value['date_from'], - $value['date_to'], - $value['id_room'], + $order_detail_data[$key]['convenience_fee_te'] = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( + $value['id'], 1, 0, 1, @@ -2650,16 +2618,9 @@ class AdminOrdersControllerCore extends AdminController ); $order_detail_data[$key]['total_room_price_te'] += $order_detail_data[$key]['convenience_fee_te']; - $totalConvenienceFeeTE += $order_detail_data[$key]['convenience_fee_te']; - $order_detail_data[$key]['additional_services_price_auto_add_ti'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $value['id_product'], - $value['date_from'], - $value['date_to'], - $value['id_room'], + $order_detail_data[$key]['additional_services_price_auto_add_ti'] = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( + $value['id'], 1, 1, 1, @@ -2667,14 +2628,8 @@ class AdminOrdersControllerCore extends AdminController ); $order_detail_data[$key]['total_room_price_ti'] += $order_detail_data[$key]['additional_services_price_auto_add_ti']; - $order_detail_data[$key]['additional_services_price_auto_add_te'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $value['id_product'], - $value['date_from'], - $value['date_to'], - $value['id_room'], + $order_detail_data[$key]['additional_services_price_auto_add_te'] = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( + $value['id'], 1, 0, 1, @@ -2757,8 +2712,6 @@ class AdminOrdersControllerCore extends AdminController 'refundedAmount' => $refundedAmount, 'totalDemandsPriceTI' => $totalDemandsPriceTI, 'totalDemandsPriceTE' => $totalDemandsPriceTE, - 'totalConvenienceFeeTI' => $totalConvenienceFeeTI, - 'totalConvenienceFeeTE' => $totalConvenienceFeeTE, 'totalRoomsCostTE' => $totalRoomsCostTE, 'total_room_tax' => $total_room_tax, 'htl_booking_order_data' => $bookingOrderInfo, @@ -5065,41 +5018,20 @@ class AdminOrdersControllerCore extends AdminController $id_order = (int) Tools::getValue('id_order'); $order = new Order($id_order); /*By webkul To delete Order and cart entries when deleting rooms from the orderLine when editing the order*/ - - $date_from = Tools::getValue('date_from'); - $date_to = Tools::getValue('date_to'); - $id_hotel = Tools::getValue('id_hotel'); - $id_room = Tools::getValue('id_room'); - $id_product = Tools::getValue('id_product'); - $obj_booking_detail = new HotelBookingDetail(); - $product_quantity = (int) $obj_booking_detail->getNumberOfDays($date_from, $date_to); - /*By webkul to validate fields before deleting the cart and order data form the tables*/ - if ($id_hotel == '') { + /*By webkul to validate booking before deleting the cart and order data form the tables*/ + if (($idHotelBooking = Tools::getValue('id_htl_booking')) == '') { die(json_encode(array( 'result' => false, - 'error' => Tools::displayError('Hotel Id is mising.'), + 'error' => Tools::displayError('Booking id not found.'), ))); - } elseif ($id_room == '') { + } elseif (!Validate::isLoadedObject($objBookingDetail = new HotelBookingDetail($idHotelBooking))) { die(json_encode(array( 'result' => false, - 'error' => Tools::displayError('Room Id is missing.'), + 'error' => Tools::displayError('Booking Detail not found.'), ))); - } elseif ($date_from == '') { - die(json_encode(array( - 'result' => false, - 'error' => Tools::displayError('Check In Date is missing.'), - ))); - } elseif ($date_to == '') { - die(json_encode(array( - 'result' => false, - 'error' => Tools::displayError('Check Out Date is missing.'), - ))); - } elseif ($date_to == '') { - die(json_encode(array( - 'result' => false, - 'error' => Tools::displayError('Check Out Date is missing.'), - ))); - } elseif (!Validate::isUnsignedInt($product_quantity)) { + } + $product_quantity = (int) $objBookingDetail->getNumberOfDays($objBookingDetail->date_from, $objBookingDetail->date_to); + if (!Validate::isUnsignedInt($product_quantity)) { die(json_encode(array( 'result' => false, 'error' => Tools::displayError('Invalid quantity.'), @@ -5109,32 +5041,32 @@ class AdminOrdersControllerCore extends AdminController /*END*/ $this->doDeleteProductLineValidation($order_detail, $order); Hook::exec('actionOrderProductLineDeleteBefore', array('order' => $order)); - $bookingInfo = $obj_booking_detail->getRowByIdOrderIdProductInDateRange($id_order, $id_product, $date_from, $date_to, $id_room); - $idHotelBooking = $bookingInfo['id']; - - $bookingPriceTaxIncl = $bookingInfo['total_price_tax_incl']; - $bookingPriceTaxExcl = $bookingInfo['total_price_tax_excl']; + $bookingPriceTaxIncl = $objBookingDetail->total_price_tax_incl; + $bookingPriceTaxExcl = $objBookingDetail->total_price_tax_excl; + ddd($objBookingDetail); $objBookingDemand = new HotelBookingDemands(); $roomExtraDemandTI = $objBookingDemand->getRoomTypeBookingExtraDemands( $id_order, - $id_product, - $id_room, - $date_from, - $date_to, + $objBookingDetail->id_product, + $objBookingDetail->id_room, + $objBookingDetail->date_from, + $objBookingDetail->date_to, 0, 1, - 1 + 1, + $objBookingDetail->id ); $roomExtraDemandTE = $objBookingDemand->getRoomTypeBookingExtraDemands( $id_order, - $id_product, - $id_room, - $date_from, - $date_to, + $objBookingDetail->id_product, + $objBookingDetail->id_room, + $objBookingDetail->date_from, + $objBookingDetail->date_to, 0, 1, - 0 + 0, + $objBookingDetail->id ); $objRoomTypeServiceProductOrderDetail = new RoomTypeServiceProductOrderDetail(); @@ -5283,10 +5215,15 @@ class AdminOrdersControllerCore extends AdminController /*By webkul to delete cart and order entries from cart and order tables of hotelreservationsystem when delete booking form the order line in order detaoil page*/ $obj_htl_cart_booking = new HotelCartBookingData(); - $delete_room_order = $obj_htl_cart_booking->deleteOrderedRoomFromCart($id_order, $id_hotel, $id_room, $date_from, $date_to); + $delete_room_order = $obj_htl_cart_booking->deleteCartBookingData( + $objBookingDetail->id_cart, + $objBookingDetail->id_product, + $objBookingDetail->id_room, + $objBookingDetail->date_from, + $objBookingDetail->date_to + ); - $obj_htl_booking = new HotelBookingDetail(); - $delete_room_order = $obj_htl_booking->deleteOrderedRoomFromOrder($id_order, $id_hotel, $id_room, $date_from, $date_to); + $objBookingDetail->delete(); // Assign to smarty informations in order to show the new product line $this->context->smarty->assign(array( @@ -5938,6 +5875,7 @@ class AdminOrdersControllerCore extends AdminController && ($idRoom = Tools::getValue('id_room')) && ($dateFrom = Tools::getValue('date_from')) && ($dateTo = Tools::getValue('date_to')) + && ($idHtlBooking = Tools::getValue('id_htl_booking')) ) { $smartyVars = array(); $objOrder = new Order($idOrder); @@ -5946,16 +5884,7 @@ class AdminOrdersControllerCore extends AdminController $smartyVars['currencySign'] = $objCurrency->sign; $smartyVars['link'] = $this->context->link; - $objBookingDemand = new HotelBookingDetail(); - $htlBookingDetail = $objBookingDemand->getRowByIdOrderIdProductInDateRange( - $idOrder, - $idProduct, - $dateFrom, - $dateTo, - $idRoom - ); - - $smartyVars['id_booking_detail'] = $htlBookingDetail['id']; + $smartyVars['id_booking_detail'] = $idHtlBooking; $objBookingDemand = new HotelBookingDemands(); @@ -5967,14 +5896,18 @@ class AdminOrdersControllerCore extends AdminController $idProduct, $idRoom, $dateFrom, - $dateTo + $dateTo, + 1, + 0, + 1, + $idHtlBooking )) { $smartyVars['extraDemands'] = $extraDemands; } $objRoomTypeServiceProductOrderDetail = new RoomTypeServiceProductOrderDetail(); if ($additionalServices = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( - $htlBookingDetail['id'] + $idHtlBooking )) { $smartyVars['additionalServices'] = $additionalServices; } @@ -6002,7 +5935,7 @@ class AdminOrdersControllerCore extends AdminController die($response); } - public function processRenderServicesPanel($idOrder, $idProduct, $dateFrom, $dateTo, $idRoom, $orderEdit) + public function processRenderServicesPanel($idOrder, $idProduct, $dateFrom, $dateTo, $idRoom, $idHtlBookingDetail, $orderEdit) { $smartyVars = array(); $objOrder = new Order($idOrder); @@ -6011,19 +5944,10 @@ class AdminOrdersControllerCore extends AdminController $smartyVars['currencySign'] = $objCurrency->sign; $smartyVars['link'] = $this->context->link; - $objBookingDemand = new HotelBookingDetail(); - $htlBookingDetail = $objBookingDemand->getRowByIdOrderIdProductInDateRange( - $idOrder, - $idProduct, - $dateFrom, - $dateTo, - $idRoom - ); - - $smartyVars['id_booking_detail'] = $htlBookingDetail['id']; + $smartyVars['id_booking_detail'] = $idHtlBookingDetail; $objRoomTypeServiceProductOrderDetail = new RoomTypeServiceProductOrderDetail(); if ($additionalServices = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( - $htlBookingDetail['id'] + $idHtlBookingDetail )) { $smartyVars['additionalServices'] = $additionalServices; } @@ -6054,7 +5978,7 @@ class AdminOrdersControllerCore extends AdminController return $servicesTpl; } - public function processRenderFacilitiesBlock($idOrder, $idProduct, $dateFrom, $dateTo, $idRoom, $orderEdit) + public function processRenderFacilitiesBlock($idOrder, $idProduct, $dateFrom, $dateTo, $idRoom, $idHtlBookingDetail, $orderEdit) { $smartyVars = array(); $objOrder = new Order($idOrder); @@ -6062,17 +5986,7 @@ class AdminOrdersControllerCore extends AdminController $smartyVars['orderCurrency'] = $objOrder->id_currency; $smartyVars['currencySign'] = $objCurrency->sign; $smartyVars['link'] = $this->context->link; - - $objBookingDemand = new HotelBookingDetail(); - $htlBookingDetail = $objBookingDemand->getRowByIdOrderIdProductInDateRange( - $idOrder, - $idProduct, - $dateFrom, - $dateTo, - $idRoom - ); - - $smartyVars['id_booking_detail'] = $htlBookingDetail['id']; + $smartyVars['id_booking_detail'] = $idHtlBookingDetail; // set context currency So that we can get prices in the order currency $this->context->currency = new Currency($objOrder->id_currency); @@ -6084,7 +5998,11 @@ class AdminOrdersControllerCore extends AdminController $idProduct, $idRoom, $dateFrom, - $dateTo + $dateTo, + 1, + 0, + 1, + $idHtlBookingDetail )) { $smartyVars['extraDemands'] = $extraDemands; } @@ -6202,6 +6120,7 @@ class AdminOrdersControllerCore extends AdminController $objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to, $objHotelBookingDetail->id_room, + $objHotelBookingDetail->id, true ); } else { @@ -6253,6 +6172,7 @@ class AdminOrdersControllerCore extends AdminController $objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to, $objHotelBookingDetail->id_room, + $objHotelBookingDetail->id, true ); } @@ -6501,6 +6421,7 @@ class AdminOrdersControllerCore extends AdminController $objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to, $objHotelBookingDetail->id_room, + $objHotelBookingDetail->id, true ); } else { @@ -6629,6 +6550,7 @@ class AdminOrdersControllerCore extends AdminController $objBookingDetail->date_from, $objBookingDetail->date_to, $objBookingDetail->id_room, + $objBookingDetail->id, true ); $response['success'] = true; @@ -6698,6 +6620,7 @@ class AdminOrdersControllerCore extends AdminController $objBookingDetail->date_from, $objBookingDetail->date_to, $objBookingDetail->id_room, + $objBookingDetail->id, true ); $response['success'] = true; @@ -6742,6 +6665,7 @@ class AdminOrdersControllerCore extends AdminController $objBookingDetail->date_from, $objBookingDetail->date_to, $objBookingDetail->id_room, + $objBookingDetail->id, true ); $response['success'] = true; diff --git a/controllers/front/OrderDetailController.php b/controllers/front/OrderDetailController.php index afa1ea9e8..d19d597ed 100644 --- a/controllers/front/OrderDetailController.php +++ b/controllers/front/OrderDetailController.php @@ -228,6 +228,7 @@ class OrderDetailControllerCore extends FrontController 1, 1 ); + if (empty($cartHotelData[$type_key]['date_diff'][$date_join]['extra_demands_price_te'])) { $cartHotelData[$type_key]['date_diff'][$date_join]['extra_demands_price_te'] = 0; } diff --git a/js/admin/orders.js b/js/admin/orders.js index 097961a27..e1e6dd396 100644 --- a/js/admin/orders.js +++ b/js/admin/orders.js @@ -1143,8 +1143,9 @@ function initRoomEvents() var date_from = tr_product.data('date_from'); var date_to = tr_product.data('date_to'); var id_order_detail = tr_product.data('id_order_detail'); + var id_htl_booking = tr_product.data('id_htl_booking'); //var id_order_detail = $(this).closest('.product-line-row').find('td .edit_product_id_order_detail').val(); - var query = 'ajax=1&action=deleteRoomLine&token='+token+'&id_order='+id_order+'&id_room='+id_room+'&id_product='+id_product+'&id_hotel='+id_hotel+'&date_from='+date_from+'&date_to='+date_to+'&id_order_detail='+id_order_detail; + var query = 'ajax=1&action=deleteRoomLine&token='+token+'&id_order='+id_order+'&id_htl_booking='+id_htl_booking+'&id_room='+id_room+'&id_product='+id_product+'&id_hotel='+id_hotel+'&date_from='+date_from+'&date_to='+date_to+'&id_order_detail='+id_order_detail; query += $(this).parent().parent().find('input, select:visible, .edit_product_id_order_detail').serialize(); $.ajax({ type: 'POST', @@ -1542,6 +1543,7 @@ $(document).ready(function() { id_order: idOrder, date_from: dateFrom, date_to: dateTo, + id_htl_booking: idHtlBooking, orderEdit: orderEdit, action: 'getRoomTypeBookingDemands', ajax: true diff --git a/modules/hotelreservationsystem/classes/HotelBookingDemands.php b/modules/hotelreservationsystem/classes/HotelBookingDemands.php index 8b98d69f4..a018e952a 100644 --- a/modules/hotelreservationsystem/classes/HotelBookingDemands.php +++ b/modules/hotelreservationsystem/classes/HotelBookingDemands.php @@ -74,7 +74,8 @@ class HotelBookingDemands extends ObjectModel $dateTo = 0, $groupByRoom = 1, $getTotalPrice = 0, - $useTax = 1 + $useTax = 1, + $idHtlBookingDetail = 0 ) { $moduleObj = Module::getInstanceByName('hotelreservationsystem'); $context = Context::getContext(); @@ -88,21 +89,24 @@ class HotelBookingDemands extends ObjectModel $totalDemandsPrice = 0; $sql = 'SELECT hb.`id_room`, hb.`adults`, hb.`children`, hd.* FROM `'._DB_PREFIX_.'htl_booking_demands` hd LEFT JOIN `'._DB_PREFIX_.'htl_booking_detail` hb ON (hd.`id_htl_booking` = hb.`id`) - WHERE hd.`id_htl_booking` IN - (SELECT `id` FROM `'._DB_PREFIX_.'htl_booking_detail` - WHERE `id_order`='.(int) $idOrder; + WHERE hb.`id_order` ='.(int) $idOrder; + if ($idProduct) { - $sql .= ' AND `id_product`='.(int)$idProduct; + $sql .= ' AND hb.`id_product`='.(int)$idProduct; } if ($idRoom) { - $sql .= ' AND `id_room`='.(int)$idRoom; + $sql .= ' AND hb.`id_room`='.(int)$idRoom; } if ($dateFrom && $dateTo) { $dateFrom = date('Y-m-d', strtotime($dateFrom)); $dateTo = date('Y-m-d', strtotime($dateTo)); - $sql .= ' AND `date_from`=\''.pSQL($dateFrom).'\' AND `date_to`= \''.pSQL($dateTo).'\''; + $sql .= ' AND hb.`date_from`=\''.pSQL($dateFrom).'\' AND hb.`date_to`= \''.pSQL($dateTo).'\''; } - $sql .= ')'; + + if ($idHtlBookingDetail) { + $sql .= ' AND hb.`id` = '.(int)$idHtlBookingDetail; + } + if ($getTotalPrice) { $totalDemandsPrice = 0; } diff --git a/modules/hotelreservationsystem/classes/HotelBookingDetail.php b/modules/hotelreservationsystem/classes/HotelBookingDetail.php index 047e1de46..97fdc022e 100644 --- a/modules/hotelreservationsystem/classes/HotelBookingDetail.php +++ b/modules/hotelreservationsystem/classes/HotelBookingDetail.php @@ -2888,7 +2888,10 @@ class HotelBookingDetail extends ObjectModel $this->id_room, $this->date_from, $this->date_to, - 0 + 0, + 0, + 1, + $this->id )) { foreach ($roomDemands as $roomDemand) { $objHotelBookingDemands = new HotelBookingDemands($roomDemand['id_booking_demand']); diff --git a/modules/hotelreservationsystem/classes/HotelOrderRefundRules.php b/modules/hotelreservationsystem/classes/HotelOrderRefundRules.php index 32a6ad0e0..1c941b2c2 100644 --- a/modules/hotelreservationsystem/classes/HotelOrderRefundRules.php +++ b/modules/hotelreservationsystem/classes/HotelOrderRefundRules.php @@ -149,7 +149,9 @@ class HotelOrderRefundRules extends ObjectModel $objHtlBooking->date_from, $objHtlBooking->date_to, 1, - 1 + 1, + 1, + $objHtlBooking->id ); $totalServicesPrice = $objRoomTypeServiceProductOrderDetail->getSelectedServicesForRoom( diff --git a/modules/hotelreservationsystem/classes/RoomTypeServiceProductOrderDetail.php b/modules/hotelreservationsystem/classes/RoomTypeServiceProductOrderDetail.php index b26cf751d..278c7dfa9 100644 --- a/modules/hotelreservationsystem/classes/RoomTypeServiceProductOrderDetail.php +++ b/modules/hotelreservationsystem/classes/RoomTypeServiceProductOrderDetail.php @@ -187,7 +187,9 @@ class RoomTypeServiceProductOrderDetail extends ObjectModel public function getSelectedServicesForRoom( $idHotelBookingDetail, $getTotalPrice = 0, - $useTax = null + $useTax = null, + $autoAddToCart = null, + $priceAdditionType = null ) { if ($useTax === null) { @@ -207,6 +209,13 @@ class RoomTypeServiceProductOrderDetail extends ObjectModel $sql .= ' WHERE hbd.`id` = '.(int)$idHotelBookingDetail; + if (!is_null($autoAddToCart)) { + $sql .= ' AND od.`product_auto_add` = '. (int)$autoAddToCart; + if ($autoAddToCart == 1 && !is_null($priceAdditionType)) { + $sql .= ' AND od.`product_price_addition_type` = '.$priceAdditionType; + } + } + if ($getTotalPrice) { $totalPrice = 0; }