@@ -2189,6 +2189,19 @@
{else}
{assign var=is_full_payment value=true}
{/if}
+
diff --git a/admin/themes/default/template/controllers/products/serviceproduct.tpl b/admin/themes/default/template/controllers/products/serviceproduct.tpl
index ac93c1ed9..15b7d51d0 100644
--- a/admin/themes/default/template/controllers/products/serviceproduct.tpl
+++ b/admin/themes/default/template/controllers/products/serviceproduct.tpl
@@ -124,17 +124,21 @@
-
-
-
- {l s='Default tax rule: %s' sprintf=$service_product.tax_rules_group_name}
+ {if $service_product.auto_add_to_cart&& $service_product.price_addition_type == Product::PRICE_ADDITION_TYPE_WITH_ROOM}
+ {l s='-'}
+ {else}
+
+
+
+ {l s='Default tax rule: %s' sprintf=$service_product.tax_rules_group_name}
+ {/if}
|
{/foreach}
diff --git a/classes/Mail.php b/classes/Mail.php
index 2e321aa6a..6483afabd 100644
--- a/classes/Mail.php
+++ b/classes/Mail.php
@@ -296,7 +296,10 @@ class MailCore extends ObjectModel
}
/* Create mail and attach differents parts */
- $subject = '['.Configuration::get('PS_SHOP_NAME', null, null, $id_shop).'] '.$subject;
+ if (Configuration::get('PS_MAIL_SUBJECT_PREFIX')) {
+ $subject = '[' . strip_tags($configuration['PS_SHOP_NAME']) . '] ' . $subject;
+ }
+
$message->setSubject($subject);
$message->setCharset('utf-8');
diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php
index f25115eb2..80e71feba 100644
--- a/classes/controller/AdminController.php
+++ b/classes/controller/AdminController.php
@@ -1155,6 +1155,7 @@ class AdminControllerCore extends Controller
header('Cache-Control: no-store, no-cache');
header('Content-disposition: attachment; filename="'.$this->table.'_'.date('Y-m-d_His').'.csv"');
+ $fd = fopen('php://output', 'wb');
$headers = array();
foreach ($this->fields_list as $key => $datas) {
if ('PDF' === $datas['title']) {
@@ -1167,9 +1168,10 @@ class AdminControllerCore extends Controller
}
}
}
- $content = array();
+
+ fputcsv($fd, $headers, ';', $text_delimiter);
foreach ($this->_list as $i => $row) {
- $content[$i] = array();
+ $content = array();
$path_to_image = false;
foreach ($this->fields_list as $key => $params) {
$field_value = isset($row[$key]) ? Tools::htmlentitiesDecodeUTF8(Tools::nl2br($row[$key])) : '';
@@ -1189,21 +1191,16 @@ class AdminControllerCore extends Controller
$field_value = call_user_func_array(array($callback_obj, $params['callback']), array($field_value, $row));
}
}
- $content[$i][] = $field_value;
+ $content[] = $field_value;
}
+ fputcsv($fd, $content, ';', $text_delimiter);
}
- $this->context->smarty->assign(array(
- 'export_precontent' => "",
- 'export_headers' => $headers,
- 'export_content' => $content,
- 'text_delimiter' => $text_delimiter
- )
- );
-
- $this->layout = 'layout-export.tpl';
+ @fclose($fd);
+ die;
}
+
/**
* Object Delete
*
diff --git a/classes/webservice/WebserviceSpecificManagementBookings.php b/classes/webservice/WebserviceSpecificManagementBookings.php
index e1c58944e..8d3580781 100644
--- a/classes/webservice/WebserviceSpecificManagementBookings.php
+++ b/classes/webservice/WebserviceSpecificManagementBookings.php
@@ -3146,14 +3146,14 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We
$totalPriceTaxExcl = $unitPriceTaxExcl * $quantity;
$totalPriceTaxIncl = $unitPriceTaxIncl * $quantity;
- if (isset($service['unit_price_without_tax'])) {
- $unitPriceTaxExcl = $service['unit_price_without_tax'];
+ if (isset($services[$product['id_product']]['unit_price_without_tax'])) {
+ $unitPriceTaxExcl = $services[$product['id_product']]['unit_price_without_tax'];
$unitPriceTaxIncl = $unitPriceTaxExcl * $oldTaxMultiplier;
$totalPriceTaxExcl = $unitPriceTaxExcl * $quantity;
$totalPriceTaxIncl = $unitPriceTaxIncl * $quantity;
- } else if (isset($service['total_price_without_tax'])) {
- $totalPriceTaxExcl = $service['total_price_without_tax'];
+ } else if (isset($services[$product['id_product']]['total_price_without_tax'])) {
+ $totalPriceTaxExcl = $services[$product['id_product']]['total_price_without_tax'];
$totalPriceTaxIncl = $totalPriceTaxExcl * $oldTaxMultiplier;
$unitPriceTaxExcl = $totalPriceTaxExcl / $quantity;
diff --git a/controllers/admin/AdminEmailsController.php b/controllers/admin/AdminEmailsController.php
index 3b5d80ce3..5d39ddd50 100644
--- a/controllers/admin/AdminEmailsController.php
+++ b/controllers/admin/AdminEmailsController.php
@@ -109,6 +109,12 @@ class AdminEmailsControllerCore extends AdminController
2 => $this->l('Set my own SMTP parameters (for advanced users ONLY)')
)
),
+ 'PS_MAIL_SUBJECT_PREFIX' => array(
+ 'title' => $this->l('Enable the website name as a prefix in the email\'s subject'),
+ 'validation' => 'isBool',
+ 'cast' => 'intval',
+ 'type' => 'bool',
+ ),
'PS_MAIL_TYPE' => array(
'title' => '',
'validation' => 'isGenericName',
@@ -125,7 +131,7 @@ class AdminEmailsControllerCore extends AdminController
'validation' => 'isBool',
'cast' => 'intval',
'type' => 'bool'
- ),
+ )
),
'submit' => array('title' => $this->l('Save'))
),
diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php
index 90593bfbc..87b45d116 100644
--- a/controllers/admin/AdminOrdersController.php
+++ b/controllers/admin/AdminOrdersController.php
@@ -1776,6 +1776,7 @@ class AdminOrdersControllerCore extends AdminController
$amountPaid = Tools::ps_round($amountPaid, 6);
$objEmployee = new Employee($this->context->cookie->id_employee);
+ $sendMails = Tools::getValue('send_mails', true);
$objPaymentModule->validateOrder(
$objCart->id,
@@ -1786,7 +1787,9 @@ class AdminOrdersControllerCore extends AdminController
$extraVars,
null,
false,
- $objCart->secure_key
+ $objCart->secure_key,
+ null,
+ $sendMails
);
if (isset($this->context->cookie->id_cart)) {
diff --git a/install/data/xml/configuration.xml b/install/data/xml/configuration.xml
index 490e2b691..9376c3c5c 100644
--- a/install/data/xml/configuration.xml
+++ b/install/data/xml/configuration.xml
@@ -785,6 +785,9 @@
1
+
+ 1
+
Animaux
diff --git a/js/daterangepicker/qlodaterangepicker.js b/js/daterangepicker/qlodaterangepicker.js
index 83381ec19..323885a7b 100644
--- a/js/daterangepicker/qlodaterangepicker.js
+++ b/js/daterangepicker/qlodaterangepicker.js
@@ -20,6 +20,10 @@
(function($) {
var dateRangePickerOrg = $.fn.dateRangePicker;
+ Object.assign($.dateRangePickerLanguages, {
+ zh: $.dateRangePickerLanguages.cn,
+ tw: $.dateRangePickerLanguages.tc
+ });
$.fn.dateRangePicker = function(opt) {
if(typeof opt === "object") {
let container = $(this).parent();
diff --git a/modules/hotelreservationsystem/views/js/admin/hotel_rooms_booking.js b/modules/hotelreservationsystem/views/js/admin/hotel_rooms_booking.js
index 86850226e..81587d0b8 100644
--- a/modules/hotelreservationsystem/views/js/admin/hotel_rooms_booking.js
+++ b/modules/hotelreservationsystem/views/js/admin/hotel_rooms_booking.js
@@ -506,16 +506,14 @@ $(document).ready(function() {
opt: 0,
},
success: function(result) {
- if (result) {
- if (!(result.success)) {
- $(".cart_booking_btn").attr('disabled', 'true');
- }
+ if (!result.success) {
+ $(".cart_booking_btn").attr('disabled', 'true');
+ } else {
$("#htl_rooms_list").empty().append(result.data.room_tpl);
refreshCartData();
refreshStatsData();
calendar.refetchEvents();
initBookingList();
-
var panel_btn = $(".tab-pane tr td button[data-id-cart-book-data='" + id_cart_book_data + "']");
panel_btn.attr('data-id-cart', '');
@@ -527,7 +525,6 @@ $(document).ready(function() {
panel_btn.removeClass('part_delete_cart_data').addClass('par_add_cart');
panel_btn.removeClass('btn-danger').addClass('btn-primary').html(add_to_cart);
-
}
}
});
diff --git a/modules/wkroomsearchblock/views/templates/hook/searchForm.tpl b/modules/wkroomsearchblock/views/templates/hook/searchForm.tpl
index 087033914..0b560896f 100644
--- a/modules/wkroomsearchblock/views/templates/hook/searchForm.tpl
+++ b/modules/wkroomsearchblock/views/templates/hook/searchForm.tpl
@@ -85,7 +85,7 @@