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