From a614aee387b739870df6449edfad928a4733e9a4 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Tue, 16 Jan 2024 15:38:29 +0530 Subject: [PATCH 001/169] Updated the adminimportcontroller to allow the admin to import rooms, room types, hotels, orders, etc. using the csv files. --- .../controllers/import/helpers/form/form.tpl | 135 +- controllers/admin/AdminImportController.php | 2703 +++++++++++------ docs/csv_import/alias_import.csv | 8 +- docs/csv_import/bookings_import.csv | 4 + docs/csv_import/categories_import.csv | 7 +- docs/csv_import/customers_import.csv | 20 +- docs/csv_import/hotels_import.csv | 3 + docs/csv_import/room_types_import.csv | 3 + docs/csv_import/rooms_import.csv | 3 + docs/csv_import/service_products_import.csv | 4 + 10 files changed, 1957 insertions(+), 933 deletions(-) create mode 100644 docs/csv_import/bookings_import.csv create mode 100644 docs/csv_import/hotels_import.csv create mode 100644 docs/csv_import/room_types_import.csv create mode 100644 docs/csv_import/rooms_import.csv create mode 100644 docs/csv_import/service_products_import.csv diff --git a/admin/themes/default/template/controllers/import/helpers/form/form.tpl b/admin/themes/default/template/controllers/import/helpers/form/form.tpl index 5bf19d342..f82dfa8cf 100644 --- a/admin/themes/default/template/controllers/import/helpers/form/form.tpl +++ b/admin/themes/default/template/controllers/import/helpers/form/form.tpl @@ -25,7 +25,7 @@
{block name="leadin"}{/block}
{if $module_confirmation}
- {l s='Your .CSV file has been successfully imported into your shop. Don\'t forget to re-build the products\' search index.'} + {l s='Your .CSV file has been successfully imported to your website.'}
{/if}
@@ -63,7 +63,12 @@
  • {l s='Note that the Category import does not support having two categories with the same name.'}
  • -
  • {l s='Note that you can have several products with the same reference.'}
  • +
+
+
+
    +
  • {l s='Note that the bookings import with active mail feature will make the import process very slow.'}
  • +
  • {l s='You can disable the mail feature from Advanced Parameters > E-mail'}
@@ -199,42 +204,40 @@
- +
-
{l s='e.g. '} 1; Blouse; 129.90; 5
+
{l s='e.g. '} 6; 1; The Sunshine Luxury
-
{l s='e.g. '} Blouse; red.jpg, blue.jpg, green.jpg; 129.90
+
{l s='e.g. '} The Sunshine Luxury; News Paper:2.jpg, Gym:7.jpg

- +
- +
- +
- + -->
- + - diff --git a/admin/themes/default/template/controllers/normal_products/helpers/tree/tree_header.tpl b/admin/themes/default/template/controllers/normal_products/helpers/tree/tree_headere.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/tree/tree_header.tpl rename to admin/themes/default/template/controllers/normal_products/helpers/tree/tree_headere.tpl diff --git a/admin/themes/default/template/controllers/normal_products/helpers/tree/tree_toolbar.tpl b/admin/themes/default/template/controllers/normal_products/helpers/tree/tree_toolbar.tpl deleted file mode 100644 index 0a817f113..000000000 --- a/admin/themes/default/template/controllers/normal_products/helpers/tree/tree_toolbar.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{* -* 2007-2017 PrestaShop -* -* NOTICE OF LICENSE -* -* This source file is subject to the Academic Free License (AFL 3.0) -* that is bundled with this package in the file LICENSE.txt. -* It is also available through the world-wide-web at this URL: -* http://opensource.org/licenses/afl-3.0.php -* If you did not receive a copy of the license and are unable to -* obtain it through the world-wide-web, please send an email -* to license@prestashop.com so we can send you a copy immediately. -* -* DISCLAIMER -* -* Do not edit or add to this file if you wish to upgrade PrestaShop to newer -* versions in the future. If you wish to customize PrestaShop for your -* needs please refer to http://www.prestashop.com for more information. -* -* @author PrestaShop SA -* @copyright 2007-2017 PrestaShop SA -* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*} -
- {if isset($actions)} - {foreach from=$actions item=action} - {$action->render()} - {/foreach} - {/if} -
\ No newline at end of file diff --git a/admin/themes/default/template/helpers/tree/tree.tpl b/admin/themes/default/template/helpers/tree/tree.tpl index 9f9e6839b..066863e89 100644 --- a/admin/themes/default/template/helpers/tree/tree.tpl +++ b/admin/themes/default/template/helpers/tree/tree.tpl @@ -29,4 +29,64 @@ {$nodes} {/if} - \ No newline at end of file + + \ No newline at end of file diff --git a/admin/themes/default/template/helpers/tree/tree_categories.tpl b/admin/themes/default/template/helpers/tree/tree_categories.tpl index 36b6f6602..e1291f627 100644 --- a/admin/themes/default/template/helpers/tree/tree_categories.tpl +++ b/admin/themes/default/template/helpers/tree/tree_categories.tpl @@ -69,7 +69,7 @@ $(this).parent().addClass("tree-selected"); $(this).parents('ul.tree').each(function(){ $(this).show(); - $(this).prev().find('.icon-folder-close').removeClass('icon-folder-close').addClass('icon-folder-open'); + $(this).prev().find('.icon-folder-close').removeClass('icon-folder-close').addClass('icon-folder-open'); }); } } @@ -92,7 +92,7 @@ $(this).parent().addClass("tree-selected"); $(this).parents('ul.tree').each(function(){ $(this).show(); - $(this).prev().find('.icon-folder-close').removeClass('icon-folder-close').addClass('icon-folder-open'); + $(this).prev().find('.icon-folder-close').removeClass('icon-folder-close').addClass('icon-folder-open'); }); } } diff --git a/admin/themes/default/template/helpers/tree/tree_hotels.tpl b/admin/themes/default/template/helpers/tree/tree_hotels.tpl deleted file mode 100644 index 36b6f6602..000000000 --- a/admin/themes/default/template/helpers/tree/tree_hotels.tpl +++ /dev/null @@ -1,102 +0,0 @@ -{* -* 2007-2017 PrestaShop -* -* NOTICE OF LICENSE -* -* This source file is subject to the Academic Free License (AFL 3.0) -* that is bundled with this package in the file LICENSE.txt. -* It is also available through the world-wide-web at this URL: -* http://opensource.org/licenses/afl-3.0.php -* If you did not receive a copy of the license and are unable to -* obtain it through the world-wide-web, please send an email -* to license@prestashop.com so we can send you a copy immediately. -* -* DISCLAIMER -* -* Do not edit or add to this file if you wish to upgrade PrestaShop to newer -* versions in the future. If you wish to customize PrestaShop for your -* needs please refer to http://www.prestashop.com for more information. -* -* @author PrestaShop SA -* @copyright 2007-2017 PrestaShop SA -* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*} -
- {if isset($header)}{$header}{/if} - {if isset($nodes)} -
    - {$nodes} -
- {/if} -
- diff --git a/admin/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl b/admin/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl index 47c7c0ac6..a4452eb38 100644 --- a/admin/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl +++ b/admin/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl @@ -24,9 +24,10 @@ *}
  • - {if isset($node['id_category']) && $node['id_category'] != $root_category} - - {/if} + {* {if isset($node['value']) && $node['value'] != $root_category} *} + {if !isset($node['input_name'])}test{/if} + + {* {/if} *} diff --git a/admin/themes/default/template/helpers/tree/tree_node_folder_radio.tpl b/admin/themes/default/template/helpers/tree/tree_node_folder_radio.tpl index be55f981c..511d52458 100644 --- a/admin/themes/default/template/helpers/tree/tree_node_folder_radio.tpl +++ b/admin/themes/default/template/helpers/tree/tree_node_folder_radio.tpl @@ -24,9 +24,9 @@ *}
  • - {if $node['id_category'] != $root_category} - - {/if} + {* {if $node[$input_id] != $root_category} *} + + {* {/if} *} diff --git a/admin/themes/default/template/helpers/tree/tree_node_hotel_folder_checkbox.tpl b/admin/themes/default/template/helpers/tree/tree_node_hotel_folder_checkbox.tpl deleted file mode 100644 index 3e826b714..000000000 --- a/admin/themes/default/template/helpers/tree/tree_node_hotel_folder_checkbox.tpl +++ /dev/null @@ -1,37 +0,0 @@ -{* -* 2007-2017 PrestaShop -* -* NOTICE OF LICENSE -* -* This source file is subject to the Academic Free License (AFL 3.0) -* that is bundled with this package in the file LICENSE.txt. -* It is also available through the world-wide-web at this URL: -* http://opensource.org/licenses/afl-3.0.php -* If you did not receive a copy of the license and are unable to -* obtain it through the world-wide-web, please send an email -* to license@prestashop.com so we can send you a copy immediately. -* -* DISCLAIMER -* -* Do not edit or add to this file if you wish to upgrade PrestaShop to newer -* versions in the future. If you wish to customize PrestaShop for your -* needs please refer to http://www.prestashop.com for more information. -* -* @author PrestaShop SA -* @copyright 2007-2017 PrestaShop SA -* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*} -
  • - - {if isset($node['id_hotel'])} - - {* {if isset($node['id_category']) && $node['id_category'] != $root_category} *} - {/if} - - - -
      - {$children|escape:'UTF-8'} -
    -
  • diff --git a/admin/themes/default/template/helpers/tree/tree_node_hotel_item_checkbox.tpl b/admin/themes/default/template/helpers/tree/tree_node_hotel_item_checkbox.tpl deleted file mode 100644 index 4353d6e88..000000000 --- a/admin/themes/default/template/helpers/tree/tree_node_hotel_item_checkbox.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{* -* 2007-2017 PrestaShop -* -* NOTICE OF LICENSE -* -* This source file is subject to the Academic Free License (AFL 3.0) -* that is bundled with this package in the file LICENSE.txt. -* It is also available through the world-wide-web at this URL: -* http://opensource.org/licenses/afl-3.0.php -* If you did not receive a copy of the license and are unable to -* obtain it through the world-wide-web, please send an email -* to license@prestashop.com so we can send you a copy immediately. -* -* DISCLAIMER -* -* Do not edit or add to this file if you wish to upgrade PrestaShop to newer -* versions in the future. If you wish to customize PrestaShop for your -* needs please refer to http://www.prestashop.com for more information. -* -* @author PrestaShop SA -* @copyright 2007-2017 PrestaShop SA -* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*} -
  • - - - - - -
  • \ No newline at end of file diff --git a/admin/themes/default/template/helpers/tree/tree_node_item_checkbox.tpl b/admin/themes/default/template/helpers/tree/tree_node_item_checkbox.tpl index ba4b7201c..e4db8e373 100644 --- a/admin/themes/default/template/helpers/tree/tree_node_item_checkbox.tpl +++ b/admin/themes/default/template/helpers/tree/tree_node_item_checkbox.tpl @@ -24,8 +24,8 @@ *}
  • - + -
  • \ No newline at end of file + diff --git a/admin/themes/default/template/helpers/tree/tree_node_item_radio.tpl b/admin/themes/default/template/helpers/tree/tree_node_item_radio.tpl index 68fdb1b3c..fd03456fa 100644 --- a/admin/themes/default/template/helpers/tree/tree_node_item_radio.tpl +++ b/admin/themes/default/template/helpers/tree/tree_node_item_radio.tpl @@ -24,7 +24,7 @@ *}
  • - + diff --git a/classes/helper/HelperTree.php b/classes/helper/HelperTree.php new file mode 100644 index 000000000..f3545e058 --- /dev/null +++ b/classes/helper/HelperTree.php @@ -0,0 +1,135 @@ + +* @copyright Since 2010 Webkul IN +* @license https://store.webkul.com/license.html +*/ + +class HelperTreeCore extends TreeCore +{ + + const DEFAULT_NODE_FOLDER_TEMPLATE = 'tree_node_folder_radio.tpl'; + const DEFAULT_NODE_ITEM_TEMPLATE = 'tree_node_item_radio.tpl'; + + + private $_use_search; + private $_use_bulk_actions; + private $_use_checkbox; + private $_show_collapse_expand_button = true; + + + public function setUseSearch($value) + { + $this->_use_search = (bool)$value; + return $this; + } + + public function useSearch() + { + return (isset($this->_use_search) && $this->_use_search); + } + + public function setUseBulkActions($value) + { + $this->_use_bulk_actions = (bool)$value; + return $this; + } + + public function useBulkActions() + { + return (isset($this->_use_bulk_actions) && $this->_use_bulk_actions); + } + + public function setUseCheckBox($value) + { + $this->_use_checkbox = (bool)$value; + return $this; + } + + public function useCheckBox() + { + return (isset($this->_use_checkbox) && $this->_use_checkbox); + } + + public function setShowCollapseExpandButton($value) + { + $this->_show_collapse_expand_button = (bool)$value; + return $this; + } + + public function showCollapseExpandButton() + { + return (isset($this->_show_collapse_expand_button) && $this->_show_collapse_expand_button); + } + + public function render($data = null) + { + + if ($this->useCheckBox()) { + if($this->useBulkActions()) { + $check_all = new TreeToolbarLink( + 'Check All', + '#', + 'checkAll($(\'#'.$this->getId().'\')); return false;', + 'icon-check-sign'); + $check_all->setAttribute('id', 'check-all-'.$this->getId()); + $uncheck_all = new TreeToolbarLink( + 'Uncheck All', + '#', + 'uncheckAll($(\'#'.$this->getId().'\')); return false;', + 'icon-check-empty'); + $uncheck_all->setAttribute('id', 'uncheck-all-'.$this->getId()); + $this->addAction($check_all); + $this->addAction($uncheck_all); + } + $this->setNodeFolderTemplate('tree_node_folder_checkbox.tpl'); + $this->setNodeItemTemplate('tree_node_item_checkbox.tpl'); + $this->setAttribute('use_checkbox', $this->useCheckBox()); + } + + if ($this->useSearch()) { + $this->addAction(new TreeToolbarSearch( + 'dasdasd', + $this->getId().'-search') + ); + $this->setAttribute('use_search', $this->useSearch()); + } + + if ($this->showCollapseExpandButton()) { + $collapse_all = new TreeToolbarLink( + 'Collapse All', + '#', + '$(\'#'.$this->getId().'\').tree(\'collapseAll\');$(\'#collapse-all-'.$this->getId().'\').hide();$(\'#expand-all-'.$this->getId().'\').show(); return false;', + 'icon-collapse-alt'); + $collapse_all->setAttribute('id', 'collapse-all-'.$this->getId()); + $expand_all = new TreeToolbarLink( + 'Expand All', + '#', + '$(\'#'.$this->getId().'\').tree(\'expandAll\');$(\'#collapse-all-'.$this->getId().'\').show();$(\'#expand-all-'.$this->getId().'\').hide(); return false;', + 'icon-expand-alt'); + $expand_all->setAttribute('id', 'expand-all-'.$this->getId()); + $this->addAction($collapse_all); + $this->addAction($expand_all); + } + + + return parent::render($data); + } + + + + +} \ No newline at end of file diff --git a/classes/helper/HelperTreeCategories.php b/classes/helper/HelperTreeCategories.php index 7b9e04b0a..4c328122c 100644 --- a/classes/helper/HelperTreeCategories.php +++ b/classes/helper/HelperTreeCategories.php @@ -32,6 +32,7 @@ class HelperTreeCategoriesCore extends TreeCore private $_disabled_categories; private $_input_name; + private $_input_id; private $_lang; private $_root_category; private $_selected_categories; @@ -69,6 +70,8 @@ class HelperTreeCategoriesCore extends TreeCore foreach ($categories[$rootCategoryId] as $category) { $categoryId = (int)$category['id_category']; $tree[$categoryId] = $category; + $tree[$categoryId]['value'] = $category['id_category']; + $tree[$categoryId]['input_name'] = 'categoryBox'; if (Category::hasChildren($categoryId, $this->getLang(), false, $this->getShop()->id)) { $categoryChildren = Category::getChildren( @@ -144,7 +147,8 @@ class HelperTreeCategoriesCore extends TreeCore } $tree = Category::getCategoryInformations(array($root_category), $lang); - + $tree[$root_category]['value'] = $tree[$root_category]['id_category']; + $tree[$root_category]['input_name'] = 'categoryBox'; $children = $this->fillTree($categories, $root_category); if (!empty($children)) { @@ -214,6 +218,21 @@ class HelperTreeCategoriesCore extends TreeCore return $this->_input_name; } + public function setInputId($value) + { + $this->_input_id = $value; + return $this; + } + + public function getInputId() + { + if (!isset($this->_input_id)) { + $this->setInputId('id_category'); + } + + return $this->_input_id; + } + public function setLang($value) { $this->_lang = $value; @@ -229,24 +248,6 @@ class HelperTreeCategoriesCore extends TreeCore return $this->_lang; } - public function getNodeFolderTemplate() - { - if (!isset($this->_node_folder_template)) { - $this->setNodeFolderTemplate(self::DEFAULT_NODE_FOLDER_TEMPLATE); - } - - return $this->_node_folder_template; - } - - public function getNodeItemTemplate() - { - if (!isset($this->_node_item_template)) { - $this->setNodeItemTemplate(self::DEFAULT_NODE_ITEM_TEMPLATE); - } - - return $this->_node_item_template; - } - public function setRootCategory($value) { if (!Validate::isInt($value)) { @@ -304,15 +305,6 @@ class HelperTreeCategoriesCore extends TreeCore return $this->_shop; } - public function getTemplate() - { - if (!isset($this->_template)) { - $this->setTemplate(self::DEFAULT_TEMPLATE); - } - - return $this->_template; - } - public function setUseCheckBox($value) { $this->_use_checkbox = (bool)$value; @@ -449,6 +441,7 @@ class HelperTreeCategoriesCore extends TreeCore $this->getContext()->smarty )->assign(array( 'input_name' => $this->getInputName(), + 'input_id' => $this->getInputId(), 'children' => $this->renderNodes($item['children']), 'node' => $item ))->fetch(); @@ -458,6 +451,7 @@ class HelperTreeCategoriesCore extends TreeCore $this->getContext()->smarty )->assign(array( 'input_name' => $this->getInputName(), + 'input_id' => $this->getInputId(), 'node' => $item ))->fetch(); } diff --git a/classes/helper/HelperTreeHotels.php b/classes/helper/HelperTreeHotels.php deleted file mode 100644 index dd142943a..000000000 --- a/classes/helper/HelperTreeHotels.php +++ /dev/null @@ -1,485 +0,0 @@ - -* @copyright 2007-2017 PrestaShop SA -* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*/ - -class HelperTreeHotelsCore extends TreeCore -{ - const DEFAULT_TEMPLATE = 'tree_categories.tpl'; - const DEFAULT_NODE_FOLDER_TEMPLATE = 'tree_node_folder_radio.tpl'; - const DEFAULT_NODE_ITEM_TEMPLATE = 'tree_node_item_radio.tpl'; - - private $_disabled_categories; - private $_input_name; - private $_lang; - private $_root_category; - private $_selected_hotels; - private $_selected_room_types; - private $_full_tree = false; - private $_shop; - private $_use_checkbox; - private $_use_bulk_actions = true; - private $_use_search; - private $_use_shop_restriction; - private $_rooms_only = false; - private $_disable_all_categories = false; - private $_accessed_hotels = false; - - public function __construct($id, $title = null, $root_category = null, - $lang = null, $use_shop_restriction = true) - { - parent::__construct($id); - - if (isset($title)) { - $this->setTitle($title); - } - - if (isset($root_category)) { - $this->setRootCategory($root_category); - } - - $this->setLang($lang); - $this->setUseShopRestriction($use_shop_restriction); - } - - private function fillTree($hotels, $onlyRoomType = false) - { - $tree = array(); - $idLang = Context::getContext()->language->id; - $objRoomType = new HotelRoomType(); - foreach($hotels as $hotel) { - - if (!$onlyRoomType) { - $tree[$hotel['id_hotel']] = array( - 'id_hotel' => $hotel['id_hotel'], - 'id_category' => $hotel['id_category'], - 'name' => $hotel['hotel_name'], - 'children' => array() - ); - } - - if (!empty($roomTypes = $objRoomType->getRoomTypeByHotelId($hotel['id_hotel'], $idLang))) { - if ($onlyRoomType) { - $tree = array_merge($tree, $roomTypes); - } else { - $tree[$hotel['id_hotel']]['children'] = array_merge($tree[$hotel['id_hotel']]['children'], $roomTypes); - } - } - } - - return $tree; - } - - public function getData() - { - if (!isset($this->_data)) { - $shop = $this->getShop(); - $lang = $this->getLang(); - $root_category = (int)$this->getRootCategory(); - if (($hotels = $this->getAccessedHotels()) === false) { - $objHotelBanch = new HotelBranchInformation(); - $hotels = $objHotelBanch->hotelBranchesInfo(); - } - $tree = $this->fillTree($hotels, $this->_rooms_only); - if (!empty($children)) { - $tree[$root_category]['children'] = $children; - } - - $this->setData($tree); - $this->setDataSearch(Category::getAllCategoriesName($root_category, $lang, false, null, $this->useShopRestriction())); - } - - return $this->_data; - } - - public function setRoomsOnly($value) - { - $this->_rooms_only = $value; - return $this; - } - - public function setFullTree($value) - { - $this->_full_tree = $value; - return $this; - } - - public function getFullTree() - { - return $this->_full_tree; - } - - - public function setDisabledCategories($value) - { - $this->_disabled_categories = $value; - return $this; - } - - public function setAccessedHotels($values) - { - $this->_accessed_hotels = $values; - return $this; - } - - public function getAccessedHotels() - { - return $this->_accessed_hotels; - } - - public function setDisablAllCategories($value) - { - $this->_disable_all_categories = $value; - return $this; - } - - public function getDisabledCategories() - { - return $this->_disabled_categories; - } - - public function getDisablAllCategories() - { - return $this->_disable_all_categories; - } - - public function setInputName($value) - { - $this->_input_name = $value; - return $this; - } - - public function getInputName() - { - if (!isset($this->_input_name)) { - $this->setInputName('categoryBox'); - } - - return $this->_input_name; - } - - public function setLang($value) - { - $this->_lang = $value; - return $this; - } - - public function getLang() - { - if (!isset($this->_lang)) { - $this->setLang($this->getContext()->employee->id_lang); - } - - return $this->_lang; - } - - public function getNodeFolderTemplate() - { - if (!isset($this->_node_folder_template)) { - $this->setNodeFolderTemplate(self::DEFAULT_NODE_FOLDER_TEMPLATE); - } - - return $this->_node_folder_template; - } - - public function getNodeItemTemplate() - { - if (!isset($this->_node_item_template)) { - $this->setNodeItemTemplate(self::DEFAULT_NODE_ITEM_TEMPLATE); - } - - return $this->_node_item_template; - } - - public function setRootCategory($value) - { - if (!Validate::isInt($value)) { - throw new PrestaShopException('Root category must be an integer value'); - } - - $this->_root_category = $value; - return $this; - } - - public function getRootCategory() - { - return $this->_root_category; - } - - public function setSelectedHotels($value) - { - if (!is_array($value)) { - throw new PrestaShopException('Selected categories value must be an array'); - } - - $this->_selected_hotels = $value; - return $this; - } - - public function getSelectedHotels() - { - if (!isset($this->_selected_hotels)) { - $this->_selected_hotels = array(); - } - - return $this->_selected_hotels; - } - - public function setSelectedRoomTypes($value) - { - if (!is_array($value)) { - throw new PrestaShopException('Selected categories value must be an array'); - } - - $this->_selected_room_types = $value; - return $this; - } - - public function getSelectedRoomTypes() - { - if (!isset($this->_selected_room_types)) { - $this->_selected_room_types = array(); - } - - return $this->_selected_room_types; - } - - public function setShop($value) - { - $this->_shop = $value; - return $this; - } - - public function getShop() - { - if (!isset($this->_shop)) { - if (Tools::isSubmit('id_shop')) { - $this->setShop(new Shop(Tools::getValue('id_shop'))); - } elseif ($this->getContext()->shop->id) { - $this->setShop(new Shop($this->getContext()->shop->id)); - } elseif (!Shop::isFeatureActive()) { - $this->setShop(new Shop(Configuration::get('PS_SHOP_DEFAULT'))); - } else { - $this->setShop(new Shop(0)); - } - } - - return $this->_shop; - } - - public function getTemplate() - { - if (!isset($this->_template)) { - $this->setTemplate(self::DEFAULT_TEMPLATE); - } - - return $this->_template; - } - - public function setUseCheckBox($value) - { - $this->_use_checkbox = (bool)$value; - return $this; - } - - public function setUseBulkActions($value) - { - $this->_use_bulk_actions = (bool)$value; - return $this; - } - - public function setUseSearch($value) - { - $this->_use_search = (bool)$value; - return $this; - } - - public function setUseShopRestriction($value) - { - $this->_use_shop_restriction = (bool)$value; - return $this; - } - - public function useCheckBox() - { - return (isset($this->_use_checkbox) && $this->_use_checkbox); - } - - public function useBulkActions() - { - return (isset($this->_use_bulk_actions) && $this->_use_bulk_actions); - } - - public function useSearch() - { - return (isset($this->_use_search) && $this->_use_search); - } - - public function useShopRestriction() - { - return (isset($this->_use_shop_restriction) && $this->_use_shop_restriction); - } - - public function render($data = null) - { - if (!isset($data)) { - $data = $this->getData(); - } - - if (isset($this->_disabled_categories) - && !empty($this->_disabled_categories)) { - $this->_disableCategories($data, $this->getDisabledCategories()); - } - - if($this->getDisablAllCategories()) { - $this->_disableCategories($data); - } - - //Default bootstrap style of search is push-right, so we add this button first - if ($this->useSearch()) { - $this->addAction(new TreeToolbarSearchCategories( - 'Find a category:', - $this->getId().'-categories-search') - ); - $this->setAttribute('use_search', $this->useSearch()); - } - - $collapse_all = new TreeToolbarLink( - 'Collapse All', - '#', - '$(\'#'.$this->getId().'\').tree(\'collapseAll\');$(\'#collapse-all-'.$this->getId().'\').hide();$(\'#expand-all-'.$this->getId().'\').show(); return false;', - 'icon-collapse-alt'); - $collapse_all->setAttribute('id', 'collapse-all-'.$this->getId()); - - $expand_all = new TreeToolbarLink( - 'Expand All', - '#', - '$(\'#'.$this->getId().'\').tree(\'expandAll\');$(\'#collapse-all-'.$this->getId().'\').show();$(\'#expand-all-'.$this->getId().'\').hide(); return false;', - 'icon-expand-alt'); - $expand_all->setAttribute('id', 'expand-all-'.$this->getId()); - $this->addAction($collapse_all); - $this->addAction($expand_all); - - if ($this->useCheckBox()) { - if ($this->useBulkActions()) { - $check_all = new TreeToolbarLink( - 'Check All', - '#', - 'checkAllAssociatedHotels($(\'#'.$this->getId().'\'));return false;', - 'icon-check-sign'); - $check_all->setAttribute('id', 'check-all-'.$this->getId()); - $uncheck_all = new TreeToolbarLink( - 'Uncheck All', - '#', - 'uncheckAllAssociatedHotels($(\'#'.$this->getId().'\'));return false;', - 'icon-check-empty'); - $uncheck_all->setAttribute('id', 'uncheck-all-'.$this->getId()); - $this->addAction($check_all); - $this->addAction($uncheck_all); - } - - $this->setNodeFolderTemplate('tree_node_hotel_folder_checkbox.tpl'); - $this->setNodeItemTemplate('tree_node_hotel_item_checkbox.tpl'); - $this->setAttribute('use_checkbox', $this->useCheckBox()); - } - - $this->setAttribute('selected_hotels', $this->getSelectedHotels()); - $this->setAttribute('selected_roomtypes', $this->getSelectedRoomTypes()); - $this->getContext()->smarty->assign('root_category', Configuration::get('PS_ROOT_CATEGORY')); - $this->getContext()->smarty->assign('token', Tools::getAdminTokenLite('AdminProducts')); - return parent::render($data); - } - - /* Override */ - public function renderNodes($data = null) - { - if (!isset($data)) { - $data = $this->getData(); - } - - if (!is_array($data) && !$data instanceof Traversable) { - throw new PrestaShopException('Data value must be an traversable array'); - } - - $html = ''; - foreach ($data as $item) { - if (array_key_exists('children', $item)) { - $html .= $this->getContext()->smarty->createTemplate( - $this->getTemplateFile($this->getNodeFolderTemplate()), - $this->getContext()->smarty - )->assign(array( - 'input_name' => 'hotelBox', - 'children' => $this->renderNodes($item['children']), - 'node' => $item - ))->fetch(); - } else { - $html .= $this->getContext()->smarty->createTemplate( - $this->getTemplateFile($this->getNodeItemTemplate()), - $this->getContext()->smarty - )->assign(array( - 'input_name' => 'roomTypeBox', - 'node' => $item - ))->fetch(); - } - } - - return $html; - } - - private function _disableCategories(&$categories, $disabled_categories = null) - { - foreach ($categories as &$category) { - if (!isset($disabled_categories) || in_array($category['id_category'], $disabled_categories)) { - $category['disabled'] = true; - if (array_key_exists('children', $category) && is_array($category['children'])) { - self::_disableCategories($category['children']); - } - } elseif (array_key_exists('children', $category) && is_array($category['children'])) { - self::_disableCategories($category['children'], $disabled_categories); - } - } - } - - private function _getSelectedChildNumbers(&$categories, $selected, &$parent = null) - { - $selected_childs = 0; - - foreach ($categories as $key => &$category) { - if (isset($parent) && in_array($category['id_category'], $selected)) { - $selected_childs++; - } - - if (isset($category['children']) && !empty($category['children'])) { - $selected_childs += $this->_getSelectedChildNumbers($category['children'], $selected, $category); - } - } - - if (!isset($parent['selected_childs'])) { - $parent['selected_childs'] = 0; - } - - $parent['selected_childs'] = $selected_childs; - return $selected_childs; - } -} diff --git a/classes/helper/HelperTreeShops.php b/classes/helper/HelperTreeShops.php index dfda87060..1f66edab0 100644 --- a/classes/helper/HelperTreeShops.php +++ b/classes/helper/HelperTreeShops.php @@ -68,24 +68,6 @@ class HelperTreeShopsCore extends TreeCore return $this->_lang; } - public function getNodeFolderTemplate() - { - if (!isset($this->_node_folder_template)) { - $this->setNodeFolderTemplate(self::DEFAULT_NODE_FOLDER_TEMPLATE); - } - - return $this->_node_folder_template; - } - - public function getNodeItemTemplate() - { - if (!isset($this->_node_item_template)) { - $this->setNodeItemTemplate(self::DEFAULT_NODE_ITEM_TEMPLATE); - } - - return $this->_node_item_template; - } - public function setSelectedShops($value) { if (!is_array($value)) { @@ -105,15 +87,6 @@ class HelperTreeShopsCore extends TreeCore return $this->_selected_shops; } - public function getTemplate() - { - if (!isset($this->_template)) { - $this->setTemplate(self::DEFAULT_TEMPLATE); - } - - return $this->_template; - } - public function render($data = null, $use_default_actions = true, $use_selected_shop = true) { if (!isset($data)) { diff --git a/classes/tree/Tree.php b/classes/tree/Tree.php index db720f1de..fe5f7817f 100644 --- a/classes/tree/Tree.php +++ b/classes/tree/Tree.php @@ -191,7 +191,7 @@ class TreeCore public function getHeaderTemplate() { if (!isset($this->_headerTemplate)) { - $this->setHeaderTemplate(self::DEFAULT_HEADER_TEMPLATE); + $this->setHeaderTemplate(static::DEFAULT_HEADER_TEMPLATE); } return $this->_headerTemplate; @@ -217,7 +217,7 @@ class TreeCore public function getNodeFolderTemplate() { if (!isset($this->_node_folder_template)) { - $this->setNodeFolderTemplate(self::DEFAULT_NODE_FOLDER_TEMPLATE); + $this->setNodeFolderTemplate(static::DEFAULT_NODE_FOLDER_TEMPLATE); } return $this->_node_folder_template; @@ -232,7 +232,7 @@ class TreeCore public function getNodeItemTemplate() { if (!isset($this->_node_item_template)) { - $this->setNodeItemTemplate(self::DEFAULT_NODE_ITEM_TEMPLATE); + $this->setNodeItemTemplate(static::DEFAULT_NODE_ITEM_TEMPLATE); } return $this->_node_item_template; @@ -247,7 +247,7 @@ class TreeCore public function getTemplate() { if (!isset($this->_template)) { - $this->setTemplate(self::DEFAULT_TEMPLATE); + $this->setTemplate(static::DEFAULT_TEMPLATE); } return $this->_template; @@ -271,7 +271,7 @@ class TreeCore { if (!isset($this->_template_directory)) { $this->_template_directory = $this->_normalizeDirectory( - self::DEFAULT_TEMPLATE_DIRECTORY); + static::DEFAULT_TEMPLATE_DIRECTORY); } return $this->_template_directory; diff --git a/config/defines.inc.php b/config/defines.inc.php index 4a86b1930..3e319225f 100644 --- a/config/defines.inc.php +++ b/config/defines.inc.php @@ -26,7 +26,7 @@ /* Debug only */ if (!defined('_PS_MODE_DEV_')) { - define('_PS_MODE_DEV_', false); + define('_PS_MODE_DEV_', true); } /* Compatibility warning */ define('_PS_DISPLAY_COMPATIBILITY_WARNING_', false); diff --git a/controllers/admin/AdminNormalProductsController.php b/controllers/admin/AdminNormalProductsController.php index 29204f4e2..3d794c1a5 100644 --- a/controllers/admin/AdminNormalProductsController.php +++ b/controllers/admin/AdminNormalProductsController.php @@ -2875,7 +2875,7 @@ class AdminNormalProductsControllerCore extends AdminController { if (Validate::isLoadedObject($product)) { $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); - $associatedRoomTypes = $objRoomTypeServiceProduct->getAssociatedHotelsAndRoomType($product->id)['room_types']; + $associatedRoomTypes = $objRoomTypeServiceProduct->getAssociatedHotelsAndRoomType($product->id)['room_type']; if (Product::SERVICE_PRODUCT_WITH_ROOMTYPE == $product->service_product_type) { $selectedRoomTypes = Tools::getValue('roomTypeBox'); @@ -3499,18 +3499,16 @@ class AdminNormalProductsControllerCore extends AdminController $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); $selectedElements = $objRoomTypeServiceProduct->getAssociatedHotelsAndRoomType($product->id); - $tree = new HelperTreeHotels('associated-hotels-tree', 'Associated hotels'); - $tree->setTemplate('tree_associated_hotels.tpl') - ->setHeaderTemplate('tree_associated_header.tpl') - ->setRootCategory((int)Configuration::get('PS_LOCATIONS_CATEGORY')) - ->setUseCheckBox(true) - ->setFullTree(true) - ->setRoomsOnly(false) - ->setSelectedHotels($selectedElements['hotels']) - ->setSelectedRoomTypes($selectedElements['room_types']) - ->setUseBulkActions(true) - ->setAccessedHotels(HotelBranchInformation::getProfileAccessedHotels($this->context->employee->id_profile, 1, 0)); + $tree = new HelperTree('hotels-tree'); + $tree->setData(HotelHelper::generateTreeData([ + // 'rootNode' => HotelHelper::NODE_HOTEL, + // 'leafNode' => HotelHelper::NODE_ROOM_TYPE, + 'selectedElements' => $selectedElements + ])) + ->setUseCheckBox(true) + ->setUseBulkActions(true) + ->setUseSearch(true); $data->assign('hotel_tree', $tree->render()); // TinyMCE diff --git a/controllers/admin/AdminPatternsController.php b/controllers/admin/AdminPatternsController.php index 11456fcc1..d49df4cad 100644 --- a/controllers/admin/AdminPatternsController.php +++ b/controllers/admin/AdminPatternsController.php @@ -375,7 +375,7 @@ class AdminPatternsControllerCore extends AdminController 'root_category' => 1, 'id' => 'id_category', 'name' => 'name_category', - 'selected_categories' => array(3), + 'selected_categories' => array(3, 8), ) ), array( diff --git a/controllers/admin/AdminSearchController.php b/controllers/admin/AdminSearchController.php index 4d5cd5237..1b4812a05 100644 --- a/controllers/admin/AdminSearchController.php +++ b/controllers/admin/AdminSearchController.php @@ -246,7 +246,7 @@ class AdminSearchControllerCore extends AdminController } } else if ($associatedData = $objRoomTypeServiceProduct->getAssociatedHotelsAndRoomType($product['id_product'])) { $count = 0; - foreach ($associatedData['room_types'] as $id_room_type) { + foreach ($associatedData['room_type'] as $id_room_type) { $objRoomType = new HotelRoomType($id_room_type); if (in_array($objRoomType->id_hotel, $accessibleHotels)) { $count += 1; diff --git a/modules/hotelreservationsystem/classes/HotelHelper.php b/modules/hotelreservationsystem/classes/HotelHelper.php index 1b3057831..b6e6f1030 100644 --- a/modules/hotelreservationsystem/classes/HotelHelper.php +++ b/modules/hotelreservationsystem/classes/HotelHelper.php @@ -2521,4 +2521,182 @@ class HotelHelper return $isValid; } + + /** + * This function is a utility function for creating an associative array for generating tree + * provide tree structure in the following format + * country --> root + * state + * city + * hotel + * room_type + * room --> leaf + * + * You can edit the start and end point to generate tree for different levels + * @param $start + * @param $end + * @param $start_element_id int|array + * @param $selected_elements int|array + */ + + const NODE_COUNTRY = 1; + const NODE_STATE = 2; + const NODE_CITY = 3; + const NODE_HOTEL = 4; + const NODE_ROOM_TYPE = 5; + const NODE_ROOM = 6; + + public static function generateTreeData($params) + { + // $rootNode = 'country' + // $leafNode = 'room' + // $startElementId = false + // $selectedElements = array() + + + extract($params); + + if (!isset($rootNode)) { + $rootNode = self::NODE_COUNTRY; + } + if (!isset($leafNode)) { + $leafNode = self::NODE_ROOM; + } + if (!isset($leafNode)) { + $selectedElements = array(); + } + $rootNodeId = false; + $treeData = array(); + if ($rootNode <= self::NODE_COUNTRY && $leafNode >= self::NODE_COUNTRY) { + self::generateCountryTree($treeData, $rootNode, $rootNodeId, $selectedElements); + } + if ($rootNode <= self::NODE_STATE && $leafNode >= self::NODE_STATE) { + self::generateStateTree($treeData, $rootNode, $rootNodeId, $selectedElements); + + } + if ($rootNode <= self::NODE_CITY && $leafNode >= self::NODE_CITY) { + self::generateCityTree($treeData, $rootNode, $rootNodeId, $selectedElements); + + } + if ($rootNode <= self::NODE_HOTEL && $leafNode >= self::NODE_HOTEL) { + self::generateHotelTree($treeData, $rootNode, $rootNodeId, $selectedElements); + } + if ($rootNode <= self::NODE_ROOM_TYPE && $leafNode >= self::NODE_ROOM_TYPE) { + self::generateRoomTypeTree($treeData, $rootNode, $rootNodeId, $selectedElements); + + } + if ($rootNode <= self::NODE_ROOM && $leafNode >= self::NODE_ROOM) { + self::generateRoomTree($treeData, $rootNode, $rootNodeId, $selectedElements); + } + // $objHotelInfo = new HotelBranchInformation(); + // if ($hotels = $objHotelInfo->hotelBranchesInfo()) { + // foreach ($hotels as $hotel) { + // $objRoomType = new HotelRoomType(); + // if ($roomTypes = $objRoomType->getRoomTypeByHotelId($hotel['id'], Context::getContext()->language->id)) { + // foreach ($roomTypes as &$roomType) { + // $objHotelRoomInformation = new HotelRoomInformation(); + // if ($rooms = $objHotelRoomInformation->getHotelRoomInfoByProductId($roomType['id_product'])) { + // foreach ($rooms as &$room) { + // $room = array( + // 'name' => $room['room_num'], + // 'input_name' => 'room', + // 'value' => $room['id'] + // ); + + // if (isset($selectedElements['room']) && in_array($room['id'], $selectedElements['room'])) { + // $room['selected'] = true; + // } + // } + // } + // $roomType = array( + // 'name' => $roomType['room_type'], + // 'input_name' => 'roomTypeBox', + // 'value' => $roomType['id_product'], + // 'children' => $rooms + // ); + // if (isset($selectedElements['room_type']) && in_array($roomType['id_product'], $selectedElements['room_type'])) { + // $roomType['selected'] = true; + // } + // } + // } + + // $hotel = array( + // 'name' => $hotel['hotel_name'], + // 'input_name' => 'hotelBox', + // 'value' => $hotel['id'], + // 'children' => $roomTypes + // ); + // if (isset($selectedElements['hotel']) && in_array($hotel['id'], $selectedElements['hotel'])) { + // $hotel['selected'] = true; + // } + // $treeData[] = array( + // 'name' => $hotel['hotel_name'], + // 'input_name' => 'hotelBox', + // 'value' => $hotel['id'], + // 'children' => $roomTypes + // ); + // } + // } + ddd($treeData); + return $treeData; + } + + public static function generateHotelTree(&$treeData, $rootNode, $rootNodeId) + { + // $objHotelInfo = new HotelBranchInformation(); + // if ($hotels = $objHotelInfo->hotelBranchesInfo()) { + // } + + } + public static function generateRoomTypeTree(&$treeData, $rootNode, $rootNodeId) + { + + } + public static function generateRoomTree(&$treeData, $rootNode, $rootNodeId) + { + + } + + public static function generateCountryTree(&$treeData, $rootNode, $rootNodeId) + { + $locationCategory = new Category(Configuration::get('PS_LOCATIONS_CATEGORY')); + + if ($countries = Db::getInstance()->executeS( + 'SELECT cl.`id_category` as `value` , cl.`name` as `name` + FROM `'._DB_PREFIX_.'category_lang` AS cl + INNER JOIN `'._DB_PREFIX_.'category` AS c ON (cl.`id_category` = c.`id_category`) + WHERE c.`id_parent` = '.(int)Configuration::get('PS_LOCATIONS_CATEGORY').' and cl.`id_lang`='.(int)Context::getContext()->language->id.' + GROUP BY cl.`name`' + )) { + foreach ($countries as $country) { + $country['input_name'] = 'countryBox'; + if (isset($selectedElements['country']) && in_array($country['id'], $selectedElements['country'])) { + $country['selected'] = true; + } + $treeData[$country['value']] = $country; + } + } + } + public static function generateStateTree(&$treeData, $rootNode, $rootNodeId) + { + if ($states = Db::getInstance()->executeS( + 'SELECT cl.`id_category` as `value` , cl.`name` as `name` + FROM `'._DB_PREFIX_.'category_lang` AS cl + INNER JOIN `'._DB_PREFIX_.'category` AS c ON (cl.`id_category` = c.`id_category`) + WHERE c.`id_parent` = '.(int)Configuration::get('PS_LOCATIONS_CATEGORY').' and cl.`id_lang`='.(int)Context::getContext()->language->id.' + GROUP BY cl.`name`' + )) { + foreach ($states as $country) { + $country['input_name'] = 'countryBox'; + if (isset($selectedElements['country']) && in_array($country['id'], $selectedElements['country'])) { + $country['selected'] = true; + } + $treeData[$country['value']] = $country; + } + } + } + public static function generateCityTree(&$treeData, $rootNode, $rootNodeId) + { + + } } diff --git a/modules/hotelreservationsystem/classes/RoomTypeServiceProduct.php b/modules/hotelreservationsystem/classes/RoomTypeServiceProduct.php index 5acb6ef60..d2e2ff350 100644 --- a/modules/hotelreservationsystem/classes/RoomTypeServiceProduct.php +++ b/modules/hotelreservationsystem/classes/RoomTypeServiceProduct.php @@ -107,9 +107,9 @@ class RoomTypeServiceProduct extends ObjectModel ); if ($formated) { - $response = array('hotels' => array(), 'room_types' => array()); + $response = array('hotel' => array(), 'room_type' => array()); foreach($rows as $row) { - $key = $row['element_type'] == self::WK_ELEMENT_TYPE_HOTEL ? 'hotels' : 'room_types'; + $key = $row['element_type'] == self::WK_ELEMENT_TYPE_HOTEL ? 'hotel' : 'room_type'; $response[$key][] = $row['id_element']; } return $response; From 13cb862eabc987426eab0a9c0d7ffd5831d2d79e Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Sat, 3 Aug 2024 11:38:47 +0530 Subject: [PATCH 095/169] Updated the meta.xml for the index page meta descriptions and meta title, also updated some text related to prestashop to QloApps --- install/data/xml/configuration.xml | 2 +- install/dev/update_eu_taxrulegroups.php | 2 +- install/langs/bg/data/meta.xml | 4 ++-- install/langs/bn/data/meta.xml | 4 ++-- install/langs/br/data/meta.xml | 6 +++--- install/langs/cs/data/meta.xml | 4 ++-- install/langs/de/data/meta.xml | 6 +++--- install/langs/de/data/order_state.xml | 2 +- install/langs/en/data/meta.xml | 4 ++-- install/langs/es/data/meta.xml | 6 +++--- install/langs/es/mail_identifiers.txt | 2 +- install/langs/fa/data/meta.xml | 4 ++-- install/langs/fr/data/meta.xml | 4 ++-- install/langs/he/data/meta.xml | 4 ++-- install/langs/hr/data/meta.xml | 4 ++-- install/langs/hu/data/meta.xml | 4 ++-- install/langs/id/data/meta.xml | 6 +++--- install/langs/it/data/meta.xml | 6 +++--- install/langs/lt/data/meta.xml | 4 ++-- install/langs/mk/data/meta.xml | 4 ++-- install/langs/nl/data/meta.xml | 6 +++--- install/langs/no/data/meta.xml | 4 ++-- install/langs/pl/data/meta.xml | 6 +++--- install/langs/pt/data/meta.xml | 6 +++--- install/langs/qc/data/meta.xml | 4 ++-- install/langs/ro/data/meta.xml | 4 ++-- install/langs/ru/data/meta.xml | 6 +++--- install/langs/si/data/meta.xml | 4 ++-- install/langs/sr/data/meta.xml | 4 ++-- install/langs/sv/data/meta.xml | 4 ++-- install/langs/tw/data/meta.xml | 6 +++--- install/langs/vn/data/meta.xml | 4 ++-- install/langs/zh/data/meta.xml | 4 ++-- install/theme/rtl.css | 2 +- install/theme/view.css | 2 +- install/theme/views/header.phtml | 2 +- 36 files changed, 75 insertions(+), 75 deletions(-) diff --git a/install/data/xml/configuration.xml b/install/data/xml/configuration.xml index be03b27c3..ab955c1f2 100644 --- a/install/data/xml/configuration.xml +++ b/install/data/xml/configuration.xml @@ -777,7 +777,7 @@ localhost - PrestaShop + QloApps pub@qloapps.com diff --git a/install/dev/update_eu_taxrulegroups.php b/install/dev/update_eu_taxrulegroups.php index 1d3dfa53d..7f4410893 100644 --- a/install/dev/update_eu_taxrulegroups.php +++ b/install/dev/update_eu_taxrulegroups.php @@ -36,7 +36,7 @@ $localizationPacksRoot = realpath(dirname(__FILE__) . '/../../localization'); if (!$localizationPacksRoot) { - die("Could not find the folder containing the localization files (should be 'localization' at the root of the PrestaShop folder).\n"); + die("Could not find the folder containing the localization files (should be 'localization' at the root of the QloApps folder).\n"); } $euLocalizationFiles = array(); diff --git a/install/langs/bg/data/meta.xml b/install/langs/bg/data/meta.xml index 62896ab65..a0348d1be 100644 --- a/install/langs/bg/data/meta.xml +++ b/install/langs/bg/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul</description> + <title>Hotel Prime + A place where comfort and luxury are blended with nature! diff --git a/install/langs/bn/data/meta.xml b/install/langs/bn/data/meta.xml index 5a6ac00ea..5b2aae2fd 100644 --- a/install/langs/bn/data/meta.xml +++ b/install/langs/bn/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>PrestaShop দ্বারা চালিত</description> + <title>হোটেল প্রাইম + এটি এমন একটি স্থান যেখানে আরাম এবং বিলাসিতা প্রকৃতির সাথে মিলিত হয়েছে! diff --git a/install/langs/br/data/meta.xml b/install/langs/br/data/meta.xml index 420965fe5..c3c5632ee 100644 --- a/install/langs/br/data/meta.xml +++ b/install/langs/br/data/meta.xml @@ -19,9 +19,9 @@ entrar-em-contato-conosco - - <description>Loja desenvolvida pela PrestaShop</description> - <keywords>shop, prestashop</keywords> + <title>Hotel Prime + Um lugar onde o conforto e o luxo se misturam com a natureza! + diff --git a/install/langs/cs/data/meta.xml b/install/langs/cs/data/meta.xml index fee7a64b4..2479d6894 100644 --- a/install/langs/cs/data/meta.xml +++ b/install/langs/cs/data/meta.xml @@ -19,8 +19,8 @@ napiste-nam - - <description>Website powered by Webkul™</description> + <title>Hotel Prime + Místo, kde se komfort a luxus mísí s přírodou! diff --git a/install/langs/de/data/meta.xml b/install/langs/de/data/meta.xml index 40cab6b97..fcd3fd07d 100644 --- a/install/langs/de/data/meta.xml +++ b/install/langs/de/data/meta.xml @@ -19,9 +19,9 @@ kontaktieren-sie-uns - - <description>Website powered by Webkul</description> - <keywords>Shop, prestashop</keywords> + <title>Hotel Prime + Ein Ort, an dem Komfort und Luxus mit der Natur verschmelzen! + diff --git a/install/langs/de/data/order_state.xml b/install/langs/de/data/order_state.xml index 65b042db0..ad480e2f2 100644 --- a/install/langs/de/data/order_state.xml +++ b/install/langs/de/data/order_state.xml @@ -25,7 +25,7 @@ - Zahlung ausserhalb von PrestaShop eingegangen + Fernzahlung akzeptiert diff --git a/install/langs/en/data/meta.xml b/install/langs/en/data/meta.xml index 2133a7871..0f749e6be 100644 --- a/install/langs/en/data/meta.xml +++ b/install/langs/en/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul</description> + <title>Hotel Prime + A place where comfort and luxury are blended with nature! diff --git a/install/langs/es/data/meta.xml b/install/langs/es/data/meta.xml index c4c470c55..1f458199f 100644 --- a/install/langs/es/data/meta.xml +++ b/install/langs/es/data/meta.xml @@ -19,9 +19,9 @@ contactanos - - <description>Tienda creada con PrestaShop</description> - <keywords>tienda, prestashop</keywords> + <title>Hotel Prime + ¡Un lugar donde el confort y el lujo se mezclan con la naturaleza! + diff --git a/install/langs/es/mail_identifiers.txt b/install/langs/es/mail_identifiers.txt index 685c56930..f27326f60 100644 --- a/install/langs/es/mail_identifiers.txt +++ b/install/langs/es/mail_identifiers.txt @@ -8,4 +8,4 @@ Tu información personal en {shop_name} es: {shop_name} - {shop_url} -{shop_url} desarrollado por PrestaShop® \ No newline at end of file +{shop_url} impulsado por Webkul™ \ No newline at end of file diff --git a/install/langs/fa/data/meta.xml b/install/langs/fa/data/meta.xml index 9383db838..304e6893f 100644 --- a/install/langs/fa/data/meta.xml +++ b/install/langs/fa/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>فروشگاه قدرت گرفته از پرستاشاپ</description> + <title>هتل پرایم + مکانی که در آن راحتی و لوکس بودن با طبیعت ترکیب شده‌اند! diff --git a/install/langs/fr/data/meta.xml b/install/langs/fr/data/meta.xml index 6cc7ba3d8..88b3194db 100644 --- a/install/langs/fr/data/meta.xml +++ b/install/langs/fr/data/meta.xml @@ -19,8 +19,8 @@ nous-contacter - - <description>Boutique propulsée par PrestaShop</description> + <title>Hôtel Prime + Un endroit où le confort et le luxe se mélangent avec la nature ! diff --git a/install/langs/he/data/meta.xml b/install/langs/he/data/meta.xml index 3d5652917..99e781273 100644 --- a/install/langs/he/data/meta.xml +++ b/install/langs/he/data/meta.xml @@ -19,8 +19,8 @@ צור-קשר - - <description>החנות מופעלת באמצעות פרסטהשופ</description> + <title>מלון פריים + מקום שבו נוחות ולוקסוס משתלבים עם הטבע! diff --git a/install/langs/hr/data/meta.xml b/install/langs/hr/data/meta.xml index fbaefdcda..1d581d99d 100644 --- a/install/langs/hr/data/meta.xml +++ b/install/langs/hr/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul</description> + <title>Hotel Prime + A place where comfort and luxury are blended with nature! diff --git a/install/langs/hu/data/meta.xml b/install/langs/hu/data/meta.xml index ee3c90826..ac5e8dd65 100644 --- a/install/langs/hu/data/meta.xml +++ b/install/langs/hu/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul</description> + <title>Hotel Prime + A place where comfort and luxury are blended with nature! diff --git a/install/langs/id/data/meta.xml b/install/langs/id/data/meta.xml index ebf743ab5..8d3f437fb 100644 --- a/install/langs/id/data/meta.xml +++ b/install/langs/id/data/meta.xml @@ -19,9 +19,9 @@ hubungi-kami - - <description>didukung oleh PrestaShop</description> - <keywords>shop, prestashop</keywords> + <title>Hotel Prime + Tempat di mana kenyamanan dan kemewahan berpadu dengan alam! + diff --git a/install/langs/it/data/meta.xml b/install/langs/it/data/meta.xml index 6ef49e751..302524d29 100644 --- a/install/langs/it/data/meta.xml +++ b/install/langs/it/data/meta.xml @@ -19,9 +19,9 @@ contattarci - - <description>Negozio powered by Webkul</description> - <keywords>negozio, prestashop</keywords> + <title>Hotel Prime +Un luogo dove il comfort e il lusso si mescolano con la natura! + diff --git a/install/langs/lt/data/meta.xml b/install/langs/lt/data/meta.xml index 838e3c6de..3bcb5c8ee 100644 --- a/install/langs/lt/data/meta.xml +++ b/install/langs/lt/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul</description> + <title>Hotel Prime + Vieta, kur komfortas ir prabanga dera su gamta! diff --git a/install/langs/mk/data/meta.xml b/install/langs/mk/data/meta.xml index 7288c073d..a54ff9ab2 100644 --- a/install/langs/mk/data/meta.xml +++ b/install/langs/mk/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul</description> + <title>Hotel Prime + A place where comfort and luxury are blended with nature! diff --git a/install/langs/nl/data/meta.xml b/install/langs/nl/data/meta.xml index 8c256986b..3a6cfe94d 100644 --- a/install/langs/nl/data/meta.xml +++ b/install/langs/nl/data/meta.xml @@ -19,9 +19,9 @@ contact-met-ons-opnemen - - <description>Winkel gerund met behulp van PrestaShop</description> - <keywords>shop, prestashop</keywords> + <title>Hotel Prime + Een plek waar comfort en luxe samengaan met de natuur! + diff --git a/install/langs/no/data/meta.xml b/install/langs/no/data/meta.xml index cc40b43f6..40ec6e42d 100644 --- a/install/langs/no/data/meta.xml +++ b/install/langs/no/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul</description> + <title>Hotel Prime + A place where comfort and luxury are blended with nature! diff --git a/install/langs/pl/data/meta.xml b/install/langs/pl/data/meta.xml index 0b62baf89..f0883de05 100644 --- a/install/langs/pl/data/meta.xml +++ b/install/langs/pl/data/meta.xml @@ -19,9 +19,9 @@ kontakt - - <description>Sklep na oprogramowaniu PrestaShop</description> - <keywords>sklep, prestashop</keywords> + <title>Hotel Prime + Miejsce, gdzie komfort i luksus łączą się z naturą! + diff --git a/install/langs/pt/data/meta.xml b/install/langs/pt/data/meta.xml index 0fbfef774..37659029f 100644 --- a/install/langs/pt/data/meta.xml +++ b/install/langs/pt/data/meta.xml @@ -19,9 +19,9 @@ contacte-nos - - <description>Loja powered by Webkul</description> - <keywords>loja</keywords> + <title>Hotel Prime + Um lugar onde o conforto e o luxo se misturam com a natureza! + diff --git a/install/langs/qc/data/meta.xml b/install/langs/qc/data/meta.xml index dd3c5eabd..551c9e9e9 100644 --- a/install/langs/qc/data/meta.xml +++ b/install/langs/qc/data/meta.xml @@ -19,8 +19,8 @@ nous-contacter - - <description>Boutique propulsée par PrestaShop</description> + <title>Hôtel Prime + Un endroit où le confort et le luxe se mêlent à la nature ! diff --git a/install/langs/ro/data/meta.xml b/install/langs/ro/data/meta.xml index 74eb40996..c69586419 100644 --- a/install/langs/ro/data/meta.xml +++ b/install/langs/ro/data/meta.xml @@ -19,8 +19,8 @@ contact - - <description>Magazin motorizat de PrestaShop</description> + <title>Hotel Prime + Un loc unde confortul și luxul se îmbină cu natura! diff --git a/install/langs/ru/data/meta.xml b/install/langs/ru/data/meta.xml index 60eb00227..51a0e7cc9 100644 --- a/install/langs/ru/data/meta.xml +++ b/install/langs/ru/data/meta.xml @@ -19,9 +19,9 @@ contact-us - - <description>Магазин создан на PrestaShop</description> - <keywords>магазин, prestashop</keywords> + <title>Отель Прайм + Место, где комфорт и роскошь сочетаются с природой! + diff --git a/install/langs/si/data/meta.xml b/install/langs/si/data/meta.xml index 8071183e7..97bc8ba23 100644 --- a/install/langs/si/data/meta.xml +++ b/install/langs/si/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul</description> + <title>Hotel Prime + A place where comfort and luxury are blended with nature! diff --git a/install/langs/sr/data/meta.xml b/install/langs/sr/data/meta.xml index c59bfba2c..556ff7f13 100644 --- a/install/langs/sr/data/meta.xml +++ b/install/langs/sr/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul</description> + <title>Hotel Prime + A place where comfort and luxury are blended with nature! diff --git a/install/langs/sv/data/meta.xml b/install/langs/sv/data/meta.xml index b51c88dce..804a3178f 100644 --- a/install/langs/sv/data/meta.xml +++ b/install/langs/sv/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul</description> + <title>Hotel Prime + A place where comfort and luxury are blended with nature! diff --git a/install/langs/tw/data/meta.xml b/install/langs/tw/data/meta.xml index f7daa4372..13529fe4f 100644 --- a/install/langs/tw/data/meta.xml +++ b/install/langs/tw/data/meta.xml @@ -19,9 +19,9 @@ contact-us - - <description>網站以 PrestaShop 建置</description> - <keywords>shop, prestashop</keywords> + <title>Prime 酒店 + 一個舒適與奢華與自然融合的地方! + diff --git a/install/langs/vn/data/meta.xml b/install/langs/vn/data/meta.xml index 432f3d828..197805e11 100644 --- a/install/langs/vn/data/meta.xml +++ b/install/langs/vn/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul™</description> + <title>Khách sạn Prime + Nơi mà sự thoải mái và sang trọng hòa quyện với thiên nhiên! diff --git a/install/langs/zh/data/meta.xml b/install/langs/zh/data/meta.xml index 702769a56..29f672f67 100644 --- a/install/langs/zh/data/meta.xml +++ b/install/langs/zh/data/meta.xml @@ -19,8 +19,8 @@ contact-us - - <description>Website powered by Webkul</description> + <title>Hotel Prime + A place where comfort and luxury are blended with nature! diff --git a/install/theme/rtl.css b/install/theme/rtl.css index 8be292208..0d90266ff 100644 --- a/install/theme/rtl.css +++ b/install/theme/rtl.css @@ -69,7 +69,7 @@ div.field .userInfos{ padding:7px 0 8px 15px; background:transparent url(img/bg-phone_block.png) no-repeat left top; } -#header #PrestaShopLogo{ +#header #QloAppsLogo{ float:right; margin:5px 10px 0 0; } diff --git a/install/theme/view.css b/install/theme/view.css index 95593aa66..5f6d4b65f 100644 --- a/install/theme/view.css +++ b/install/theme/view.css @@ -329,7 +329,7 @@ div.field { background:transparent url(img/bg-phone_block.png) no-repeat right top; } -#header #PrestaShopLogo { +#header #QloAppsLogo { float:left; margin:5px 0 0 10px; height: 51px; diff --git a/install/theme/views/header.phtml b/install/theme/views/header.phtml index db3b9bfc6..9572eb881 100644 --- a/install/theme/views/header.phtml +++ b/install/theme/views/header.phtml @@ -37,7 +37,7 @@
  • l('Blog') ?>
  • - + From 5c0d7ec11edfca2f97a0a8dda38d0f1bfd0a3e29 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Mon, 5 Aug 2024 11:53:35 +0530 Subject: [PATCH 096/169] Removed non required translations for the blocknewsletter module --- .../mails/ar/newsletter_conf.html | 100 ----------------- .../mails/ar/newsletter_conf.txt | 10 -- .../mails/ar/newsletter_verif.html | 100 ----------------- .../mails/ar/newsletter_verif.txt | 10 -- .../mails/ar/newsletter_voucher.html | 102 ------------------ .../mails/ar/newsletter_voucher.txt | 12 --- .../mails/bg/newsletter_conf.html | 100 ----------------- .../mails/bg/newsletter_conf.txt | 10 -- .../mails/bg/newsletter_verif.html | 100 ----------------- .../mails/bg/newsletter_verif.txt | 10 -- .../mails/bg/newsletter_voucher.html | 102 ------------------ .../mails/bg/newsletter_voucher.txt | 12 --- .../mails/ca/newsletter_conf.html | 100 ----------------- .../mails/ca/newsletter_conf.txt | 10 -- .../mails/ca/newsletter_verif.html | 100 ----------------- .../mails/ca/newsletter_verif.txt | 10 -- .../mails/ca/newsletter_voucher.html | 102 ------------------ .../mails/ca/newsletter_voucher.txt | 11 -- .../mails/de/newsletter_conf.html | 100 ----------------- .../mails/de/newsletter_conf.txt | 10 -- .../mails/de/newsletter_verif.html | 100 ----------------- .../mails/de/newsletter_verif.txt | 8 -- .../mails/de/newsletter_voucher.html | 102 ------------------ .../mails/de/newsletter_voucher.txt | 11 -- .../mails/es/newsletter_conf.html | 100 ----------------- .../mails/es/newsletter_conf.txt | 10 -- .../mails/es/newsletter_verif.html | 100 ----------------- .../mails/es/newsletter_verif.txt | 11 -- .../mails/es/newsletter_voucher.html | 102 ------------------ .../mails/es/newsletter_voucher.txt | 12 --- .../mails/fr/newsletter_conf.html | 100 ----------------- .../mails/fr/newsletter_conf.txt | 10 -- .../mails/fr/newsletter_verif.html | 100 ----------------- .../mails/fr/newsletter_verif.txt | 9 -- .../mails/fr/newsletter_voucher.html | 102 ------------------ .../mails/fr/newsletter_voucher.txt | 11 -- .../mails/id/newsletter_conf.html | 100 ----------------- .../mails/id/newsletter_conf.txt | 9 -- .../mails/id/newsletter_verif.html | 100 ----------------- .../mails/id/newsletter_verif.txt | 9 -- .../mails/id/newsletter_voucher.html | 102 ------------------ .../mails/id/newsletter_voucher.txt | 12 --- .../mails/nl/newsletter_conf.html | 100 ----------------- .../mails/nl/newsletter_conf.txt | 10 -- .../mails/nl/newsletter_verif.html | 100 ----------------- .../mails/nl/newsletter_verif.txt | 10 -- .../mails/nl/newsletter_voucher.html | 102 ------------------ .../mails/nl/newsletter_voucher.txt | 12 --- modules/blocknewsletter/translations/ar.php | 80 -------------- modules/blocknewsletter/translations/bg.php | 80 -------------- modules/blocknewsletter/translations/br.php | 75 ------------- modules/blocknewsletter/translations/ca.php | 80 -------------- modules/blocknewsletter/translations/de.php | 80 -------------- modules/blocknewsletter/translations/es.php | 80 -------------- modules/blocknewsletter/translations/fr.php | 80 -------------- modules/blocknewsletter/translations/id.php | 80 -------------- modules/blocknewsletter/translations/nl.php | 80 -------------- 57 files changed, 3380 deletions(-) delete mode 100644 modules/blocknewsletter/mails/ar/newsletter_conf.html delete mode 100644 modules/blocknewsletter/mails/ar/newsletter_conf.txt delete mode 100644 modules/blocknewsletter/mails/ar/newsletter_verif.html delete mode 100644 modules/blocknewsletter/mails/ar/newsletter_verif.txt delete mode 100644 modules/blocknewsletter/mails/ar/newsletter_voucher.html delete mode 100644 modules/blocknewsletter/mails/ar/newsletter_voucher.txt delete mode 100644 modules/blocknewsletter/mails/bg/newsletter_conf.html delete mode 100644 modules/blocknewsletter/mails/bg/newsletter_conf.txt delete mode 100644 modules/blocknewsletter/mails/bg/newsletter_verif.html delete mode 100644 modules/blocknewsletter/mails/bg/newsletter_verif.txt delete mode 100644 modules/blocknewsletter/mails/bg/newsletter_voucher.html delete mode 100644 modules/blocknewsletter/mails/bg/newsletter_voucher.txt delete mode 100644 modules/blocknewsletter/mails/ca/newsletter_conf.html delete mode 100644 modules/blocknewsletter/mails/ca/newsletter_conf.txt delete mode 100644 modules/blocknewsletter/mails/ca/newsletter_verif.html delete mode 100644 modules/blocknewsletter/mails/ca/newsletter_verif.txt delete mode 100644 modules/blocknewsletter/mails/ca/newsletter_voucher.html delete mode 100644 modules/blocknewsletter/mails/ca/newsletter_voucher.txt delete mode 100644 modules/blocknewsletter/mails/de/newsletter_conf.html delete mode 100644 modules/blocknewsletter/mails/de/newsletter_conf.txt delete mode 100644 modules/blocknewsletter/mails/de/newsletter_verif.html delete mode 100644 modules/blocknewsletter/mails/de/newsletter_verif.txt delete mode 100644 modules/blocknewsletter/mails/de/newsletter_voucher.html delete mode 100644 modules/blocknewsletter/mails/de/newsletter_voucher.txt delete mode 100644 modules/blocknewsletter/mails/es/newsletter_conf.html delete mode 100644 modules/blocknewsletter/mails/es/newsletter_conf.txt delete mode 100644 modules/blocknewsletter/mails/es/newsletter_verif.html delete mode 100644 modules/blocknewsletter/mails/es/newsletter_verif.txt delete mode 100644 modules/blocknewsletter/mails/es/newsletter_voucher.html delete mode 100644 modules/blocknewsletter/mails/es/newsletter_voucher.txt delete mode 100644 modules/blocknewsletter/mails/fr/newsletter_conf.html delete mode 100644 modules/blocknewsletter/mails/fr/newsletter_conf.txt delete mode 100644 modules/blocknewsletter/mails/fr/newsletter_verif.html delete mode 100644 modules/blocknewsletter/mails/fr/newsletter_verif.txt delete mode 100644 modules/blocknewsletter/mails/fr/newsletter_voucher.html delete mode 100644 modules/blocknewsletter/mails/fr/newsletter_voucher.txt delete mode 100644 modules/blocknewsletter/mails/id/newsletter_conf.html delete mode 100644 modules/blocknewsletter/mails/id/newsletter_conf.txt delete mode 100644 modules/blocknewsletter/mails/id/newsletter_verif.html delete mode 100644 modules/blocknewsletter/mails/id/newsletter_verif.txt delete mode 100644 modules/blocknewsletter/mails/id/newsletter_voucher.html delete mode 100644 modules/blocknewsletter/mails/id/newsletter_voucher.txt delete mode 100644 modules/blocknewsletter/mails/nl/newsletter_conf.html delete mode 100644 modules/blocknewsletter/mails/nl/newsletter_conf.txt delete mode 100644 modules/blocknewsletter/mails/nl/newsletter_verif.html delete mode 100644 modules/blocknewsletter/mails/nl/newsletter_verif.txt delete mode 100644 modules/blocknewsletter/mails/nl/newsletter_voucher.html delete mode 100644 modules/blocknewsletter/mails/nl/newsletter_voucher.txt delete mode 100644 modules/blocknewsletter/translations/ar.php delete mode 100644 modules/blocknewsletter/translations/bg.php delete mode 100644 modules/blocknewsletter/translations/br.php delete mode 100644 modules/blocknewsletter/translations/ca.php delete mode 100644 modules/blocknewsletter/translations/de.php delete mode 100644 modules/blocknewsletter/translations/es.php delete mode 100644 modules/blocknewsletter/translations/fr.php delete mode 100644 modules/blocknewsletter/translations/id.php delete mode 100644 modules/blocknewsletter/translations/nl.php diff --git a/modules/blocknewsletter/mails/ar/newsletter_conf.html b/modules/blocknewsletter/mails/ar/newsletter_conf.html deleted file mode 100644 index 05b3c885a..000000000 --- a/modules/blocknewsletter/mails/ar/newsletter_conf.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - رسالة من {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    أهلاً،
    - - - - - - - - -
      شكرا لك على الاشتراك في النشرة الإخبارية! إذا كنت ترغب في إلغاء الاشتراك، الرجاء الضغط هنا.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/ar/newsletter_conf.txt b/modules/blocknewsletter/mails/ar/newsletter_conf.txt deleted file mode 100644 index c669ca22d..000000000 --- a/modules/blocknewsletter/mails/ar/newsletter_conf.txt +++ /dev/null @@ -1,10 +0,0 @@ -[/{shop_url}] - -أهلاً، - -شكرا لك على الاشتراك في النشرة الإخبارية! إذا كنت ترغب في إلغاء الاشتراك، الرجاء الضغط - هنا.[/{{unsub_url}}] - -{shop_name} [/{shop_url}] مدعوم من Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/ar/newsletter_verif.html b/modules/blocknewsletter/mails/ar/newsletter_verif.html deleted file mode 100644 index 51eefbc1c..000000000 --- a/modules/blocknewsletter/mails/ar/newsletter_verif.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - رسالة من {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    أهلاً،
    - - - - - - - - -
      نشكرك على اشتراكك في نشرتنا الإخبارية، يرجى تأكيد طلبك بالضغط هنا.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/ar/newsletter_verif.txt b/modules/blocknewsletter/mails/ar/newsletter_verif.txt deleted file mode 100644 index e3b97650b..000000000 --- a/modules/blocknewsletter/mails/ar/newsletter_verif.txt +++ /dev/null @@ -1,10 +0,0 @@ -[/{shop_url}] - -أهلاً، - -نشكرك على اشتراكك في نشرتنا الإخبارية، يرجى تأكيد طلبك بالضغط -هنا.[/{verif_url}] - -{shop_name} [/{shop_url}] مدعوم من Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/ar/newsletter_voucher.html b/modules/blocknewsletter/mails/ar/newsletter_voucher.html deleted file mode 100644 index 0ed0e29e6..000000000 --- a/modules/blocknewsletter/mails/ar/newsletter_voucher.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - رسالة من {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    أهلاً،
    - - - - - - - - -
      -

    الاشتراك في النشرة الإخبارية

    -فيما يتعلق باشتراكك في النشرة الإخبارية، يسعدنا أن نقدم لك القسيمة التالية: {discount}
     
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/ar/newsletter_voucher.txt b/modules/blocknewsletter/mails/ar/newsletter_voucher.txt deleted file mode 100644 index ad810275e..000000000 --- a/modules/blocknewsletter/mails/ar/newsletter_voucher.txt +++ /dev/null @@ -1,12 +0,0 @@ -[/{shop_url}] - -أهلاً، - - -الاشتراك في النشرة الإخبارية - -فيما يتعلق باشتراكك في النشرة الإخبارية، يسعدنا أن نقدم لك القسيمة التالية: {ejtdpvou} - -{shop_name} [/{shop_url}] مدعوم من Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/bg/newsletter_conf.html b/modules/blocknewsletter/mails/bg/newsletter_conf.html deleted file mode 100644 index 08b072a23..000000000 --- a/modules/blocknewsletter/mails/bg/newsletter_conf.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Съобщение от {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    здравей
    - - - - - - - - -
      Благодарим ви, че се абонирахте за нашия бюлетин! Ако желаете да се отпишете, моля, щракнете тук.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/bg/newsletter_conf.txt b/modules/blocknewsletter/mails/bg/newsletter_conf.txt deleted file mode 100644 index a765dbc5a..000000000 --- a/modules/blocknewsletter/mails/bg/newsletter_conf.txt +++ /dev/null @@ -1,10 +0,0 @@ -[/{shop_url}] - -ЗДРАВЕЙ - -Благодарим ви, че се абонирахте за нашия бюлетин! Ако желаете да се отпишете, моля, щракнете - тук.[/{{unsub_url}}] - -{shop_name} [/{shop_url}] задвижван от Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/bg/newsletter_verif.html b/modules/blocknewsletter/mails/bg/newsletter_verif.html deleted file mode 100644 index 8ac920f95..000000000 --- a/modules/blocknewsletter/mails/bg/newsletter_verif.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Съобщение от {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    здравей
    - - - - - - - - -
      Благодарим ви, че се абонирахте за нашия бюлетин, моля, потвърдете заявката си, като щракнете тук.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/bg/newsletter_verif.txt b/modules/blocknewsletter/mails/bg/newsletter_verif.txt deleted file mode 100644 index 439660f60..000000000 --- a/modules/blocknewsletter/mails/bg/newsletter_verif.txt +++ /dev/null @@ -1,10 +0,0 @@ -[/{shop_url}] - -ЗДРАВЕЙ - -Благодарим ви, че се абонирахте за нашия бюлетин, моля, потвърдете заявката си, като щракнете -тук. [/{verif_url}] - -{shop_name} [/{shop_url}] адвижван от Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/bg/newsletter_voucher.html b/modules/blocknewsletter/mails/bg/newsletter_voucher.html deleted file mode 100644 index 89e069db2..000000000 --- a/modules/blocknewsletter/mails/bg/newsletter_voucher.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - Съобщение от {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    здравей
    - - - - - - - - -
      -

    Абонамент за бюлетин

    -По отношение на вашия абонамент за бюлетин, имаме удоволствието да ви предложим следния ваучер: {discount}
     
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/bg/newsletter_voucher.txt b/modules/blocknewsletter/mails/bg/newsletter_voucher.txt deleted file mode 100644 index 9a77eb922..000000000 --- a/modules/blocknewsletter/mails/bg/newsletter_voucher.txt +++ /dev/null @@ -1,12 +0,0 @@ -[/{shop_url}] - -ЗДРАВЕЙ - - -АБОНАМЕНТ ЗА БЮЛЕТИН - -По отношение на вашия абонамент за бюлетин, имаме удоволствието да ви предложим следния ваучер: {discount} - -{shop_name} [/{shop_url}] задвижван от Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/ca/newsletter_conf.html b/modules/blocknewsletter/mails/ca/newsletter_conf.html deleted file mode 100644 index 13322095a..000000000 --- a/modules/blocknewsletter/mails/ca/newsletter_conf.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Missatge de {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    hola,
    - - - - - - - - -
      Gràcies per subscriure't al nostre butlletí! Si voleu donar-vos de baixa, feu clic aquí.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/ca/newsletter_conf.txt b/modules/blocknewsletter/mails/ca/newsletter_conf.txt deleted file mode 100644 index c147145be..000000000 --- a/modules/blocknewsletter/mails/ca/newsletter_conf.txt +++ /dev/null @@ -1,10 +0,0 @@ -[/{shop_url}] - -HOLA, - -Gràcies per subscriure't al nostre butlletí! Si voleu donar-vos de baixa, feu clic -aquí.[/{{unsub_url}}] - -{shop_name} [/{shop_url}] impulsat per Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/ca/newsletter_verif.html b/modules/blocknewsletter/mails/ca/newsletter_verif.html deleted file mode 100644 index 4ebf00ea8..000000000 --- a/modules/blocknewsletter/mails/ca/newsletter_verif.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Missatge de {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    hola,
    - - - - - - - - -
      Gràcies per subscriure't al nostre butlletí, confirmeu la vostra sol·licitud fent clic aquí.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/ca/newsletter_verif.txt b/modules/blocknewsletter/mails/ca/newsletter_verif.txt deleted file mode 100644 index 1b1015bdb..000000000 --- a/modules/blocknewsletter/mails/ca/newsletter_verif.txt +++ /dev/null @@ -1,10 +0,0 @@ -[/{shop_url}] - -HOLA, - -Gràcies per subscriure't al nostre butlletí, confirmeu la vostra sol·licitud fent clic -aquí.[/{verif_url}] - -{shop_name} [/{shop_url}] impulsat per Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/ca/newsletter_voucher.html b/modules/blocknewsletter/mails/ca/newsletter_voucher.html deleted file mode 100644 index 352576cae..000000000 --- a/modules/blocknewsletter/mails/ca/newsletter_voucher.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - Missatge de {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    hola,
    - - - - - - - - -
      -

    Subscripció al butlletí

    -Pel que fa a la teva subscripció al butlletí, ens complau oferir-te el següent val: {discount}
     
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/ca/newsletter_voucher.txt b/modules/blocknewsletter/mails/ca/newsletter_voucher.txt deleted file mode 100644 index 8416c9b00..000000000 --- a/modules/blocknewsletter/mails/ca/newsletter_voucher.txt +++ /dev/null @@ -1,11 +0,0 @@ -[/{shop_url}] - -HOLA, - -SUBSCRIPCIÓ AL BUTLLETÍ - -Pel que fa a la teva subscripció al butlletí, ens complau oferir-te el següent val: {discount} - -{shop_name} [/{shop_url}] impulsat per Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/de/newsletter_conf.html b/modules/blocknewsletter/mails/de/newsletter_conf.html deleted file mode 100644 index f8786bc18..000000000 --- a/modules/blocknewsletter/mails/de/newsletter_conf.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Nachricht von {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hallo,
    - - - - - - - - -
      Vielen Dank, dass Sie unseren Newsletter abonniert haben! Falls Sie sich abmelden möchten, klicken Sie bitte hier.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/de/newsletter_conf.txt b/modules/blocknewsletter/mails/de/newsletter_conf.txt deleted file mode 100644 index 1ad4c51f8..000000000 --- a/modules/blocknewsletter/mails/de/newsletter_conf.txt +++ /dev/null @@ -1,10 +0,0 @@ -[/{shop_url}] - -HALLO, - -Vielen Dank, dass Sie unseren Newsletter abonniert haben! Falls Sie sich abmelden möchten, klicken Sie bitte -hier.[/{{unsub_url}}] - -{shop_name} [/{shop_url}] bereitgestellt von Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/de/newsletter_verif.html b/modules/blocknewsletter/mails/de/newsletter_verif.html deleted file mode 100644 index 10f6a759f..000000000 --- a/modules/blocknewsletter/mails/de/newsletter_verif.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Nachricht von {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hallo,
    - - - - - - - - -
      Vielen Dank für die Anmeldung zu unserem Newsletter, bitte bestätigen Sie Ihre Anfrage, indem Sie hier klicken.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/de/newsletter_verif.txt b/modules/blocknewsletter/mails/de/newsletter_verif.txt deleted file mode 100644 index 31e49a1e0..000000000 --- a/modules/blocknewsletter/mails/de/newsletter_verif.txt +++ /dev/null @@ -1,8 +0,0 @@ -[/{shop_url}] - -HALLO, - -Vielen Dank für die Anmeldung zu unserem Newsletter, bitte bestätigen Sie Ihre Anfrage, indem Sie hier klicken. [/{verif_url}] - -{shop_name} [/{shop_url}] bereitgestellt von Webkul(tm) -[https://webkul.com] diff --git a/modules/blocknewsletter/mails/de/newsletter_voucher.html b/modules/blocknewsletter/mails/de/newsletter_voucher.html deleted file mode 100644 index fda867f2f..000000000 --- a/modules/blocknewsletter/mails/de/newsletter_voucher.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - Nachricht von {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hallo,
    - - - - - - - - -
      -

    Newsletteranmeldung

    -Für Ihr Newsletter-Abonnement bieten wir Ihnen gerne folgenden Gutschein an: {discount}
     
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/de/newsletter_voucher.txt b/modules/blocknewsletter/mails/de/newsletter_voucher.txt deleted file mode 100644 index 3f8911e69..000000000 --- a/modules/blocknewsletter/mails/de/newsletter_voucher.txt +++ /dev/null @@ -1,11 +0,0 @@ -[/{shop_url}] - -HALLO, - - -NEWSLETTERANMELDUNG - -Für Ihr Newsletter-Abonnement bieten wir Ihnen gerne folgenden Gutschein an: {discount} - -{shop_name} [/{shop_url}] bereitgestellt von Webkul(tm) -[https://webkul.com] diff --git a/modules/blocknewsletter/mails/es/newsletter_conf.html b/modules/blocknewsletter/mails/es/newsletter_conf.html deleted file mode 100644 index 346a69912..000000000 --- a/modules/blocknewsletter/mails/es/newsletter_conf.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Mensaje de {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hola,
    - - - - - - - - -
      Gracias por suscribirse a nuestro boletín! Si desea cancelar su suscripción, por favor haga clic aquí.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/es/newsletter_conf.txt b/modules/blocknewsletter/mails/es/newsletter_conf.txt deleted file mode 100644 index 3a98ec49c..000000000 --- a/modules/blocknewsletter/mails/es/newsletter_conf.txt +++ /dev/null @@ -1,10 +0,0 @@ -[/{shop_url}] - -HOLA, - -Gracias por suscribirse a nuestro boletín! Si desea cancelar su suscripción, por favor haga clic -aquí.[/{{unsub_url}}] - -{shop_name} [/{shop_url}] impulsado por Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/es/newsletter_verif.html b/modules/blocknewsletter/mails/es/newsletter_verif.html deleted file mode 100644 index fa527002b..000000000 --- a/modules/blocknewsletter/mails/es/newsletter_verif.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Mensaje de {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hola,
    - - - - - - - - -
      Gracias por suscribirte a nuestro boletín, confirma tu solicitud haciendo clic aquí.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/es/newsletter_verif.txt b/modules/blocknewsletter/mails/es/newsletter_verif.txt deleted file mode 100644 index 28eb6853b..000000000 --- a/modules/blocknewsletter/mails/es/newsletter_verif.txt +++ /dev/null @@ -1,11 +0,0 @@ -[/{shop_url}] - -HOLA, - -Gracias por suscribirte a nuestro boletín, confirma tu solicitud haciendo clic -aquí.[/{verif_url}] - -{shop_name} [/{shop_url}] impulsado por Webkul(tm) -[https://webkul.com] - - diff --git a/modules/blocknewsletter/mails/es/newsletter_voucher.html b/modules/blocknewsletter/mails/es/newsletter_voucher.html deleted file mode 100644 index c1fe92e16..000000000 --- a/modules/blocknewsletter/mails/es/newsletter_voucher.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - Mensaje de {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hola,
    - - - - - - - - -
      -

    Boletín de suscripción

    -En relación con su suscripción al boletín, nos complace ofrecerle el siguiente bono: {discount}
     
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/es/newsletter_voucher.txt b/modules/blocknewsletter/mails/es/newsletter_voucher.txt deleted file mode 100644 index 69f7e0701..000000000 --- a/modules/blocknewsletter/mails/es/newsletter_voucher.txt +++ /dev/null @@ -1,12 +0,0 @@ -[/{shop_url}] - -HOLA, - - - -BOLETÍN DE SUSCRIPCIÓN - -En relación con su suscripción al boletín, nos complace ofrecerle el siguiente bono: {discount} - -{shop_name} [/{shop_url}] impulsado por Webkul(tm) -[https://webkul.com] diff --git a/modules/blocknewsletter/mails/fr/newsletter_conf.html b/modules/blocknewsletter/mails/fr/newsletter_conf.html deleted file mode 100644 index 3b7404de4..000000000 --- a/modules/blocknewsletter/mails/fr/newsletter_conf.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Message de {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Salut,
    - - - - - - - - -
      Merci de vous être abonné à notre newsletter! si vous voulez vous désabonner, veuillez cliquer ici.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/fr/newsletter_conf.txt b/modules/blocknewsletter/mails/fr/newsletter_conf.txt deleted file mode 100644 index fedf8146c..000000000 --- a/modules/blocknewsletter/mails/fr/newsletter_conf.txt +++ /dev/null @@ -1,10 +0,0 @@ -[/{shop_url}] - -SALUT, - -Merci de vous être abonné à notre newsletter! si vous voulez vous désabonner, veuillez cliquer -ici.[/{{unsub_url}}] - -{shop_name} [/{shop_url}] propulsé par Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/fr/newsletter_verif.html b/modules/blocknewsletter/mails/fr/newsletter_verif.html deleted file mode 100644 index 1293ea7f7..000000000 --- a/modules/blocknewsletter/mails/fr/newsletter_verif.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Message de {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Salut,
    - - - - - - - - -
      Merci de votre inscription à notre newsletter, merci de confirmer votre demande en cliquant ici.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/fr/newsletter_verif.txt b/modules/blocknewsletter/mails/fr/newsletter_verif.txt deleted file mode 100644 index b77c4fa4a..000000000 --- a/modules/blocknewsletter/mails/fr/newsletter_verif.txt +++ /dev/null @@ -1,9 +0,0 @@ -[/{shop_url}] - -SALUT, - -Merci de votre inscription à notre newsletter, merci de confirmer votre demande en cliquant -ici.[/{verif_url}] - -{shop_name} [/{shop_url}] propulsé par Webkul(tm) -[https://webkul.com] diff --git a/modules/blocknewsletter/mails/fr/newsletter_voucher.html b/modules/blocknewsletter/mails/fr/newsletter_voucher.html deleted file mode 100644 index 50d3a78ad..000000000 --- a/modules/blocknewsletter/mails/fr/newsletter_voucher.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - Message de {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Salut,
    - - - - - - - - -
      -

    Inscription à la Newsletter

    -Concernant votre inscription à la newsletter, nous avons le plaisir de vous offrir le bon d'achat suivant : {discount}
     
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/fr/newsletter_voucher.txt b/modules/blocknewsletter/mails/fr/newsletter_voucher.txt deleted file mode 100644 index cb0a176ac..000000000 --- a/modules/blocknewsletter/mails/fr/newsletter_voucher.txt +++ /dev/null @@ -1,11 +0,0 @@ -[/{shop_url}] - -SALUT, - - -INSCRIPTION À LA NEWSLETTER - -Concernant votre inscription à la newsletter, nous avons le plaisir de vous offrir le bon d'achat suivant : {discount} - -{shop_name} [/{shop_url}] propulsé par Webkul(tm) -[https://webkul.com] diff --git a/modules/blocknewsletter/mails/id/newsletter_conf.html b/modules/blocknewsletter/mails/id/newsletter_conf.html deleted file mode 100644 index af3376cc3..000000000 --- a/modules/blocknewsletter/mails/id/newsletter_conf.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Pesan dari {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hai,
    - - - - - - - - -
      Terima kasih telah berlangganan buletin kami! Jika Anda ingin berhenti berlangganan, silakan klik di sini.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/id/newsletter_conf.txt b/modules/blocknewsletter/mails/id/newsletter_conf.txt deleted file mode 100644 index 4a11976e0..000000000 --- a/modules/blocknewsletter/mails/id/newsletter_conf.txt +++ /dev/null @@ -1,9 +0,0 @@ -[/{shop_url}] - -HAI, - -Terima kasih telah berlangganan buletin kami! Jika Anda ingin berhenti berlangganan, silakan klik -di sini.[/{{unsub_url}}] - -{shop_name} [/{shop_url}] diberdayakan oleh Webkul(tm) -[https://webkul.com] diff --git a/modules/blocknewsletter/mails/id/newsletter_verif.html b/modules/blocknewsletter/mails/id/newsletter_verif.html deleted file mode 100644 index 85df723f9..000000000 --- a/modules/blocknewsletter/mails/id/newsletter_verif.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Pesan dari {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hai,
    - - - - - - - - -
      Terima kasih telah berlangganan buletin kami, silakan konfirmasi permintaan Anda dengan mengklik di sini.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/id/newsletter_verif.txt b/modules/blocknewsletter/mails/id/newsletter_verif.txt deleted file mode 100644 index a56e770e0..000000000 --- a/modules/blocknewsletter/mails/id/newsletter_verif.txt +++ /dev/null @@ -1,9 +0,0 @@ -[/{shop_url}] - -HAI, - -Terima kasih telah berlangganan buletin kami, silakan konfirmasi permintaan Anda dengan mengklik -di sini.[/{verif_url}] - -{shop_name} [/{shop_url}] diberdayakan oleh Webkul(tm) -[https://webkul.com] diff --git a/modules/blocknewsletter/mails/id/newsletter_voucher.html b/modules/blocknewsletter/mails/id/newsletter_voucher.html deleted file mode 100644 index 4f27a697f..000000000 --- a/modules/blocknewsletter/mails/id/newsletter_voucher.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - Pesan dari {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hai,
    - - - - - - - - -
      -

    Berlangganan buletin

    -Mengenai langganan buletin Anda, kami dengan senang hati menawarkan voucher berikut: {discount}
     
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/id/newsletter_voucher.txt b/modules/blocknewsletter/mails/id/newsletter_voucher.txt deleted file mode 100644 index 5d76b5dc0..000000000 --- a/modules/blocknewsletter/mails/id/newsletter_voucher.txt +++ /dev/null @@ -1,12 +0,0 @@ -[/{shop_url}] - -HAI, - - -BERLANGGANAN BULETIN - -Mengenai langganan buletin Anda, kami dengan senang hati menawarkan voucher berikut: {discount} - -{shop_name} [/{shop_url}] diberdayakan oleh Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/nl/newsletter_conf.html b/modules/blocknewsletter/mails/nl/newsletter_conf.html deleted file mode 100644 index 058f48218..000000000 --- a/modules/blocknewsletter/mails/nl/newsletter_conf.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Bericht van {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hoi,
    - - - - - - - - -
      Bedankt voor het abonneren op onze nieuwsbrief! Wilt u zich afmelden, klik dan hier.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/nl/newsletter_conf.txt b/modules/blocknewsletter/mails/nl/newsletter_conf.txt deleted file mode 100644 index f39cfe279..000000000 --- a/modules/blocknewsletter/mails/nl/newsletter_conf.txt +++ /dev/null @@ -1,10 +0,0 @@ -[/{shop_url}] - -HOI, - -Bedankt voor het abonneren op onze nieuwsbrief! Wilt u zich afmelden, klik dan -hier.[/{{unsub_url}}] - -{shop_name} [/{shop_url}] mogelijk gemaakt door Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/nl/newsletter_verif.html b/modules/blocknewsletter/mails/nl/newsletter_verif.html deleted file mode 100644 index 94c0cb29a..000000000 --- a/modules/blocknewsletter/mails/nl/newsletter_verif.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - Bericht van {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hoi,
    - - - - - - - - -
      Bedankt voor uw inschrijving op onze nieuwsbrief. Bevestig uw verzoek door hier te klikken.  
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/nl/newsletter_verif.txt b/modules/blocknewsletter/mails/nl/newsletter_verif.txt deleted file mode 100644 index 98d483687..000000000 --- a/modules/blocknewsletter/mails/nl/newsletter_verif.txt +++ /dev/null @@ -1,10 +0,0 @@ -[/{shop_url}] - -HOI, - -Bedankt voor uw inschrijving op onze nieuwsbrief. Bevestig uw verzoek door -hier te klikken.[/{verif_url}] - -{shop_name} [/{shop_url}] mogelijk gemaakt door Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/mails/nl/newsletter_voucher.html b/modules/blocknewsletter/mails/nl/newsletter_voucher.html deleted file mode 100644 index 92164f6b4..000000000 --- a/modules/blocknewsletter/mails/nl/newsletter_voucher.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - Bericht van {shop_name} - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - -
    Hoi,
    - - - - - - - - -
      -

    Nieuwsbrief abonnement

    -Met betrekking tot uw nieuwsbriefabonnement bieden wij u graag de volgende voucher aan: {discount}
     
    -
    -
     
    - - \ No newline at end of file diff --git a/modules/blocknewsletter/mails/nl/newsletter_voucher.txt b/modules/blocknewsletter/mails/nl/newsletter_voucher.txt deleted file mode 100644 index 10e86c906..000000000 --- a/modules/blocknewsletter/mails/nl/newsletter_voucher.txt +++ /dev/null @@ -1,12 +0,0 @@ -[/{shop_url}] - -HOI, - - -NIEUWSBRIEF ABONNEMENT - -Met betrekking tot uw nieuwsbriefabonnement bieden wij u graag de volgende voucher aan: {discount} - -{shop_name} [/{shop_url}] mogelijk gemaakt door Webkul(tm) -[https://webkul.com] - diff --git a/modules/blocknewsletter/translations/ar.php b/modules/blocknewsletter/translations/ar.php deleted file mode 100644 index 3ef57e104..000000000 --- a/modules/blocknewsletter/translations/ar.php +++ /dev/null @@ -1,80 +0,0 @@ -blocknewsletter_9e31b08a00c1ed653bcaa517dee84714'] = 'كتلة النشرة الإخبارية'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ba457fab18d697d978befb95e827eb91'] = 'يضيف كتلة للاشتراك في النشرة الإخبارية.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_396c88991101b5ca362932952293d291'] = 'هل أنت متأكد أنك تريد حذف كافة جهات الاتصال الخاصة بك؟'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3a0c11a4716a65627f50989b8c0a2ba8'] = 'حظر النشرة الإخبارية: غير قادر على تصدير العميل باستخدام البريد الإلكتروني.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_674cafd1e77028f37c08a661ff23b773'] = 'حظر النشرة الإخبارية: غير قادر على حذف العميل باستخدام البريد الإلكتروني.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e267e2be02cf3e29f4ba53b5d97cf78a'] = 'عنوان البريد الإلكتروني غير صالح.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'هذا البريد الإلكترونى ليس مسجلا.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'حدث خطأ أثناء محاولة إلغاء الاشتراك.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_d4197f3e8e8b4b5d06b599bc45d683bb'] = 'تم إلغاء الاشتراك بنجاح.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_f6618fce0acbfca15e1f2b0991ddbcd0'] = 'هذا البريد الالكتروني مسجل سابقا.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e172cb581e84f43a3bd8ee4e3b512197'] = 'حدث خطأ أثناء عملية الاشتراك.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ebc069b1b9a2c48edfa39e344103be1e'] = 'تم إرسال بريد إلكتروني للتحقق. يرجى التحقق من البريد الوارد الخاص بك.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77c576a354d5d6f5e2c1ba50167addf8'] = 'لقد اشتركت بنجاح في هذه النشرة الإخبارية.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b718adec73e04ce3ec720dd11a06a308'] = 'بطاقة تعريف'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_544ed721c22329e581919041a14e0c72'] = 'العنوان الاجتماعي'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'بريد إلكتروني'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_bc910f8bdf70f29374f496f05be0330c'] = 'الاسم الأول'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77587239bf4c54ea493c7033e1dbf636'] = 'اسم العائلة'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_808c7457c768423c5651cbf676d9f6d7'] = 'مشترك'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_93a524d9a34a84b2c8b9f0575c08b6c8'] = 'تم إضافة التاريخ'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_99c8b8e5e51bf8f00f1d66820684be9a'] = 'هذا البريد الإلكتروني مسجل بالفعل و/أو غير صالح.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b718adec73e04ce3ec720dd11a06a308'] = 'بطاقة تعريف'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_544ed721c22329e581919041a14e0c72'] = 'العنوان الاجتماعي'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_bc910f8bdf70f29374f496f05be0330c'] = 'الاسم الأول'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_77587239bf4c54ea493c7033e1dbf636'] = 'اسم العائلة'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'بريد إلكتروني'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_808c7457c768423c5651cbf676d9f6d7'] = 'مشترك'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_56af9211d9b2aea8984cf780b5f7d2d8'] = 'تم الاشتراك فيه'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d3b206d196cd6be3a2764c1fb90b200f'] = 'احذف المختار'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e25f0ecd41211b01c83e5fec41df4fe7'] = 'حذف العناصر المحددة؟'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_f7dea833543c95b08baaf59dda0bef48'] = 'تم إلغاء اشتراك العميل من النشرة الإخبارية بنجاح.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_75eb2f4f96e595c84146e888c70468b1'] = 'تم إلغاء الاشتراك في النشرة الإخبارية المختارة بنجاح.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_0095a9fa74d1713e43e370a7d7846224'] = 'يصدّر'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_254f642527b45bc260048e30704edb39'] = 'إعدادات'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_54d2f1bab16b550e32395a7e6edb8de5'] = 'هل ترغب في إرسال رسالة التحقق بالبريد الإلكتروني بعد الاشتراك؟'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b37f32d509cf5aabe806b16791588aa3'] = 'هل ترغب في إرسال رسالة تأكيد بالبريد الإلكتروني بعد الاشتراك؟'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_506e58042922bff5bd753dc612e84f5b'] = 'رمز قسيمة الترحيب'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_fc3d55a9294f7c485c62626c040ee16f'] = 'يمكنك إنشاء قسيمة من صفحة %s. اتركه فارغًا لتعطيل هذه الميزة.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_65b7eaeb9ba4e9903f82297face9f7cd'] = 'قواعد سلة التسوق'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_c9cc8cce247e49bae79f15173ce97354'] = 'يحفظ'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_39f7a3e2b56e9bfd753ba6325533a127'] = 'مشتركين'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_deed5ad7044289abf4151834af518e32'] = 'تصدير عناوين البريد الإلكتروني'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_623b80c92050a5b0767fdcf186786149'] = 'استخدم هذا الخيار لتصدير قائمة عناوين البريد الإلكتروني كملف بتنسيق CSV.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_2198f293f5e1e95dddeff819fbca0975'] = 'المشتركين في النشرة الإخبارية'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_847b0223c73ac0fec0d9df6539c7cad6'] = 'جميع المشتركين'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a307579714b75082f3f8734971b125cd'] = 'المشتركين مع الحساب'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d0da5609e4aebc5d532de97511a5a34a'] = 'مشتركين بدون حساب'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_011d8c5d94f729f013963d856cd78745'] = 'غير المشتركين'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1b09c341aa487e26dac94d2467b7f7e3'] = 'تصفية العملاء الذين اشتركوا في النشرة الإخبارية أم لا، والذين لديهم حساب أم لا.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_dbb392a2dc9b38722e69f6032faea73e'] = 'تصدير ملف CSV'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_417d63b1effb110e438d4b4b9f0fbd95'] = 'رمز القسيمة غير صالح.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_68a70a22b2942e7049971b6d2ef8f434'] = 'رمز القسيمة غير موجود.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a6b62ca6afbc9be0f363df04ed40ff07'] = 'لم يتم العثور على عناوين بريد إلكتروني للتصدير.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_6910996dd14593a8529449f1cf95a49e'] = 'لا يمكن تحميل كائن العميل.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'هذا البريد الإلكترونى ليس مسجلا.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'حدث خطأ أثناء محاولة إلغاء الاشتراك.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_00902490208cfea5327999021f89b824'] = 'فشل إلغاء الاشتراك في النشرة الإخبارية. حاول مرة اخرى.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_7ac4022061477a5003424d8244347e52'] = 'لا يمكن حذف #%d'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e9f36d65b0491f99ef8f0ce2c11bf998'] = 'هناك خطأ ما. حاول مرة اخرى.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ddd4e7f16c2032d59cb4fb4b86576bc5'] = 'يجب عليك تحديد عنصر واحد على الأقل لحذفه.'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_9788af9fa097020a285afc0651a0721c'] = 'عرض العميل'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_4351cfebe4b61d8aa5efa1d020710005'] = 'منظر'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e57610364b03e5176c683ef9e3f29702'] = 'لقد قمت بإلغاء الاشتراك بنجاح.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_720dbedf329396bf26cac10187691ffb'] = 'سيتم إعادة توجيهك إلى الصفحة الرئيسية في'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'ثواني.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'الصفحة الرئيسية'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_4e1c51e233f1ed368c58db9ef09010ba'] = 'شكرا لك على الاشتراك في النشرة الإخبارية.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_720dbedf329396bf26cac10187691ffb'] = 'سيتم إعادة توجيهك إلى الصفحة الرئيسية في'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'ثواني.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'الصفحة الرئيسية'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_060c27814fb52fb2fe6e3c65d7b676bf'] = 'الحصول على الإشعارات'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_198584454b0ce1101ff5b50323325aa8'] = 'عنوان بريدك الإلكتروني'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b26917587d98330d93f87808fc9d7267'] = 'يشترك'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_103b7e768fcb636062a510da61e910ca'] = 'لا انترنت. يرجى المحاولة لاحقا.'; diff --git a/modules/blocknewsletter/translations/bg.php b/modules/blocknewsletter/translations/bg.php deleted file mode 100644 index b3bb0c3d4..000000000 --- a/modules/blocknewsletter/translations/bg.php +++ /dev/null @@ -1,80 +0,0 @@ -blocknewsletter_9e31b08a00c1ed653bcaa517dee84714'] = 'Блок за бюлетин'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ba457fab18d697d978befb95e827eb91'] = 'Добавя блок за абонамент за бюлетин.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_396c88991101b5ca362932952293d291'] = 'Сигурни ли сте, че искате да изтриете всичките си контакти?'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3a0c11a4716a65627f50989b8c0a2ba8'] = 'Блокиране на бюлетин: Не може да се експортира клиент чрез имейл.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_674cafd1e77028f37c08a661ff23b773'] = 'Блокиране на бюлетин: Не може да се изтрие клиент, използващ имейл.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e267e2be02cf3e29f4ba53b5d97cf78a'] = 'Невалиден имейл адрес.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Този имейл адрес не е регистриран.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Възникна грешка при опит за отписване.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_d4197f3e8e8b4b5d06b599bc45d683bb'] = 'Прекратяването на абонамента е успешно.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_f6618fce0acbfca15e1f2b0991ddbcd0'] = 'Този имеил е вече регистриран.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e172cb581e84f43a3bd8ee4e3b512197'] = 'Възникна грешка по време на процеса на абонамент.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ebc069b1b9a2c48edfa39e344103be1e'] = 'Изпратен е имейл за потвърждение. Моля, проверете входящата си кутия.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77c576a354d5d6f5e2c1ba50167addf8'] = 'Успешно се абонирахте за този бюлетин.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b718adec73e04ce3ec720dd11a06a308'] = 'документ за самоличност'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_544ed721c22329e581919041a14e0c72'] = 'Социално заглавие'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'електронна поща'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_bc910f8bdf70f29374f496f05be0330c'] = 'Първо име'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77587239bf4c54ea493c7033e1dbf636'] = 'Фамилия'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_808c7457c768423c5651cbf676d9f6d7'] = 'Абониран'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_93a524d9a34a84b2c8b9f0575c08b6c8'] = 'датата е добавена'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_99c8b8e5e51bf8f00f1d66820684be9a'] = 'Този имейл вече е регистриран и/или невалиден.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b718adec73e04ce3ec720dd11a06a308'] = 'документ за самоличност'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_544ed721c22329e581919041a14e0c72'] = 'Социално заглавие'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_bc910f8bdf70f29374f496f05be0330c'] = 'Първо име'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_77587239bf4c54ea493c7033e1dbf636'] = 'Фамилия'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'електронна поща'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_808c7457c768423c5651cbf676d9f6d7'] = 'Абониран'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_56af9211d9b2aea8984cf780b5f7d2d8'] = 'Абониран на'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d3b206d196cd6be3a2764c1fb90b200f'] = 'Изтрий избраното'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e25f0ecd41211b01c83e5fec41df4fe7'] = 'Изтриване на избраните елементи?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_f7dea833543c95b08baaf59dda0bef48'] = 'Клиентът успешно се отписа от бюлетина.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_75eb2f4f96e595c84146e888c70468b1'] = 'Абонаментът за избрания бюлетин е отписан успешно.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_0095a9fa74d1713e43e370a7d7846224'] = 'Експортиране'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_254f642527b45bc260048e30704edb39'] = 'Конфигурация'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_54d2f1bab16b550e32395a7e6edb8de5'] = 'Искате ли да изпратите имейл за потвърждение след абонирането?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b37f32d509cf5aabe806b16791588aa3'] = 'Искате ли да изпратите имейл за потвърждение след абонирането?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_506e58042922bff5bd753dc612e84f5b'] = 'Код на ваучер за добре дошли'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_fc3d55a9294f7c485c62626c040ee16f'] = 'Можете да създадете ваучер от страницата %s. Оставете празно, за да деактивирате тази функция.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_65b7eaeb9ba4e9903f82297face9f7cd'] = 'Правила за количката'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_c9cc8cce247e49bae79f15173ce97354'] = 'Запазване'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_39f7a3e2b56e9bfd753ba6325533a127'] = 'абонати'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_deed5ad7044289abf4151834af518e32'] = 'Експортиране на имейл адреси'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_623b80c92050a5b0767fdcf186786149'] = 'Използвайте тази опция, за да експортирате списък с имейл адреси като .CSV файл.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_2198f293f5e1e95dddeff819fbca0975'] = 'Абонати на бюлетин'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_847b0223c73ac0fec0d9df6539c7cad6'] = 'Всички абонати'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a307579714b75082f3f8734971b125cd'] = 'Абонати с акаунт'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d0da5609e4aebc5d532de97511a5a34a'] = 'Абонати без акаунт'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_011d8c5d94f729f013963d856cd78745'] = 'Не-абонати'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1b09c341aa487e26dac94d2467b7f7e3'] = 'Филтриране на клиенти, които са се абонирали за бюлетина или не, и които имат акаунт или не.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_dbb392a2dc9b38722e69f6032faea73e'] = 'Експортирайте .CSV файл'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_417d63b1effb110e438d4b4b9f0fbd95'] = 'Кодът на ваучера е невалиден.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_68a70a22b2942e7049971b6d2ef8f434'] = 'Кодът на ваучера не съществува.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a6b62ca6afbc9be0f363df04ed40ff07'] = 'Няма намерени имейл адреси за експортиране.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_6910996dd14593a8529449f1cf95a49e'] = 'Клиентският обект не може да бъде зареден.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Този имейл адрес не е регистриран.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Възникна грешка при опит за отписване.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_00902490208cfea5327999021f89b824'] = 'Прекратяването на абонамента за бюлетин не бе успешно. Моля, опитайте отново.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_7ac4022061477a5003424d8244347e52'] = 'Не може да изтрие #%d'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e9f36d65b0491f99ef8f0ce2c11bf998'] = 'Нещо се обърка. Моля, опитайте отново.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ddd4e7f16c2032d59cb4fb4b86576bc5'] = 'Трябва да изберете поне един елемент за изтриване.'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_9788af9fa097020a285afc0651a0721c'] = 'Преглед на клиента'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_4351cfebe4b61d8aa5efa1d020710005'] = 'Преглед'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e57610364b03e5176c683ef9e3f29702'] = 'Вие се отписахте успешно.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_720dbedf329396bf26cac10187691ffb'] = 'Ще бъдете пренасочени към началната страница в'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'секунди.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Начална страница'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_4e1c51e233f1ed368c58db9ef09010ba'] = 'Благодарим ви, че се абонирахте за нашия бюлетин.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_720dbedf329396bf26cac10187691ffb'] = 'Ще бъдете пренасочени към началната страница в'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'секунди.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Начална страница'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_060c27814fb52fb2fe6e3c65d7b676bf'] = 'ПОЛУЧАЙТЕ ИЗВЕСТИЯ'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_198584454b0ce1101ff5b50323325aa8'] = 'Вашата електронна поща'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b26917587d98330d93f87808fc9d7267'] = 'Абонирай се'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_103b7e768fcb636062a510da61e910ca'] = 'Няма интернет. Моля опитайте по-късно.'; diff --git a/modules/blocknewsletter/translations/br.php b/modules/blocknewsletter/translations/br.php deleted file mode 100644 index 2e84bc04b..000000000 --- a/modules/blocknewsletter/translations/br.php +++ /dev/null @@ -1,75 +0,0 @@ -blocknewsletter_9e31b08a00c1ed653bcaa517dee84714'] = 'Bloco da newsletter'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ba457fab18d697d978befb95e827eb91'] = 'Adiciona um bloco para cadastramento da newsletter.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_396c88991101b5ca362932952293d291'] = 'Tem a certeza que deseja apagar todos os seus contatos?'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_c3987e4cac14a8456515f0d200da04ee'] = 'Todos os países'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_fa01fd956e87307bce4c90a0de9b0437'] = 'País do cliente'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_2198f293f5e1e95dddeff819fbca0975'] = 'Assinantes do boletim informativo'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_99006a61d48499231e1be92241cf772a'] = 'Filtrar inscritos da newsletter'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_7e3a51a56ddd2846e21c33f05e0aea6f'] = 'Todos os clientes'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_39f7a3e2b56e9bfd753ba6325533a127'] = 'Inscritos'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_011d8c5d94f729f013963d856cd78745'] = 'Não Inscritos'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_793ee192a9124cd6f529460eef17d3e5'] = 'Inscritos opcionais'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_7b15c043d66fecc45c8752592aa38e38'] = 'Filtrar inscritos opcionais'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_417d63b1effb110e438d4b4b9f0fbd95'] = 'Cupom de desconto inválido'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_c888438d14855d7d96a2724ee9c306bd'] = 'Configurações atualizadas'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b718adec73e04ce3ec720dd11a06a308'] = 'ID'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_9f82518d468b9fee614fcc92f76bb163'] = 'Loja'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_019ec3132cdf8ee0f2e2a75cf5d3e459'] = 'Sexo'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_dff4bf10409100d989495c6d5486035e'] = 'Sobrenome'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_04176f095283bc729f1e3926967e7034'] = 'Nome'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'E-mail'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_808c7457c768423c5651cbf676d9f6d7'] = 'Inscrito'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ec59738d441f28011a81e62bdcea6200'] = 'Inscrito em'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3a1205098d0a13a9c41a8d538fd6a34a'] = 'Cadastros na Newsletter'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_4351cfebe4b61d8aa5efa1d020710005'] = 'Ver'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_4182c8f19d40c7ca236a5f4f83faeb6b'] = 'Cancelar assinatura'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e267e2be02cf3e29f4ba53b5d97cf78a'] = 'Endereço de e-mail inválido'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Endereço de e-mail não registrado'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Erro durante a remoção'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_d4197f3e8e8b4b5d06b599bc45d683bb'] = 'Removido com sucesso.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_f6618fce0acbfca15e1f2b0991ddbcd0'] = 'Endereço de e-mail já registrado'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e172cb581e84f43a3bd8ee4e3b512197'] = 'Erro durante a inscrição'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ebc069b1b9a2c48edfa39e344103be1e'] = 'Um e-mail de confirmação foi enviado. Por favor, verifique seu e-mail.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77c576a354d5d6f5e2c1ba50167addf8'] = 'Inscrição efetuada com sucesso'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_99c8b8e5e51bf8f00f1d66820684be9a'] = 'E-mail já cadastrado ou inválido'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_4e1c51e233f1ed368c58db9ef09010ba'] = 'Obrigado por assinar a nossa newsletter.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_f4f70727dc34561dfde1a3c529b6205c'] = 'Configurações'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_54d2f1bab16b550e32395a7e6edb8de5'] = 'Enviar a verificação de e-mail depois da sua assinatura?'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_93cba07454f06a4a960172bbd6e2a435'] = 'Sim'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Não'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b37f32d509cf5aabe806b16791588aa3'] = 'Enviar confirmação por e-mail após cadastramento?'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_506e58042922bff5bd753dc612e84f5b'] = 'Vale de desconto de boas vindas'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_1d612b943b8f4792bff603384a46e5f1'] = 'Deixe em branco para desativar'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_c9cc8cce247e49bae79f15173ce97354'] = 'Salvar'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_c48244f3d519c8c3260f2a40022f8d27'] = 'Exportar endereços dos clientes'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_521f7e76a7d4f9e50c50bb945559b942'] = 'Filtrar clientes por país.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_1b09c341aa487e26dac94d2467b7f7e3'] = 'Filtrar clientes que se cadastraram na newsletter ou não, e que possuem uma conta ou não.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e8be50a6977f278040458abdb2b18229'] = 'Clientes podem se cadastrar à newsletter ao se registrar, ou informando o seu e-mail no bloco da newsletter.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_847b0223c73ac0fec0d9df6539c7cad6'] = 'Todos os cadastrados na Newsletter'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_6395c19dc5a1cef9ca125b9736358dc7'] = 'Clientes que concordaram em receber ofertas especiais (opt-in)'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_498bed86a7c58dcf1125dd21f40a6482'] = 'Filtrar clientes que concordaram em receber ofertas especiais (opt-in) ou não.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_85d02b888be056b290282ab2021341dc'] = 'Clientes que não concordaram em receber ofertas especiais (opt-in)'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_dbb392a2dc9b38722e69f6032faea73e'] = 'Exportar arquivo .CSV'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_f6df4ad6dc4798f26d1f2460eef4f2e9'] = 'Procurar por endereços'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_375afa60efcc1d48300bd339cb8154b0'] = 'Endereço de email a procurar'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e347582d22a4ba3c822de504b23d4704'] = 'Exemplo: contato@prestashop.com or @prestashop.com'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_13348442cc6a27032d2b4aa28b75a5d3'] = 'Busca'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_82e5e0bc0f9c776c98253d569c111c0f'] = 'Nenhum cliente encontrado com esses filtros!'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_644ecc2486a059ca16b001a77909bf40'] = 'O arquivo .CSV foi exportado com sucesso: %d clientes encontrados.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_48e3d5f66961b621c78f709afcd7d437'] = 'Descarregar o arquivo'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_87b0ca57db642f4e7780174a6abdc37d'] = 'Nenhum resultado encontrado!'; -$_MODULE['<{blocknewsletter}prestashop>list_action_enable_00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Ativado'; -$_MODULE['<{blocknewsletter}prestashop>list_action_enable_b9f5c797ebbf55adccdd8539a65a0241'] = 'Desativado'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ffb7e666a70151215b4c55c6268d7d72'] = 'Newsletter'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_416f61a2ce16586f8289d41117a2554e'] = 'seu e-mail'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_d8335f4a5d918134bd0bdc47cc487d74'] = 'Digite seu e-mail'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_a60852f204ed8028c1c58808b746d115'] = 'Ok'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_590b7aefc83952e3483c5168bf93e19f'] = 'Newsletter : %1$s'; - - -return $_MODULE; diff --git a/modules/blocknewsletter/translations/ca.php b/modules/blocknewsletter/translations/ca.php deleted file mode 100644 index f0aa1a628..000000000 --- a/modules/blocknewsletter/translations/ca.php +++ /dev/null @@ -1,80 +0,0 @@ -blocknewsletter_9e31b08a00c1ed653bcaa517dee84714'] = 'Bloc de butlletins'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ba457fab18d697d978befb95e827eb91'] = 'Afegeix un bloc per a la subscripció al butlletí.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_396c88991101b5ca362932952293d291'] = 'Esteu segur que voleu suprimir tots els vostres contactes?'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3a0c11a4716a65627f50989b8c0a2ba8'] = 'Bloc de butlletí: no es pot exportar el client mitjançant el correu electrònic.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_674cafd1e77028f37c08a661ff23b773'] = 'Bloc de butlletí: no es pot suprimir el client mitjançant el correu electrònic.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e267e2be02cf3e29f4ba53b5d97cf78a'] = 'Adressa de correu invàlida.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Aquesta adreça de correu electrònic no està registrada.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'S\'ha produït un error en intentar cancel·lar la subscripció.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_d4197f3e8e8b4b5d06b599bc45d683bb'] = 'Cancel·lació de la subscripció correcta.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_f6618fce0acbfca15e1f2b0991ddbcd0'] = 'Aquesta adreça de correu electrònic ja està registrada.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e172cb581e84f43a3bd8ee4e3b512197'] = 'S\'ha produït un error durant el procés de subscripció.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ebc069b1b9a2c48edfa39e344103be1e'] = 'S\'ha enviat un correu electrònic de verificació. Si us plau, comproveu la vostra safata d\'entrada.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77c576a354d5d6f5e2c1ba50167addf8'] = 'Us heu subscrit correctament a aquest butlletí.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b718adec73e04ce3ec720dd11a06a308'] = 'ID'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_544ed721c22329e581919041a14e0c72'] = 'Títol social'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Correu electrònic'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_bc910f8bdf70f29374f496f05be0330c'] = 'Nom'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77587239bf4c54ea493c7033e1dbf636'] = 'Cognom'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_808c7457c768423c5651cbf676d9f6d7'] = 'Subscrit'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_93a524d9a34a84b2c8b9f0575c08b6c8'] = 'Data Afegida'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_99c8b8e5e51bf8f00f1d66820684be9a'] = 'Aquest correu electrònic ja està registrat i/o no és vàlid.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b718adec73e04ce3ec720dd11a06a308'] = 'ID'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_544ed721c22329e581919041a14e0c72'] = 'Títol social'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_bc910f8bdf70f29374f496f05be0330c'] = 'Nom'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_77587239bf4c54ea493c7033e1dbf636'] = 'Cognom'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Correu electrònic'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_808c7457c768423c5651cbf676d9f6d7'] = 'Subscrit'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_56af9211d9b2aea8984cf780b5f7d2d8'] = 'Subscrit a'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d3b206d196cd6be3a2764c1fb90b200f'] = 'Suprimeix el seleccionat'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e25f0ecd41211b01c83e5fec41df4fe7'] = 'Vols suprimir els elements seleccionats?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_f7dea833543c95b08baaf59dda0bef48'] = 'El client s\'ha cancel·lat la subscripció al butlletí amb èxit.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_75eb2f4f96e595c84146e888c70468b1'] = 'La selecció s\'ha cancel·lat la subscripció del butlletí amb èxit.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_0095a9fa74d1713e43e370a7d7846224'] = 'Exporta'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_254f642527b45bc260048e30704edb39'] = 'Configuració'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_54d2f1bab16b550e32395a7e6edb8de5'] = 'Voleu enviar un correu electrònic de verificació després de la subscripció?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b37f32d509cf5aabe806b16791588aa3'] = 'Vols enviar un correu electrònic de confirmació després de la subscripció?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_506e58042922bff5bd753dc612e84f5b'] = 'Codi val de benvinguda'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_fc3d55a9294f7c485c62626c040ee16f'] = 'Podeu crear un val des de la pàgina %s. Deixa en blanc per desactivar aquesta funció.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_65b7eaeb9ba4e9903f82297face9f7cd'] = 'Regles del carro'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_c9cc8cce247e49bae79f15173ce97354'] = 'Desa'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_39f7a3e2b56e9bfd753ba6325533a127'] = 'Subscriptors'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_deed5ad7044289abf4151834af518e32'] = 'Exporta adreces de correu electrònic'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_623b80c92050a5b0767fdcf186786149'] = 'Utilitzeu aquesta opció per exportar la llista d\'adreces de correu electrònic com a fitxer .CSV.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_2198f293f5e1e95dddeff819fbca0975'] = 'Subscriptors del butlletí'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_847b0223c73ac0fec0d9df6539c7cad6'] = 'Tots els subscriptors'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a307579714b75082f3f8734971b125cd'] = 'Subscriptors amb compte'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d0da5609e4aebc5d532de97511a5a34a'] = 'Subscriptors sense compte'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_011d8c5d94f729f013963d856cd78745'] = 'No abonats'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1b09c341aa487e26dac94d2467b7f7e3'] = 'Filtreu els clients que s\'han subscrit o no al butlletí, i que tenen un compte o no.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_dbb392a2dc9b38722e69f6032faea73e'] = 'Exporta el fitxer .CSV'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_417d63b1effb110e438d4b4b9f0fbd95'] = 'El codi del val no és vàlid.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_68a70a22b2942e7049971b6d2ef8f434'] = 'El codi del val no existeix.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a6b62ca6afbc9be0f363df04ed40ff07'] = 'No s\'han trobat adreces de correu electrònic per exportar.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_6910996dd14593a8529449f1cf95a49e'] = 'L\'objecte del client no es pot carregar.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Aquesta adreça de correu electrònic no està registrada.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'S\'ha produït un error en intentar cancel·lar la subscripció.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_00902490208cfea5327999021f89b824'] = 'No s\'ha pogut cancel·lar la subscripció al butlletí. Siusplau torna-ho a provar.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_7ac4022061477a5003424d8244347e52'] = 'No es pot suprimir #%d'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e9f36d65b0491f99ef8f0ce2c11bf998'] = 'Alguna cosa ha anat malament. Siusplau torna-ho a provar.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ddd4e7f16c2032d59cb4fb4b86576bc5'] = 'Heu de seleccionar almenys un element per suprimir.'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_9788af9fa097020a285afc0651a0721c'] = 'Veure client'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_4351cfebe4b61d8aa5efa1d020710005'] = 'Veure'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e57610364b03e5176c683ef9e3f29702'] = 'Us heu cancel·lat la subscripció correctament.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_720dbedf329396bf26cac10187691ffb'] = 'Se us redirigirà a la pàgina d\'inici'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'segons.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Pàgina d\'inici'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_4e1c51e233f1ed368c58db9ef09010ba'] = 'Gràcies per subscriure\'t al nostre butlletí.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_720dbedf329396bf26cac10187691ffb'] = 'Se us redirigirà a la pàgina d\'inici'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'segons.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Pàgina d\'inici'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_060c27814fb52fb2fe6e3c65d7b676bf'] = 'REBRE NOTIFICACIONS'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_198584454b0ce1101ff5b50323325aa8'] = 'la teva adreça de correu electrònic'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b26917587d98330d93f87808fc9d7267'] = 'Subscriu-te'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_103b7e768fcb636062a510da61e910ca'] = 'Sense internet. Si us plau, prova-ho més tard.'; diff --git a/modules/blocknewsletter/translations/de.php b/modules/blocknewsletter/translations/de.php deleted file mode 100644 index 7e8a36664..000000000 --- a/modules/blocknewsletter/translations/de.php +++ /dev/null @@ -1,80 +0,0 @@ -blocknewsletter_9e31b08a00c1ed653bcaa517dee84714'] = 'Newsletterblock'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ba457fab18d697d978befb95e827eb91'] = 'Fügt einen Block zur Newsletter-Anmeldung hinzu.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_396c88991101b5ca362932952293d291'] = 'Möchten Sie wirklich alle Ihre Kontakte löschen?'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3a0c11a4716a65627f50989b8c0a2ba8'] = 'Newsletter-Block: Kunde kann nicht per E-Mail exportiert werden.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_674cafd1e77028f37c08a661ff23b773'] = 'Newsletter-Block: Kunde kann per E-Mail nicht gelöscht werden.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e267e2be02cf3e29f4ba53b5d97cf78a'] = 'Ungültige E-Mail-Adresse.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Diese Email-Adresse ist nicht registriert.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Beim Versuch, das Abonnement zu kündigen, ist ein Fehler aufgetreten.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_d4197f3e8e8b4b5d06b599bc45d683bb'] = 'Abmeldung erfolgreich.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_f6618fce0acbfca15e1f2b0991ddbcd0'] = 'Diese Email-Adresse ist bereits registriert.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e172cb581e84f43a3bd8ee4e3b512197'] = 'Während des Abonnementvorgangs ist ein Fehler aufgetreten.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ebc069b1b9a2c48edfa39e344103be1e'] = 'Eine Bestätigungsmail wurde gesendet. Bitte überprüfen Sie Ihren Posteingang.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77c576a354d5d6f5e2c1ba50167addf8'] = 'Sie haben diesen Newsletter erfolgreich abonniert.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b718adec73e04ce3ec720dd11a06a308'] = 'AUSWEIS'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_544ed721c22329e581919041a14e0c72'] = 'Sozialer Titel'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Email'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_bc910f8bdf70f29374f496f05be0330c'] = 'Vorname'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77587239bf4c54ea493c7033e1dbf636'] = 'Familienname, Nachname'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_808c7457c768423c5651cbf676d9f6d7'] = 'Gezeichnet'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_93a524d9a34a84b2c8b9f0575c08b6c8'] = 'Datum hinzugefügt'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_99c8b8e5e51bf8f00f1d66820684be9a'] = 'Diese E-Mail ist bereits registriert und/oder ungültig.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b718adec73e04ce3ec720dd11a06a308'] = 'AUSWEIS'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_544ed721c22329e581919041a14e0c72'] = 'Sozialer Titel'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_bc910f8bdf70f29374f496f05be0330c'] = 'Vorname'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_77587239bf4c54ea493c7033e1dbf636'] = 'Familienname, Nachname'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Email'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_808c7457c768423c5651cbf676d9f6d7'] = 'Gezeichnet'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_56af9211d9b2aea8984cf780b5f7d2d8'] = 'Abonniert am'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d3b206d196cd6be3a2764c1fb90b200f'] = 'Ausgewählte löschen'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e25f0ecd41211b01c83e5fec41df4fe7'] = 'Ausgewählte Elemente löschen?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_f7dea833543c95b08baaf59dda0bef48'] = 'Der Kunde hat sich erfolgreich vom Newsletter abgemeldet.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_75eb2f4f96e595c84146e888c70468b1'] = 'Die Auswahl wurde erfolgreich vom Newsletter abgemeldet.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_0095a9fa74d1713e43e370a7d7846224'] = 'Export'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_254f642527b45bc260048e30704edb39'] = 'Aufbau'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_54d2f1bab16b550e32395a7e6edb8de5'] = 'Möchten Sie nach der Anmeldung eine Bestätigungs-E-Mail senden?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b37f32d509cf5aabe806b16791588aa3'] = 'Möchten Sie nach der Anmeldung eine Bestätigungs-E-Mail senden?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_506e58042922bff5bd753dc612e84f5b'] = 'Willkommens-Gutscheincode'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_fc3d55a9294f7c485c62626c040ee16f'] = 'Sie können auf der Seite %s einen Gutschein erstellen. Lassen Sie das Feld leer, um diese Funktion zu deaktivieren.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_65b7eaeb9ba4e9903f82297face9f7cd'] = 'Warenkorbregeln'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_c9cc8cce247e49bae79f15173ce97354'] = 'Speichern'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_39f7a3e2b56e9bfd753ba6325533a127'] = 'Abonnenten'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_deed5ad7044289abf4151834af518e32'] = 'E-Mail-Adressen exportieren'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_623b80c92050a5b0767fdcf186786149'] = 'Verwenden Sie diese Option, um eine Liste mit E-Mail-Adressen als CSV-Datei zu exportieren.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_2198f293f5e1e95dddeff819fbca0975'] = 'Newsletter-Abonnenten'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_847b0223c73ac0fec0d9df6539c7cad6'] = 'Alle Abonnenten'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a307579714b75082f3f8734971b125cd'] = 'Abonnenten mit Konto'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d0da5609e4aebc5d532de97511a5a34a'] = 'Abonnenten ohne Konto'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_011d8c5d94f729f013963d856cd78745'] = 'Nicht-Abonnenten'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1b09c341aa487e26dac94d2467b7f7e3'] = 'Filtern Sie Kunden, die den Newsletter abonniert haben oder nicht und die ein Konto haben oder nicht.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_dbb392a2dc9b38722e69f6032faea73e'] = 'CSV-Datei exportieren'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_417d63b1effb110e438d4b4b9f0fbd95'] = 'Der Gutscheincode ist ungültig.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_68a70a22b2942e7049971b6d2ef8f434'] = 'Der Gutscheincode existiert nicht.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a6b62ca6afbc9be0f363df04ed40ff07'] = 'Es wurden keine E-Mail-Adressen zum Exportieren gefunden.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_6910996dd14593a8529449f1cf95a49e'] = 'Kundenobjekt kann nicht geladen werden.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Diese Email-Adresse ist nicht registriert.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Beim Versuch, das Abonnement zu kündigen, ist ein Fehler aufgetreten.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_00902490208cfea5327999021f89b824'] = 'Die Abmeldung vom Newsletter ist fehlgeschlagen. Bitte versuchen Sie es erneut.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_7ac4022061477a5003424d8244347e52'] = '#%d kann nicht gelöscht werden'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e9f36d65b0491f99ef8f0ce2c11bf998'] = 'Etwas ist schief gelaufen. Bitte versuche es erneut.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ddd4e7f16c2032d59cb4fb4b86576bc5'] = 'Sie müssen mindestens ein zu löschendes Element auswählen.'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_9788af9fa097020a285afc0651a0721c'] = 'Kunden anzeigen'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_4351cfebe4b61d8aa5efa1d020710005'] = 'Sicht'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e57610364b03e5176c683ef9e3f29702'] = 'Ihre Abmeldung war erfolgreich.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_720dbedf329396bf26cac10187691ffb'] = 'Sie werden zur Startseite weitergeleitet in'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'Sekunden.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Startseite'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_4e1c51e233f1ed368c58db9ef09010ba'] = 'Danke, dass Sie unseren Newsletter abonniert haben.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_720dbedf329396bf26cac10187691ffb'] = 'Sie werden zur Startseite weitergeleitet in'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'Sekunden.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Startseite'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_060c27814fb52fb2fe6e3c65d7b676bf'] = 'ERHALTEN SIE BENACHRICHTIGUNGEN'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_198584454b0ce1101ff5b50323325aa8'] = 'Ihre E-Mail-Adresse'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b26917587d98330d93f87808fc9d7267'] = 'Abonnieren'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_103b7e768fcb636062a510da61e910ca'] = 'Kein Internet. Bitte versuchen Sie es später.'; diff --git a/modules/blocknewsletter/translations/es.php b/modules/blocknewsletter/translations/es.php deleted file mode 100644 index 184e7c540..000000000 --- a/modules/blocknewsletter/translations/es.php +++ /dev/null @@ -1,80 +0,0 @@ -blocknewsletter_9e31b08a00c1ed653bcaa517dee84714'] = 'bloque de boletines'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ba457fab18d697d978befb95e827eb91'] = 'Agrega un bloque para la suscripción al boletín.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_396c88991101b5ca362932952293d291'] = '¿Estás seguro de que deseas eliminar todos tus contactos?'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3a0c11a4716a65627f50989b8c0a2ba8'] = 'Bloque de boletín: No se puede exportar el cliente mediante el correo electrónico.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_674cafd1e77028f37c08a661ff23b773'] = 'Bloque de boletín: No se puede eliminar al cliente mediante el correo electrónico.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e267e2be02cf3e29f4ba53b5d97cf78a'] = 'Dirección de correo electrónico no válida.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Esta dirección de email no está registrada.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Se produjo un error al intentar cancelar la suscripción.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_d4197f3e8e8b4b5d06b599bc45d683bb'] = 'Cancelación de suscripción exitosa.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_f6618fce0acbfca15e1f2b0991ddbcd0'] = 'Esta dirección de correo electrónico ya está registrada.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e172cb581e84f43a3bd8ee4e3b512197'] = 'Se produjo un error durante el proceso de suscripción.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ebc069b1b9a2c48edfa39e344103be1e'] = 'Se ha enviado un correo electrónico de verificación. Por favor revisa tu bandeja de entrada.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77c576a354d5d6f5e2c1ba50167addf8'] = 'Te has suscrito correctamente a este boletín.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b718adec73e04ce3ec720dd11a06a308'] = 'IDENTIFICACIÓN'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_544ed721c22329e581919041a14e0c72'] = 'Título social'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Correo electrónico'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_bc910f8bdf70f29374f496f05be0330c'] = 'Nombre de pila'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77587239bf4c54ea493c7033e1dbf636'] = 'Apellido'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_808c7457c768423c5651cbf676d9f6d7'] = 'suscrito'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_93a524d9a34a84b2c8b9f0575c08b6c8'] = 'Fecha Agregada'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_99c8b8e5e51bf8f00f1d66820684be9a'] = 'Este correo electrónico ya está registrado y/o no es válido.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b718adec73e04ce3ec720dd11a06a308'] = 'IDENTIFICACIÓN'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_544ed721c22329e581919041a14e0c72'] = 'Título social'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_bc910f8bdf70f29374f496f05be0330c'] = 'Nombre de pila'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_77587239bf4c54ea493c7033e1dbf636'] = 'Apellido'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Correo electrónico'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_808c7457c768423c5651cbf676d9f6d7'] = 'suscrito'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_56af9211d9b2aea8984cf780b5f7d2d8'] = 'Suscrito en'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d3b206d196cd6be3a2764c1fb90b200f'] = 'Eliminar seleccionado'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e25f0ecd41211b01c83e5fec41df4fe7'] = '¿Eliminar elementos seleccionados?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_f7dea833543c95b08baaf59dda0bef48'] = 'El cliente se ha dado de baja del boletín con éxito.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_75eb2f4f96e595c84146e888c70468b1'] = 'La selección se ha dado de baja del boletín con éxito.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_0095a9fa74d1713e43e370a7d7846224'] = 'Exportar'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_254f642527b45bc260048e30704edb39'] = 'Configuración'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_54d2f1bab16b550e32395a7e6edb8de5'] = '¿Le gustaría enviar un correo electrónico de verificación después de la suscripción?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b37f32d509cf5aabe806b16791588aa3'] = '¿Le gustaría enviar un correo electrónico de confirmación después de la suscripción?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_506e58042922bff5bd753dc612e84f5b'] = 'Código de vale de bienvenida'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_fc3d55a9294f7c485c62626c040ee16f'] = 'Puedes crear un cupón desde la página %s. Déjelo en blanco para desactivar esta función.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_65b7eaeb9ba4e9903f82297face9f7cd'] = 'Reglas del carrito'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_c9cc8cce247e49bae79f15173ce97354'] = 'Ahorrar'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_39f7a3e2b56e9bfd753ba6325533a127'] = 'Suscriptores'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_deed5ad7044289abf4151834af518e32'] = 'Exportar direcciones de correo electrónico'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_623b80c92050a5b0767fdcf186786149'] = 'Utilice esta opción para exportar la lista de direcciones de correo electrónico como un archivo .CSV.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_2198f293f5e1e95dddeff819fbca0975'] = 'Suscriptores del boletín'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_847b0223c73ac0fec0d9df6539c7cad6'] = 'Todos los suscriptores'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a307579714b75082f3f8734971b125cd'] = 'Suscriptores con cuenta'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d0da5609e4aebc5d532de97511a5a34a'] = 'Suscriptores sin cuenta'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_011d8c5d94f729f013963d856cd78745'] = 'No suscriptores'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1b09c341aa487e26dac94d2467b7f7e3'] = 'Filtrar clientes que se han suscrito a la newsletter o no, y que tienen una cuenta o no.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_dbb392a2dc9b38722e69f6032faea73e'] = 'Exportar archivo .CSV'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_417d63b1effb110e438d4b4b9f0fbd95'] = 'El código del bono no es válido.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_68a70a22b2942e7049971b6d2ef8f434'] = 'El código del bono no existe.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a6b62ca6afbc9be0f363df04ed40ff07'] = 'No se encontraron direcciones de correo electrónico para exportar.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_6910996dd14593a8529449f1cf95a49e'] = 'El objeto del cliente no se puede cargar.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Esta dirección de email no está registrada.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Se produjo un error al intentar cancelar la suscripción.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_00902490208cfea5327999021f89b824'] = 'Error al cancelar la suscripción al boletín. Inténtalo de nuevo.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_7ac4022061477a5003424d8244347e52'] = 'No se puede eliminar #%d'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e9f36d65b0491f99ef8f0ce2c11bf998'] = 'Algo salió mal. Inténtalo de nuevo.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ddd4e7f16c2032d59cb4fb4b86576bc5'] = 'Debe seleccionar al menos un elemento para eliminar.'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_9788af9fa097020a285afc0651a0721c'] = 'Ver cliente'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_4351cfebe4b61d8aa5efa1d020710005'] = 'Vista'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e57610364b03e5176c683ef9e3f29702'] = 'Te has dado de baja con éxito.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_720dbedf329396bf26cac10187691ffb'] = 'Serás redirigido a la página de inicio en'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'segundos.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Página de inicio'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_4e1c51e233f1ed368c58db9ef09010ba'] = 'Gracias por suscribirse a nuestro boletín.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_720dbedf329396bf26cac10187691ffb'] = 'Serás redirigido a la página de inicio en'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'segundos.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Página de inicio'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_060c27814fb52fb2fe6e3c65d7b676bf'] = 'RECIBIR NOTIFICACIONES'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_198584454b0ce1101ff5b50323325aa8'] = 'Su dirección de correo electrónico'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b26917587d98330d93f87808fc9d7267'] = 'Suscribir'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_103b7e768fcb636062a510da61e910ca'] = 'Sin internet. Por favor intente mas tarde.'; diff --git a/modules/blocknewsletter/translations/fr.php b/modules/blocknewsletter/translations/fr.php deleted file mode 100644 index aff2251fd..000000000 --- a/modules/blocknewsletter/translations/fr.php +++ /dev/null @@ -1,80 +0,0 @@ -blocknewsletter_9e31b08a00c1ed653bcaa517dee84714'] = 'Bloc newsletter'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ba457fab18d697d978befb95e827eb91'] = 'Ajoute un bloc pour l\'abonnement à la newsletter.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_396c88991101b5ca362932952293d291'] = 'Êtes-vous sûr de vouloir supprimer tous vos contacts ?'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3a0c11a4716a65627f50989b8c0a2ba8'] = 'Bloc Newsletter : Impossible d\'exporter le client par email.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_674cafd1e77028f37c08a661ff23b773'] = 'Bloc newsletter : Impossible de supprimer le client par courrier électronique.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e267e2be02cf3e29f4ba53b5d97cf78a'] = 'Adresse e-mail invalide.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Cette adresse email n\'est pas enregistrée.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Une erreur s\'est produite lors de la tentative de désabonnement.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_d4197f3e8e8b4b5d06b599bc45d683bb'] = 'Désabonnement réussi.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_f6618fce0acbfca15e1f2b0991ddbcd0'] = 'Cette adresse email est déjà enregistrée.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e172cb581e84f43a3bd8ee4e3b512197'] = 'Une erreur s\'est produite lors du processus d\'abonnement.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ebc069b1b9a2c48edfa39e344103be1e'] = 'Un email de vérification a été envoyé. Veuillez vérifier votre boîte de réception.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77c576a354d5d6f5e2c1ba50167addf8'] = 'Vous vous êtes abonné avec succès à cette newsletter.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b718adec73e04ce3ec720dd11a06a308'] = 'IDENTIFIANT'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_544ed721c22329e581919041a14e0c72'] = 'Titre social'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'E-mail'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_bc910f8bdf70f29374f496f05be0330c'] = 'Prénom'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77587239bf4c54ea493c7033e1dbf636'] = 'Nom de famille'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_808c7457c768423c5651cbf676d9f6d7'] = 'Abonné'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_93a524d9a34a84b2c8b9f0575c08b6c8'] = 'date ajoutée'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_99c8b8e5e51bf8f00f1d66820684be9a'] = 'Cet email est déjà enregistré et/ou invalide.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b718adec73e04ce3ec720dd11a06a308'] = 'IDENTIFIANT'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_544ed721c22329e581919041a14e0c72'] = 'Titre social'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_bc910f8bdf70f29374f496f05be0330c'] = 'Prénom'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_77587239bf4c54ea493c7033e1dbf636'] = 'Nom de famille'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'E-mail'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_808c7457c768423c5651cbf676d9f6d7'] = 'Abonné'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_56af9211d9b2aea8984cf780b5f7d2d8'] = 'Abonné le'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d3b206d196cd6be3a2764c1fb90b200f'] = 'Supprimer sélectionnée'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e25f0ecd41211b01c83e5fec41df4fe7'] = 'Supprimer les éléments sélectionnés ?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_f7dea833543c95b08baaf59dda0bef48'] = 'Le client s\'est désabonné de la newsletter avec succès.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_75eb2f4f96e595c84146e888c70468b1'] = 'La sélection a été désabonnée de la newsletter avec succès.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_0095a9fa74d1713e43e370a7d7846224'] = 'Exporter'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_254f642527b45bc260048e30704edb39'] = 'Configuration'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_54d2f1bab16b550e32395a7e6edb8de5'] = 'Souhaitez-vous envoyer un e-mail de vérification après votre inscription ?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b37f32d509cf5aabe806b16791588aa3'] = 'Souhaitez-vous envoyer un e-mail de confirmation après votre inscription ?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_506e58042922bff5bd753dc612e84f5b'] = 'Code de bon de bienvenue'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_fc3d55a9294f7c485c62626c040ee16f'] = 'Vous pouvez créer un bon à partir de la page %s. Laissez vide pour désactiver cette fonctionnalité.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_65b7eaeb9ba4e9903f82297face9f7cd'] = 'Règles du panier'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_c9cc8cce247e49bae79f15173ce97354'] = 'Sauvegarder'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_39f7a3e2b56e9bfd753ba6325533a127'] = 'Les abonnés'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_deed5ad7044289abf4151834af518e32'] = 'Exporter les adresses e-mail'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_623b80c92050a5b0767fdcf186786149'] = 'Utilisez cette option pour exporter la liste des adresses e-mail sous forme de fichier .CSV.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_2198f293f5e1e95dddeff819fbca0975'] = 'Abonnés à la newsletter'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_847b0223c73ac0fec0d9df6539c7cad6'] = 'Tous les abonnés'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a307579714b75082f3f8734971b125cd'] = 'Abonnés avec compte'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d0da5609e4aebc5d532de97511a5a34a'] = 'Abonnés sans compte'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_011d8c5d94f729f013963d856cd78745'] = 'Non-abonnés'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1b09c341aa487e26dac94d2467b7f7e3'] = 'Filtrer les clients abonnés ou non à la newsletter, et qui possèdent ou non un compte.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_dbb392a2dc9b38722e69f6032faea73e'] = 'Exporter le fichier .CSV'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_417d63b1effb110e438d4b4b9f0fbd95'] = 'Le code du bon d\'achat n\'est pas valide.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_68a70a22b2942e7049971b6d2ef8f434'] = 'Le code du bon d\'achat n\'existe pas.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a6b62ca6afbc9be0f363df04ed40ff07'] = 'Aucune adresse e-mail à exporter trouvée.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_6910996dd14593a8529449f1cf95a49e'] = 'L\'objet client ne peut pas être chargé.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Cette adresse email n\'est pas enregistrée.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Une erreur s\'est produite lors de la tentative de désabonnement.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_00902490208cfea5327999021f89b824'] = 'La désinscription à la newsletter a échoué. Veuillez réessayer.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_7ac4022061477a5003424d8244347e52'] = 'Impossible de supprimer #%d'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e9f36d65b0491f99ef8f0ce2c11bf998'] = 'Quelque chose s\'est mal passé. Veuillez réessayer.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ddd4e7f16c2032d59cb4fb4b86576bc5'] = 'Vous devez sélectionner au moins un élément à supprimer.'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_9788af9fa097020a285afc0651a0721c'] = 'Voir le client'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_4351cfebe4b61d8aa5efa1d020710005'] = 'Voir'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e57610364b03e5176c683ef9e3f29702'] = 'Vous vous êtes désabonné avec succès.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_720dbedf329396bf26cac10187691ffb'] = 'Vous serez redirigé vers la page d\'accueil dans'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'secondes.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Page d\'accueil'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_4e1c51e233f1ed368c58db9ef09010ba'] = 'Merci de vous être abonné à notre newsletter.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_720dbedf329396bf26cac10187691ffb'] = 'Vous serez redirigé vers la page d\'accueil dans'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'secondes.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Page d\'accueil'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_060c27814fb52fb2fe6e3c65d7b676bf'] = 'AVOIR DES NOTIFICATIONS'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_198584454b0ce1101ff5b50323325aa8'] = 'Votre adresse e-mail'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b26917587d98330d93f87808fc9d7267'] = 'S\'abonner'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_103b7e768fcb636062a510da61e910ca'] = 'Pas d\'Internet. Merci d\'essayer plus tard.'; diff --git a/modules/blocknewsletter/translations/id.php b/modules/blocknewsletter/translations/id.php deleted file mode 100644 index fc2525250..000000000 --- a/modules/blocknewsletter/translations/id.php +++ /dev/null @@ -1,80 +0,0 @@ -blocknewsletter_9e31b08a00c1ed653bcaa517dee84714'] = 'Blok buletin'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ba457fab18d697d978befb95e827eb91'] = 'Menambahkan blok untuk berlangganan buletin.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_396c88991101b5ca362932952293d291'] = 'Apakah Anda yakin ingin menghapus semua kontak Anda?'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3a0c11a4716a65627f50989b8c0a2ba8'] = 'Blok buletin : Tidak dapat mengekspor pelanggan menggunakan email.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_674cafd1e77028f37c08a661ff23b773'] = 'Blok buletin : Tidak dapat menghapus pelanggan menggunakan email.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e267e2be02cf3e29f4ba53b5d97cf78a'] = 'Alamat email salah.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Alamat email ini tidak terdaftar.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Terjadi kesalahan saat mencoba berhenti berlangganan.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_d4197f3e8e8b4b5d06b599bc45d683bb'] = 'Berhenti berlangganan berhasil.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_f6618fce0acbfca15e1f2b0991ddbcd0'] = 'Alamat email ini sudah terdaftar.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e172cb581e84f43a3bd8ee4e3b512197'] = 'Terjadi kesalahan selama proses berlangganan.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ebc069b1b9a2c48edfa39e344103be1e'] = 'Email verifikasi telah dikirim. Silakan periksa kotak masuk Anda.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77c576a354d5d6f5e2c1ba50167addf8'] = 'Anda telah berhasil berlangganan buletin ini.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b718adec73e04ce3ec720dd11a06a308'] = 'PENGENAL'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_544ed721c22329e581919041a14e0c72'] = 'Judul Sosial'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Surel'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_bc910f8bdf70f29374f496f05be0330c'] = 'Nama depan'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77587239bf4c54ea493c7033e1dbf636'] = 'Nama keluarga'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_808c7457c768423c5651cbf676d9f6d7'] = 'Berlangganan'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_93a524d9a34a84b2c8b9f0575c08b6c8'] = 'Tanggal Ditambahkan'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_99c8b8e5e51bf8f00f1d66820684be9a'] = 'Email ini sudah terdaftar dan/atau tidak valid.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b718adec73e04ce3ec720dd11a06a308'] = 'PENGENAL'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_544ed721c22329e581919041a14e0c72'] = 'Judul Sosial'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_bc910f8bdf70f29374f496f05be0330c'] = 'Nama depan'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_77587239bf4c54ea493c7033e1dbf636'] = 'Nama keluarga'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Surel'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_808c7457c768423c5651cbf676d9f6d7'] = 'Berlangganan'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_56af9211d9b2aea8984cf780b5f7d2d8'] = 'Berlangganan Aktif'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d3b206d196cd6be3a2764c1fb90b200f'] = 'Hapus yang dipilih'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e25f0ecd41211b01c83e5fec41df4fe7'] = 'Hapus item yang dipilih?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_f7dea833543c95b08baaf59dda0bef48'] = 'Pelanggan telah berhasil berhenti berlangganan buletin.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_75eb2f4f96e595c84146e888c70468b1'] = 'Seleksi telah berhasil berhenti berlangganan buletin.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_0095a9fa74d1713e43e370a7d7846224'] = 'Ekspor'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_254f642527b45bc260048e30704edb39'] = 'Konfigurasi'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_54d2f1bab16b550e32395a7e6edb8de5'] = 'Apakah Anda ingin mengirim email verifikasi setelah berlangganan?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b37f32d509cf5aabe806b16791588aa3'] = 'Apakah Anda ingin mengirim email konfirmasi setelah berlangganan?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_506e58042922bff5bd753dc612e84f5b'] = 'Kode voucher selamat datang'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_fc3d55a9294f7c485c62626c040ee16f'] = 'Anda dapat membuat voucher dari halaman %s. Biarkan kosong untuk menonaktifkan fitur ini.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_65b7eaeb9ba4e9903f82297face9f7cd'] = 'Aturan Keranjang'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_c9cc8cce247e49bae79f15173ce97354'] = 'Menyimpan'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_39f7a3e2b56e9bfd753ba6325533a127'] = 'Pelanggan'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_deed5ad7044289abf4151834af518e32'] = 'Ekspor Alamat Email'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_623b80c92050a5b0767fdcf186786149'] = 'Gunakan opsi ini untuk mengekspor daftar alamat email sebagai file .CSV.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_2198f293f5e1e95dddeff819fbca0975'] = 'Pelanggan buletin'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_847b0223c73ac0fec0d9df6539c7cad6'] = 'Semua pelanggan'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a307579714b75082f3f8734971b125cd'] = 'Pelanggan dengan akun'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d0da5609e4aebc5d532de97511a5a34a'] = 'Pelanggan tanpa akun'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_011d8c5d94f729f013963d856cd78745'] = 'Non-pelanggan'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1b09c341aa487e26dac94d2467b7f7e3'] = 'Filter pelanggan yang telah berlangganan buletin atau tidak, dan yang memiliki akun atau tidak.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_dbb392a2dc9b38722e69f6032faea73e'] = 'Ekspor file .CSV'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_417d63b1effb110e438d4b4b9f0fbd95'] = 'Kode voucher tidak valid.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_68a70a22b2942e7049971b6d2ef8f434'] = 'Kode vouchernya tidak ada.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a6b62ca6afbc9be0f363df04ed40ff07'] = 'Tidak ditemukan alamat email untuk diekspor.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_6910996dd14593a8529449f1cf95a49e'] = 'Objek pelanggan tidak dapat dimuat.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Alamat email ini tidak terdaftar.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Terjadi kesalahan saat mencoba berhenti berlangganan.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_00902490208cfea5327999021f89b824'] = 'Berhenti berlangganan buletin gagal. Silakan coba lagi.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_7ac4022061477a5003424d8244347e52'] = 'Tidak dapat menghapus #%d'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e9f36d65b0491f99ef8f0ce2c11bf998'] = 'Ada yang salah. Silakan coba lagi.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ddd4e7f16c2032d59cb4fb4b86576bc5'] = 'Anda harus memilih setidaknya satu elemen untuk dihapus.'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_9788af9fa097020a285afc0651a0721c'] = 'Lihat pelanggan'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_4351cfebe4b61d8aa5efa1d020710005'] = 'Melihat'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e57610364b03e5176c683ef9e3f29702'] = 'Anda telah berhasil berhenti berlangganan.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_720dbedf329396bf26cac10187691ffb'] = 'Anda akan diarahkan ke halaman beranda di'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'detik.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Halaman Beranda'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_4e1c51e233f1ed368c58db9ef09010ba'] = 'Terima kasih telah berlangganan buletin kami.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_720dbedf329396bf26cac10187691ffb'] = 'Anda akan diarahkan ke halaman beranda di'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'detik.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Halaman Beranda'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_060c27814fb52fb2fe6e3c65d7b676bf'] = 'DAPATKAN PEMBERITAHUAN'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_198584454b0ce1101ff5b50323325aa8'] = 'Alamat email anda'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b26917587d98330d93f87808fc9d7267'] = 'Langganan'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_103b7e768fcb636062a510da61e910ca'] = 'Tidak ada internet. Silakan coba lagi nanti.'; diff --git a/modules/blocknewsletter/translations/nl.php b/modules/blocknewsletter/translations/nl.php deleted file mode 100644 index e27f0fe41..000000000 --- a/modules/blocknewsletter/translations/nl.php +++ /dev/null @@ -1,80 +0,0 @@ -blocknewsletter_9e31b08a00c1ed653bcaa517dee84714'] = 'Nieuwsbrief blok'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ba457fab18d697d978befb95e827eb91'] = 'Voegt een blok toe voor nieuwsbriefabonnement.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_396c88991101b5ca362932952293d291'] = 'Weet u zeker dat u al uw contacten wilt verwijderen?'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3a0c11a4716a65627f50989b8c0a2ba8'] = 'Nieuwsbriefblokkering: Kan klant niet exporteren via e-mail.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_674cafd1e77028f37c08a661ff23b773'] = 'Nieuwsbriefblokkering: Kan klant niet verwijderen via e-mail.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e267e2be02cf3e29f4ba53b5d97cf78a'] = 'Ongeldig e-mailadres.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Dit email adres is niet geregistreerd.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Er is een fout opgetreden bij het afmelden.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_d4197f3e8e8b4b5d06b599bc45d683bb'] = 'Uitschrijven gelukt.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_f6618fce0acbfca15e1f2b0991ddbcd0'] = 'Dit emailadres is al geregistreerd.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_e172cb581e84f43a3bd8ee4e3b512197'] = 'Er is een fout opgetreden tijdens het abonnementsproces.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ebc069b1b9a2c48edfa39e344103be1e'] = 'Er is een verificatie-e-mail verzonden. Controleer uw inbox.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77c576a354d5d6f5e2c1ba50167addf8'] = 'U heeft zich succesvol aangemeld voor deze nieuwsbrief.'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b718adec73e04ce3ec720dd11a06a308'] = 'ID kaart'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_544ed721c22329e581919041a14e0c72'] = 'Sociale titel'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'E-mail'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_bc910f8bdf70f29374f496f05be0330c'] = 'Voornaam'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_77587239bf4c54ea493c7033e1dbf636'] = 'Achternaam'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_808c7457c768423c5651cbf676d9f6d7'] = 'Geabonneerd'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_93a524d9a34a84b2c8b9f0575c08b6c8'] = 'Datum toegevoegd'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_99c8b8e5e51bf8f00f1d66820684be9a'] = 'Dit e-mailadres is al geregistreerd en/of ongeldig.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b718adec73e04ce3ec720dd11a06a308'] = 'ID kaart'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_544ed721c22329e581919041a14e0c72'] = 'Sociale titel'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_bc910f8bdf70f29374f496f05be0330c'] = 'Voornaam'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_77587239bf4c54ea493c7033e1dbf636'] = 'Achternaam'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'E-mail'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_808c7457c768423c5651cbf676d9f6d7'] = 'Geabonneerd'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_56af9211d9b2aea8984cf780b5f7d2d8'] = 'Geabonneerd op'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d3b206d196cd6be3a2764c1fb90b200f'] = 'Verwijder geselecteerde'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e25f0ecd41211b01c83e5fec41df4fe7'] = 'Geselecteerde items verwijderen?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_f7dea833543c95b08baaf59dda0bef48'] = 'De klant is succesvol afgemeld voor de nieuwsbrief.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_75eb2f4f96e595c84146e888c70468b1'] = 'De selectie is succesvol afgemeld voor de nieuwsbrief.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_0095a9fa74d1713e43e370a7d7846224'] = 'Exporteren'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_254f642527b45bc260048e30704edb39'] = 'Configuratie'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_54d2f1bab16b550e32395a7e6edb8de5'] = 'Wilt u na inschrijving een verificatiemail sturen?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_b37f32d509cf5aabe806b16791588aa3'] = 'Wilt u na inschrijving een bevestigingsmail sturen?'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_506e58042922bff5bd753dc612e84f5b'] = 'Welkomstvouchercode'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_fc3d55a9294f7c485c62626c040ee16f'] = 'U kunt een voucher aanmaken vanaf de %s pagina. Laat dit leeg om deze functie uit te schakelen.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_65b7eaeb9ba4e9903f82297face9f7cd'] = 'Winkelwagenregels'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_c9cc8cce247e49bae79f15173ce97354'] = 'Redden'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_39f7a3e2b56e9bfd753ba6325533a127'] = 'Abonnees'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_deed5ad7044289abf4151834af518e32'] = 'E-mailadressen exporteren'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_623b80c92050a5b0767fdcf186786149'] = 'Gebruik deze optie om de lijst met e-mailadressen te exporteren als een .CSV-bestand.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_2198f293f5e1e95dddeff819fbca0975'] = 'Nieuwsbriefabonnees'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_847b0223c73ac0fec0d9df6539c7cad6'] = 'Alle abonnees'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a307579714b75082f3f8734971b125cd'] = 'Abonnees met account'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_d0da5609e4aebc5d532de97511a5a34a'] = 'Abonnees zonder account'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_011d8c5d94f729f013963d856cd78745'] = 'Niet-abonnees'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1b09c341aa487e26dac94d2467b7f7e3'] = 'Filter klanten die zich wel of niet hebben ingeschreven voor de nieuwsbrief en al dan niet een account hebben.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_dbb392a2dc9b38722e69f6032faea73e'] = 'Exporteer .CSV-bestand'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_417d63b1effb110e438d4b4b9f0fbd95'] = 'De vouchercode is ongeldig.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_68a70a22b2942e7049971b6d2ef8f434'] = 'De vouchercode bestaat niet.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_a6b62ca6afbc9be0f363df04ed40ff07'] = 'Geen e-mailadressen gevonden om te exporteren.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_6910996dd14593a8529449f1cf95a49e'] = 'Klantobject kan niet worden geladen.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_1c623b291d95f4f1b1d0c03d0dc0ffa1'] = 'Dit email adres is niet geregistreerd.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_3b1f17a6fd92e35bc744e986b8e7a61c'] = 'Er is een fout opgetreden bij het afmelden.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_00902490208cfea5327999021f89b824'] = 'Afmelden nieuwsbrief mislukt. Probeer het opnieuw.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_7ac4022061477a5003424d8244347e52'] = 'Kan #%d niet verwijderen'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_e9f36d65b0491f99ef8f0ce2c11bf998'] = 'Er is iets fout gegaan. Probeer het opnieuw.'; -$_MODULE['<{blocknewsletter}prestashop>adminnewslettercontroller_ddd4e7f16c2032d59cb4fb4b86576bc5'] = 'U moet ten minste één element selecteren om te verwijderen.'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_9788af9fa097020a285afc0651a0721c'] = 'Klant bekijken'; -$_MODULE['<{blocknewsletter}prestashop>view-customer-link_4351cfebe4b61d8aa5efa1d020710005'] = 'Weergave'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e57610364b03e5176c683ef9e3f29702'] = 'Je hebt je succesvol afgemeld.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_720dbedf329396bf26cac10187691ffb'] = 'U wordt doorgestuurd naar de startpagina in'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'seconden.'; -$_MODULE['<{blocknewsletter}prestashop>unsubscription_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Startpagina'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_4e1c51e233f1ed368c58db9ef09010ba'] = 'Bedankt voor het abonneren op onze nieuwsbrief.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_720dbedf329396bf26cac10187691ffb'] = 'U wordt doorgestuurd naar de startpagina in'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_e4da3b7fbbce2345d7772b0674a318d5'] = '5'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_d90d8347e139d0cfc3fad11757b651ff'] = 'seconden.'; -$_MODULE['<{blocknewsletter}prestashop>verification_execution_cfe6e34a4c7f24aad32aa4299562f5b1'] = 'Startpagina'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_060c27814fb52fb2fe6e3c65d7b676bf'] = 'KRIJG MELDINGEN'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_198584454b0ce1101ff5b50323325aa8'] = 'jouw e-mailadres'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_b26917587d98330d93f87808fc9d7267'] = 'Abonneren'; -$_MODULE['<{blocknewsletter}prestashop>blocknewsletter_103b7e768fcb636062a510da61e910ca'] = 'Geen internet. Probeer het later alstublieft.'; From 10b299d8ed0239e020758b424ccb4003db85d4f6 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Mon, 5 Aug 2024 17:05:07 +0530 Subject: [PATCH 097/169] Updated helper tree| created new helper tree for generating tree --- admin/themes/default/sass/partials/_tree.sass | 5 + .../normal_products/helpers/tree/tree.tpl | 39 ++ .../normal_products/informations.tpl | 4 +- .../default/template/helpers/tree/tree.tpl | 121 +++--- .../helpers/tree/tree_node_folder.tpl | 6 + .../tree/tree_node_folder_checkbox.tpl | 13 +- .../helpers/tree/tree_node_folder_radio.tpl | 12 +- .../template/helpers/tree/tree_node_item.tpl | 6 + .../helpers/tree/tree_node_item_checkbox.tpl | 6 + .../helpers/tree/tree_node_item_radio.tpl | 6 + classes/helper/HelperTree.php | 21 +- classes/tree/Tree.php | 23 +- .../admin/AdminNormalProductsController.php | 6 +- .../classes/HotelHelper.php | 356 ++++++++++++------ 14 files changed, 430 insertions(+), 194 deletions(-) create mode 100644 admin/themes/default/template/controllers/normal_products/helpers/tree/tree.tpl diff --git a/admin/themes/default/sass/partials/_tree.sass b/admin/themes/default/sass/partials/_tree.sass index 897c29f85..9d382680e 100644 --- a/admin/themes/default/sass/partials/_tree.sass +++ b/admin/themes/default/sass/partials/_tree.sass @@ -7,6 +7,7 @@ font-size: $icon-size-base .tree list-style: none + overflow: auto @include padding(0, 0, 0, 20px) input vertical-align: baseline @@ -42,6 +43,10 @@ &:hover color: #ccc background-color: none + .node-hint + font-style: italic + color: #959595 + margin-left: 30px .tree-actions display: inline-block diff --git a/admin/themes/default/template/controllers/normal_products/helpers/tree/tree.tpl b/admin/themes/default/template/controllers/normal_products/helpers/tree/tree.tpl new file mode 100644 index 000000000..ce2479919 --- /dev/null +++ b/admin/themes/default/template/controllers/normal_products/helpers/tree/tree.tpl @@ -0,0 +1,39 @@ +{* +* Since 2010 Webkul. +* +* NOTICE OF LICENSE +* +* All right is reserved, +* Please go through this link for complete license : https://store.webkul.com/license.html +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade this module to newer +* versions in the future. If you wish to customize this module for your +* needs please refer to https://store.webkul.com/customisation-guidelines/ for more information. +* +* @author Webkul IN +* @copyright Since 2010 Webkul IN +* @license https://store.webkul.com/license.html +*} +{extends file="helpers/tree/tree.tpl"} + \ No newline at end of file diff --git a/admin/themes/default/template/controllers/normal_products/informations.tpl b/admin/themes/default/template/controllers/normal_products/informations.tpl index 49537d7dd..81088a6b0 100644 --- a/admin/themes/default/template/controllers/normal_products/informations.tpl +++ b/admin/themes/default/template/controllers/normal_products/informations.tpl @@ -234,13 +234,13 @@
    service_product_type == Product::SERVICE_PRODUCT_WITHOUT_ROOMTYPE}style="display:none;"{/if}>
    {include file="controllers/products/multishop/checkbox.tpl" field="category_box" type="category_box"}
    -
    {/if} From 22f533040c8d74b22a5d721f5c35babd51d2c33a Mon Sep 17 00:00:00 2001 From: Aman deep sharma Date: Tue, 6 Aug 2024 15:10:16 +0530 Subject: [PATCH 100/169] [Fixed]: Empty address and phone number gets saved --- .../controllers/admin/AdminAddHotelController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php b/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php index 684cbdf91..b40b651e3 100644 --- a/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php +++ b/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php @@ -274,7 +274,7 @@ class AdminAddHotelController extends ModuleAdminController } } - if (!$phone) { + if (!$phone = trim($phone)) { $this->errors[] = $this->l('Phone number is required field.'); } elseif (!Validate::isPhoneNumber($phone)) { $this->errors[] = $this->l('Please enter a valid phone number.'); @@ -300,7 +300,7 @@ class AdminAddHotelController extends ModuleAdminController $this->errors[] = $this->l('Rating is required field.'); } - if ($address == '') { + if (!$address = trim($address)) { $this->errors[] = $this->l('Address is required field.'); } From 9601f3acce0e3cc53350a05f3f24ac874c3ca7a3 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Wed, 7 Aug 2024 10:16:53 +0530 Subject: [PATCH 101/169] Fixed: The cart was not updated after a room was updated from the order detail page --- controllers/admin/AdminOrdersController.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index 56d85e196..9e4b5c388 100644 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -4558,8 +4558,6 @@ class AdminOrdersControllerCore extends AdminController $res = true; $id_order = (int) Tools::getValue('id_order'); $order = new Order($id_order); - $cart = new Cart($order->id_cart); - $customer = new Cart($order->id_customer); //$order_detail = new OrderDetail((int)Tools::getValue('product_id_order_detail')); $order_detail = new OrderDetail((int) Tools::getValue('id_order_detail'));//by webkul id_order_detail from our table $this->doEditRoomValidation($order_detail, $order, isset($order_invoice) ? $order_invoice : null); @@ -4586,6 +4584,9 @@ class AdminOrdersControllerCore extends AdminController $children = $occupancy['children']; $child_ages = $occupancy['child_ages']; + $bookingInfo = $obj_booking_detail->getRowByIdOrderIdProductInDateRange($id_order, $id_product, $old_date_from, $old_date_to, $id_room); + $cart = new Cart($bookingInfo['id_cart']); + // By webkul to calculate rates of the product from hotelreservationsystem tables with feature prices.... // add feature price for updated price @@ -4759,6 +4760,17 @@ class AdminOrdersControllerCore extends AdminController $res &= $order_invoice->update(); } + if ($qty_diff != 0) { + $cartQty = $qty_diff; + $op = 'up'; + if ($qty_diff < 0) { + $op = 'down'; + $cartQty = -$cartQty; + } + + $cart->updateQty($cartQty, $bookingInfo['id_product'], null, false, $op, 0, null, true); + } + // Update product available quantity StockAvailable::updateQuantity($order_detail->product_id, $order_detail->product_attribute_id, ($old_quantity - $order_detail->product_quantity), $order->id_shop); From 32c4db8bca47c86bca4d45f65f205198cf28e5e8 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Wed, 7 Aug 2024 11:57:35 +0530 Subject: [PATCH 102/169] Fixed: Issues in the APIs, added address wise hotel valiadations, fixed hotel response, extra_services GET/PUT/POST, updated the room types endpoint to add services and extra demands using API --- classes/Address.php | 40 +- classes/Cart.php | 2 +- classes/Guest.php | 18 + classes/Product.php | 402 +++++++++++++++--- classes/TranslatedConfiguration.php | 2 +- .../webservice/WebserviceOutputBuilder.php | 9 +- classes/webservice/WebserviceOutputXML.php | 2 +- classes/webservice/WebserviceRequest.php | 4 +- .../WebserviceSpecificManagementImages.php | 5 +- .../classes/HotelBranchInformation.php | 280 +++++------- .../classes/HotelCartBookingData.php | 24 +- .../classes/HotelRoomInformation.php | 6 + .../classes/HotelRoomType.php | 20 + .../classes/HotelRoomTypeFeaturePricing.php | 2 +- .../WebserviceSpecificManagementQlo.php | 12 +- .../hotelreservationsystem.php | 1 + 16 files changed, 577 insertions(+), 252 deletions(-) diff --git a/classes/Address.php b/classes/Address.php index 5a0bd2498..17b2f1e90 100644 --- a/classes/Address.php +++ b/classes/Address.php @@ -149,13 +149,16 @@ class AddressCore extends ObjectModel protected $webserviceParameters = array( 'objectsNodeName' => 'addresses', 'fields' => array( - 'id_customer' => array('xlink_resource'=> 'customers'), + 'id_customer' => array('xlink_resource'=> 'customers', 'required' => true), 'id_manufacturer' => array('xlink_resource'=> 'manufacturers'), 'id_supplier' => array('xlink_resource'=> 'suppliers'), 'id_warehouse' => array('xlink_resource'=> 'warehouse'), 'id_country' => array('xlink_resource'=> 'countries'), 'id_state' => array('xlink_resource'=> 'states'), ), + 'hidden_fields' => array( + 'id_hotel' + ), ); /** @@ -551,4 +554,39 @@ class AddressCore extends ObjectModel ) '); } + + public function validateFields($die = true, $error_return = false) + { + if (isset($this->webservice_validation) && $this->webservice_validation) { + if (!$this->id_customer || !Validate::isLoadedObject(new Customer((int) $this->id_customer))) { + $message = Tools::displayError('Invalid Id customer.'); + } else if (!$this->id_country || !Validate::isLoadedObject($objCountry = new Country($this->id_country))) { + $message = Tools::displayError('Invalid Id country'); + } else if ($objCountry->contains_states + && (!$this->id_state || !Validate::isLoadedObject($objState = new State((int) $this->id_state))) + ) { + $message = Tools::displayError('Invalid Id state'); + } else if ($objCountry->id != $objState->id) { + $message = Tools::displayError('The given provided Id state does not belongs to the provided Id country'); + } else if ($objCountry->id != $objState->id) { + $message = Tools::displayError('The given provided Id state does not belongs to the provided Id country'); + } else if ($objCountry->zip_code_format && !$objCountry->checkZipCode($this->postcode)) { + $message = Tools::displayError('Your Zip/postal code is incorrect'); + } else if (empty($this->postcode) && $objCountry->need_zip_code) { + $message = Tools::displayError('A Zip/postal code is required.'); + } else if ($this->postcode && !Validate::isPostCode($this->postcode)) { + $message = Tools::displayError('The Zip/postal code is invalid.'); + } + + if (isset($message)) { + if ($die) { + throw new PrestaShopException($message); + } + return $error_return ? $message : false; + } + } + + return parent::validateFields($die, $error_return); + } + } diff --git a/classes/Cart.php b/classes/Cart.php index 8401a36b9..a4dea46b8 100644 --- a/classes/Cart.php +++ b/classes/Cart.php @@ -4702,7 +4702,7 @@ class CartCore extends ObjectModel public function getWsCartBookings() { return Db::getInstance()->executeS(' - SELECT `id` + SELECT `id`, `date_from`, `date_to`, `id_hotel`, `id_product` FROM `'._DB_PREFIX_.'htl_cart_booking_data` WHERE id_cart = '.(int)$this->id.' ORDER BY `id` ASC' ); diff --git a/classes/Guest.php b/classes/Guest.php index 15a71165c..f600d38c1 100644 --- a/classes/Guest.php +++ b/classes/Guest.php @@ -198,4 +198,22 @@ class GuestCore extends ObjectModel $guest->save(); $cookie->id_guest = (int)($guest->id); } + + public function validateFields($die = true, $error_return = false) + { + if (isset($this->webservice_validation) && $this->webservice_validation) { + if ((int) $this->id_customer && !Validate::isLoadedObject(new Customer((int) $this->id_customer))) { + $message = Tools::displayError('Invalid Id customer.'); + } + + if (isset($message)) { + if ($die) { + throw new PrestaShopException($message); + } + return $error_return ? $message : false; + } + } + return parent::validateFields($die, $error_return); + } + } diff --git a/classes/Product.php b/classes/Product.php index c47bb1f04..d001c4ea2 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -371,38 +371,24 @@ class ProductCore extends ObjectModel ), ); - protected $webserviceParameters = array( + protected $webserviceRoomTypeParameters = array( 'objectMethods' => array( - 'add' => 'addWs', - 'update' => 'updateWs', + 'add' => 'addWsRoomType', + 'update' => 'updateWsRoomType', 'delete' => 'deleteWs' ), - 'objectsNodeName' => 'room_types', 'objectNodeName' => 'room_type', + 'retrieveData' => array( + 'retrieveMethod' => 'getRoomTypesObjectList' + ), 'fields' => array( - 'id_hotel' => array( - 'getter' => 'getWsHotel', - 'setter' => 'setWsHotel', - 'xlink_resource' => 'hotels' - ), - 'adults' => array( - 'getter' => 'getWsAdults', - 'setter' => 'setWsAdults', - ), - 'children' => array( - 'getter' => 'getWsChildren', - 'setter' => 'setWsChildren', - ), - 'id_manufacturer' => array( - 'xlink_resource' => 'manufacturers' - ), - 'id_supplier' => array( - 'xlink_resource' => 'suppliers' - ), - 'id_category_default' => array( - 'xlink_resource' => 'categories' - ), + 'id_hotel' => array('getter' => 'getWsHotel','setter' => 'setWsHotel', 'xlink_resource' => 'hotels'), + 'adults' => array('getter' => 'getWsAdults','setter' => 'setWsAdults'), + 'children' => array('getter' => 'getWsChildren','setter' => 'setWsChildren'), + 'id_manufacturer' => array('xlink_resource' => 'manufacturers'), + 'id_supplier' => array('xlink_resource' => 'suppliers'), + 'id_category_default' => array('xlink_resource' => 'categories'), 'new' => array(), 'cache_default_attribute' => array(), 'id_default_image' => array( @@ -420,36 +406,28 @@ class ProductCore extends ObjectModel // 'resourceName' => 'combinations' // ) // ), - 'id_tax_rules_group' => array( - 'xlink_resource' => array( - 'resourceName' => 'tax_rule_groups' - ) - ), - 'position_in_category' => array( - 'getter' => 'getWsPositionInCategory', - 'setter' => 'setWsPositionInCategory' - ), + 'id_tax_rules_group' => array('xlink_resource' => array('resourceName' => 'tax_rule_groups')), + 'position_in_category' => array('getter' => 'getWsPositionInCategory', 'setter' => 'setWsPositionInCategory'), // 'manufacturer_name' => array( // 'getter' => 'getWsManufacturerName', // 'setter' => false // ), - 'quantity' => array( - 'getter' => false, - 'setter' => false - ), - 'type' => array( - 'getter' => 'getWsType', - 'setter' => 'setWsType', - ), - 'id_advance_paypent' => array( - 'xlink_resource' => array( - 'resourceName' => 'advance_payments' - ), - 'getter' => 'getWsRoomTypeAdvancePayment', - 'setter' => false - ), + 'type' => array('getter' => 'getWsType', 'setter' => 'setWsType'), ), 'associations' => array( + 'advance_payments' => array( + 'resource' => 'advance_payment', + 'getter' => 'getWsAdvancePayments', + 'setter' => 'setWsAdvancePayments', + 'fields' => array( + 'id' => array(), + 'payment_type' => array(), + 'tax_include' => array(), + 'value' => array(), + 'active' => array(), + 'calculate_from' => array(), + ), + ), 'categories' => array( 'resource' => 'category', 'fields' => array( @@ -466,7 +444,8 @@ class ProductCore extends ObjectModel 'id' => array('required' => true), ) ), - 'tags' => array('resource' => 'tag', + 'tags' => array( + 'resource' => 'tag', 'fields' => array( 'id' => array('required' => true), ) @@ -484,13 +463,78 @@ class ProductCore extends ObjectModel ) ), 'extra_demands' => array( - 'setter' => false, 'resource' => 'extra_demand', + 'fields' => array( + 'id' => array('required' => true), + 'id_option' => array(), + 'price' => array(), + ) + ), + 'extra_services' => array( + 'resource' => 'extra_service', + 'fields' => array( + 'id' => array('validate' => 'isUnsignedId', 'required' => true), + 'price' => array('validate' => 'isPrice', 'required' => true), + 'id_tax_rules_group' => array('validate' => 'isUnsignedId') + ) + ), + ), + 'hidden_fields' => array( + 'booking_product', + 'service_product_type' + ), + ); + + protected $webserviceRoomTypeServicesParameters = array( + 'objectMethods' => array( + 'add' => 'addWsServices', + 'update' => 'updateWsServices', + 'delete' => 'deleteWs' + ), + 'objectsNodeName' => 'extra_services', + 'objectNodeName' => 'extra_service', + 'retrieveData' => array( + 'retrieveMethod' => 'getServicesObjectList' + ), + 'fields' => array( + 'id_manufacturer' => array('xlink_resource' => 'manufacturers'), + 'id_supplier' => array('xlink_resource' => 'suppliers'), + 'id_category_default' => array('xlink_resource' => 'categories'), + 'new' => array(), + 'cache_default_attribute' => array(), + 'id_default_image' => array( + 'getter' => 'getCoverWs', + 'setter' => 'setCoverWs', + 'xlink_resource' => array( + 'resourceName' => 'images', + 'subResourceName' => 'room_types' + ) + ), + 'id_tax_rules_group' => array('xlink_resource' => array('resourceName' => 'tax_rule_groups')), + 'position_in_category' => array('getter' => 'getWsPositionInCategory', 'setter' => 'setWsPositionInCategory'), + // 'manufacturer_name' => array( + // 'getter' => 'getWsManufacturerName', + // 'setter' => false + // ), + 'quantity' => array('getter' => false, 'setter' => false), + 'type' => array('getter' => 'getWsType', 'setter' => 'setWsType'), + ), + 'associations' => array( + 'categories' => array( + 'resource' => 'category', + 'fields' => array('id' => array('required' => true)) + ), + 'images' => array('resource' => 'image', 'fields' => array('id' => array())), + 'feature_prices' => array( + 'setter' => false, 'resource' => 'feature_price', 'fields' => array( 'id' => array('required' => true), ) ), ), + 'hidden_fields' => array( + 'booking_product', + ), ); const CUSTOMIZE_FILE = 0; @@ -5985,8 +6029,9 @@ class ProductCore extends ObjectModel return true; } - public function addWs($autodate = true, $null_values = false) + public function addWsRoomType($autodate = true, $null_values = false) { + $this->booking_product = 1; if ($success = $this->add($autodate, $null_values)) { if (Configuration::get('PS_SEARCH_INDEXATION')) { Search::indexation(false, $this->id); @@ -5998,19 +6043,56 @@ class ProductCore extends ObjectModel return $success; } - public function updateWs($null_values = false) + public function updateWsRoomType($null_values = false) { - $success = parent::update($null_values); - if ($success && Configuration::get('PS_SEARCH_INDEXATION')) { - Search::indexation(false, $this->id); + if (self::isBookingProduct($this->id)) { + $this->booking_product = 1; // Since there is nothing set from the API, it might get set as false + $success = parent::update($null_values); + if ($success && Configuration::get('PS_SEARCH_INDEXATION')) { + Search::indexation(false, $this->id); + } + + $this->setWsRoomTypeInfo(); + + Hook::exec('updateProduct', array('id_product' => (int)$this->id)); + return $success; } - $this->setWsRoomTypeInfo(); + WebserviceRequest::getInstance()->setError(500, Tools::displayError('Room type not found.'), 134); + + return false; + } + + public function addWsServices() + { + $this->booking_product = 0; + if ($success = $this->add()) { + if (Configuration::get('PS_SEARCH_INDEXATION')) { + Search::indexation(false, $this->id); + } + } - Hook::exec('updateProduct', array('id_product' => (int)$this->id)); return $success; } + public function updateWsServices($null_values = false) + { + if (!self::isBookingProduct($this->id)) { + $this->booking_product = 0; // Since there is nothing set from the API. + $success = parent::update($null_values); + if ($success && Configuration::get('PS_SEARCH_INDEXATION')) { + Search::indexation(false, $this->id); + } + + Hook::exec('updateProduct', array('id_product' => (int)$this->id)); + return $success; + } + + WebserviceRequest::getInstance()->setError(500, Tools::displayError('Service not found.'), 134); + + return false; + } + /** * For a given product, returns its real quantity * @@ -6370,6 +6452,20 @@ class ProductCore extends ObjectModel return $cache_id; } + public function getRoomTypesObjectList($sql_join, $sql_filter, $sql_sort, $sql_limit) + { + $sql_filter .= ' AND main.`booking_product` = 1'; + + return parent::getWebserviceObjectList($sql_join, $sql_filter, $sql_sort, $sql_limit); + } + + public function getServicesObjectList($sql_join, $sql_filter, $sql_sort, $sql_limit) + { + $sql_filter .= ' AND main.`booking_product` = 0'; + + return parent::getWebserviceObjectList($sql_join, $sql_filter, $sql_sort, $sql_limit); + } + public static function setPackStockType($id_product, $pack_stock_type) { return Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'product p @@ -6394,10 +6490,55 @@ class ProductCore extends ObjectModel public function getWsAdvancePayments() { return Db::getInstance()->executeS( - 'SELECT `id` FROM `'._DB_PREFIX_.'htl_advance_payment` WHERE `id_product` = '.(int)$this->id.' ORDER BY `id` ASC' + 'SELECT * FROM `'._DB_PREFIX_.'htl_advance_payment` WHERE `id_product` = '.(int)$this->id.' ORDER BY `id` ASC' ); } + public function setWsAdvancePayments($adv_payment) + { + $obj_adv_pmt = new HotelAdvancedPayment(); + if (!$adv_payment) { + if ($adv_pmt_info = $obj_adv_pmt->getIdAdvPaymentByIdProduct($this->id)) { + $obj_adv_pmt = new HotelAdvancedPayment((int) $adv_pmt_info['id']); + } + + $obj_adv_pmt->payment_type = ''; + $obj_adv_pmt->id_product = $this->id; + $obj_adv_pmt->value = ''; + $obj_adv_pmt->id_currency = ''; + $obj_adv_pmt->tax_include = ''; + $obj_adv_pmt->calculate_from = 0; + $obj_adv_pmt->active = 0; + + return $obj_adv_pmt->save(); + } else if (is_array($adv_payment) && count($adv_payment) == 1) { + $fields = array_shift($adv_payment); + if (!Validate::isLoadedObject($obj_adv_pmt = new HotelAdvancedPayment($fields['id']))) { + if ($adv_pmt_info = $obj_adv_pmt->getIdAdvPaymentByIdProduct($this->id)) { + $obj_adv_pmt = new HotelAdvancedPayment((int) $adv_pmt_info['id']); + } + } + + $obj_adv_pmt->id_product = $this->id; + $obj_adv_pmt->active = 1; + $obj_adv_pmt->payment_type = $fields['payment_type']; + $obj_adv_pmt->value = $fields['value']; + + if ($fields['payment_type'] == 2) { + $obj_adv_pmt->id_currency = (int) Configuration::get('PS_CURRENCY_DEFAULT'); + } else { + $obj_adv_pmt->id_currency = ''; + } + + $obj_adv_pmt->tax_include = $fields['tax_include']; + $obj_adv_pmt->calculate_from = $fields['calculate_from']; + + return $obj_adv_pmt->save(); + } + + return false; + } + public function getWsHotel() { return Db::getInstance()->getValue( @@ -6421,8 +6562,42 @@ class ProductCore extends ObjectModel public function getWsExtraDemands() { - return Db::getInstance()->getValue( - 'SELECT `id_global_demand` as `id` FROM `'._DB_PREFIX_.'htl_room_type_demand` WHERE `id_product` = '.(int)$this->id + $objHotelRoomTypeDemand = new HotelRoomTypeDemand(); + $selectedDemands = Db::getInstance()->executeS( + 'SELECT `id_global_demand` as `id` FROM `'._DB_PREFIX_.'htl_room_type_demand` + WHERE `id_product` = '.(int)$this->id + ); + $res = array(); + $demands = $objHotelRoomTypeDemand->getRoomTypeDemands($this->id); + if ($selectedDemands) { + foreach ($selectedDemands as $id_demand => $demand) { + $option['id'] = $demand['id']; + if (isset($demands[$demand['id']]['adv_option']) && count($demands[$demand['id']]['adv_option'])) { + foreach ($demands[$demand['id']]['adv_option'] as $id_option => $adv_option) { + $option['id_option'] = $id_option; + $option['price'] = $adv_option['price_tax_excl']; + $res[] = $option; + } + } else { + $option['id_option'] = false; + $option['price'] = $demand['price_tax_excl']; + $res[] = $option; + } + } + } + + return $res; + } + + public function getWsExtraServices() + { + // since the service prodcuts are also store in the product table, so we are using the RoomTypeServiceProduct class for the service products + return Db::getInstance()->executeS( + 'SELECT spp.`price`, spp.`id_tax_rules_group`, sp.`id_product` AS id + FROM `'._DB_PREFIX_.'htl_room_type_service_product` sp + LEFT JOIN `'._DB_PREFIX_.'htl_room_type_service_product_price` spp + ON (spp.`id_product` = sp.`id_product` AND spp.`id_element` = sp.`id_element` AND spp.`element_type` = sp.`element_type`) + WHERE sp.`id_element` = '.(int)$this->id ); } @@ -6476,4 +6651,107 @@ class ProductCore extends ObjectModel { return $this->delete(); } + + public function setWsExtraDemands($demands) + { + Db::getInstance()->execute(' + DELETE FROM `'._DB_PREFIX_.'htl_room_type_demand` + WHERE `id_product` = '.(int)$this->id + ); + Db::getInstance()->execute(' + DELETE FROM `'._DB_PREFIX_.'htl_room_type_demand_price` + WHERE `id_product` = '.(int)$this->id + ); + $objAdvOption = new HotelRoomTypeGlobalDemandAdvanceOption(); + $savedDemands = array(); + foreach ($demands as $globalDemand) { + if (Validate::isLoadedObject($objGlobalDemand = new HotelRoomTypeGlobalDemand($globalDemand['id']))) { + if (!isset($savedDemands[$globalDemand['id']])) { + $objRoomTypeDemand = new HotelRoomTypeDemand(); + $objRoomTypeDemand->id_product = $this->id; + $objRoomTypeDemand->id_global_demand = $objGlobalDemand->id; + $objRoomTypeDemand->save(); + $savedDemands[$globalDemand['id']] = $objRoomTypeDemand->id; + } + + if (isset($globalDemand['price'])) { + if ($objAdvOption->getGlobalDemandAdvanceOptions($objGlobalDemand->id) + && isset($globalDemand['id_option']) + && Validate::isLoadedObject($objAdvOption = new HotelRoomTypeGlobalDemandAdvanceOption($globalDemand['id_option'])) + ) { + if ($globalDemand['price'] != $objAdvOption->price) { + $objRoomTypeDemandPrice = new HotelRoomTypeDemandPrice(); + $objRoomTypeDemandPrice->id_product = $this->id; + $objRoomTypeDemandPrice->id_global_demand = $objGlobalDemand->id; + $objRoomTypeDemandPrice->id_option = $objAdvOption->id; + $objRoomTypeDemandPrice->price = $globalDemand['price']; + $objRoomTypeDemandPrice->save(); + } + } else { + // save selected demands prices for this room type + if ($objGlobalDemand->price != $globalDemand['price']) { + $objRoomTypeDemandPrice = new HotelRoomTypeDemandPrice(); + $objRoomTypeDemandPrice->id_product = $this->id; + $objRoomTypeDemandPrice->id_global_demand = $objGlobalDemand->id; + $objRoomTypeDemandPrice->id_option = 0; + $objRoomTypeDemandPrice->price = $globalDemand['price']; + $objRoomTypeDemandPrice->save(); + } + } + } + } + } + + return true; + } + + public function setWsExtraServices($services) + { + Db::getInstance()->execute(' + DELETE FROM `'._DB_PREFIX_.'htl_room_type_service_product` + WHERE `id_element` = '.(int)$this->id + ); + Db::getInstance()->execute(' + DELETE FROM `'._DB_PREFIX_.'htl_room_type_service_product_price` + WHERE `id_element` = '.(int)$this->id + ); + if ($this->booking_product) { + if ($allServiceProducts = $this->getServiceProducts()) { + $formttedServiceProducts = array(); + foreach ($allServiceProducts as $product) { + $formttedServiceProducts[$product['id_product']] = $product; + } + + $allServiceProducts = $formttedServiceProducts; + + foreach ($services as $service) { + if (isset($service['id']) + && Validate::isLoadedObject($objServiceProduct = new Product($service['id'])) + && !$objServiceProduct->booking_product + && isset($allServiceProducts[$objServiceProduct->id]) + ) { + $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); + $objRoomTypeServiceProduct->addRoomProductLink( + $objServiceProduct->id, + $this->id, + RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE + ); + + $objRoomTypeServiceProductPrice = new RoomTypeServiceProductPrice(); + $objRoomTypeServiceProductPrice->id_product = $objServiceProduct->id; + $objRoomTypeServiceProductPrice->id_element = $this->id; + $objRoomTypeServiceProductPrice->element_type = RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE; + $objRoomTypeServiceProductPrice->price = isset($service['price']) ? $service['price'] : $allServiceProducts[$objServiceProduct->id]['price']; + $objRoomTypeServiceProductPrice->id_tax_rules_group = isset($service['id_tax_rules_group']) ? $service['id_tax_rules_group'] : $allServiceProducts[$objServiceProduct->id]['id_tax_rules_group']; + $objRoomTypeServiceProductPrice->save(); + } + } + } + } else { + return false; + } + + return true; + } + } diff --git a/classes/TranslatedConfiguration.php b/classes/TranslatedConfiguration.php index 43ba573c1..1e1d68358 100644 --- a/classes/TranslatedConfiguration.php +++ b/classes/TranslatedConfiguration.php @@ -46,7 +46,7 @@ class TranslatedConfigurationCore extends Configuration 'id_shop' => array('type' => self::TYPE_NOTHING, 'validate' => 'isUnsignedId'), 'value' => array('type' => self::TYPE_STRING, 'lang' => true), 'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'), - 'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'), + 'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'lang' => true), ), ); diff --git a/classes/webservice/WebserviceOutputBuilder.php b/classes/webservice/WebserviceOutputBuilder.php index e8e793f0a..000e42f6b 100644 --- a/classes/webservice/WebserviceOutputBuilder.php +++ b/classes/webservice/WebserviceOutputBuilder.php @@ -632,6 +632,7 @@ class WebserviceOutputBuilderCore $value = $object_assoc; } if (empty($fields_assoc)) { + $value['id'] = isset($value['id']) ? $value['id'] : ''; $fields_assoc = array(array('id' => $value['id'])); } $output_details .= $this->renderFlatAssociation($object, $depth, $assoc_name, $association['resource'], $fields_assoc, $value, $parent_details); @@ -680,7 +681,7 @@ class WebserviceOutputBuilderCore $field['sqlId'] = 'id'; $field['value'] = isset($object_assoc['id']) ? $object_assoc['id'] : null; } elseif (!isset($field['sqlId'])) { - $field['sqlId'] = $field_name; + $field['sqlId'] = $field_name ? $field_name : 'id'; $field['value'] = isset($object_assoc[$field_name]) ? $object_assoc[$field_name] : null; } @@ -829,4 +830,10 @@ class WebserviceOutputBuilderCore { $this->fieldsToDisplay = $fields; } + + public static function setWsParams($class, $params) + { + WebserviceOutputBuilder::$_cache_ws_parameters[$class] = $params; + } + } diff --git a/classes/webservice/WebserviceOutputXML.php b/classes/webservice/WebserviceOutputXML.php index effbd6ee2..476d9e60d 100644 --- a/classes/webservice/WebserviceOutputXML.php +++ b/classes/webservice/WebserviceOutputXML.php @@ -199,7 +199,7 @@ class WebserviceOutputXMLCore implements WebserviceOutputInterface if (array_key_exists('setter', $params['associations'][$assoc_name]) && !$params['associations'][$assoc_name]['setter']) { $more .= ' readOnly="true"'; } - $more .= ' nodeType="'.$params['associations'][$assoc_name]['resource'].'"'; + $more .= (isset($params['associations'][$assoc_name]['resource'])? ' nodeType="'.$params['associations'][$assoc_name]['resource'].'"' : ' '); if (isset($params['associations'][$assoc_name]['virtual_entity']) && $params['associations'][$assoc_name]['virtual_entity']) { $more .= ' virtualEntity="true"'; } else { diff --git a/classes/webservice/WebserviceRequest.php b/classes/webservice/WebserviceRequest.php index 2d35c03a2..4fa67c4c5 100644 --- a/classes/webservice/WebserviceRequest.php +++ b/classes/webservice/WebserviceRequest.php @@ -289,7 +289,7 @@ class WebserviceRequestCore 'room_type_feature_values' => array('description' => 'The product feature values','class' => 'FeatureValue'), 'room_type_options' => array('description' => 'The product options','class' => 'AttributeGroup'), 'room_type_option_values' => array('description' => 'The product options value','class' => 'Attribute'), - 'room_types' => array('description' => 'The room types','class' => 'Product'), + 'room_types' => array('description' => 'The room types','class' => 'Product', 'parameters_attribute' => 'webserviceRoomTypeParameters'), 'states' => array('description' => 'The available states of countries','class' => 'State'), 'stores' => array('description' => 'The stores', 'class' => 'Store'), 'suppliers' => array('description' => 'The product suppliers','class' => 'Supplier'), @@ -515,6 +515,8 @@ class WebserviceRequestCore } else { $this->resourceConfiguration = $object->getWebserviceParameters(); } + + WebserviceOutputBuilder::setWsParams($url_resource['class'], $this->resourceConfiguration); } $success = false; // execute the action diff --git a/classes/webservice/WebserviceSpecificManagementImages.php b/classes/webservice/WebserviceSpecificManagementImages.php index a72e615ec..f22592428 100644 --- a/classes/webservice/WebserviceSpecificManagementImages.php +++ b/classes/webservice/WebserviceSpecificManagementImages.php @@ -51,6 +51,7 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage 'room_types' => array(), 'hotels' => array(), 'categories' => array(), + 'extra_service' => array(), // 'manufacturers' => array(), // 'suppliers' => array(), // 'stores' => array(), @@ -286,7 +287,9 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage $this->imageType = $this->wsObject->urlSegment[1]; // if image type requested is room_types then process products images - if ($this->imageType == 'room_types') { + if ($this->imageType == 'room_types' + || $this->imageType == 'extra_services' + ) { $this->imageType = 'products'; } diff --git a/modules/hotelreservationsystem/classes/HotelBranchInformation.php b/modules/hotelreservationsystem/classes/HotelBranchInformation.php index 92b7bbe1d..e4f8208e1 100644 --- a/modules/hotelreservationsystem/classes/HotelBranchInformation.php +++ b/modules/hotelreservationsystem/classes/HotelBranchInformation.php @@ -71,10 +71,10 @@ class HotelBranchInformation extends ObjectModel public $zipcode; public $address; public $phone; - public $use_global_max_order_date; - public $max_order_date; - public $use_global_preparation_time; - public $preparation_time; + public $use_global_max_order_date = 1; + public $max_order_date = '0000-00-00'; + public $use_global_preparation_time = 1; + public $preparation_time = '0000-00-00'; protected $webserviceParameters = array( 'objectsNodeName' => 'hotels', @@ -140,7 +140,7 @@ class HotelBranchInformation extends ObjectModel $this->moduleInstance = Module::getInstanceByName('hotelreservationsystem'); parent::__construct($id, $id_lang, $id_shop); - $this->use_global_max_order_date = $this->max_order_date = $this->use_global_preparation_time = $this->preparation_time = $this->id_country = $this->id_state = $this->city = $this->zipcode = $this->address = $this->phone = null; + $this->id_country = $this->id_state = $this->city = $this->zipcode = $this->address = $this->phone = null; if ($id) { if ($hotelAddress = $this->getAddress($id)) { $this->id_country = $hotelAddress['id_country']; @@ -1015,18 +1015,26 @@ class HotelBranchInformation extends ObjectModel } $hotelName = $this->hotel_name[Configuration::get('PS_LANG_DEFAULT')]; - $hotelName = preg_replace('/[0-9!<>,;"?=+()@#°{}_$%:]*/u', '', $hotelName); - + $hotelName = trim(preg_replace('/[0-9!<>,;?=+()@#"°{}_$%:]*$/u', '', $hotelName)); $objAddress->id_hotel = $this->id; $objAddress->id_country = $this->id_country; $objAddress->id_state = $this->id_state; $objAddress->city = $this->city; $objAddress->postcode = $this->zipcode; - $objAddress->lastname = $hotelName; - $objAddress->firstname = $hotelName; - $objAddress->alias = $hotelName; $objAddress->address1 = $this->address; $objAddress->phone = $this->phone; + $objAddress->alias = substr($hotelName, 0, 32); + $addressFirstName = $hotelName; + $addressLastName = $hotelName; + if (Tools::strlen($hotelName) > 32) { + $addressFirstName = trim(substr($hotelName, 0, 32)); + if (!$addressLastName = trim(substr($hotelName, 32, 32))) { + $addressLastName = $addressFirstName; + } + } + + $objAddress->firstname = $addressFirstName; + $objAddress->lastname = $addressLastName; return $objAddress->save(); } @@ -1061,186 +1069,96 @@ class HotelBranchInformation extends ObjectModel if (isset($this->webservice_validation) && $this->webservice_validation) { if ($this->rating < 1 || $this->rating > 5) { $message = Tools::displayError('Rating must be between 1 and 5.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - - if (!strtotime($this->check_in)) { + } else if (!strtotime($this->check_in)) { $message = Tools::displayError('Check In time is invalid.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - if (!strtotime($this->check_out)) { + } else if (!strtotime($this->check_out)) { $message = Tools::displayError('Check out time is invalid.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - - if ($this->check_in && $this->check_out && strtotime($this->check_out) >= strtotime($this->check_in)) { + } else if ($this->check_in && $this->check_out && strtotime($this->check_out) >= strtotime($this->check_in)) { $message = Tools::displayError('Check Out time must be before Check In time.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - if (!$this->phone) { + } else if (!trim($this->phone)) { $message = Tools::displayError('Phone number is required field.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } elseif (!Validate::isPhoneNumber($this->phone)) { + } else if (!Validate::isPhoneNumber($this->phone)) { $message = Tools::displayError('Please enter a valid phone number.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - if ($this->address == '') { + } else if (trim($this->address) == '') { $message = Tools::displayError('Address is required field.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } elseif (!Validate::isAddress($this->address)) { + } else if (!Validate::isAddress($this->address)) { $message = Tools::displayError('Address is invalid.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - - if (!$this->id_country) { + } else if (!$this->id_country) { $message = Tools::displayError('Country is required field.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } else { - if (Validate::isLoadedObject($objCountry = new Country($this->id_country))) { - $statesbycountry = State::getStatesByIdCountry($this->id_country); - /*If selected country has states only the validate state field*/ - if ($this->id_state) { - $objState = new State($this->id_state); - if ($objState->id_country != $this->id_country) { - $message = Tools::displayError('State is invalid.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - } else { - if ($statesbycountry) { - $message = Tools::displayError('State is required field.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - } - /* Check zip code format */ - if (empty($this->zipcode) && $objCountry->need_zip_code) { - $message = Tools::displayError('A Zip / Postal code is required.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } elseif ($objCountry->zip_code_format && !$objCountry->checkZipCode($this->zipcode)) { - $message = sprintf(Tools::displayError('The Zip/Postal code you have entered is invalid. It must follow this format: %s'), str_replace('C', $objCountry->iso_code, str_replace('N', '0', str_replace('L', 'A', $objCountry->zip_code_format)))); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } elseif ($this->zipcode && !Validate::isPostCode($this->zipcode)) { - $message = Tools::displayError('The Zip / Postal code is invalid.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - } else { - $message = Tools::displayError('country is invalid.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - } - - if ($this->city == '') { + } else if ($this->city == '') { $message = Tools::displayError('City is required field.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } elseif (!Validate::isCityName($this->city)) { + } else if (!Validate::isCityName($this->city)) { $message = Tools::displayError('Enter a Valid City Name.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - - if (!Validate::isBool($this->use_global_max_order_date)) { + } else if (!Validate::isBool($this->use_global_max_order_date)) { $message = Tools::displayError('invalid value for use_global_max_order_date.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - - if (!Validate::isBool($this->use_global_preparation_time)) { + } else if (!Validate::isBool($this->use_global_preparation_time)) { $message = Tools::displayError('invalid value for use_global_preparation_time.'); + } else if (!$this->use_global_max_order_date && $this->max_order_date == '') { + $message = Tools::displayError('Maximum date to book a room is required.'); + } else if (!$this->use_global_max_order_date && !Validate::isDate($this->max_order_date)) { + $message = Tools::displayError('Maximum date to book a room is invalid.'); + } else if (!$this->use_global_max_order_date + && ($maxOrderDateFormatted = date('Y-m-d', strtotime($this->max_order_date))) + && strtotime($maxOrderDateFormatted) < strtotime(date('Y-m-d')) + ) { + $message = Tools::displayError('Maximum Global Date to book a room can not be a past date. Please use a future date.'); + } else if (!$this->use_global_preparation_time && $this->preparation_time === '') { + $message = Tools::displayError('Minimum booking offset is a required.'); + } else if (!$this->use_global_preparation_time && $this->preparation_time !== '0' && !Validate::isUnsignedInt($this->preparation_time)) { + $message = Tools::displayError('Minimum booking offset is invalid.'); + } else if (!Validate::isLoadedObject($objCountry = new Country($this->id_country))) { + $message = Tools::displayError('country is invalid.'); + } else if ($this->id_state + && (!Validate::isLoadedObject($objState = new State($this->id_state)) || $objState->id_country != $this->id_country) + ) { + $message = Tools::displayError('State is invalid.'); + } else if (State::getStatesByIdCountry($this->id_country) && !$this->id_state) { + $message = Tools::displayError('State is required field.'); + } else if (empty($this->zipcode) && $objCountry->need_zip_code) { + $message = Tools::displayError('A Zip / Postal code is required.'); + } else if ($objCountry->zip_code_format && !$objCountry->checkZipCode($this->zipcode)) { + $message = sprintf(Tools::displayError('The Zip/Postal code you have entered is invalid. It must follow this format: %s'), str_replace('C', $objCountry->iso_code, str_replace('N', '0', str_replace('L', 'A', $objCountry->zip_code_format)))); + } else if ($this->zipcode && !Validate::isPostCode($this->zipcode)) { + $message = Tools::displayError('The Zip / Postal code is invalid.'); + } else { + if ($addressValidation = Address::getValidationRules('Address')) { + foreach ($addressValidation['size'] as $field => $maxSize) { + if ('phone' == $field && Tools::strlen($this->phone) > $maxSize) { + $message = sprintf( + Tools::displayError('The Hotel phone number is too long (%1$d chars max).'), + $maxSize + ); + break; + } else if ('address1' == $field && Tools::strlen($this->address) > $maxSize) { + $message = sprintf( + Tools::displayError('The Hotel address is too long (%1$d chars max).'), + $maxSize + ); + break; + } else if ('city' == $field && Tools::strlen($this->city) > $maxSize) { + $message = sprintf( + Tools::displayError('The Hotel city name is too long (%1$d chars max).'), + $maxSize + ); + break; + } else if ('postcode' == $field && Tools::strlen($this->zipcode) > $maxSize) { + $message = sprintf( + Tools::displayError('The Hotel zip code is too long (%1$d chars max).'), + $maxSize + ); + break; + } + } + } + } + + if (isset($message) && $message != '') { if ($die) { throw new PrestaShopException($message); } + return $error_return ? $message : false; } - - if (!$this->use_global_max_order_date) { - $maxOrderDateFormatted = date('Y-m-d', strtotime($this->max_order_date)); - if ($this->max_order_date == '') { - $message = Tools::displayError('Maximum date to book a room is required.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } elseif (!Validate::isDate($this->max_order_date)) { - $message = Tools::displayError('Maximum date to book a room is invalid.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } elseif (strtotime($maxOrderDateFormatted) < strtotime(date('Y-m-d'))) { - $message = Tools::displayError('Maximum Global Date to book a room can not be a past date. Please use a future date.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - } - - if (!$this->use_global_preparation_time) { - if ($this->preparation_time === '') { - $message = Tools::displayError('Minimum booking offset is a required.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } elseif ($this->preparation_time !== '0' && !Validate::isUnsignedInt($this->preparation_time)) { - $message = Tools::displayError('Minimum booking offset is invalid.'); - if ($die) { - throw new PrestaShopException($message); - } - return $error_return ? $message : false; - } - } } return parent::validateFields($die, $error_return); @@ -1272,6 +1190,11 @@ class HotelBranchInformation extends ObjectModel } $objCountry = new Country(); $countryName = $objCountry->getNameById($idLang, $this->id_country); + $linkRewriteArray = array(); + foreach (Language::getLanguages(true) as $lang) { + $linkRewriteArray[$lang['id_lang']] = Tools::link_rewrite($this->hotel_name[$lang['id_lang']]); + } + if ($catCountry = $this->addCategory($countryName, false, $groupIds)) { if ($this->id_state) { $objState = new State(); @@ -1284,8 +1207,15 @@ class HotelBranchInformation extends ObjectModel if ($catState) { if ($catCity = $this->addCategory($this->city, $catState, $groupIds)) { $hotelCatName = $this->hotel_name[Configuration::get('PS_LANG_DEFAULT')]; - if ($catHotel = $this->addCategory( - $hotelCatName, $catCity, $groupIds, 1, $this->id + if ($this->id_category) { + $objCategory = new Category($this->id_category); + $objCategory->name = $this->hotel_name; + $objCategory->link_rewrite = $linkRewriteArray; + $objCategory->id_parent = $catCity; + $objCategory->save(); + Category::regenerateEntireNtree(); + } else if ($catHotel = $this->addCategory( + $hotelCatName, $catCity, $groupIds, 1, $this->id, $linkRewriteArray )) { $this->id_category = $catHotel; $this->save(); diff --git a/modules/hotelreservationsystem/classes/HotelCartBookingData.php b/modules/hotelreservationsystem/classes/HotelCartBookingData.php index df5c6c616..c2982cd15 100644 --- a/modules/hotelreservationsystem/classes/HotelCartBookingData.php +++ b/modules/hotelreservationsystem/classes/HotelCartBookingData.php @@ -1875,13 +1875,31 @@ class HotelCartBookingData extends ObjectModel } } + public function update($null_values = false) + { + if (!$this->extra_demands) { + $this->extra_demands = json_encode(array()); + } + + return parent::update($null_values); + } + + public function add($auto_date = true, $null_values = false) + { + if (!$this->extra_demands) { + $this->extra_demands = json_encode(array()); + } + + return parent::add($null_values); + } + // Webservice :: get extra demands for the cart booking public function getWsExtraDemands() { $extraDemands = json_decode($this->extra_demands, true); - if (count($extraDemands)) { - foreach ($extraDemands as &$demnad) { - $demnad['id'] = $demnad['id_global_demand']; + if ($extraDemands) { + foreach ($extraDemands as &$demand) { + $demand['id'] = $demand['id_global_demand']; } return $extraDemands; } diff --git a/modules/hotelreservationsystem/classes/HotelRoomInformation.php b/modules/hotelreservationsystem/classes/HotelRoomInformation.php index 26ffbbb5d..f3c2b05af 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomInformation.php +++ b/modules/hotelreservationsystem/classes/HotelRoomInformation.php @@ -285,7 +285,10 @@ class HotelRoomInformation extends ObjectModel if ($roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($this->id_product)) { $this->id_hotel = $roomTypeInfo['id_hotel']; return $this->add($autodate, $null_values); + } else { + WebserviceRequest::getInstance()->setError(400, 'Invalid id product', 134); } + return false; } @@ -296,7 +299,10 @@ class HotelRoomInformation extends ObjectModel if ($roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($this->id_product)) { $this->id_hotel = $roomTypeInfo['id_hotel']; return $this->update($null_values); + } else { + WebserviceRequest::getInstance()->setError(400, 'Invalid id product', 134); } + return false; } diff --git a/modules/hotelreservationsystem/classes/HotelRoomType.php b/modules/hotelreservationsystem/classes/HotelRoomType.php index 6c0a80fd4..bff9e8adf 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomType.php +++ b/modules/hotelreservationsystem/classes/HotelRoomType.php @@ -419,4 +419,24 @@ class HotelRoomType extends ObjectModel 'SELECT `id` FROM `'._DB_PREFIX_.'htl_room_information` WHERE `id_product` = '.(int)$this->id_product.' ORDER BY `id` ASC' ); } + + public function validateFields($die = true, $error_return = false) + { + if (isset($this->webservice_validation) && $this->webservice_validation) { + if (!(int) $this->id_product || !Validate::isLoadedObject(new Product((int) $this->id_product))) { + $message = Tools::displayError('Invalid Id product.'); + } else if (!(int)$this->id_hote || !Validate::isLoadedObject(new HotelBranchInformation((int) $this->id_hotel))) { + $message = Tools::displayError('Invalid Id hotel.'); + } + + if (isset($message)) { + if ($die) { + throw new PrestaShopException($message); + } + return $error_return ? $message : false; + } + } + return parent::validateFields($die, $error_return); + } + } diff --git a/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php b/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php index c4b0a6bc3..b4eb04281 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php +++ b/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php @@ -277,7 +277,7 @@ class HotelRoomTypeFeaturePricing extends ObjectModel $date_from = date('Y-m-d', strtotime($date_from)); $date_to = date('Y-m-d', strtotime($date_to)); for($date = $date_from; $date < $date_to; $date = date('Y-m-d', strtotime('+1 day', strtotime($date)))) { - $currentDate = date('Y-m-d', $date); + $currentDate = date('Y-m-d', strtotime($date)); $nextDayDate = date('Y-m-d', strtotime('+1 day', strtotime($currentDate))); if ($id_product) { $bookingParams = array( diff --git a/modules/hotelreservationsystem/classes/WebserviceSpecificManagementQlo.php b/modules/hotelreservationsystem/classes/WebserviceSpecificManagementQlo.php index 11280b267..d048a24a8 100644 --- a/modules/hotelreservationsystem/classes/WebserviceSpecificManagementQlo.php +++ b/modules/hotelreservationsystem/classes/WebserviceSpecificManagementQlo.php @@ -107,11 +107,15 @@ class WebserviceSpecificManagementQlo implements WebserviceSpecificManagementInt if (!isset($this->wsObject->urlFragments['id_hotel']) ) { throw new WebserviceException('You have to set \'id_hotel\', \'date_from\' and \'date_to\'parameters to get a result', array(100, 400)); } - $kwargs = [ + $dateFrom = isset($this->wsObject->urlFragments['date_from']) ? $this->wsObject->urlFragments['date_from'] : date('Y-m-d'); + $dateTo = isset($this->wsObject->urlFragments['date_to']) ? $this->wsObject->urlFragments['date_to'] : date('Y-m-d', strtotime($dateFrom.' + 1 day')); + $kwargs = array( 'idHotel' => $this->wsObject->urlFragments['id_hotel'], - 'dateFrom' => $this->wsObject->urlFragments['date_from'], - 'dateTo' => $this->wsObject->urlFragments['date_to'], - ]; + 'dateFrom' => $dateFrom, + 'dateTo' => $dateTo, + 'idRoomType' => isset($this->wsObject->urlFragments['id_room_type']) ? $this->wsObject->urlFragments['id_room_type'] : 0, + ); + $this->output .= $objQloRoomType->getRoomRates($kwargs); break; diff --git a/modules/hotelreservationsystem/hotelreservationsystem.php b/modules/hotelreservationsystem/hotelreservationsystem.php index f5294a76d..67be04e32 100644 --- a/modules/hotelreservationsystem/hotelreservationsystem.php +++ b/modules/hotelreservationsystem/hotelreservationsystem.php @@ -54,6 +54,7 @@ class HotelReservationSystem extends Module 'bookings' => array('description' => 'Order bookings', 'class' => 'HotelBookingDetail'), 'booking_extra_demands' => array('description' => 'Booking extra demands', 'class' => 'HotelBookingDemands'), 'extra_demands' => array('description' => 'Extra demands', 'class' => 'HotelRoomTypeGlobalDemand'), + 'extra_services' => array('description' => 'Extra services', 'class' => 'Product', 'parameters_attribute' => 'webserviceRoomTypeServicesParameters'), 'demand_advance_options' => array('description' => 'Extra demand advance options', 'class' => 'HotelRoomTypeGlobalDemandAdvanceOption'), 'hotel_ari' => array('description' => 'Search availability, rates and inventory', 'specific_management' => true), 'qlo' => array('description' => 'qlo API', 'specific_management' => true), From d61c7b1e38f4ea3e4b112a10801ba22ab8176d8b Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 7 Aug 2024 12:48:38 +0530 Subject: [PATCH 103/169] Fixed issue raised in confirm modal --- .../cart_rules/modal_confirm_bulk_delete.tpl | 3 +- .../cart_rules/modal_confirm_delete.tpl | 2 +- .../admin/AdminCartRulesController.php | 6 +- js/admin/cart-rules.js | 55 +++++++++---------- 4 files changed, 32 insertions(+), 34 deletions(-) diff --git a/admin/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl b/admin/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl index 6e77c7386..2ad7d28c5 100644 --- a/admin/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl +++ b/admin/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl @@ -20,8 +20,7 @@ {if isset($cartRules)} -

    {l s='The following cart rules in your selection were created dynamically from refunds or credit slips. Please confirm if you also intend - to delete these cart rules.'}

    +

    {l s='The following cart rules in your selection were created dynamically from refunds or credit slips. Please confirm if you also intend to delete these cart rules?'}

    {else}

    {l s='Are you sure, you want to delete the selected cart rules?'}

    diff --git a/admin/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl b/admin/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl index 00a54b253..1333d0b13 100644 --- a/admin/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl +++ b/admin/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl @@ -18,7 +18,7 @@ *} {if isset($cartRule)} diff --git a/controllers/admin/AdminCartRulesController.php b/controllers/admin/AdminCartRulesController.php index 2622067b8..f81b4646f 100644 --- a/controllers/admin/AdminCartRulesController.php +++ b/controllers/admin/AdminCartRulesController.php @@ -144,7 +144,7 @@ class AdminCartRulesControllerCore extends AdminController echo json_encode(array('html' => $html, 'next_link' => $next_link)); } - public function ajaxProcessInitRuleDeleteModal() + public function ajaxProcessInitCartRuleDeleteModal() { $response = array('success' => false); $modalConfirmDelete = $this->createTemplate('modal_confirm_delete.tpl'); @@ -195,11 +195,11 @@ class AdminCartRulesControllerCore extends AdminController die(Tools::jsonEncode($response)); } - public function ajaxProcessInitRuleBulkDeleteModal() + public function ajaxProcessInitCartRuleBulkDeleteModal() { $response = array('success' => false); $modalConfirmDelete = $this->createTemplate('modal_confirm_bulk_delete.tpl'); - if ($idCartRules = Tools::getValue('id_cart_rule')) { + if ($idCartRules = Tools::getValue('id_cart_rules')) { $toConfirm = array(); foreach($idCartRules as $idCartRule) { if ($ruleDetails = CartRule::getGeneratedBy($idCartRule)) { diff --git a/js/admin/cart-rules.js b/js/admin/cart-rules.js index 8dad3bd4f..7a5bef5bd 100644 --- a/js/admin/cart-rules.js +++ b/js/admin/cart-rules.js @@ -46,7 +46,7 @@ $(document).ready(function() { cache: false, data: { ajax: true, - action: 'InitRuleDeleteModal', + action: 'initCartRuleDeleteModal', id_cart_rule: id_cart_rule }, success: function(result) { @@ -60,12 +60,7 @@ $(document).ready(function() { $('#moduleConfirmDelete .btn-close').click(() => { resolve(false); }); - } else { - resolve(true); } - }, - complete: function() { - $(".loading_overlay").hide(); } }); }); @@ -86,8 +81,8 @@ function confirmDeleteBulk(form) cache: false, data: { ajax: true, - action: 'InitRuleBulkDeleteModal', - id_cart_rule: id_cart_rules + action: 'initCartRuleBulkDeleteModal', + id_cart_rules: id_cart_rules }, success: function(result) { if (result.success && result.confirm_delete) { @@ -100,39 +95,43 @@ function confirmDeleteBulk(form) $('#moduleConfirmDelete .btn-close').click(() => { resolve(false); }); - } else { - resolve(true); } }, - complete: function() { - $(".loading_overlay").hide(); - } }); }); } function sendBulkAction(form, action) { - confirmDeleteBulk(form).then((toDelete) => { - if (toDelete) { - String.prototype.splice = function(index, remove, string) { - return (this.slice(0, index) + string + this.slice(index + Math.abs(remove))); - }; + if (action.search('delete')!= -1) { + confirmDeleteBulk(form).then((toDelete) => { + if (toDelete) { + submitBulkActionForm(form, action); + } + }); + } else { + submitBulkActionForm(form, action); + } +} - var form_action = $(form).attr('action'); +function submitBulkActionForm(form, action) +{ + String.prototype.splice = function(index, remove, string) { + return (this.slice(0, index) + string + this.slice(index + Math.abs(remove))); + }; - if (form_action.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ') == '') - return false; + var form_action = $(form).attr('action'); - if (form_action.indexOf('#') == -1) - $(form).attr('action', form_action + '&' + action); - else - $(form).attr('action', form_action.splice(form_action.lastIndexOf('&'), 0, '&' + action)); + if (form_action.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ') == '') + return false; + + if (form_action.indexOf('#') == -1) + $(form).attr('action', form_action + '&' + action); + else + $(form).attr('action', form_action.splice(form_action.lastIndexOf('&'), 0, '&' + action)); - $(form).submit(); - } - }); + $(form).submit(); } $(document).on('change', '.cart_rule_to_delete', function() { From 4bc7cf7f13c56a208fbde2744e3cfd2c7c37f509 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 7 Aug 2024 12:58:08 +0530 Subject: [PATCH 104/169] text changes --- modules/qlocleaner/qlocleaner.php | 6 +++--- modules/qlohotelreview/qlohotelreview.php | 2 +- modules/wkhotelroom/wkhotelroom.php | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/qlocleaner/qlocleaner.php b/modules/qlocleaner/qlocleaner.php index 4ef3a564c..0bc30a76b 100644 --- a/modules/qlocleaner/qlocleaner.php +++ b/modules/qlocleaner/qlocleaner.php @@ -66,7 +66,7 @@ class QloCleaner extends Module && Tools::getValue('configure') == $this->name ) { Media::addJsDef(array( - 'confirm_txt' => $this->l('Are you sure, you want to perform the following operation?') + 'confirm_txt' => $this->l('Are you sure, you want to perform the following action?') )); $this->context->controller->addJS($this->_path.'views/js/qlocleaner_config.js'); } @@ -97,11 +97,11 @@ class QloCleaner extends Module $html .= $this->displayConfirmation($conf); } elseif (Tools::getValue('submitTruncateCatalog') && Tools::getValue('checkTruncateCatalog')) { self::truncate('catalog'); - Hook::exec('actionCleanData', array('method' => 'truncateCatalog')); + Hook::exec('actionCleanData', array('method' => 'catalog')); $html .= $this->displayConfirmation($this->l('Catalog truncated successfuly, please run functional Integrity constraints to clean the database.')); } elseif (Tools::getValue('submitTruncateSales') && Tools::getValue('checkTruncateSales')) { self::truncate('sales'); - Hook::exec('actionCleanData', array('method' => 'truncateSales')); + Hook::exec('actionCleanData', array('method' => 'sales')); $html .= $this->displayConfirmation($this->l('Orders and customers truncated successfuly, please run functional Integrity constraints to clean the database')); } diff --git a/modules/qlohotelreview/qlohotelreview.php b/modules/qlohotelreview/qlohotelreview.php index c3b90987a..e20a25ee1 100644 --- a/modules/qlohotelreview/qlohotelreview.php +++ b/modules/qlohotelreview/qlohotelreview.php @@ -282,7 +282,7 @@ class QloHotelReview extends Module public function hookActionCleanData($params) { - if ($params['method'] == 'truncateCatalog' || $params['method'] == 'truncateSales') { + if ($params['method'] == 'catalog' || $params['method'] == 'sales') { QhrHotelReviewDb::truncateUserData(); } } diff --git a/modules/wkhotelroom/wkhotelroom.php b/modules/wkhotelroom/wkhotelroom.php index b28c2d028..ac5bbcc5c 100644 --- a/modules/wkhotelroom/wkhotelroom.php +++ b/modules/wkhotelroom/wkhotelroom.php @@ -143,7 +143,7 @@ class WkHotelRoom extends Module public function hookActionCleanData($params) { - if ($params['method'] == 'truncateCatalog') { + if ($params['method'] == 'catalog') { WkHotelRoomDb::truncateTables(); } } From 83e6e66f9a396f81f42f5f9ff013e4d0f12ce997 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 7 Aug 2024 13:10:11 +0530 Subject: [PATCH 105/169] updated check file method --- controllers/admin/AdminTranslationsController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/admin/AdminTranslationsController.php b/controllers/admin/AdminTranslationsController.php index 5019f192d..e91e3cbc3 100644 --- a/controllers/admin/AdminTranslationsController.php +++ b/controllers/admin/AdminTranslationsController.php @@ -2995,7 +2995,7 @@ class AdminTranslationsControllerCore extends AdminController $tabs_array[$prefix_key][$key]['use_sprintf'] = Translate::checkIfKeyUseSprintf($key); } } - } elseif (Tools::file_exists_cache($file_path) && preg_match('/^(.*)\.php$/', $file_path)) { + } elseif (Tools::file_exists_cache($file_path) && is_file($file_path)) { $tabs_array = $this->parsePdfClass($file_path, 'php', $GLOBALS[$name_var], $prefix_key, $tabs_array, $missing_translations_pdf); } } From da8c2097e7d99d81639c97d122b4db5635eeaf14 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 7 Aug 2024 13:14:33 +0530 Subject: [PATCH 106/169] revert index file wrong changes --- cache/smarty/cache/index.php | 4 ++-- cache/smarty/compile/index.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cache/smarty/cache/index.php b/cache/smarty/cache/index.php index ffdebb428..369a7a3f3 100644 --- a/cache/smarty/cache/index.php +++ b/cache/smarty/cache/index.php @@ -1,6 +1,6 @@ -* @copyright 2007-2015 PrestaShop SA +* @copyright 2007-2014 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 ffdebb428..369a7a3f3 100644 --- a/cache/smarty/compile/index.php +++ b/cache/smarty/compile/index.php @@ -1,6 +1,6 @@ -* @copyright 2007-2015 PrestaShop SA +* @copyright 2007-2014 PrestaShop SA * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ From b3652d054fa4a0363c896adfbd13203370721a57 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 7 Aug 2024 17:02:12 +0530 Subject: [PATCH 107/169] update file licence --- modules/qlocleaner/views/js/index.php | 12 ++++++------ modules/qlocleaner/views/js/qlocleaner_config.js | 13 ++++++------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/modules/qlocleaner/views/js/index.php b/modules/qlocleaner/views/js/index.php index 5d9e49caf..16488e369 100644 --- a/modules/qlocleaner/views/js/index.php +++ b/modules/qlocleaner/views/js/index.php @@ -1,21 +1,21 @@ +* @copyright Since 2010 Webkul IN +* @license https://store.webkul.com/license.html */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlocleaner/views/js/qlocleaner_config.js b/modules/qlocleaner/views/js/qlocleaner_config.js index d2a0b913a..ebd5ce3f4 100644 --- a/modules/qlocleaner/views/js/qlocleaner_config.js +++ b/modules/qlocleaner/views/js/qlocleaner_config.js @@ -1,23 +1,22 @@ /** -* 2010-2024 Webkul. +* Since 2010 Webkul. * * NOTICE OF LICENSE * * All right is reserved, -* Please go through LICENSE.txt file inside our module +* Please go through this link for complete license : https://store.webkul.com/license.html * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade this module to newer * versions in the future. If you wish to customize this module for your -* needs please refer to CustomizationPolicy.txt file inside our module for more information. +* needs please refer to https://store.webkul.com/customisation-guidelines/ for more information. * -* @author Webkul IN -* @copyright 2010-2024 Webkul IN -* @license LICENSE.txt +* @author Webkul IN +* @copyright Since 2010 Webkul IN +* @license https://store.webkul.com/license.html */ - $(document).ready(function () { $('#module_form').on('submit', function() { return confirm(confirm_txt); From 8b2fa2546ea88896a10fd8af8f2244bed3740722 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Thu, 8 Aug 2024 13:08:29 +0530 Subject: [PATCH 108/169] Updated category tree render node function --- .../default/template/helpers/tree/tree_node_folder_checkbox.tpl | 2 +- .../default/template/helpers/tree/tree_node_folder_radio.tpl | 2 +- classes/helper/HelperTreeCategories.php | 2 +- classes/helper/HelperTreeShops.php | 2 +- config/defines.inc.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/admin/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl b/admin/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl index f4a584afa..6358d19ea 100644 --- a/admin/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl +++ b/admin/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl @@ -24,7 +24,7 @@ *}
  • - {if $selectable} + {if !isset($selectable) || $selectable} {/if} diff --git a/admin/themes/default/template/helpers/tree/tree_node_folder_radio.tpl b/admin/themes/default/template/helpers/tree/tree_node_folder_radio.tpl index c0f7945d1..0d14987f0 100644 --- a/admin/themes/default/template/helpers/tree/tree_node_folder_radio.tpl +++ b/admin/themes/default/template/helpers/tree/tree_node_folder_radio.tpl @@ -24,7 +24,7 @@ *}
  • - {if $selectable} + {if !isset($selectable) || $selectable} {/if} diff --git a/classes/helper/HelperTreeCategories.php b/classes/helper/HelperTreeCategories.php index 4c328122c..e18583273 100644 --- a/classes/helper/HelperTreeCategories.php +++ b/classes/helper/HelperTreeCategories.php @@ -422,7 +422,7 @@ class HelperTreeCategoriesCore extends TreeCore } /* Override */ - public function renderNodes($data = null) + public function renderNodes($data = null, $root = false) { if (!isset($data)) { $data = $this->getData(); diff --git a/classes/helper/HelperTreeShops.php b/classes/helper/HelperTreeShops.php index 1f66edab0..c472d277d 100644 --- a/classes/helper/HelperTreeShops.php +++ b/classes/helper/HelperTreeShops.php @@ -126,7 +126,7 @@ class HelperTreeShopsCore extends TreeCore return parent::render($data); } - public function renderNodes($data = null) + public function renderNodes($data = null, $root = false) { if (!isset($data)) { $data = $this->getData(); diff --git a/config/defines.inc.php b/config/defines.inc.php index 3e319225f..4a86b1930 100644 --- a/config/defines.inc.php +++ b/config/defines.inc.php @@ -26,7 +26,7 @@ /* Debug only */ if (!defined('_PS_MODE_DEV_')) { - define('_PS_MODE_DEV_', true); + define('_PS_MODE_DEV_', false); } /* Compatibility warning */ define('_PS_DISPLAY_COMPATIBILITY_WARNING_', false); From 22f3c2c02414a4d23604d3837789d46aac59cb08 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Thu, 8 Aug 2024 14:34:11 +0530 Subject: [PATCH 109/169] Update invoice address panel --- pdf/invoice.addresses-tab.tpl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pdf/invoice.addresses-tab.tpl b/pdf/invoice.addresses-tab.tpl index c7f4c9fe0..0b743c4f0 100644 --- a/pdf/invoice.addresses-tab.tpl +++ b/pdf/invoice.addresses-tab.tpl @@ -34,11 +34,10 @@ + {l s='Customer Detail' pdf='true'}

    {if $invoice_address} - {l s='Customer Address' pdf='true'}

    {$invoice_address} {else} - {l s='Customer Detail' pdf='true'}

    {$customer->firstname} {$customer->lastname}
    {$customer->phone} From 2d7979e43dad3cf74311ac6eeaddc5d6e1b2978c Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Thu, 8 Aug 2024 14:53:31 +0530 Subject: [PATCH 110/169] update validation and error message --- controllers/admin/AdminCustomersController.php | 4 ++-- controllers/front/AuthController.php | 4 ++-- controllers/front/IdentityController.php | 2 +- controllers/front/OrderOpcController.php | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/controllers/admin/AdminCustomersController.php b/controllers/admin/AdminCustomersController.php index f6014c996..7161974ea 100644 --- a/controllers/admin/AdminCustomersController.php +++ b/controllers/admin/AdminCustomersController.php @@ -992,7 +992,7 @@ class AdminCustomersControllerCore extends AdminController } else { if ($customerDetail = CartCustomerGuestDetail::getCustomerDefaultDetails($customerEmail)) { $objCartCustomerGuestDetail = new CartCustomerGuestDetail($customerDetail['id_customer_guest_detail']); - $objCartCustomerGuestDetail->phone = preg_replace('/[0-p]/', '0', $objCustomer->phone); + $objCartCustomerGuestDetail->phone = preg_replace('/[0-9]/', '0', $objCustomer->phone); $objCartCustomerGuestDetail->email = $objCustomer->email; $objCartCustomerGuestDetail->save(); } @@ -1165,7 +1165,7 @@ class AdminCustomersControllerCore extends AdminController if ($phone && !Validate::isPhoneNumber($phone)) { $this->errors[] = Tools::displayError('Invaid phone number.'); } elseif ($phone && Tools::strlen($phone) > $rules['size']['phone']) { - $this->errors[] = Tools::displayError('Invaid phone number.'); + $this->errors[] = sprintf(Tools::displayError('Phone number is too long. (%s chars max).'), $rules['size']['phone']); } diff --git a/controllers/front/AuthController.php b/controllers/front/AuthController.php index e75224510..414705a96 100644 --- a/controllers/front/AuthController.php +++ b/controllers/front/AuthController.php @@ -435,12 +435,12 @@ class AuthControllerCore extends FrontController if (Tools::getValue('phone') && !Validate::isPhoneNumber(Tools::getValue('phone'))) { $this->errors[] = Tools::displayError('Invald phone number.'); } elseif (Tools::getValue('phone') && Tools::strlen(Tools::getValue('phone')) > $rules['size']['phone']) { - $this->errors[] = Tools::displayError('Invald phone number.'); + $this->errors[] = sprintf(Tools::displayError('Phone number is too long. (%s chars max).'), $rules['size']['phone']); } if (Tools::getValue('phone_mobile') && !Validate::isPhoneNumber(Tools::getValue('phone_mobile'))) { $this->errors[] = Tools::displayError('Invald mobile phone number.'); } elseif (Tools::getValue('phone_mobile') && Tools::strlen(Tools::getValue('phone_mobile')) > $rules['size']['phone']) { - $this->errors[] = Tools::displayError('Invald mobile phone number.'); + $this->errors[] = sprintf(Tools::displayError('mobile phone number is too long. (%s chars max).'), $rules['size']['phone']);; } } diff --git a/controllers/front/IdentityController.php b/controllers/front/IdentityController.php index 9fe263c30..74dd6e667 100644 --- a/controllers/front/IdentityController.php +++ b/controllers/front/IdentityController.php @@ -93,7 +93,7 @@ class IdentityControllerCore extends FrontController if ($phone && !Validate::isPhoneNumber($phone)) { $this->errors[] = Tools::displayError('Invaid phone number.'); } elseif ($phone && Tools::strlen($phone) > $rules['size']['phone']) { - $this->errors[] = Tools::displayError('Invaid phone number.'); + $this->errors[] = sprintf(Tools::displayError('Phone number is too long. (%s chars max).'), $rules['size']['phone']);; } if (!count($this->errors)) { diff --git a/controllers/front/OrderOpcController.php b/controllers/front/OrderOpcController.php index 7d125a7d1..ff1248344 100644 --- a/controllers/front/OrderOpcController.php +++ b/controllers/front/OrderOpcController.php @@ -124,7 +124,7 @@ class OrderOpcControllerCore extends ParentOrderController if (!Validate::isPhoneNumber($phone)) { $this->errors[] = Tools::displayError('Please enter a valid Mobile phone number.', false); } elseif (Tools::strlen($phone) > $rules['size']['phone']) { - $this->errors[] = Tools::displayError('Please enter a valid Mobile phone number.', false); + $this->errors[] = sprintf(Tools::displayError('Mobile phone number is too long. (%s chars max).'), $rules['size']['phone']); } $_POST['lastname'] = $_POST['customer_lastname']; From efa04cf529fcd93b099f2626f4a10bdade2857c6 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Mon, 12 Aug 2024 16:43:46 +0530 Subject: [PATCH 111/169] hide messages panel in order print --- .../default/template/controllers/orders/helpers/view/view.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 e8c21dfc3..8de94b812 100644 --- a/admin/themes/default/template/controllers/orders/helpers/view/view.tpl +++ b/admin/themes/default/template/controllers/orders/helpers/view/view.tpl @@ -1098,13 +1098,13 @@ {/if} -
    +
     {l s='Messages'} {sizeof($customer_thread_message)} {l s='Show all messages'}
    -
    +
    From 1bfe33216adf8980069c6892cd7d6ab9957729e1 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Mon, 12 Aug 2024 16:55:59 +0530 Subject: [PATCH 112/169] remove rounding of amount in refund request --- classes/order/OrderReturn.php | 9 --------- 1 file changed, 9 deletions(-) diff --git a/classes/order/OrderReturn.php b/classes/order/OrderReturn.php index 096c83627..4c9fc46e5 100644 --- a/classes/order/OrderReturn.php +++ b/classes/order/OrderReturn.php @@ -236,9 +236,6 @@ class OrderReturnCore extends ObjectModel if (count($roomSelectedDemands)) { foreach ($roomSelectedDemands as $demand) { if ($demand['total_price_tax_incl'] > 0) { - if ($objOrder->round_type == Order::ROUND_ITEM || $objOrder->round_type == Order::ROUND_LINE) { - $demand['total_price_tax_incl'] = Tools::ps_round($demand['total_price_tax_incl'], _PS_PRICE_DISPLAY_PRECISION_); - } if ($objOrder->total_paid_real > 0) { if ($calcServicePriceFirst) { $bookingRow['extra_service_total_paid_amount'] += $demand['total_price_tax_incl']; @@ -257,9 +254,6 @@ class OrderReturnCore extends ObjectModel if (count($roomSelectedServices['additional_services'])) { foreach ($roomSelectedServices['additional_services'] as $service) { if ($service['total_price_tax_incl'] > 0) { - if ($objOrder->round_type == Order::ROUND_ITEM || $objOrder->round_type == Order::ROUND_LINE) { - $service['total_price_tax_incl'] = Tools::ps_round($service['total_price_tax_incl'], _PS_PRICE_DISPLAY_PRECISION_); - } if ($objOrder->total_paid_real > 0) { if ($calcServicePriceFirst) { $bookingRow['extra_service_total_paid_amount'] += $service['total_price_tax_incl']; @@ -273,9 +267,6 @@ class OrderReturnCore extends ObjectModel } } if ($bookingRow['total_price_tax_incl'] > 0) { - if ($objOrder->round_type == Order::ROUND_ITEM || $objOrder->round_type == Order::ROUND_LINE) { - $bookingRow['total_price_tax_incl'] = Tools::ps_round($bookingRow['total_price_tax_incl'], _PS_PRICE_DISPLAY_PRECISION_); - } if ($objOrder->total_paid_real > 0) { if ($calcServicePriceFirst) { $totalRoomShare = ($objOrder->total_paid_real*($bookingRow['total_price_tax_incl'] + $bookingRow['extra_service_total_price_tax_incl'])/ ($objOrder->total_paid_tax_incl + $objOrder->total_discounts_tax_incl)); From 065498d45cf0f8ca2fea90b11c12609294e6e054 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Mon, 12 Aug 2024 17:21:32 +0530 Subject: [PATCH 113/169] added status for used cart rules --- .../controllers/cart_rules/modal_confirm_bulk_delete.tpl | 3 +++ .../controllers/cart_rules/modal_confirm_delete.tpl | 8 ++++++++ controllers/admin/AdminCartRulesController.php | 1 - 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/admin/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl b/admin/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl index 2ad7d28c5..30c9df455 100644 --- a/admin/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl +++ b/admin/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl @@ -64,6 +64,9 @@ {l s='Generated against credit slip'} (#{$cartRule['id_generated_by']}) {/if} + {if !$cartRule['cart_rule']->quantity} + {l s='Used'} + {/if} #{$cartRule['order']->id} diff --git a/admin/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl b/admin/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl index 1333d0b13..eb08eb9e4 100644 --- a/admin/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl +++ b/admin/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl @@ -58,6 +58,14 @@ {$order->reference} (#{$order->id})

    + {if !$cartRule->quantity} +
    + +

    + {l s='Used'} +

    +
    + {/if}
    {/if} \ No newline at end of file diff --git a/controllers/admin/AdminCartRulesController.php b/controllers/admin/AdminCartRulesController.php index f81b4646f..0e21ec140 100644 --- a/controllers/admin/AdminCartRulesController.php +++ b/controllers/admin/AdminCartRulesController.php @@ -160,7 +160,6 @@ class AdminCartRulesControllerCore extends AdminController $objOrder = new Order($obj->id_order); $objCustomer = new Customer($objOrder->id_customer); - $modalConfirmDelete = $this->createTemplate('modal_confirm_delete.tpl'); $modalConfirmDelete->assign(array( 'generatedBy' => $generatedByDetails['generated_by'], 'generatedById' => $generatedByDetails['id_generated_by'], From 0ea3b63572d66a41350aeaeae1597c6e4c35f8df Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Tue, 13 Aug 2024 12:22:32 +0530 Subject: [PATCH 114/169] Fixed: the design issue in the rlt languages for the hotel selection in the search, which occures if search select threashold is greater than the available hotels --- modules/wkroomsearchblock/views/css/chosen.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/wkroomsearchblock/views/css/chosen.css b/modules/wkroomsearchblock/views/css/chosen.css index eba0b2181..a3df25799 100644 --- a/modules/wkroomsearchblock/views/css/chosen.css +++ b/modules/wkroomsearchblock/views/css/chosen.css @@ -179,6 +179,10 @@ left: -9999px; } +.rtl .chosen-container-single.chosen-container-single-nosearch .chosen-search { + display:none; +} + /* @end */ /* @group Results */ .chosen-container .chosen-results { From 36eba364bd1924d5ffa4575d719ac99b9d748935 Mon Sep 17 00:00:00 2001 From: Aman deep sharma Date: Tue, 13 Aug 2024 13:17:25 +0530 Subject: [PATCH 115/169] [Fixed]: Wrong alias gets saved --- .../controllers/admin/AdminAddHotelController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php b/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php index b40b651e3..ded152095 100644 --- a/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php +++ b/modules/hotelreservationsystem/controllers/admin/AdminAddHotelController.php @@ -515,8 +515,8 @@ class AdminAddHotelController extends ModuleAdminController $objAddress->city = $city; $objAddress->postcode = $zipcode; $hotelName = $objHotelBranch->hotel_name[$defaultLangId]; - $objAddress->alias = trim(substr($hotelName, 0, 32)); $hotelName = trim(preg_replace('/[0-9!<>,;?=+()@#"°{}_$%:]*$/u', '', $hotelName)); + $objAddress->alias = trim(substr($hotelName, 0, 32)); $addressFirstName = $hotelName; $addressLastName = $hotelName; // If hotel name is length is greater than 32 then we split it into two From 02c8c76a04a2410a4cf93f0577aebb4765848f91 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Tue, 13 Aug 2024 15:46:28 +0530 Subject: [PATCH 116/169] add demo phone number for demo user --- .../fashion/data/cart_customer_guest_detail.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 install/fixtures/fashion/data/cart_customer_guest_detail.xml diff --git a/install/fixtures/fashion/data/cart_customer_guest_detail.xml b/install/fixtures/fashion/data/cart_customer_guest_detail.xml new file mode 100644 index 000000000..d8403ad87 --- /dev/null +++ b/install/fixtures/fashion/data/cart_customer_guest_detail.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + From ed9cecd7921814c775c312a7adfbc10bb46b2613 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Tue, 13 Aug 2024 16:39:00 +0530 Subject: [PATCH 117/169] update phone number save proceess when address is created during registration --- controllers/front/AuthController.php | 20 +++++-------------- .../authentication.tpl | 4 ++-- .../order-opc-new-account.tpl | 4 ++-- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/controllers/front/AuthController.php b/controllers/front/AuthController.php index 414705a96..ad442f61f 100644 --- a/controllers/front/AuthController.php +++ b/controllers/front/AuthController.php @@ -409,8 +409,10 @@ class AuthControllerCore extends FrontController $customer = new Customer(); $lastnameAddress = Tools::getValue('lastname'); $firstnameAddress = Tools::getValue('firstname'); + $phoneAddress = Tools::getValue('phone'); $_POST['lastname'] = Tools::getValue('customer_lastname', $lastnameAddress); $_POST['firstname'] = Tools::getValue('customer_firstname', $firstnameAddress); + $_POST['phone'] = Tools::getValue('customer_phone', $phoneAddress); $addresses_types = []; if (Configuration::get('PS_REGISTRATION_PROCESS_TYPE')) { $addresses_types[] = 'address'; @@ -420,16 +422,9 @@ class AuthControllerCore extends FrontController $addresses_types[] = 'address_invoice'; } - $error_phone = false; - if (Configuration::get('PS_ONE_PHONE_AT_LEAST')) { - if (!Tools::getValue('phone') && !Tools::getValue('phone_mobile')) { - $error_phone = true; - } - } - $className = 'CartCustomerGuestDetail'; $rules = call_user_func(array($className, 'getValidationRules'), $className); - if ($error_phone) { + if (Configuration::get('PS_ONE_PHONE_AT_LEAST') && !Tools::getValue('phone')) { $this->errors[] = Tools::displayError('Phone number is required.'); } else { if (Tools::getValue('phone') && !Validate::isPhoneNumber(Tools::getValue('phone'))) { @@ -437,11 +432,6 @@ class AuthControllerCore extends FrontController } elseif (Tools::getValue('phone') && Tools::strlen(Tools::getValue('phone')) > $rules['size']['phone']) { $this->errors[] = sprintf(Tools::displayError('Phone number is too long. (%s chars max).'), $rules['size']['phone']); } - if (Tools::getValue('phone_mobile') && !Validate::isPhoneNumber(Tools::getValue('phone_mobile'))) { - $this->errors[] = Tools::displayError('Invald mobile phone number.'); - } elseif (Tools::getValue('phone_mobile') && Tools::strlen(Tools::getValue('phone_mobile')) > $rules['size']['phone']) { - $this->errors[] = sprintf(Tools::displayError('mobile phone number is too long. (%s chars max).'), $rules['size']['phone']);; - } } if (!Tools::getValue('is_new_customer', 1)) { @@ -474,7 +464,6 @@ class AuthControllerCore extends FrontController if (!count($this->errors)) { if ($customer->add()) { - CartCustomerGuestDetail::updateCustomerPhoneNumber($customer->email, Tools::getValue('phone')); if (!$customer->is_guest) { if (!$this->sendConfirmationMail($customer)) { $this->errors[] = Tools::displayError('The email cannot be sent.'); @@ -622,8 +611,9 @@ class AuthControllerCore extends FrontController $this->errors[] = Tools::displayError('An error occurred while creating your account.'); } else { // save customer phone number in cart_customer_guest_detail - $phone = Tools::getValue('phone_mobile'); + $phone = Tools::getValue('phone'); CartCustomerGuestDetail::updateCustomerPhoneNumber($customer->email, $phone); + $_POST['phone'] = $phoneAddress; foreach ($addresses_types as $addresses_type) { $$addresses_type->id_customer = (int)$customer->id; diff --git a/themes/hotel-reservation-theme/authentication.tpl b/themes/hotel-reservation-theme/authentication.tpl index 775af902a..e94709781 100644 --- a/themes/hotel-reservation-theme/authentication.tpl +++ b/themes/hotel-reservation-theme/authentication.tpl @@ -462,8 +462,8 @@
    - - + +
    diff --git a/themes/hotel-reservation-theme/order-opc-new-account.tpl b/themes/hotel-reservation-theme/order-opc-new-account.tpl index 48fd39d32..a267c8af3 100644 --- a/themes/hotel-reservation-theme/order-opc-new-account.tpl +++ b/themes/hotel-reservation-theme/order-opc-new-account.tpl @@ -101,8 +101,8 @@
    - - + +
    {if isset($PS_REGISTRATION_PROCESS_TYPE) && $PS_REGISTRATION_PROCESS_TYPE} From d76244c08976895883bb483f8537150d427bf0d1 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Tue, 13 Aug 2024 17:03:51 +0530 Subject: [PATCH 118/169] updated the wrong add call for the HotelCartBookingData --- modules/hotelreservationsystem/classes/HotelCartBookingData.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hotelreservationsystem/classes/HotelCartBookingData.php b/modules/hotelreservationsystem/classes/HotelCartBookingData.php index c2982cd15..25b340550 100644 --- a/modules/hotelreservationsystem/classes/HotelCartBookingData.php +++ b/modules/hotelreservationsystem/classes/HotelCartBookingData.php @@ -1890,7 +1890,7 @@ class HotelCartBookingData extends ObjectModel $this->extra_demands = json_encode(array()); } - return parent::add($null_values); + return parent::add($auto_date, $null_values); } // Webservice :: get extra demands for the cart booking From a859845a7298a09606969c7dea4156f54459e426 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Tue, 13 Aug 2024 20:20:08 +0530 Subject: [PATCH 119/169] added hook actionBookingDataParamsModifier --- .../classes/HotelBookingDetail.php | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/modules/hotelreservationsystem/classes/HotelBookingDetail.php b/modules/hotelreservationsystem/classes/HotelBookingDetail.php index 82018d6b5..2fc79a1ca 100644 --- a/modules/hotelreservationsystem/classes/HotelBookingDetail.php +++ b/modules/hotelreservationsystem/classes/HotelBookingDetail.php @@ -239,6 +239,8 @@ class HotelBookingDetail extends ObjectModel $params['only_search_data'] = 0; } + Hook::exec('actionBookingDataParamsModifier', array('params' => &$params)); + return $params; } @@ -1548,25 +1550,24 @@ class HotelBookingDetail extends ObjectModel * @param [date] $dateTo [End date of the booking] * * @return [int] [Returns number of days between two dates] - * @deprecated use hotelBookingDetail::getDays() instead + * @deprecated use HotelHelper::getNumberOfDays() instead */ public function getNumberOfDays($dateFrom, $dateTo) { - return self::getDays($dateFrom, $dateTo); - // $startDate = new DateTime($dateFrom); - // $endDate = new DateTime($dateTo); - // $daysDifference = $startDate->diff($endDate)->days; - - // return $daysDifference; + return HotelHelper::getNumberOfDays($dateFrom, $dateTo); } + /** + * + * @param [date] $dateFrom [Start date of the booking] + * @param [date] $dateTo [End date of the booking] + * + * @return [int] [Returns number of days between two dates] + * @deprecated use HotelHelper::getNumberOfDays() instead + */ public static function getDays($dateFrom, $dateTo) { - $startDate = new DateTime($dateFrom); - $endDate = new DateTime($dateTo); - $daysDifference = $startDate->diff($endDate)->days; - - return $daysDifference; + return HotelHelper::getNumberOfDays($dateFrom, $dateTo); } public function generateRoomOccupancyWeight($availRoomTypeCount, $totalOccupancy, $totalAdult, $totalChildren) From 392e21676cedc5944fd56000829e62ef9fc5c191 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Wed, 14 Aug 2024 12:47:07 +0530 Subject: [PATCH 120/169] Fixed: the hotel rating design in the room type page for the rtl languages --- themes/hotel-reservation-theme/css/product.css | 4 ++++ themes/hotel-reservation-theme/product.tpl | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/themes/hotel-reservation-theme/css/product.css b/themes/hotel-reservation-theme/css/product.css index d93344c74..896f87073 100644 --- a/themes/hotel-reservation-theme/css/product.css +++ b/themes/hotel-reservation-theme/css/product.css @@ -1740,6 +1740,10 @@ ul.service-product-nav > li:hover { .hotel_name{ margin-right: 10px; } + .rtl .hotel_name{ + margin-left: 10px; + margin-right: 0px; + } } @media (max-width:768px) { #hotel_rating { diff --git a/themes/hotel-reservation-theme/product.tpl b/themes/hotel-reservation-theme/product.tpl index 8654a3211..9d0b245c6 100644 --- a/themes/hotel-reservation-theme/product.tpl +++ b/themes/hotel-reservation-theme/product.tpl @@ -66,7 +66,7 @@
    -
    +

    {$product->name} {* Block for booking products *} From cbc242466122dcb0367ea9ef9f849f8042b12229 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 14 Aug 2024 12:51:29 +0530 Subject: [PATCH 121/169] upadte custom price round process --- .../template/controllers/orders/_current_cart_details_data.tpl | 2 +- admin/themes/default/template/controllers/orders/form.tpl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/admin/themes/default/template/controllers/orders/_current_cart_details_data.tpl b/admin/themes/default/template/controllers/orders/_current_cart_details_data.tpl index 582404bcc..a33e41262 100644 --- a/admin/themes/default/template/controllers/orders/_current_cart_details_data.tpl +++ b/admin/themes/default/template/controllers/orders/_current_cart_details_data.tpl @@ -118,7 +118,7 @@ {assign var=shown_room_type_price value=$data.product_price_tax_excl} {/if}
    - + {$currency->prefix}{$currency->suffix}
    diff --git a/admin/themes/default/template/controllers/orders/form.tpl b/admin/themes/default/template/controllers/orders/form.tpl index 5746c6aa9..8b7dae366 100644 --- a/admin/themes/default/template/controllers/orders/form.tpl +++ b/admin/themes/default/template/controllers/orders/form.tpl @@ -275,7 +275,7 @@ id_room: parseInt($(cart_row).attr('data-id-room')), date_from: $(cart_row).attr('data-date-from'), date_to: $(cart_row).attr('data-date-to'), - price: new Number($(this).val().replace(",",".")).toFixed(4).toString(), + price: new Number($(this).val().replace(",",".")).toString(), id_cart: id_cart }; updateProductPrice(params, cart_row); From 23a1b5854e287b2ef7f35b27471886712468d34a Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 14 Aug 2024 13:36:10 +0530 Subject: [PATCH 122/169] Auto fill phone number in address form --- .../controllers/addresses/helpers/form/form.tpl | 1 + classes/Customer.php | 12 ++++++++++++ controllers/admin/AdminAddressesController.php | 3 ++- controllers/front/AddressController.php | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/admin/themes/default/template/controllers/addresses/helpers/form/form.tpl b/admin/themes/default/template/controllers/addresses/helpers/form/form.tpl index 9fd0f69e6..d0f8312d6 100644 --- a/admin/themes/default/template/controllers/addresses/helpers/form/form.tpl +++ b/admin/themes/default/template/controllers/addresses/helpers/form/form.tpl @@ -71,6 +71,7 @@ $('input[name=lastname]').val(infos[1]); $('input[name=company]').val(infos[2]); $('input[name=id_customer]').val(infos[3]); + $('input[name=phone]').val(infos[4]); } else { resetCustomerRelatedAddressFields(); } diff --git a/classes/Customer.php b/classes/Customer.php index 6ce1c4cc2..662373283 100644 --- a/classes/Customer.php +++ b/classes/Customer.php @@ -490,6 +490,18 @@ class CustomerCore extends ObjectModel return Cache::retrieve($cache_id); } + public static function getPhone($id_customer) + { + + return Db::getInstance()->getValue( + 'SELECT cgd.`phone` + FROM `'._DB_PREFIX_.'customer` c + INNER JOIN `'._DB_PREFIX_.'cart_customer_guest_detail` cgd + ON (cgd.`email` = c.`email`) + WHERE `id_cart` = 0 AND c.`id_customer` = '.(int)($id_customer) + ); + } + public static function getCustomerIdAddress($id_customer, $use_cache = true) { $cache_id = 'Customer::getCustomerIdAddress'.(int)$id_customer; diff --git a/controllers/admin/AdminAddressesController.php b/controllers/admin/AdminAddressesController.php index 1d4b32e9e..2f579a095 100644 --- a/controllers/admin/AdminAddressesController.php +++ b/controllers/admin/AdminAddressesController.php @@ -544,7 +544,8 @@ class AdminAddressesControllerCore extends AdminController $customer = Customer::searchByName($email); if (!empty($customer)) { $customer = $customer['0']; - echo json_encode(array('infos' => pSQL($customer['firstname']).'_'.pSQL($customer['lastname']).'_'.pSQL($customer['company']).'_'.pSQL($customer['id_customer']))); + $phone = Customer::getPhone($customer['id_customer']); + echo json_encode(array('infos' => pSQL($customer['firstname']).'_'.pSQL($customer['lastname']).'_'.pSQL($customer['company']).'_'.pSQL($customer['id_customer']).'_'.pSQL($phone))); } } die; diff --git a/controllers/front/AddressController.php b/controllers/front/AddressController.php index 29a2ba952..55b376693 100644 --- a/controllers/front/AddressController.php +++ b/controllers/front/AddressController.php @@ -76,6 +76,7 @@ class AddressControllerCore extends FrontController $_POST['firstname'] = $this->context->customer->firstname; $_POST['lastname'] = $this->context->customer->lastname; $_POST['company'] = $this->context->customer->company; + $_POST['phone'] = $this->context->customer->phone; } } From bc42e57e7d2fe1a68caa396b60743fe449f3b250 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Wed, 14 Aug 2024 14:38:25 +0530 Subject: [PATCH 123/169] Fixed: The price tooltip at the order confirmation and updated the design for the booked services and demands popup --- .../front/OrderConfirmationController.php | 2 - .../_partials/order-extra-services.tpl | 91 +++++++++---------- .../css/order-confirmation.css | 22 ++++- .../css/order-detail.css | 16 ++-- .../js/order-confirmation.js | 39 +++++++- 5 files changed, 109 insertions(+), 61 deletions(-) diff --git a/controllers/front/OrderConfirmationController.php b/controllers/front/OrderConfirmationController.php index a60326859..2b5709135 100644 --- a/controllers/front/OrderConfirmationController.php +++ b/controllers/front/OrderConfirmationController.php @@ -469,8 +469,6 @@ class OrderConfirmationControllerCore extends FrontController { if (Tools::getValue('ajax') != 'true') { parent::setMedia(); - $this->addCSS(_THEME_CSS_DIR_.'history.css'); - $this->addJS(_THEME_JS_DIR_.'history.js'); $this->addJS(_THEME_JS_DIR_.'order-confirmation.js'); $this->addCSS(_THEME_CSS_DIR_.'order-confirmation.css'); $this->addJqueryPlugin(array('fancybox')); //fancybox not found for some client theme diff --git a/themes/hotel-reservation-theme/_partials/order-extra-services.tpl b/themes/hotel-reservation-theme/_partials/order-extra-services.tpl index 695b47c28..5e643b6f0 100644 --- a/themes/hotel-reservation-theme/_partials/order-extra-services.tpl +++ b/themes/hotel-reservation-theme/_partials/order-extra-services.tpl @@ -25,53 +25,12 @@ {if (isset($extraDemands) && $extraDemands) || (isset($additionalServices) && $additionalServices)}
    - {if isset($extraDemands) && $extraDemands} -
    -
    -

    {l s='Facilities chosen for this booking.'}

    -
    - {assign var=roomCount value=1} - {foreach $extraDemands as $roomDemand} -
    -
    - {l s='Room'} {$roomCount|string_format:'%02d'}  - ({if {$roomDemand['adults']} <= 9}0{$roomDemand['adults']}{else}{$roomDemand['adults']}{/if} {if $roomDemand['adults'] > 1}{l s='Adults'}{else}{l s='Adult'}{/if}{if $roomDemand['children'] > 0}, {if {$roomDemand['children']} <= 9}0{$roomDemand['children']}{else}{$roomDemand['children']}{/if} {if $roomDemand['children'] > 1}{l s='Children'}{else}{l s='Child'}{/if}{/if}) -
    -
    - {foreach $roomDemand['extra_demands'] as $demand} -
    -
    {$demand['name']|escape:'html':'UTF-8'}
    -
    - - {if $useTax} - {displayPrice price="{$demand['total_price_tax_incl']|escape:'html':'UTF-8'}" currency=$objOrder->id_currency} - {else} - {displayPrice price="{$demand['total_price_tax_excl']|escape:'html':'UTF-8'}" currency=$objOrder->id_currency} - {/if} - -
    -
    - {/foreach} -
    -
    - {assign var=roomCount value=$roomCount+1} - {/foreach} -
    - {/if} - - {if isset($additionalServices) && $additionalServices} -
    -
    -

    {l s='Services chosen for this booking.'}

    -
    +
    + {if isset($additionalServices) && $additionalServices} {assign var=roomCount value=1} {foreach $additionalServices as $key => $roomAdditionalService}
    @@ -105,8 +64,46 @@
    {assign var=roomCount value=$roomCount+1} {/foreach} -
    - {/if} + {else} +
    + {l s='No service found.'} +
    + {/if} +
    +
    + {if isset($extraDemands) && $extraDemands} + {assign var=roomCount value=1} + {foreach $extraDemands as $roomDemand} +
    +
    + {l s='Room'} {$roomCount|string_format:'%02d'}  + ({if {$roomDemand['adults']} <= 9}0{$roomDemand['adults']}{else}{$roomDemand['adults']}{/if} {if $roomDemand['adults'] > 1}{l s='Adults'}{else}{l s='Adult'}{/if}{if $roomDemand['children'] > 0}, {if {$roomDemand['children']} <= 9}0{$roomDemand['children']}{else}{$roomDemand['children']}{/if} {if $roomDemand['children'] > 1}{l s='Children'}{else}{l s='Child'}{/if}{/if}) +
    +
    + {foreach $roomDemand['extra_demands'] as $demand} +
    +
    {$demand['name']|escape:'html':'UTF-8'}
    +
    + + {if $useTax} + {displayPrice price="{$demand['total_price_tax_incl']|escape:'html':'UTF-8'}" currency=$objOrder->id_currency} + {else} + {displayPrice price="{$demand['total_price_tax_excl']|escape:'html':'UTF-8'}" currency=$objOrder->id_currency} + {/if} + +
    +
    + {/foreach} +
    +
    + {assign var=roomCount value=$roomCount+1} + {/foreach} + {else} +
    + {l s='No facility found.'} +
    + {/if} +
    {/if} diff --git a/themes/hotel-reservation-theme/css/order-confirmation.css b/themes/hotel-reservation-theme/css/order-confirmation.css index 654658b95..f7f16bdbe 100644 --- a/themes/hotel-reservation-theme/css/order-confirmation.css +++ b/themes/hotel-reservation-theme/css/order-confirmation.css @@ -190,4 +190,24 @@ #rooms_extra_services .nav-tabs > li.active:after { content: unset; -} \ No newline at end of file +} + +#rooms_extra_services .services_not_booked { + text-align: center; + margin: 30px 0px; + font-size: 14px; +} + +.price-info-tooltip-cont { + min-width: 180px; +} + +.price-info-tooltip-cont .list-row { + display: flex; + justify-content: space-between; + margin: 5px 0; +} + +.price-info-tooltip-cont .list-row p { + margin: 0; +} diff --git a/themes/hotel-reservation-theme/css/order-detail.css b/themes/hotel-reservation-theme/css/order-detail.css index d05fc1e30..3f7544dcd 100644 --- a/themes/hotel-reservation-theme/css/order-detail.css +++ b/themes/hotel-reservation-theme/css/order-detail.css @@ -750,16 +750,6 @@ display: none; } -.ui-tooltip.price-tootip { - box-shadow: 0 2px 6px 0 rgb(0 0 0 / 20%); - background: #FFFFFF; - border: unset; - color: #333; - padding: 2px 10px; - max-height: 310px; - overflow-y: auto; -} - .price-info-tooltip-cont { min-width: 180px; } @@ -1084,6 +1074,12 @@ margin-bottom: 12px; } +#popup-view-extra-services .services_not_booked { + text-align: center; + margin: 30px 0px; + font-size: 14px; +} + /* Guest Tracking page styles - start */ .transform-account .card-text p { margin: 0; diff --git a/themes/hotel-reservation-theme/js/order-confirmation.js b/themes/hotel-reservation-theme/js/order-confirmation.js index 87175d20f..a150a491e 100644 --- a/themes/hotel-reservation-theme/js/order-confirmation.js +++ b/themes/hotel-reservation-theme/js/order-confirmation.js @@ -70,4 +70,41 @@ $(document).ready(function(){ }, }); }); -}); \ No newline at end of file + + initPriceTooltip(); +}); + +function initPriceTooltip() { + if ($('.order-price-info').length) { + $('.order-price-info').each(function () { + $(this).tooltip({ + content: $(this).closest('td').find('.price-info-container').html(), + items: 'span', + trigger: 'hover', + tooltipClass: 'price-tootip', + open: function (event, ui) { + if (typeof (event.originalEvent) === 'undefined') { + return false; + } + + var $id = $(ui.tooltip).attr('id'); + + // close any lingering tooltips + if ($('div.ui-tooltip').not('#' + $id).length) { + return false; + } + }, + close: function (event, ui) { + ui.tooltip.hover(function () { + $(this).stop(true).fadeTo(400, 1); + }, + function () { + $(this).fadeOut('400', function () { + $(this).remove(); + }); + }); + } + }); + }); + } +} \ No newline at end of file From cfef22428864a2d0a2e84a3669430bc9b132f1c7 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 14 Aug 2024 18:29:36 +0530 Subject: [PATCH 124/169] update delivery address initialization --- classes/Cart.php | 32 ++++++++++++++++++++++++++ classes/Context.php | 1 - classes/controller/FrontController.php | 2 +- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/classes/Cart.php b/classes/Cart.php index 37a6558cf..1c844c9db 100644 --- a/classes/Cart.php +++ b/classes/Cart.php @@ -262,10 +262,25 @@ class CartCore extends ObjectModel $to_update = true; $this->id_address_invoice = $id_address_new; } + if (!isset($this->id_address_delivery) || $this->id_address_delivery == $id_address) { + $to_update = true; + $this->id_address_delivery = $id_address_new; + } if ($to_update) { $this->update(); } + $sql = 'UPDATE `'._DB_PREFIX_.'cart_product` + SET `id_address_delivery` = '.(int)$id_address_new.' + WHERE `id_cart` = '.(int)$this->id.' + AND `id_address_delivery` = '.(int)$id_address; + Db::getInstance()->execute($sql); + + $sql = 'UPDATE `'._DB_PREFIX_.'customization` + SET `id_address_delivery` = '.(int)$id_address_new.' + WHERE `id_cart` = '.(int)$this->id.' + AND `id_address_delivery` = '.(int)$id_address; + Db::getInstance()->execute($sql); } public function delete() @@ -1060,6 +1075,14 @@ class CartCore extends ObjectModel $shop = Context::getContext()->shop; } + if (Context::getContext()->customer->id) { + if ($id_address_delivery == 0 && (int)$this->id_address_delivery) { // The $id_address_delivery is null, use the cart delivery address + $id_address_delivery = $this->id_address_delivery; + } elseif (!Customer::customerHasAddress(Context::getContext()->customer->id, $id_address_delivery)) { // The $id_address_delivery must be linked with customer + $id_address_delivery = 0; + } + } + $quantity = (int)$quantity; $id_product = (int)$id_product; $id_product_attribute = (int)$id_product_attribute; @@ -4083,6 +4106,10 @@ class CartCore extends ObjectModel $cart->id_shop = $this->id_shop; $cart->id_shop_group = $this->id_shop_group; + if (!Customer::customerHasAddress((int)$cart->id_customer, (int)$cart->id_address_delivery)) { + $cart->id_address_delivery = 0; + } + if (!Customer::customerHasAddress((int)$cart->id_customer, (int)$cart->id_address_invoice)) { $cart->id_address_invoice = (int)Address::getFirstCustomerAddressId((int)$cart->id_customer); } @@ -4105,6 +4132,11 @@ class CartCore extends ObjectModel $id_address_delivery = Configuration::get('PS_ALLOW_MULTISHIPPING') ? $cart->id_address_delivery : 0; foreach ($products as $product) { + if ($id_address_delivery) { + if (Customer::customerHasAddress((int)$cart->id_customer, $product['id_address_delivery'])) { + $id_address_delivery = $product['id_address_delivery']; + } + } foreach ($product_gift as $gift) { if (isset($gift['gift_product']) && isset($gift['gift_product_attribute']) && (int)$gift['gift_product'] == (int)$product['id_product'] && (int)$gift['gift_product_attribute'] == (int)$product['id_product_attribute']) { diff --git a/classes/Context.php b/classes/Context.php index 4fa780c95..d616ff8d1 100644 --- a/classes/Context.php +++ b/classes/Context.php @@ -326,7 +326,6 @@ class ContextCore $this->cart->setDeliveryOption(null); } $this->cart->id_customer = (int) $customer->id; - $this->cart->updateAddressId($this->cart->id_address_delivery, (int) Address::getFirstCustomerAddressId((int) ($customer->id))); $this->cart->id_address_invoice = (int) Address::getFirstCustomerAddressId((int) ($customer->id)); // update id guest in htl_cart_booking_data for bookings added to the cart as a visitor diff --git a/classes/controller/FrontController.php b/classes/controller/FrontController.php index dff427b34..cfdf17881 100644 --- a/classes/controller/FrontController.php +++ b/classes/controller/FrontController.php @@ -391,7 +391,7 @@ class FrontControllerCore extends Controller $cart->id_shop = $this->context->shop->id; if ($this->context->cookie->id_customer) { $cart->id_customer = (int)$this->context->cookie->id_customer; - $cart->id_address_invoice = (int)$cart->id_address_delivery; + $cart->id_address_invoice = (int)Address::getFirstCustomerAddressId($cart->id_customer);; } else { $cart->id_address_invoice = 0; } From 3b7ff75ef26db6b9c0f79533dc457b35c5920631 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 14 Aug 2024 18:54:34 +0530 Subject: [PATCH 125/169] Added: Missing error message for OpenSSL extension --- install/controllers/http/system.php | 1 + 1 file changed, 1 insertion(+) diff --git a/install/controllers/http/system.php b/install/controllers/http/system.php index 98019b64e..c046f43e3 100644 --- a/install/controllers/http/system.php +++ b/install/controllers/http/system.php @@ -94,6 +94,7 @@ class InstallControllerHttpSystem extends InstallControllerHttp 'pdo_mysql' => $this->l('PDO MySQL extension is not loaded'), 'curl' => $this->l('Curl extension is not loaded'), 'soap' => $this->l('SOAP extension is not loaded'), + 'openssl' => $this->l('OpenSSL extension is not loaded.'), 'simplexml' => $this->l('SimpleXml extension is not loaded'), 'memory_limit' => $this->l('In the PHP configuration set memory_limit to minimum 128M'), 'max_execution_time' => $this->l('In the PHP configuration set max_execution_time to minimum 500'), From 32e9f62717153806ef2bb46f0cb4aaba97895a0e Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Wed, 14 Aug 2024 19:12:23 +0530 Subject: [PATCH 126/169] Fixed: validations for the address api request --- classes/Address.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/classes/Address.php b/classes/Address.php index 17b2f1e90..684d1c7f5 100644 --- a/classes/Address.php +++ b/classes/Address.php @@ -560,15 +560,15 @@ class AddressCore extends ObjectModel if (isset($this->webservice_validation) && $this->webservice_validation) { if (!$this->id_customer || !Validate::isLoadedObject(new Customer((int) $this->id_customer))) { $message = Tools::displayError('Invalid Id customer.'); + } else if (Customer::getCustomerIdAddress($this->id_customer, false) && !$this->id) { + $message = Tools::displayError('You cannot create multiple addresses for a single customer.'); } else if (!$this->id_country || !Validate::isLoadedObject($objCountry = new Country($this->id_country))) { $message = Tools::displayError('Invalid Id country'); } else if ($objCountry->contains_states && (!$this->id_state || !Validate::isLoadedObject($objState = new State((int) $this->id_state))) ) { $message = Tools::displayError('Invalid Id state'); - } else if ($objCountry->id != $objState->id) { - $message = Tools::displayError('The given provided Id state does not belongs to the provided Id country'); - } else if ($objCountry->id != $objState->id) { + } else if ($objState->id && ($objCountry->id != $objState->id_country)) { $message = Tools::displayError('The given provided Id state does not belongs to the provided Id country'); } else if ($objCountry->zip_code_format && !$objCountry->checkZipCode($this->postcode)) { $message = Tools::displayError('Your Zip/postal code is incorrect'); @@ -585,7 +585,6 @@ class AddressCore extends ObjectModel return $error_return ? $message : false; } } - return parent::validateFields($die, $error_return); } From cd47d6f1df533e2d44d143021fbdb789c710b84f Mon Sep 17 00:00:00 2001 From: Sumit Panwar Date: Thu, 15 Aug 2024 10:08:49 +0530 Subject: [PATCH 127/169] Fixed: Admin is unable to edit dates of booking if 'Allow backdate order from Back-office for super-admin' is disabled --- js/admin/orders.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/js/admin/orders.js b/js/admin/orders.js index 719c41679..9f766dab0 100644 --- a/js/admin/orders.js +++ b/js/admin/orders.js @@ -2536,7 +2536,9 @@ const EditRoomBookingModal = { const dateTo = $.datepicker.formatDate('dd-mm-yy', $.datepicker.parseDate('yy-mm-dd', jsonProductLineData.date_to)); $('#edit_product .edit_product_date_from').attr('value', dateFrom); + $('#edit_product .edit_product_date_from').attr('data-min_date', dateFrom); $('#edit_product .edit_product_date_to').attr('value', dateTo); + $('#edit_product .edit_product_date_to').attr('data-min_date', dateFrom); $('#edit_product .edit_product_date_from_actual').attr('value', jsonProductLineData.date_from); $('#edit_product .edit_product_date_to_actual').attr('value', jsonProductLineData.date_to); $('#edit_product .room_unit_price').val(parseFloat(jsonProductLineData.paid_unit_price_tax_excl)); From d49d560572af8c8214790e8e2a99fa5fd5d29abf Mon Sep 17 00:00:00 2001 From: Sumit Panwar Date: Thu, 15 Aug 2024 11:24:13 +0530 Subject: [PATCH 128/169] Fixed: Wrong price calculation when a service quantity is updated in an order from back-office --- controllers/admin/AdminOrdersController.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index e5ad50678..dc04de4d5 100644 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -6190,11 +6190,13 @@ class AdminOrdersControllerCore extends AdminController $objHotelBookingDetail = new HotelBookingDetail($objRoomTypeServiceProductOrderDetail->id_htl_booking_detail); $res = true; if (!$response['hasError']) { - $oldPriceTaxExcl = $objRoomTypeServiceProductOrderDetail->unit_price_tax_excl; - $oldPriceTaxIncl = $objRoomTypeServiceProductOrderDetail->unit_price_tax_incl; + $oldUnitPriceTaxExcl = $objRoomTypeServiceProductOrderDetail->unit_price_tax_excl; + $oldUnitPriceTaxIncl = $objRoomTypeServiceProductOrderDetail->unit_price_tax_incl; + $oldTotalPriceTaxExcl = $objRoomTypeServiceProductOrderDetail->total_price_tax_excl; + $oldTotalPriceTaxIncl = $objRoomTypeServiceProductOrderDetail->total_price_tax_incl; $oldQuantity = $objRoomTypeServiceProductOrderDetail->quantity; if ($oldPriceTaxExcl > 0) { - $oldTaxMultiplier = $oldPriceTaxIncl / $oldPriceTaxExcl; + $oldTaxMultiplier = $oldUnitPriceTaxIncl / $oldUnitPriceTaxExcl; } else { $oldTaxMultiplier = 1; } @@ -6214,8 +6216,8 @@ class AdminOrdersControllerCore extends AdminController $objRoomTypeServiceProductOrderDetail->total_price_tax_incl = Tools::ps_round($objRoomTypeServiceProductOrderDetail->unit_price_tax_incl * $quantity, 6); if ($res &= $objRoomTypeServiceProductOrderDetail->save()) { $order = new Order($objRoomTypeServiceProductOrderDetail->id_order); - $priceDiffTaxExcl = $objRoomTypeServiceProductOrderDetail->total_price_tax_excl - $oldPriceTaxExcl; - $priceDiffTaxIncl = $objRoomTypeServiceProductOrderDetail->total_price_tax_incl - $oldPriceTaxIncl; + $priceDiffTaxExcl = $objRoomTypeServiceProductOrderDetail->total_price_tax_excl - $oldTotalPriceTaxExcl; + $priceDiffTaxIncl = $objRoomTypeServiceProductOrderDetail->total_price_tax_incl - $oldTotalPriceTaxIncl; $quantityDiff = $objRoomTypeServiceProductOrderDetail->quantity - $oldQuantity; $objOrderDetail->product_quantity += $quantityDiff; From 401595beeff2e3696382e060752f39ead65a4837 Mon Sep 17 00:00:00 2001 From: Sumit Panwar Date: Thu, 15 Aug 2024 12:21:51 +0530 Subject: [PATCH 129/169] Fixed: issue occurs while deleting booking line. If there is no refund requests in the booking is created. --- classes/order/OrderReturnDetail.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/classes/order/OrderReturnDetail.php b/classes/order/OrderReturnDetail.php index fbff7a45e..5251ff559 100644 --- a/classes/order/OrderReturnDetail.php +++ b/classes/order/OrderReturnDetail.php @@ -70,12 +70,13 @@ class OrderReturnDetailCore extends ObjectModel public static function deleteReturnDetailByIdBookingDetail($idOrder, $idHtlBooking) { - $objOrderReturnDetail = OrderReturnDetail::getReturnDetailByIdBookingDetail($idHtlBooking); - if ($objOrderReturnDetail->delete()) { - $objOrderReturn = new OrderReturn(); - if (empty($objOrderReturn->getOrderRefundRequestedBookings($idOrder, $objOrderReturnDetail->id_order_return, true))) { - $objOrderReturn = new OrderReturn($objOrderReturnDetail->id_order_return); - $objOrderReturn->delete(); + if (Validate::isLoadedObject($objOrderReturnDetail = OrderReturnDetail::getReturnDetailByIdBookingDetail($idHtlBooking))) { + if ($objOrderReturnDetail->delete()) { + $objOrderReturn = new OrderReturn(); + if (empty($objOrderReturn->getOrderRefundRequestedBookings($idOrder, $objOrderReturnDetail->id_order_return, true))) { + $objOrderReturn = new OrderReturn($objOrderReturnDetail->id_order_return); + $objOrderReturn->delete(); + } } } } From 3090c2f684d5058634537d836c1486c386f3d73b Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 16 Aug 2024 09:33:48 +0530 Subject: [PATCH 130/169] updated the address api validation --- classes/Address.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Address.php b/classes/Address.php index 684d1c7f5..9c0c2c242 100644 --- a/classes/Address.php +++ b/classes/Address.php @@ -568,7 +568,7 @@ class AddressCore extends ObjectModel && (!$this->id_state || !Validate::isLoadedObject($objState = new State((int) $this->id_state))) ) { $message = Tools::displayError('Invalid Id state'); - } else if ($objState->id && ($objCountry->id != $objState->id_country)) { + } else if (isset($objState) && ($objCountry->id != $objState->id_country)) { $message = Tools::displayError('The given provided Id state does not belongs to the provided Id country'); } else if ($objCountry->zip_code_format && !$objCountry->checkZipCode($this->postcode)) { $message = Tools::displayError('Your Zip/postal code is incorrect'); From 50127a4c5d32f086f4a4bb452b82226d352c9213 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 16 Aug 2024 10:28:27 +0530 Subject: [PATCH 131/169] Updated: The menu of hotel reservation system --- modules/hotelreservationsystem/hotelreservationsystem.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/hotelreservationsystem/hotelreservationsystem.php b/modules/hotelreservationsystem/hotelreservationsystem.php index f5294a76d..757825c77 100644 --- a/modules/hotelreservationsystem/hotelreservationsystem.php +++ b/modules/hotelreservationsystem/hotelreservationsystem.php @@ -557,9 +557,8 @@ class HotelReservationSystem extends Module public function callInstallTab() { $this->installTab('AdminHotelReservationSystemManagement', 'Hotel Reservation System'); - $this->installTab('AdminHotelRoomsBooking', 'Book Now', 'AdminHotelReservationSystemManagement'); - $this->installTab('AdminHotelConfigurationSetting', 'Settings', 'AdminHotelReservationSystemManagement'); $this->installTab('AdminAddHotel', 'Manage Hotel', 'AdminHotelReservationSystemManagement'); + $this->installTab('AdminHotelRoomsBooking', 'Book Now', 'AdminHotelReservationSystemManagement'); $this->installTab('AdminHotelFeatures', 'Manage Hotel Features', 'AdminHotelReservationSystemManagement'); $this->installTab( 'AdminOrderRefundRules', @@ -572,6 +571,7 @@ class HotelReservationSystem extends Module 'AdminHotelReservationSystemManagement' ); + $this->installTab('AdminHotelConfigurationSetting', 'General Settings', 'AdminHotelReservationSystemManagement'); // Controllers without tabs $this->installTab('AdminHotelGeneralSettings', 'Hotel General Configuration', 'AdminHotelConfigurationSetting', false); $this->installTab('AdminHotelFeaturePricesSettings', 'Advanced Price Rules', 'AdminHotelConfigurationSetting', false); From 918d7a981fbacc7b3042f71d63243afb6cbe7687 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 16 Aug 2024 10:30:02 +0530 Subject: [PATCH 132/169] revert: The menu of hotel reservation system --- modules/hotelreservationsystem/hotelreservationsystem.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/hotelreservationsystem/hotelreservationsystem.php b/modules/hotelreservationsystem/hotelreservationsystem.php index 757825c77..f5294a76d 100644 --- a/modules/hotelreservationsystem/hotelreservationsystem.php +++ b/modules/hotelreservationsystem/hotelreservationsystem.php @@ -557,8 +557,9 @@ class HotelReservationSystem extends Module public function callInstallTab() { $this->installTab('AdminHotelReservationSystemManagement', 'Hotel Reservation System'); - $this->installTab('AdminAddHotel', 'Manage Hotel', 'AdminHotelReservationSystemManagement'); $this->installTab('AdminHotelRoomsBooking', 'Book Now', 'AdminHotelReservationSystemManagement'); + $this->installTab('AdminHotelConfigurationSetting', 'Settings', 'AdminHotelReservationSystemManagement'); + $this->installTab('AdminAddHotel', 'Manage Hotel', 'AdminHotelReservationSystemManagement'); $this->installTab('AdminHotelFeatures', 'Manage Hotel Features', 'AdminHotelReservationSystemManagement'); $this->installTab( 'AdminOrderRefundRules', @@ -571,7 +572,6 @@ class HotelReservationSystem extends Module 'AdminHotelReservationSystemManagement' ); - $this->installTab('AdminHotelConfigurationSetting', 'General Settings', 'AdminHotelReservationSystemManagement'); // Controllers without tabs $this->installTab('AdminHotelGeneralSettings', 'Hotel General Configuration', 'AdminHotelConfigurationSetting', false); $this->installTab('AdminHotelFeaturePricesSettings', 'Advanced Price Rules', 'AdminHotelConfigurationSetting', false); From 2c82bfac1b1291996371745b49a290ab5d3ca550 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 16 Aug 2024 10:31:22 +0530 Subject: [PATCH 133/169] Updated: The menu of hotel reservation system --- modules/hotelreservationsystem/hotelreservationsystem.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/hotelreservationsystem/hotelreservationsystem.php b/modules/hotelreservationsystem/hotelreservationsystem.php index f5294a76d..757825c77 100644 --- a/modules/hotelreservationsystem/hotelreservationsystem.php +++ b/modules/hotelreservationsystem/hotelreservationsystem.php @@ -557,9 +557,8 @@ class HotelReservationSystem extends Module public function callInstallTab() { $this->installTab('AdminHotelReservationSystemManagement', 'Hotel Reservation System'); - $this->installTab('AdminHotelRoomsBooking', 'Book Now', 'AdminHotelReservationSystemManagement'); - $this->installTab('AdminHotelConfigurationSetting', 'Settings', 'AdminHotelReservationSystemManagement'); $this->installTab('AdminAddHotel', 'Manage Hotel', 'AdminHotelReservationSystemManagement'); + $this->installTab('AdminHotelRoomsBooking', 'Book Now', 'AdminHotelReservationSystemManagement'); $this->installTab('AdminHotelFeatures', 'Manage Hotel Features', 'AdminHotelReservationSystemManagement'); $this->installTab( 'AdminOrderRefundRules', @@ -572,6 +571,7 @@ class HotelReservationSystem extends Module 'AdminHotelReservationSystemManagement' ); + $this->installTab('AdminHotelConfigurationSetting', 'General Settings', 'AdminHotelReservationSystemManagement'); // Controllers without tabs $this->installTab('AdminHotelGeneralSettings', 'Hotel General Configuration', 'AdminHotelConfigurationSetting', false); $this->installTab('AdminHotelFeaturePricesSettings', 'Advanced Price Rules', 'AdminHotelConfigurationSetting', false); From f84ffbc6207c5c69eccb1f498fbfdc5668857dfa Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 16 Aug 2024 11:17:05 +0530 Subject: [PATCH 134/169] Added: Add new order button on the admin orders --- controllers/admin/AdminOrdersController.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index e5ad50678..3c599a62b 100644 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -352,6 +352,19 @@ class AdminOrdersControllerCore extends AdminController return Tools::displayPrice($echo, (int)$idCurrency); } + public function initPageHeaderToolbar() + { + if (empty($this->display)) { + $this->page_header_toolbar_btn['new_order'] = array( + 'href' => self::$currentIndex.'&addorder&token='.$this->token, + 'desc' => $this->l('Add new order', null, null, false), + 'icon' => 'process-icon-new' + ); + } + + parent::initPageHeaderToolbar(); + } + public function renderForm() { if (Context::getContext()->shop->getContext() != Shop::CONTEXT_SHOP && Shop::isFeatureActive()) { From fbc0dddb1360715724e6cf67de28de89f2aeef08 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Fri, 16 Aug 2024 12:00:02 +0530 Subject: [PATCH 135/169] fixed undefined link object --- .../controllers/admin/AdminHotelRoomsBookingController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/hotelreservationsystem/controllers/admin/AdminHotelRoomsBookingController.php b/modules/hotelreservationsystem/controllers/admin/AdminHotelRoomsBookingController.php index 0557ebfeb..5eb13aeab 100644 --- a/modules/hotelreservationsystem/controllers/admin/AdminHotelRoomsBookingController.php +++ b/modules/hotelreservationsystem/controllers/admin/AdminHotelRoomsBookingController.php @@ -379,6 +379,7 @@ class AdminHotelRoomsBookingController extends ModuleAdminController 'occupancy_required_for_booking' => $occupancyRequiredForBooking, 'max_child_age' => Configuration::get('WK_GLOBAL_CHILD_MAX_AGE'), 'max_child_in_room' => Configuration::get('WK_GLOBAL_MAX_CHILD_IN_ROOM'), + 'link' => $this->context->link )); if (Configuration::get('PS_BACKOFFICE_SEARCH_TYPE') == HotelBookingDetail::SEARCH_TYPE_OWS) { From 60c0c4fddcf25f15869f77b7d625684a327b0a7b Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Fri, 16 Aug 2024 12:03:52 +0530 Subject: [PATCH 136/169] remove debug code --- .../controllers/admin/AdminHotelRoomsBookingController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hotelreservationsystem/controllers/admin/AdminHotelRoomsBookingController.php b/modules/hotelreservationsystem/controllers/admin/AdminHotelRoomsBookingController.php index 5eb13aeab..00581eaff 100644 --- a/modules/hotelreservationsystem/controllers/admin/AdminHotelRoomsBookingController.php +++ b/modules/hotelreservationsystem/controllers/admin/AdminHotelRoomsBookingController.php @@ -855,7 +855,7 @@ class AdminHotelRoomsBookingController extends ModuleAdminController } } } - // ddd($booking_data); + return $booking_data; } From 6606d975c8e24743338aca9141870fcc4450eee4 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Fri, 16 Aug 2024 12:30:09 +0530 Subject: [PATCH 137/169] update newsletter welcome voucher --- modules/blocknewsletter/mails/en/newsletter_voucher.html | 7 ++++++- modules/blocknewsletter/mails/en/newsletter_voucher.txt | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/blocknewsletter/mails/en/newsletter_voucher.html b/modules/blocknewsletter/mails/en/newsletter_voucher.html index cb8e3db1e..1156ed1e4 100644 --- a/modules/blocknewsletter/mails/en/newsletter_voucher.html +++ b/modules/blocknewsletter/mails/en/newsletter_voucher.html @@ -87,7 +87,12 @@

    Newsletter subscription

    - Regarding your newsletter subscription, we are pleased to offer you the following voucher: {discount} + Regarding your newsletter subscription, we are pleased to offer you the welcome voucher: {discount} + +
    +
    + + Please note that the voucher will be valid on your first order. diff --git a/modules/blocknewsletter/mails/en/newsletter_voucher.txt b/modules/blocknewsletter/mails/en/newsletter_voucher.txt index 7e1039388..5d95feb94 100644 --- a/modules/blocknewsletter/mails/en/newsletter_voucher.txt +++ b/modules/blocknewsletter/mails/en/newsletter_voucher.txt @@ -4,7 +4,9 @@ Hi, Regarding your newsletter subscription, we are pleased to offer -you the following voucher: {discount} +you the welcome voucher: {discount} + +Please note that the voucher will be valid on your first order. {shop_name} [/{shop_url}] powered by Webkul(tm) [https://webkul.com] From 898477c76e764b82d4a272874ff2d277beaf8eee Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 16 Aug 2024 15:32:42 +0530 Subject: [PATCH 138/169] Update: centralized the room price calculation process, updated function get getRoomTypeTotalPrice() --- controllers/front/ProductController.php | 19 ++++++++++-- .../classes/HotelCartBookingData.php | 30 +++++++++++++++++-- .../classes/HotelRoomTypeFeaturePricing.php | 11 +++---- modules/wkhotelroom/wkhotelroom.php | 24 +++++++++++++-- 4 files changed, 71 insertions(+), 13 deletions(-) diff --git a/controllers/front/ProductController.php b/controllers/front/ProductController.php index fbaf318ec..404742796 100644 --- a/controllers/front/ProductController.php +++ b/controllers/front/ProductController.php @@ -653,7 +653,18 @@ class ProductControllerCore extends FrontController // calculate room type price first $useTax = HotelBookingDetail::useTax(); $totalPrice = 0; - $productPriceWithoutReduction = $objProduct->getPriceWithoutReduct(!$useTax); + $priceWithoutDiscount = HotelRoomTypeFeaturePricing::getRoomTypeTotalPrice( + $idProduct, + $dateFrom, + $dateTo, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ); $roomTypeDateRangePrice = HotelRoomTypeFeaturePricing::getRoomTypeTotalPrice( $idProduct, $dateFrom, @@ -669,6 +680,8 @@ class ProductControllerCore extends FrontController true ); $roomTypeDateRangePrice = $roomTypeDateRangePrice['total_price_tax_incl']; + $totalPriceWithoutDiscount = $priceWithoutDiscount['total_price_tax_incl']; + } else { $featurePrice = HotelRoomTypeFeaturePricing::getRoomTypeFeaturePricesPerDay( $idProduct, @@ -677,9 +690,10 @@ class ProductControllerCore extends FrontController false ); $roomTypeDateRangePrice = $roomTypeDateRangePrice['total_price_tax_excl']; + $totalPriceWithoutDiscount = $priceWithoutDiscount['total_price_tax_excl']; } - $featurePriceDiff = (float) ($productPriceWithoutReduction - $featurePrice); + $totalPriceWithoutDiscount *= $quantity; $totalRoomPrice = $roomTypeDateRangePrice * $quantity; // calculate demand price now $demandsPricePerRoom = 0; @@ -767,7 +781,6 @@ class ProductControllerCore extends FrontController $demandsPrice = $demandsPricePerRoom * $quantity; // calculate total price $totalPrice = $totalRoomPrice + $demandsPrice; - $totalPriceWithoutDiscount = $objProduct->getPriceWithoutReduct(!$useTax, false, 6, 1) * $numDays * $quantity; // send occupancy information searched by the user if ($occupancy && is_array($occupancy)) { $smartyVars['occupancies'] = $occupancy; diff --git a/modules/hotelreservationsystem/classes/HotelCartBookingData.php b/modules/hotelreservationsystem/classes/HotelCartBookingData.php index 3e147a59a..1ea42986b 100644 --- a/modules/hotelreservationsystem/classes/HotelCartBookingData.php +++ b/modules/hotelreservationsystem/classes/HotelCartBookingData.php @@ -1574,13 +1574,26 @@ class HotelCartBookingData extends ObjectModel $data_v['id_room'], 0 ); - $totalPriceWithoutDiscount = $objProduct->getPriceWithoutReduct(!$price_tax, false, 6, 1) * $numDays; + $priceWithoutDiscount = HotelRoomTypeFeaturePricing::getRoomTypeTotalPrice( + $product['id_product'], + $data_v['date_from'], + $data_v['date_to'], + 0, + 0, + $context->cart->id, + $context->cart->id_guest, + $data_v['id_room'], + 1, + 0 + ); if (!$price_tax) { $amount = $roomTypeDateRangePrice['total_price_tax_excl']; $amountWithoutAutoAdd = $roomTypeDateRangePriceWithoutAutoAdd['total_price_tax_excl']; + $totalPriceWithoutDiscount = $priceWithoutDiscount['total_price_tax_excl']; } else { $amount = $roomTypeDateRangePrice['total_price_tax_incl']; $amountWithoutAutoAdd = $roomTypeDateRangePriceWithoutAutoAdd['total_price_tax_incl']; + $totalPriceWithoutDiscount = $priceWithoutDiscount['total_price_tax_incl']; } $cartHotelData[$prodKey]['date_diff'][$dateJoin]['amount'] = $amount * $varQty; $cartHotelData[$prodKey]['date_diff'][$dateJoin]['total_price_without_discount'] = $totalPriceWithoutDiscount * $varQty; @@ -1623,13 +1636,26 @@ class HotelCartBookingData extends ObjectModel $data_v['id_room'], 0 ); - $totalPriceWithoutDiscount = $objProduct->getPriceWithoutReduct(!$price_tax, false, 6, 1) * $numDays; + $priceWithoutDiscount = HotelRoomTypeFeaturePricing::getRoomTypeTotalPrice( + $product['id_product'], + $data_v['date_from'], + $data_v['date_to'], + 0, + 0, + $context->cart->id, + $context->cart->id_guest, + $data_v['id_room'], + 1, + 0 + ); if (!$price_tax) { $amount = $roomTypeDateRangePrice['total_price_tax_excl']; $amountWithoutAutoAdd = $roomTypeDateRangePriceWithoutAutoAdd['total_price_tax_excl']; + $totalPriceWithoutDiscount = $priceWithoutDiscount['total_price_tax_excl']; } else { $amount = $roomTypeDateRangePrice['total_price_tax_incl']; $amountWithoutAutoAdd = $roomTypeDateRangePriceWithoutAutoAdd['total_price_tax_incl']; + $totalPriceWithoutDiscount = $priceWithoutDiscount['total_price_tax_incl']; } $cartHotelData[$prodKey]['date_diff'][$dateJoin]['amount'] = $amount; $cartHotelData[$prodKey]['date_diff'][$dateJoin]['amount_without_auto_add'] = $amountWithoutAutoAdd; diff --git a/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php b/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php index c4b0a6bc3..e4a9f4fe3 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php +++ b/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php @@ -647,15 +647,16 @@ class HotelRoomTypeFeaturePricing extends ObjectModel $id_cart = 0, $id_guest = 0, $id_room = 0, - $with_auto_room_services = 1 + $with_auto_room_services = 1, + $usereduc = 1 ) { $totalPrice = array(); $totalPrice['total_price_tax_incl'] = 0; $totalPrice['total_price_tax_excl'] = 0; $featureImpactPriceTE = 0; $featureImpactPriceTI = 0; - $productPriceTI = Product::getPriceStatic((int) $id_product, true); - $productPriceTE = Product::getPriceStatic((int) $id_product, false); + $productPriceTI = Product::getPriceStatic((int) $id_product, true, false, 6, null, false, $usereduc); + $productPriceTE = Product::getPriceStatic((int) $id_product, false, false, 6, null, false, $usereduc); if ($productPriceTE) { $taxRate = (($productPriceTI-$productPriceTE)/$productPriceTE)*100; } else { @@ -678,14 +679,14 @@ class HotelRoomTypeFeaturePricing extends ObjectModel $date_from = date('Y-m-d', strtotime($date_from)); $date_to = date('Y-m-d', strtotime($date_to)); for($currentDate = $date_from; $currentDate < $date_to; $currentDate = date('Y-m-d', strtotime('+1 day', strtotime($currentDate)))) { - if ($featurePrice = $hotelCartBookingData->getProductFeaturePricePlanByDateByPriority( + if ($usereduc && ($featurePrice = $hotelCartBookingData->getProductFeaturePricePlanByDateByPriority( $id_product, $currentDate, $id_group, $id_cart, $id_guest, $id_room - )) { + ))) { if ($featurePrice['impact_type'] == self::IMPACT_TYPE_PERCENTAGE) { //percentage $featureImpactPriceTE = $productPriceTE * ($featurePrice['impact_value'] / 100); diff --git a/modules/wkhotelroom/wkhotelroom.php b/modules/wkhotelroom/wkhotelroom.php index 2df6101fd..a625ee434 100644 --- a/modules/wkhotelroom/wkhotelroom.php +++ b/modules/wkhotelroom/wkhotelroom.php @@ -65,14 +65,32 @@ class WkHotelRoom extends Module ImageType::getFormatedName('large') ); } - $productPriceWithoutReduction = $product->getPriceWithoutReduct(!$useTax, false, 6, 1); + $productPriceWithoutReduction = HotelRoomTypeFeaturePricing::getRoomTypeTotalPrice( + $idProduct, + $dateFrom, + $dateTo, + $useTax, + 0, + 0, + 0, + 0, + 1, + 0 + ); + + if ($useTax) { + $priceWithoutReduction = $productPriceWithoutReduction['total_price_tax_incl']; + } else { + $priceWithoutReduction = $productPriceWithoutReduction['total_price_tax_excl']; + } + $product_price = Product::getPriceStatic($idProduct, $useTax); $htlRoom['image'] = $prodImg; $htlRoom['description'] = $product->description_short; $htlRoom['name'] = $product->name; $htlRoom['show_price'] = $product->show_price; $htlRoom['price'] = $product_price; - $htlRoom['price_without_reduction'] = $productPriceWithoutReduction; + $htlRoom['price_without_reduction'] = $priceWithoutReduction; $featurePrice = HotelRoomTypeFeaturePricing::getRoomTypeFeaturePricesPerDay( $idProduct, $dateFrom, @@ -220,7 +238,7 @@ class WkHotelRoom extends Module } return true; } - + public function deleteConfigKeys() { $configVars = array( From 7e1edfa5578cc59a33020b395cb4454373094ecf Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 16 Aug 2024 17:59:04 +0530 Subject: [PATCH 139/169] added missing code from the previous commit --- modules/wkhotelroom/wkhotelroom.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/wkhotelroom/wkhotelroom.php b/modules/wkhotelroom/wkhotelroom.php index a625ee434..b7cdc47c4 100644 --- a/modules/wkhotelroom/wkhotelroom.php +++ b/modules/wkhotelroom/wkhotelroom.php @@ -98,7 +98,7 @@ class WkHotelRoom extends Module $useTax ); $htlRoom['feature_price'] = $featurePrice; - $htlRoom['feature_price_diff'] = (float)($productPriceWithoutReduction - $featurePrice); + $htlRoom['feature_price_diff'] = (float)($priceWithoutReduction - $featurePrice); } } $this->context->smarty->assign( From 24282ce64599a9c833a945839f4d4c78ccac1bbc Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 16 Aug 2024 18:58:12 +0530 Subject: [PATCH 140/169] Fixed: issues caused by incorrect merge, and optimized the code --- .../default/sass/controllers/_order.sass | 2 +- .../controllers/orders/helpers/view/view.tpl | 12 ++--- controllers/admin/AdminOrdersController.php | 52 ++++++++++--------- 3 files changed, 35 insertions(+), 31 deletions(-) diff --git a/admin/themes/default/sass/controllers/_order.sass b/admin/themes/default/sass/controllers/_order.sass index ff4eded4d..2cce1d798 100644 --- a/admin/themes/default/sass/controllers/_order.sass +++ b/admin/themes/default/sass/controllers/_order.sass @@ -97,7 +97,7 @@ left: unset font-size: 14px -#order-details +#order-details-price .icon-bold font-weight: 600 #convenience_services, #order_tax_details 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 5bf631a1f..1007578fb 100644 --- a/admin/themes/default/template/controllers/orders/helpers/view/view.tpl +++ b/admin/themes/default/template/controllers/orders/helpers/view/view.tpl @@ -837,7 +837,7 @@
    - +
    {* Assign order price *} {if ($order->getTaxCalculationMethod() == $smarty.const.PS_TAX_EXC)} {assign var=order_product_price value=($order->total_products)} @@ -896,7 +896,7 @@ {/if} @@ -942,20 +942,20 @@ {/if} - {if isset($additional_service_price_tax_incl) && (($additional_service_price_tax_incl - $additional_service_price_tax_excl) - ($totalConvenienceFeeTI - $totalConvenienceFeeTE)) > 0} + {if isset($additional_service_price_tax_incl) && (($additional_service_price_tax_incl - $additional_service_price_tax_excl) - ($convenience_fee_price_tax_incl - $convenience_fee_price_tax_excl)) > 0} {/if} - {if isset($totalConvenienceFeeTE) && $totalConvenienceFeeTE > 0} + {if isset($convenience_fee_price_tax_excl) && $convenience_fee_price_tax_excl > 0} diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index 100836a90..60170d1c2 100644 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -2752,30 +2752,6 @@ class AdminOrdersControllerCore extends AdminController $objBookingDemand = new HotelBookingDemands(); $objHotelRoomType = new HotelRoomType(); foreach ($order_detail_data as $key => $value) { - $roomTypeAutoAddedService = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( - $order->id, - 0, - 0, - $value['id_product'], - 0, - 0, - 0, - 0, - null, - 1, - Product::PRICE_ADDITION_TYPE_INDEPENDENT - ); - if (isset($roomTypeAutoAddedService[$value['id']]['additional_services'])) { - foreach($roomTypeAutoAddedService[$value['id']]['additional_services'] as $service) { - if (isset($bookingAutoAddedServices[$service['id_product']])) { - $bookingAutoAddedServices[$service['id_product']]['total_price_tax_excl'] += $service['total_price_tax_excl']; - } else { - $bookingAutoAddedServices[$service['id_product']]['name'] = $service['name']; - $bookingAutoAddedServices[$service['id_product']]['total_price_tax_excl'] = $service['total_price_tax_excl']; - } - } - } - $order_detail_data[$key]['total_room_price_te'] = $value['total_price_tax_excl']; $order_detail_data[$key]['total_room_price_ti'] = $value['total_price_tax_incl']; @@ -2907,6 +2883,34 @@ class AdminOrdersControllerCore extends AdminController $order_detail_data = array(); } + if ($orderedRooms = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( + $order->id, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + null, + 1, + Product::PRICE_ADDITION_TYPE_INDEPENDENT + )) { + foreach($orderedRooms as $orderedRoom) { + if (isset($orderedRoom['additional_services']) && $orderedRoom['additional_services']) { + foreach ($orderedRoom['additional_services'] as $service) { + if (isset($bookingAutoAddedServices[$service['id_product']])) { + $bookingAutoAddedServices[$service['id_product']]['total_price_tax_excl'] += $service['total_price_tax_excl']; + } else { + $bookingAutoAddedServices[$service['id_product']]['name'] = $service['name']; + $bookingAutoAddedServices[$service['id_product']]['total_price_tax_excl'] = $service['total_price_tax_excl']; + } + } + } + } + } + + $objOrderReturn = new OrderReturn(); $refundedAmount = 0; if ($refundReqBookings = $objOrderReturn->getOrderRefundRequestedBookings($order->id, 0, 1, 0, 1)) { From 50c0940b8fba46636323766b1d24f04e8b01ffcb Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Fri, 16 Aug 2024 19:44:31 +0530 Subject: [PATCH 141/169] prevent deletion of room type features and hotel features during catalog cleaning --- modules/qlocleaner/qlocleaner.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/modules/qlocleaner/qlocleaner.php b/modules/qlocleaner/qlocleaner.php index 0bc30a76b..adfe64e51 100644 --- a/modules/qlocleaner/qlocleaner.php +++ b/modules/qlocleaner/qlocleaner.php @@ -769,12 +769,7 @@ class QloCleaner extends Module 'customization_field', 'customization_field_lang', 'customized_data', - 'feature', - 'feature_lang', 'feature_product', - 'feature_shop', - 'feature_value', - 'feature_value_lang', 'pack', 'search_index', 'search_word', @@ -794,8 +789,6 @@ class QloCleaner extends Module 'htl_branch_info_lang', 'htl_image', 'htl_branch_features', - 'htl_features', - 'htl_features_lang', 'htl_advance_payment', 'htl_branch_refund_rules', 'htl_order_restrict_date', From bd90e4f8afe4fccdeaa33ebf8b9bd914ab38c8c0 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Tue, 20 Aug 2024 09:46:29 +0530 Subject: [PATCH 142/169] Fixed: Undefined Index Issue for Cover Image --- classes/Product.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/classes/Product.php b/classes/Product.php index d001c4ea2..1286db158 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -5739,8 +5739,11 @@ class ProductCore extends ObjectModel */ public function getCoverWs() { - $result = $this->getCover($this->id); - return $result['id_image']; + if ($result = $this->getCover($this->id)) { + return $result['id_image']; + } + + return false; } /** From 7cf2b7de1aead96c88e453e4c606730b4ac26ac3 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Tue, 20 Aug 2024 15:23:55 +0530 Subject: [PATCH 143/169] Fixed: RTL issues for the room type page, home page, order-detail page and contact-us page. --- .../views/css/front/review-list.css | 15 ++++++++++++ .../templates/hook/_partials/list-actions.tpl | 24 ++++++++++--------- .../templates/hook/product-tab-content.tpl | 2 +- .../css/order-detail.css | 5 ++++ themes/hotel-reservation-theme/css/rtl.css | 23 ++++++++++++++++++ 5 files changed, 57 insertions(+), 12 deletions(-) diff --git a/modules/qlohotelreview/views/css/front/review-list.css b/modules/qlohotelreview/views/css/front/review-list.css index 42f9a3efb..cd768e1e7 100644 --- a/modules/qlohotelreview/views/css/front/review-list.css +++ b/modules/qlohotelreview/views/css/front/review-list.css @@ -271,9 +271,15 @@ margin-right: 5px; } +#hotel-reviews .review-sort-by-container { + display: inline-block; + position: relative; +} + #hotel-reviews .review-sort-by button { text-align: left; min-width: 170px; + position: relative; } #hotel-reviews .dropdown-menu { @@ -285,3 +291,12 @@ top: 15px; right: 12px; } + +#hotel-reviews.rtl .sort-by { + margin-left: 5px; + margin-right: unset; +} + +#hotel-reviews.rtl [class*=col]{ + float: right !important; +} \ No newline at end of file diff --git a/modules/qlohotelreview/views/templates/hook/_partials/list-actions.tpl b/modules/qlohotelreview/views/templates/hook/_partials/list-actions.tpl index f470ca833..03cd074b5 100644 --- a/modules/qlohotelreview/views/templates/hook/_partials/list-actions.tpl +++ b/modules/qlohotelreview/views/templates/hook/_partials/list-actions.tpl @@ -23,17 +23,19 @@ diff --git a/modules/qlohotelreview/views/templates/hook/product-tab-content.tpl b/modules/qlohotelreview/views/templates/hook/product-tab-content.tpl index c64bdd966..96e43341f 100644 --- a/modules/qlohotelreview/views/templates/hook/product-tab-content.tpl +++ b/modules/qlohotelreview/views/templates/hook/product-tab-content.tpl @@ -17,7 +17,7 @@ * @license LICENSE.txt *} -
    +
    {if is_array($reviews) && count($reviews)} {include file='./_partials/review-summary.tpl'} {include file='./_partials/media-list.tpl'} diff --git a/themes/hotel-reservation-theme/css/order-detail.css b/themes/hotel-reservation-theme/css/order-detail.css index d05fc1e30..a779fd760 100644 --- a/themes/hotel-reservation-theme/css/order-detail.css +++ b/themes/hotel-reservation-theme/css/order-detail.css @@ -1083,6 +1083,11 @@ #popup-view-extra-services .tab-content .room_demand_block:not(:last-of-type) { margin-bottom: 12px; } +.payment-summary tr, .guest-details tr { + display: flex; + justify-content: space-between; + align-items: center; +} /* Guest Tracking page styles - start */ .transform-account .card-text p { diff --git a/themes/hotel-reservation-theme/css/rtl.css b/themes/hotel-reservation-theme/css/rtl.css index f2d491884..0d49ef483 100644 --- a/themes/hotel-reservation-theme/css/rtl.css +++ b/themes/hotel-reservation-theme/css/rtl.css @@ -166,6 +166,11 @@ ul.footer_links li .button.button-small span i { margin-right: 0; } +div.uploader .filename, div.uploader .action { + float : right !important; + margin-right: 2px; +} + /* room search block - start */ #search_hotel_block_form .header-rmsearch-input.input-location { padding-right: 35px; @@ -307,6 +312,24 @@ ul.footer_links li .button.button-small span i { } /* my account - end */ +/* order-detail - start */ +@media (min-width: 576px) { + .booking-room-detail .num-refunded-rooms { + float: left !important; + } +} +.fancybox-wrap.fancybox-order-detail .fancybox-close { + right: unset !important; + left: 12px !important; +} +/* order-detail - start */ + +/* Booking refund requests - start */ +#order-return .form-group.row div { + float: right !important; +} +/* Booking refund requests - end */ + /* footer - start */ .footer-section-heading hr { float: right !important; From 5b764fb66c51c7fb25db646eb10e0f8d14252369 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Tue, 20 Aug 2024 19:28:24 +0530 Subject: [PATCH 144/169] Fixed: issues occured during updation process --- classes/pdf/HTMLTemplateInvoice.php | 2 ++ controllers/admin/AdminOrdersController.php | 36 +++++++++++-------- .../classes/HotelBookingDemands.php | 4 +-- .../classes/HotelBookingDetail.php | 9 +++-- .../classes/HotelRoomTypeDemand.php | 5 ++- .../RoomTypeServiceProductOrderDetail.php | 7 ++-- 6 files changed, 38 insertions(+), 25 deletions(-) diff --git a/classes/pdf/HTMLTemplateInvoice.php b/classes/pdf/HTMLTemplateInvoice.php index b134abcee..75d696ffd 100644 --- a/classes/pdf/HTMLTemplateInvoice.php +++ b/classes/pdf/HTMLTemplateInvoice.php @@ -397,6 +397,7 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate 0, 1, 0, + 0, $type_value['id_order_detail'] ); $cart_htl_data[$type_key]['date_diff'][$date_join]['extra_demands_price_ti'] = $objBookingDemand->getRoomTypeBookingExtraDemands( @@ -408,6 +409,7 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate 0, 1, 1, + 0, $type_value['id_order_detail'] ); $cart_htl_data[$type_key]['date_diff'][$date_join]['additional_services'] = $objRoomTypeServiceProductOrderDetail->getroomTypeServiceProducts( diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index e61172aa3..975c4f668 100644 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -4621,6 +4621,9 @@ class AdminOrdersControllerCore extends AdminController $order_invoice = new OrderInvoice((int) Tools::getValue('product_invoice')); } /*By webkul To edit Order and cart entries when edit rooms from the orderLine when editing the order*/ + $obj_booking_detail = new HotelBookingDetail((int) Tools::getValue('id_booking_detail')); + $cart = new Cart($obj_booking_detail->id_cart); + $product_informations = $_POST['edit_product']; $new_date_from = trim(date('Y-m-d', strtotime($product_informations['date_from']))); $new_date_to = trim(date('Y-m-d', strtotime($product_informations['date_to']))); @@ -4630,7 +4633,6 @@ class AdminOrdersControllerCore extends AdminController $id_room = trim(Tools::getValue('id_room')); $id_product = trim(Tools::getValue('id_product')); $room_unit_price = trim(Tools::getValue('room_unit_price')); - $obj_booking_detail = new HotelBookingDetail(); $product_quantity = (int) $obj_booking_detail->getNumberOfDays($new_date_from, $new_date_to); $old_product_quantity = (int) $obj_booking_detail->getNumberOfDays($old_date_from, $old_date_to); $qty_diff = $product_quantity - $old_product_quantity; @@ -4639,9 +4641,6 @@ class AdminOrdersControllerCore extends AdminController $children = $occupancy['children']; $child_ages = $occupancy['child_ages']; - $bookingInfo = $obj_booking_detail->getRowByIdOrderIdProductInDateRange($id_order, $id_product, $old_date_from, $old_date_to, $id_room); - $cart = new Cart($bookingInfo['id_cart']); - // By webkul to calculate rates of the product from hotelreservationsystem tables with feature prices.... // add feature price for updated price @@ -4823,7 +4822,7 @@ class AdminOrdersControllerCore extends AdminController $cartQty = -$cartQty; } - $cart->updateQty($cartQty, $bookingInfo['id_product'], null, false, $op, 0, null, true); + $cart->updateQty($cartQty, $obj_booking_detail->id_product, null, false, $op, 0, null, true); } // Update product available quantity @@ -4890,20 +4889,26 @@ class AdminOrdersControllerCore extends AdminController 0, 0, 0, - $old_date_from, - $old_date_to, + 0, + 0, $id_room, 0, null, - null + 0, + null, + $obj_booking_detail->id ); $extraDemands = $objBookingDemand->getRoomTypeBookingExtraDemands( $id_order, 0, $id_room, - $old_date_from, - $old_date_to + 0, + 0, + 1, + 0, + 1, + $obj_booking_detail->id ); // set occupancy details @@ -4919,7 +4924,7 @@ class AdminOrdersControllerCore extends AdminController 'tax_incl' => $totalRoomPriceAfterTI, ); - if ($update_htl_tables = $obj_booking_detail->UpdateHotelCartHotelOrderOnOrderEdit( + if ($obj_booking_detail->updateHotelCartHotelOrderOnOrderEdit( $id_order, $id_room, $old_date_from, @@ -4927,7 +4932,8 @@ class AdminOrdersControllerCore extends AdminController $new_date_from, $new_date_to, $occupancy, - $new_total_price + $new_total_price, + $obj_booking_detail->id )) { // update extra demands total prices if dates are changes (price calc method for each day) if ($extraDemands) { @@ -5465,8 +5471,8 @@ class AdminOrdersControllerCore extends AdminController OrderReturnDetail::deleteReturnDetailByIdBookingDetail($id_order, $idHotelBooking); // Reducing the quantity from the cart after removing the room from the order - $objCart = new Cart($bookingInfo['id_cart']); - $objCart->updateQty($product_quantity, $bookingInfo['id_product'], null, false, 'down', 0, null, true); + $objCart = new Cart($objBookingDetail->id_cart); + $objCart->updateQty($product_quantity, $objBookingDetail->id_product, null, false, 'down', 0, null, true); // Assign to smarty informations in order to show the new product line $this->context->smarty->assign(array( @@ -6211,7 +6217,7 @@ class AdminOrdersControllerCore extends AdminController $oldTotalPriceTaxExcl = $objRoomTypeServiceProductOrderDetail->total_price_tax_excl; $oldTotalPriceTaxIncl = $objRoomTypeServiceProductOrderDetail->total_price_tax_incl; $oldQuantity = $objRoomTypeServiceProductOrderDetail->quantity; - if ($oldPriceTaxExcl > 0) { + if ($oldUnitPriceTaxExcl > 0) { $oldTaxMultiplier = $oldUnitPriceTaxIncl / $oldUnitPriceTaxExcl; } else { $oldTaxMultiplier = 1; diff --git a/modules/hotelreservationsystem/classes/HotelBookingDemands.php b/modules/hotelreservationsystem/classes/HotelBookingDemands.php index 57904d0a4..fc613a6c0 100644 --- a/modules/hotelreservationsystem/classes/HotelBookingDemands.php +++ b/modules/hotelreservationsystem/classes/HotelBookingDemands.php @@ -75,8 +75,8 @@ class HotelBookingDemands extends ObjectModel $groupByRoom = 1, $getTotalPrice = 0, $useTax = 1, - $idOrderDetail = 0, - $idHtlBookingDetail = 0 + $idHtlBookingDetail = 0, + $idOrderDetail = 0 ) { $moduleObj = Module::getInstanceByName('hotelreservationsystem'); $context = Context::getContext(); diff --git a/modules/hotelreservationsystem/classes/HotelBookingDetail.php b/modules/hotelreservationsystem/classes/HotelBookingDetail.php index 2cf3dac59..191793ca4 100644 --- a/modules/hotelreservationsystem/classes/HotelBookingDetail.php +++ b/modules/hotelreservationsystem/classes/HotelBookingDetail.php @@ -2369,7 +2369,7 @@ class HotelBookingDetail extends ObjectModel return Db::getInstance()->executeS($sql); } - public function UpdateHotelCartHotelOrderOnOrderEdit( + public function updateHotelCartHotelOrderOnOrderEdit( $idOrder, $idRoom, $oldDateFrom, @@ -2377,11 +2377,10 @@ class HotelBookingDetail extends ObjectModel $newDateFrom, $newDateTo, $occupancy, - $newTotalPrice = null + $newTotalPrice = null, + $idHotelBookingDetail ) { - // retrieve HotelBookingDetail row - $roomBookingData = $this->getRoomBookingData($idRoom, $idOrder, $oldDateFrom, $oldDateTo); - $objHotelBookingDetail = new self($roomBookingData['id']); + $objHotelBookingDetail = new self((int) $idHotelBookingDetail); if (Validate::isLoadedObject($objHotelBookingDetail)) { // retrieve HotelCartBookingData row $idHotelCartBookingData = Db::getInstance()->getValue( diff --git a/modules/hotelreservationsystem/classes/HotelRoomTypeDemand.php b/modules/hotelreservationsystem/classes/HotelRoomTypeDemand.php index e02bdf307..3d37f9083 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomTypeDemand.php +++ b/modules/hotelreservationsystem/classes/HotelRoomTypeDemand.php @@ -336,8 +336,11 @@ class HotelRoomTypeDemand extends ObjectModel $price = $objGlobalDemand->price; } } + + // since this will update the custom price according to the default currency, which is not required for custom price + $price = Tools::convertPrice($price, $idCurrency); } - $price = Tools::convertPrice($price, $idCurrency); + // Tax calculation section $address->id_country = $idCountry; $address->id_state = $idState; diff --git a/modules/hotelreservationsystem/classes/RoomTypeServiceProductOrderDetail.php b/modules/hotelreservationsystem/classes/RoomTypeServiceProductOrderDetail.php index f7e4bc2c0..8692ee1e4 100644 --- a/modules/hotelreservationsystem/classes/RoomTypeServiceProductOrderDetail.php +++ b/modules/hotelreservationsystem/classes/RoomTypeServiceProductOrderDetail.php @@ -69,9 +69,9 @@ class RoomTypeServiceProductOrderDetail extends ObjectModel $useTax = null, $autoAddToCart = 0, $priceAdditionType = null, - $idOrderDetail = 0 + $idOrderDetail = 0, + $idHtlBookingDetail = 0 ) { - if ($useTax === null) { $useTax = Product::$_taxCalculationMethod == PS_TAX_EXC ? false : true; } @@ -111,6 +111,9 @@ class RoomTypeServiceProductOrderDetail extends ObjectModel if ($idRoom) { $sql .= ' AND hbd.`id_room`='.(int) $idRoom; } + if ($idHtlBookingDetail) { + $sql .= ' AND hbd.`id` = '.(int)$idHtlBookingDetail; + } $sql .= ' ORDER BY hbd.`id`'; if ($getTotalPrice) { From 7784f69704789f8d167c83babf5efca443a994d5 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Tue, 20 Aug 2024 20:06:20 +0530 Subject: [PATCH 145/169] removed the extra changes made in the previous commit --- controllers/admin/AdminOrdersController.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index 975c4f668..79dd91cff 100644 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -4889,8 +4889,8 @@ class AdminOrdersControllerCore extends AdminController 0, 0, 0, - 0, - 0, + $old_date_from, + $old_date_to, $id_room, 0, null, @@ -4903,8 +4903,8 @@ class AdminOrdersControllerCore extends AdminController $id_order, 0, $id_room, - 0, - 0, + $old_date_from, + $old_date_to, 1, 0, 1, From 99242726039b74d5e456ba281f96895bcc6649d2 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Tue, 20 Aug 2024 20:43:33 +0530 Subject: [PATCH 146/169] Fixed: The design for the order detail page in RTL languages --- themes/hotel-reservation-theme/css/rtl.css | 10 ++++++++++ themes/hotel-reservation-theme/order-opc.tpl | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/themes/hotel-reservation-theme/css/rtl.css b/themes/hotel-reservation-theme/css/rtl.css index f2d491884..cbdb85027 100644 --- a/themes/hotel-reservation-theme/css/rtl.css +++ b/themes/hotel-reservation-theme/css/rtl.css @@ -80,6 +80,16 @@ ul.footer_links li .button.button-small span i { } } +.room_price_detail_block [class*=col], +#checkout-guest-info-block [class*=col], +.cart_product_line [class*=col], +.room_duration_block [class*=col], +.avail_vouchers_block [class*=col], +#order-opc .cart_total_detail_block .cart_total_values, +#order-opc .avail_vouchers_block .avail_voucher_name>.voucher_name { + float: right !important; +} + .booking-actions-wrap .btn.pull-right { float: left !important; margin-left: unset; diff --git a/themes/hotel-reservation-theme/order-opc.tpl b/themes/hotel-reservation-theme/order-opc.tpl index 77ad2a465..5c300ba5b 100644 --- a/themes/hotel-reservation-theme/order-opc.tpl +++ b/themes/hotel-reservation-theme/order-opc.tpl @@ -439,7 +439,7 @@ {foreach from=$displayVouchers key=key item=voucher name=availVoucher}

    - {$voucher.code|escape:'html':'UTF-8'} - {$voucher.name} + {$voucher.code|escape:'html':'UTF-8'} - {$voucher.name}

    {if not $smarty.foreach.availVoucher.last}
    From 51cc002dea9d7266f04eb1bfb9878dcc912b8aa8 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Wed, 21 Aug 2024 10:13:25 +0530 Subject: [PATCH 147/169] Updated the getRoomTypeTotalPrice(), to get the auto added service with/ without reduction, also updated the design RTL languages for the order-opc page --- .../classes/HotelRoomTypeFeaturePricing.php | 14 ++++++++------ .../classes/RoomTypeServiceProduct.php | 7 +++++-- .../classes/RoomTypeServiceProductPrice.php | 4 ++-- themes/hotel-reservation-theme/css/rtl.css | 12 +++++++++--- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php b/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php index 147da3a41..647181923 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php +++ b/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php @@ -648,15 +648,15 @@ class HotelRoomTypeFeaturePricing extends ObjectModel $id_guest = 0, $id_room = 0, $with_auto_room_services = 1, - $usereduc = 1 + $use_reduc = 1 ) { $totalPrice = array(); $totalPrice['total_price_tax_incl'] = 0; $totalPrice['total_price_tax_excl'] = 0; $featureImpactPriceTE = 0; $featureImpactPriceTI = 0; - $productPriceTI = Product::getPriceStatic((int) $id_product, true, false, 6, null, false, $usereduc); - $productPriceTE = Product::getPriceStatic((int) $id_product, false, false, 6, null, false, $usereduc); + $productPriceTI = Product::getPriceStatic((int) $id_product, true, false, 6, null, false, $use_reduc); + $productPriceTE = Product::getPriceStatic((int) $id_product, false, false, 6, null, false, $use_reduc); if ($productPriceTE) { $taxRate = (($productPriceTI-$productPriceTE)/$productPriceTE)*100; } else { @@ -679,7 +679,7 @@ class HotelRoomTypeFeaturePricing extends ObjectModel $date_from = date('Y-m-d', strtotime($date_from)); $date_to = date('Y-m-d', strtotime($date_to)); for($currentDate = $date_from; $currentDate < $date_to; $currentDate = date('Y-m-d', strtotime('+1 day', strtotime($currentDate)))) { - if ($usereduc && ($featurePrice = $hotelCartBookingData->getProductFeaturePricePlanByDateByPriority( + if ($use_reduc && ($featurePrice = $hotelCartBookingData->getProductFeaturePricePlanByDateByPriority( $id_product, $currentDate, $id_group, @@ -729,7 +729,8 @@ class HotelRoomTypeFeaturePricing extends ObjectModel Product::PRICE_ADDITION_TYPE_WITH_ROOM, true, $id_cart, - $id_guest + $id_guest, + $use_reduc )) { foreach($servicesWithTax as $service) { $totalPrice['total_price_tax_incl'] += $service['price']; @@ -742,7 +743,8 @@ class HotelRoomTypeFeaturePricing extends ObjectModel Product::PRICE_ADDITION_TYPE_WITH_ROOM, false, $id_cart, - $id_guest + $id_guest, + $use_reduc )) { foreach($servicesWithoutTax as $service) { $totalPrice['total_price_tax_excl'] += $service['price']; diff --git a/modules/hotelreservationsystem/classes/RoomTypeServiceProduct.php b/modules/hotelreservationsystem/classes/RoomTypeServiceProduct.php index 5acb6ef60..ef0978d05 100644 --- a/modules/hotelreservationsystem/classes/RoomTypeServiceProduct.php +++ b/modules/hotelreservationsystem/classes/RoomTypeServiceProduct.php @@ -135,7 +135,7 @@ class RoomTypeServiceProduct extends ObjectModel return Db::getInstance()->getValue($sql); } - public static function getAutoAddServices($idProduct, $dateFrom = null, $dateTo = null, $priceAdditionType = null, $useTax = null, $idCart = 0, $idGuest = 0) + public static function getAutoAddServices($idProduct, $dateFrom = null, $dateTo = null, $priceAdditionType = null, $useTax = null, $idCart = 0, $idGuest = 0, $use_reduc = 1) { if (Product::isBookingProduct($idProduct)) { $sql = 'SELECT p.`id_product` FROM `'._DB_PREFIX_.'htl_room_type_service_product` rsp @@ -157,7 +157,10 @@ class RoomTypeServiceProduct extends ObjectModel 1, $dateFrom, $dateTo, - $useTax + $useTax, + false, + null, + $use_reduc ); } return $services; diff --git a/modules/hotelreservationsystem/classes/RoomTypeServiceProductPrice.php b/modules/hotelreservationsystem/classes/RoomTypeServiceProductPrice.php index 7300566ee..8d7b37bdd 100644 --- a/modules/hotelreservationsystem/classes/RoomTypeServiceProductPrice.php +++ b/modules/hotelreservationsystem/classes/RoomTypeServiceProductPrice.php @@ -101,7 +101,7 @@ class RoomTypeServiceProductPrice extends ObjectModel ); } - public function getServicePrice($idProduct, $idProductRoomType, $quantity, $dateFrom = null, $dateTo = null, $useTax = null, $id_cart = false, $id_address = null, $test= false) + public function getServicePrice($idProduct, $idProductRoomType, $quantity, $dateFrom = null, $dateTo = null, $useTax = null, $id_cart = false, $id_address = null, $use_reduc= 1) { if ($useTax === null) $useTax = Product::$_taxCalculationMethod == PS_TAX_EXC ? false : true; @@ -115,7 +115,7 @@ class RoomTypeServiceProductPrice extends ObjectModel 6, null, false, - true, + $use_reduc, (int)$quantity, false, null, diff --git a/themes/hotel-reservation-theme/css/rtl.css b/themes/hotel-reservation-theme/css/rtl.css index cbdb85027..cc3713113 100644 --- a/themes/hotel-reservation-theme/css/rtl.css +++ b/themes/hotel-reservation-theme/css/rtl.css @@ -80,16 +80,22 @@ ul.footer_links li .button.button-small span i { } } -.room_price_detail_block [class*=col], #checkout-guest-info-block [class*=col], +#order-opc .avail_vouchers_block .avail_voucher_name>.voucher_name, +.room_price_detail_block [class*=col], .cart_product_line [class*=col], .room_duration_block [class*=col], .avail_vouchers_block [class*=col], -#order-opc .cart_total_detail_block .cart_total_values, -#order-opc .avail_vouchers_block .avail_voucher_name>.voucher_name { +.cart_voucher_detail_block [class*=col], +.product_info_label { float: right !important; } +#order-opc .cart_total_detail_block .cart_total_values, +.proceed_btn_block a { + float: left !important; +} + .booking-actions-wrap .btn.pull-right { float: left !important; margin-left: unset; From 791d906a8feb887bccae571e00c7ba6a13846740 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 21 Aug 2024 10:53:18 +0530 Subject: [PATCH 148/169] update new hook comment --- classes/CartRule.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/classes/CartRule.php b/classes/CartRule.php index 133bce84f..835ad2ab2 100644 --- a/classes/CartRule.php +++ b/classes/CartRule.php @@ -518,9 +518,7 @@ class CartRuleCore extends ObjectModel } /* - * Custom cart rule validation from modules. Allows to create infinite possibilities of rules. - * - * If null is provided, nothing happens and built-in validation is ran. Useful if you want your own conditions, + * If null is provided, default validation will be processed. Useful if you want your own conditions, * but also want to retain functionality of the core. * * If true is provided, the validation ends here and the rule is VALID, ignoring the rest of core validation. From 1277b3bf4a757fa47c08fe749b5aa94b79ed3590 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 21 Aug 2024 11:47:11 +0530 Subject: [PATCH 149/169] fixed phone number not saving issue --- classes/Validate.php | 2 +- controllers/front/AuthController.php | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/classes/Validate.php b/classes/Validate.php index 65fa7f790..4b7de5435 100644 --- a/classes/Validate.php +++ b/classes/Validate.php @@ -534,7 +534,7 @@ class ValidateCore */ public static function isPhoneNumber($number) { - return preg_match('/^[+0-9. ()-]*$/', $number); + return preg_match('/^\+?[\s\d.()-]*\d+$/', $number); } /** diff --git a/controllers/front/AuthController.php b/controllers/front/AuthController.php index ad442f61f..6a5f17daf 100644 --- a/controllers/front/AuthController.php +++ b/controllers/front/AuthController.php @@ -464,6 +464,8 @@ class AuthControllerCore extends FrontController if (!count($this->errors)) { if ($customer->add()) { + $phone = Tools::getValue('phone'); + CartCustomerGuestDetail::updateCustomerPhoneNumber($customer->email, $phone); if (!$customer->is_guest) { if (!$this->sendConfirmationMail($customer)) { $this->errors[] = Tools::displayError('The email cannot be sent.'); From 055409ba569ed59bdf274e471636ec9460e1b43e Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Wed, 21 Aug 2024 12:09:06 +0530 Subject: [PATCH 150/169] Fixed: blank space as message was not validated in the customer message API, and updated advanced prices validations for the special days --- classes/CustomerMessage.php | 9 ++ .../classes/HotelRoomTypeFeaturePricing.php | 85 +++++-------------- 2 files changed, 32 insertions(+), 62 deletions(-) diff --git a/classes/CustomerMessage.php b/classes/CustomerMessage.php index 33792addf..89dd0366e 100644 --- a/classes/CustomerMessage.php +++ b/classes/CustomerMessage.php @@ -141,4 +141,13 @@ class CustomerMessageCore extends ObjectModel '); } + public function validateFields($die = true, $error_return = false) + { + if (isset($this->webservice_validation) && $this->webservice_validation) { + $this->message = trim($this->message); + } + + return parent::validateFields($die, $error_return); + } + } diff --git a/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php b/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php index d3193d02c..d47e4bdef 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php +++ b/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php @@ -82,10 +82,6 @@ class HotelRoomTypeFeaturePricing extends ObjectModel protected $webserviceParameters = array( 'objectsNodeName' => 'feature_prices', 'objectNodeName' => 'feature_price', - 'objectMethods' => array( - 'add' => 'addWs', - 'update' => 'updateWs', - ), 'fields' => array( 'id_product' => array( 'xlink_resource' => array( @@ -919,72 +915,37 @@ class HotelRoomTypeFeaturePricing extends ObjectModel return true; } - // Webservice :: function will run when feature price added from API - public function addWs($autodate = true, $null_values = false) + public function validateFields($die = true, $error_return = false) { - $postData = trim(file_get_contents('php://input')); - libxml_use_internal_errors(true); - $xml = simplexml_load_string(utf8_decode($postData)); - $postFieldsObj = json_decode(json_encode($xml)); - - // we will check this also as empty value comes in empty std class - $specialDaysArray = (array) $postFieldsObj->feature_price->special_days; - - if (!empty($postFieldsObj->feature_price->special_days) - && $postFieldsObj->feature_price->special_days - && $specialDaysArray - ) { + if (isset($this->webservice_validation) && $this->webservice_validation) { $weekDays = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']; - $specialDays = json_decode($postFieldsObj->feature_price->special_days, true); - if (is_array($specialDays) && $specialDays) { - if (count(array_diff($specialDays, $weekDays))) { - WebserviceRequest::getInstance()->setError(400, 'Invalid special days. format must match with : ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]', 134); - - return false; + if($this->is_special_days_exists) { + if ($this->special_days + && ($specialDays = json_decode($this->special_days, true)) + ) { + if (is_array($specialDays) && $specialDays) { + if (count(array_diff($specialDays, $weekDays))) { + $message = Tools::displayError('Invalid special days. format must match with : ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]', false); + } + } else { + $message = Tools::displayError('Invalid special days. format must match with : ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]', false); + } + } else { + $message = Tools::displayError('Invalid special days. format must match with : ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]', false); } - } else { - WebserviceRequest::getInstance()->setError(400, 'Invalid special days. format must match with : ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]', 134); + } - return false; + if (isset($message) && $message != '') { + if ($die) { + throw new PrestaShopException($message); + } + + return $error_return ? $message : false; } } - return $this->add($autodate, $null_values); + return parent::validateFields($die, $error_return); } - - // Webservice :: function will run when feature price updated from API - public function updateWs($null_values = false) - { - $postData = trim(file_get_contents('php://input')); - libxml_use_internal_errors(true); - $xml = simplexml_load_string(utf8_decode($postData)); - $postFieldsObj = json_decode(json_encode($xml)); - - // we will check this also as empty value comes in empty std class - $specialDaysArray = (array) $postFieldsObj->feature_price->special_days; - - if (!empty($postFieldsObj->feature_price->special_days) - && $postFieldsObj->feature_price->special_days - && $specialDaysArray - ) { - $weekDays = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']; - $specialDays = json_decode($postFieldsObj->feature_price->special_days, true); - if (is_array($specialDays) && $specialDays) { - if (count(array_diff($specialDays, $weekDays))) { - WebserviceRequest::getInstance()->setError(400, 'Invalid special days. format must match with : ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]', 134); - - return false; - } - } else { - WebserviceRequest::getInstance()->setError(400, 'Invalid special days. format must match with : ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]', 134); - - return false; - } - } - - return $this->update($null_values); - } - public static function createAutoFeaturePrice($params) { $context = Context::getContext(); From 751d02f0e27a9f209a1d78c2786bffac6d5c5719 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Wed, 21 Aug 2024 14:49:49 +0530 Subject: [PATCH 151/169] Fixed: undefined error issue for order history and invoice for extra demands, also fixed the wrong price is added while adding service in order if specific price for that service is created --- classes/order/OrderHistory.php | 2 + controllers/admin/AdminOrdersController.php | 44 +++++++-------------- pdf/invoice.extra-demands-tab.tpl | 2 +- 3 files changed, 17 insertions(+), 31 deletions(-) diff --git a/classes/order/OrderHistory.php b/classes/order/OrderHistory.php index 1d09988c0..75f5df519 100644 --- a/classes/order/OrderHistory.php +++ b/classes/order/OrderHistory.php @@ -317,6 +317,8 @@ class OrderHistoryCore extends ObjectModel // if order is created by API then create a direct object instead of creating an object from module if ($order->module == 'wsorder') { $payment_method = new WebserviceOrder(); + } else if ($order->module == 'bo_order') { + $payment_method = new BoOrder(); } else { $payment_method = Module::getInstanceByName($order->module); } diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index 79dd91cff..993e38995 100644 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -6403,10 +6403,10 @@ class AdminOrdersControllerCore extends AdminController ); // add services in room + $order = new Order($objHotelBookingDetail->id_order); if (!$response['hasError']) { + $this->context->currency = new Currency($order->id_currency); foreach ($selectedServices as $service) { - $order = new Order($objHotelBookingDetail->id_order); - // Create new cart $cart = new Cart(); $cart->id_shop_group = $order->id_shop_group; @@ -6478,49 +6478,33 @@ class AdminOrdersControllerCore extends AdminController $roomHtlCartInfo['id']) ) { $objRoomTypeServiceProductCartDetail = new RoomTypeServiceProductCartDetail((int) $id_room_type_service_product_cart_detail); - $totalPriceChangeTaxExcl += $totalPriceTaxExcl = $objRoomTypeServiceProductPrice->getServicePrice( - (int)$product['id_product'], - 0, - $objRoomTypeServiceProductCartDetail->quantity, - $objHotelBookingDetail->date_from, - $objHotelBookingDetail->date_to, - false, - $cart->id - ); - $totalPriceChangeTaxIncl += $totalPriceTaxIncl = $objRoomTypeServiceProductPrice->getServicePrice( - (int)$product['id_product'], - 0, - $objRoomTypeServiceProductCartDetail->quantity, - $objHotelBookingDetail->date_from, - $objHotelBookingDetail->date_to, - true, - $cart->id - ); - $numDays = 1; if (Product::getProductPriceCalculation($product['id_product']) == Product::PRICE_CALCULATION_METHOD_PER_DAY) { $numDays = HotelHelper::getNumberOfDays($objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to); } - $product['cart_quantity'] = $objRoomTypeServiceProductCartDetail->quantity * $numDays; + $product['cart_quantity'] = $objRoomTypeServiceProductCartDetail->quantity * $numDays; $unitPriceTaxExcl = $objRoomTypeServiceProductPrice->getServicePrice( (int)$product['id_product'], - 0, + $roomHtlCartInfo['id_product'], 1, - $objHotelBookingDetail->date_from, - $objHotelBookingDetail->date_to, + null, + null, false, $cart->id - )/ $numDays; + ); $unitPriceTaxIncl = $objRoomTypeServiceProductPrice->getServicePrice( (int)$product['id_product'], - 0, + $roomHtlCartInfo['id_product'], 1, - $objHotelBookingDetail->date_from, - $objHotelBookingDetail->date_to, + null, + null, true, $cart->id - )/ $numDays; + ); + + $totalPriceChangeTaxExcl += $totalPriceTaxExcl = ($unitPriceTaxExcl * $product['cart_quantity']); + $totalPriceChangeTaxIncl += $totalPriceTaxIncl = ($unitPriceTaxIncl * $product['cart_quantity']); switch (Configuration::get('PS_ROUND_TYPE')) { case Order::ROUND_TOTAL: $product['total'] = $totalPriceTaxExcl; diff --git a/pdf/invoice.extra-demands-tab.tpl b/pdf/invoice.extra-demands-tab.tpl index 108603e75..a80fab4b0 100644 --- a/pdf/invoice.extra-demands-tab.tpl +++ b/pdf/invoice.extra-demands-tab.tpl @@ -140,7 +140,7 @@ {$service['name']}
    {/if} - +
    - {displayPrice price=$totalConvenienceFeeTE currency=$currency->id} + {displayPrice price=$convenience_fee_price_tax_excl currency=$currency->id}
    {l s='Extra services Tax'} - {displayPrice price=(($additional_service_price_tax_incl - $additional_service_price_tax_excl) - ($totalConvenienceFeeTI - $totalConvenienceFeeTE)) currency=$currency->id} + {displayPrice price=(($additional_service_price_tax_incl - $additional_service_price_tax_excl) - ($convenience_fee_price_tax_incl - $convenience_fee_price_tax_excl)) currency=$currency->id}
    {l s='Convenience Fee Tax'} - {displayPrice price=($totalConvenienceFeeTI - $totalConvenienceFeeTE) currency=$currency->id} + {displayPrice price=($convenience_fee_price_tax_incl - $convenience_fee_price_tax_excl) currency=$currency->id}
    - {if $service['product_tax_label']}{$service['product_tax_label']}{else}{l s='No tax' pdf='true'}{/if} + {if isset($service['product_tax_label']) && $service['product_tax_label']}{$service['product_tax_label']}{else}{l s='No tax' pdf='true'}{/if} {if $service['allow_multiple_quantity']} From 0c55d4584bb43a75182ad6757a8dde1013ac73c7 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 21 Aug 2024 15:22:35 +0530 Subject: [PATCH 152/169] Updated text for addong already available in qloapps directory --- .../template/controllers/modules_catalog/modules_list.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl b/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl index adbecd9cf..9f609b9d5 100644 --- a/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl +++ b/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl @@ -38,7 +38,7 @@

    {if isset($element->price)}{if $element->price|floatval == 0}{l s='Free'}{else}{$element->price_formatted}{/if}{/if} - {if isset($element->type) && $element->type == 'addonsMustHave' && !$element->not_on_disk}{l s='In library'}{/if} + {if isset($element->type) && $element->type == 'addonsMustHave' && !$element->not_on_disk} {l s='In Module Directory'}{/if} {if isset($element->type) && $element->type == 'addonsMustHave' && $element->not_on_disk} {l s='Explore'} {else} From b827ee75d01ccf77b81a520d9555921a89e2a573 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 21 Aug 2024 19:23:53 +0530 Subject: [PATCH 153/169] updated tree design and nodes generation helper function --- admin/themes/default/sass/partials/_tree.sass | 4 + classes/helper/HelperTree.php | 2 +- .../classes/HotelHelper.php | 82 +++++++++++++------ 3 files changed, 64 insertions(+), 24 deletions(-) diff --git a/admin/themes/default/sass/partials/_tree.sass b/admin/themes/default/sass/partials/_tree.sass index 9d382680e..39b2be7e6 100644 --- a/admin/themes/default/sass/partials/_tree.sass +++ b/admin/themes/default/sass/partials/_tree.sass @@ -47,6 +47,10 @@ font-style: italic color: #959595 margin-left: 30px + margin-top: -4px + margin-bottom: 4px + .badge + margin-left: 5px .tree-actions display: inline-block diff --git a/classes/helper/HelperTree.php b/classes/helper/HelperTree.php index 7c5d25e7f..0a3824205 100644 --- a/classes/helper/HelperTree.php +++ b/classes/helper/HelperTree.php @@ -114,7 +114,7 @@ class HelperTreeCore extends TreeCore if ($this->useSearch()) { $this->addAction(new TreeToolbarSearch( - 'dasdasd', + $this->getId().' search', $this->getId().'-search') ); $this->setAttribute('use_search', $this->useSearch()); diff --git a/modules/hotelreservationsystem/classes/HotelHelper.php b/modules/hotelreservationsystem/classes/HotelHelper.php index 4fe8b4f87..d44240626 100644 --- a/modules/hotelreservationsystem/classes/HotelHelper.php +++ b/modules/hotelreservationsystem/classes/HotelHelper.php @@ -2565,30 +2565,33 @@ class HotelHelper $treeData = array(); if ($rootNode == self::NODE_COUNTRY) { - $treeData = self::generateCountryTree($selectedElements, $leafNode, $rootNodeId); + $treeData = self::generateCountryNodes($rootNodeId, $leafNode, $selectedElements); } else if ($rootNode == self::NODE_STATE) { - $treeData = self::generateStateTree($selectedElements, $leafNode, $rootNodeId); + $treeData = self::generateStateNodes($rootNodeId, $leafNode, $selectedElements); } else if ($rootNode == self::NODE_CITY) { - $treeData = self::generateCityTree($selectedElements, $leafNode, $rootNodeId); + $treeData = self::generateCityNodes($rootNodeId, $leafNode, $selectedElements); } else if ($rootNode == self::NODE_HOTEL) { - $treeData = self::generateHotelTree($selectedElements, $leafNode, $rootNodeId); + $treeData = self::generateHotelNodes($rootNodeId, $leafNode, $selectedElements); } else if ($rootNode == self::NODE_ROOM_TYPE) { - $treeData = self::generateRoomTypeTree($selectedElements, $leafNode, $rootNodeId); + $treeData = self::generateRoomTypeNodes($rootNodeId, $leafNode, $selectedElements); } else if ($rootNode == self::NODE_ROOM) { - $treeData = self::generateRoomTree($selectedElements, $leafNode, $rootNodeId); + $treeData = self::generateRoomNodes($rootNodeId, $leafNode, $selectedElements); } return $treeData; } - public static function generateCountryTree($selectedElements, $leafNode, $rootNodeId, $previousElements = false) + /** + * Generate the node data for country + */ + protected static function generateCountryNodes($rootNodeId, $leafNode, $selectedElements, $previousElements = false) { $return = array(); $countries = self::getcategoryByParent($previousElements, 3, 'country', $rootNodeId); - $stateIds = array_column($countries, 'value'); + $countriesIds = array_column($countries, 'value'); if ($leafNode > self::NODE_COUNTRY) { - $states = self::generateStateTree($selectedElements, $leafNode, false, $stateIds); + $states = self::generateStateNodes(false, $leafNode, $selectedElements, $countriesIds); } foreach ($countries as $country) { @@ -2609,14 +2612,18 @@ class HotelHelper return $return; } - public static function generateStateTree($selectedElements, $leafNode, $rootNodeId, $previousElements = false) + + /** + * Generate the node data for state + */ + protected static function generateStateNodes($rootNodeId, $leafNode, $selectedElements, $previousElements = false) { $return = array(); $states = self::getcategoryByParent($previousElements, 4, 'state', $rootNodeId); $stateIds = array_column($states, 'value'); if ($leafNode > self::NODE_STATE) { - $cities = self::generateCityTree($selectedElements, $leafNode, false, $stateIds); + $cities = self::generateCityNodes(false, $leafNode, $selectedElements, $stateIds); } foreach ($states as $state) { @@ -2637,14 +2644,18 @@ class HotelHelper return $return; } - public static function generateCityTree($selectedElements, $leafNode, $rootNodeId, $previousElements = false) + + /** + * Generate the node data for city + */ + protected static function generateCityNodes($rootNodeId, $leafNode, $selectedElements, $previousElements = false) { $return = array(); $cities = self::getcategoryByParent($previousElements, 5, 'city', $rootNodeId); $cityIds = array_column($cities, 'value'); if ($leafNode > self::NODE_CITY) { - $hotels = self::generateHotelTree($selectedElements, $leafNode, false, $cityIds); + $hotels = self::generateHotelNodes(false, $leafNode, $selectedElements, $cityIds); } foreach ($cities as $city) { @@ -2666,14 +2677,17 @@ class HotelHelper return $return; } - public static function generateHotelTree($selectedElements, $leafNode, $rootNodeId, $previousElements = false) + /** + * Generate the node data for hotels + */ + protected static function generateHotelNodes($rootNodeId, $leafNode, $selectedElements, $previousElements = false) { $return = array(); $hotels = self::getHotelsByIdCity($previousElements, $rootNodeId); $hotelIds = array_column($hotels, 'value'); if ($leafNode > self::NODE_HOTEL) { - $roomTypes = self::generateRoomTypeTree($selectedElements, $leafNode, false, $hotelIds); + $roomTypes = self::generateRoomTypeNodes(false, $leafNode, $selectedElements, $hotelIds); } foreach ($hotels as $hotel) { @@ -2695,14 +2709,17 @@ class HotelHelper return $return; } - public static function generateRoomTypeTree($selectedElements, $leafNode, $rootNodeId, $previousElements = false) + /** + * Generate the node data for room types + */ + protected static function generateRoomTypeNodes($rootNodeId, $leafNode, $selectedElements, $previousElements = false) { $return = array(); $roomTypes = self::getRoomTypesByHotelsId($previousElements, $rootNodeId); $roomTypeIds = array_column($roomTypes, 'value'); if ($leafNode > self::NODE_ROOM_TYPE) { - $rooms = self::generateRoomTree($selectedElements, $leafNode, false, $roomTypeIds); + $rooms = self::generateRoomNodes(false, $leafNode, $selectedElements, $roomTypeIds); } foreach ($roomTypes as $roomType) { @@ -2713,7 +2730,11 @@ class HotelHelper if (isset($rooms[$roomType['value']])) { $roomType['children'] = $rooms[$roomType['value']]; } - + $roomType['hint'] = 'This is Room type hint'; + $roomType['badge'] = array( + 'class' => 'badge-danger', + 'title' => 'Disabled' + ); if ($previousElements) { $return[$roomType['id_hotel']][] = $roomType; } else { @@ -2724,7 +2745,10 @@ class HotelHelper return $return; } - public static function generateRoomTree($selectedElements, $leafNode, $rootNodeId, $previousElements = false) + /** + * Generate the node data for rooms + */ + protected static function generateRoomNodes($rootNodeId, $leafNode, $selectedElements, $previousElements = false) { $return = array(); $rooms = self::getRoomsByRoomTypeId($previousElements, $rootNodeId); @@ -2744,7 +2768,10 @@ class HotelHelper return $return; } - public static function getcategoryByParent($idParents, $levelDepth, $input_name, $rootNodeId) + /** + * Get all the children category of the provided id categories + */ + protected static function getcategoryByParent($idParents, $levelDepth, $input_name, $rootNodeId) { $locationCategory = new Category(Configuration::get('PS_LOCATIONS_CATEGORY')); $sql = 'SELECT c.`id_category` as `value` , cl.`name`, "'.pSQL($input_name).'_box" as `input_name`, c.`id_parent` @@ -2764,7 +2791,10 @@ class HotelHelper return Db::getInstance()->executeS($sql); } - public static function getHotelsByIdCity($cities, $rootNodeId) + /** + * Get all the hotels of the passed cities (city id_category) + */ + protected static function getHotelsByIdCity($cities, $rootNodeId) { $sql = 'SELECT hbi.`id` as `value` , hbil.`hotel_name` as `name`, "hotel_box" as `input_name`, c.`id_parent` @@ -2783,7 +2813,10 @@ class HotelHelper return Db::getInstance()->executeS($sql); } - public static function getRoomTypesByHotelsId($hotels, $rootNodeId) + /** + * Get all the room types of the passed hotels + */ + protected static function getRoomTypesByHotelsId($hotels, $rootNodeId) { $sql = 'SELECT p.`id_product` AS `value`, pl.`name`, "room_type_box" as `input_name`, rt.`id_hotel` FROM `'._DB_PREFIX_.'htl_room_type` AS rt'; @@ -2803,7 +2836,10 @@ class HotelHelper return Db::getInstance()->executeS($sql); } - public static function getRoomsByRoomTypeId($roomTypes, $rootNodeId) + /** + * Get all the rooms of the passed room types (city id_category) + */ + protected static function getRoomsByRoomTypeId($roomTypes, $rootNodeId) { $sql = 'SELECT `id` as `value`, `room_num` as `name`, "room_box" as `input_name`, `id_product` FROM `'._DB_PREFIX_.'htl_room_information` From 7d28f7848e290e38cfa94a89cd0ce5e0411d3e18 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Wed, 21 Aug 2024 20:12:04 +0530 Subject: [PATCH 154/169] display modules as free if modules are native --- .../template/controllers/modules_catalog/modules_list.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl b/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl index 9f609b9d5..fd9ecdd67 100644 --- a/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl +++ b/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl @@ -37,7 +37,7 @@ {/if}

    - {if isset($element->price)}{if $element->price|floatval == 0}{l s='Free'}{else}{$element->price_formatted}{/if}{/if} + {if isset($element->price)}{if $element->price|floatval == 0}{l s='Free'}{else}{$element->price_formatted}{/if}{else}{l s='Free'}{/if} {if isset($element->type) && $element->type == 'addonsMustHave' && !$element->not_on_disk} {l s='In Module Directory'}{/if} {if isset($element->type) && $element->type == 'addonsMustHave' && $element->not_on_disk} {l s='Explore'} From bcba5c9cfa6933c469cb741c05bca6d76e4b0565 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Thu, 22 Aug 2024 09:58:44 +0530 Subject: [PATCH 155/169] Fixed: the service price was not updated on room updation --- controllers/admin/AdminOrdersController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index 993e38995..168597c63 100644 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -4894,8 +4894,9 @@ class AdminOrdersControllerCore extends AdminController $id_room, 0, null, - 0, null, + null, + 0, $obj_booking_detail->id ); From 0cc683e3a766bc6311b714f84e07c29e67a0aac6 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Thu, 22 Aug 2024 10:06:10 +0530 Subject: [PATCH 156/169] Added use reduc parameter in the function getRoomTypeFeaturePricesPerDay() --- .../classes/HotelRoomTypeFeaturePricing.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php b/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php index 647181923..b8ffa8a88 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php +++ b/modules/hotelreservationsystem/classes/HotelRoomTypeFeaturePricing.php @@ -774,7 +774,8 @@ class HotelRoomTypeFeaturePricing extends ObjectModel $id_cart = 0, $id_guest = 0, $id_room = 0, - $with_auto_room_services = 1 + $with_auto_room_services = 1, + $use_reduc = 1 ) { $dateFrom = date('Y-m-d', strtotime($date_from)); $dateTo = date('Y-m-d', strtotime($date_to)); @@ -787,7 +788,8 @@ class HotelRoomTypeFeaturePricing extends ObjectModel $id_cart, $id_guest, $id_room, - $with_auto_room_services + $with_auto_room_services, + $use_reduc ); $totalDurationPriceTI = $totalDurationPrice['total_price_tax_incl']; From a72fea51639283360ba1f0c8da7b859986f77470 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Thu, 22 Aug 2024 10:07:43 +0530 Subject: [PATCH 157/169] removed extra comments --- modules/hotelreservationsystem/classes/HotelRoomTypeDemand.php | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/hotelreservationsystem/classes/HotelRoomTypeDemand.php b/modules/hotelreservationsystem/classes/HotelRoomTypeDemand.php index 3d37f9083..7be39da7f 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomTypeDemand.php +++ b/modules/hotelreservationsystem/classes/HotelRoomTypeDemand.php @@ -337,7 +337,6 @@ class HotelRoomTypeDemand extends ObjectModel } } - // since this will update the custom price according to the default currency, which is not required for custom price $price = Tools::convertPrice($price, $idCurrency); } From 5d05b21efca2982b7a62093b8ae91af515138b65 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Thu, 22 Aug 2024 11:14:34 +0530 Subject: [PATCH 158/169] update room unavailable message --- .../classes/HotelRoomInformation.php | 11 ++++------- .../views/css/HotelReservationAdmin.css | 2 +- .../views/js/admin/hotel_rooms_booking.js | 16 +--------------- .../helpers/view/_partials/booking-rooms.tpl | 2 +- .../helpers/view/_partials/search-stats.tpl | 2 +- 5 files changed, 8 insertions(+), 25 deletions(-) diff --git a/modules/hotelreservationsystem/classes/HotelRoomInformation.php b/modules/hotelreservationsystem/classes/HotelRoomInformation.php index 47eb7b53e..1fe2da0ef 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomInformation.php +++ b/modules/hotelreservationsystem/classes/HotelRoomInformation.php @@ -158,21 +158,18 @@ class HotelRoomInformation extends ObjectModel return $status; } - public static function getRoomStatusTitle($idStatus = false) + public static function getRoomStatusTitle($idStatus) { $moduleInstance = Module::getInstanceByName('hotelreservationsystem'); $status = array( self::STATUS_ACTIVE => $moduleInstance->l('Active', 'hotelreservationsystem'), self::STATUS_INACTIVE => $moduleInstance->l('Inactive', 'hotelreservationsystem'), self::STATUS_TEMPORARY_INACTIVE => $moduleInstance->l('Temporarily Inactive', 'hotelreservationsystem'), - self::STATUS_SEARCH_LOS_UNSATISFIED => $moduleInstance->l('Lenght of stay', 'hotelreservationsystem'), - self::STATUS_SEARCH_OCCUPANCY_UNSATISFIED => $moduleInstance->l('Occupancy', 'hotelreservationsystem'), + self::STATUS_SEARCH_LOS_UNSATISFIED => $moduleInstance->l('Searched duration outside room length of stay requirements', 'hotelreservationsystem'), + self::STATUS_SEARCH_OCCUPANCY_UNSATISFIED => $moduleInstance->l('Occupancy exceeds room capacity', 'hotelreservationsystem'), ); - if ($idStatus) { - return isset($status[$idStatus]) ? $status[$idStatus] : false; - } - return $status; + return isset($status[$idStatus]) ? $status[$idStatus] : ''; } /** diff --git a/modules/hotelreservationsystem/views/css/HotelReservationAdmin.css b/modules/hotelreservationsystem/views/css/HotelReservationAdmin.css index 2961a99cf..5cb295ecf 100644 --- a/modules/hotelreservationsystem/views/css/HotelReservationAdmin.css +++ b/modules/hotelreservationsystem/views/css/HotelReservationAdmin.css @@ -216,7 +216,7 @@ p.room_cat_data font-weight: 700; margin-bottom: 0px; } -.status-info { +.status-info-tooltip { position: relative; display: inline-block; left: 100%; diff --git a/modules/hotelreservationsystem/views/js/admin/hotel_rooms_booking.js b/modules/hotelreservationsystem/views/js/admin/hotel_rooms_booking.js index 8bf7f0eff..6cf0c7d5f 100644 --- a/modules/hotelreservationsystem/views/js/admin/hotel_rooms_booking.js +++ b/modules/hotelreservationsystem/views/js/admin/hotel_rooms_booking.js @@ -963,21 +963,7 @@ $(document).ready(function() { function initstatstooltip() { - console.log($(".htl_room_data_cont").find('.status-info')); - $(".htl_room_data_cont").find('.status-info').tooltip({ - // content: function() - // { - // $('#date-stats-tooltop .tip_date').text(info.event.extendedProps.data.date_format); - // $.each(info.event.extendedProps.data.stats, function(elem, val) { - // if (elem == 'num_part_avai') { - // $('#date-stats-tooltop').find('.'+elem).hide().find('.tip_element_value').text(''); - // } else { - // $('#date-stats-tooltop').find('.'+elem).show().find('.tip_element_value').text(val); - // } - // }); - // return $('#date-stats-tooltop').html(); - // }, - // items: "div", + $(".htl_room_data_cont").find('.status-info-tooltip').tooltip({ trigger : 'hover', show: { delay: 100, diff --git a/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/booking-rooms.tpl b/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/booking-rooms.tpl index b5b37fac6..5783f4798 100644 --- a/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/booking-rooms.tpl +++ b/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/booking-rooms.tpl @@ -217,7 +217,7 @@
    {$booked_v['room_num']|escape:'htmlall':'UTF-8'} {hook h='displayRoomNumAfter' data=$booked_v key=$rm_dtl_k type='booked'}{dateFormat date=date('Y-m-d', strtotime($rm_dtl_v['date_from']))} - {dateFormat date=date('Y-m-d', strtotime($rm_dtl_v['date_to']))}#{$rm_dtl_v['id_order']}#{$rm_dtl_v['id_order']} {$rm_dtl_v['comment']|escape:'htmlall':'UTF-8'} {if $rm_dtl_v['booking_type'] == HotelBookingDetail::ALLOTMENT_AUTO}{l s='Auto Allotment' mod='hotelreservationsystem'}{elseif $rm_dtl_v['booking_type'] == HotelBookingDetail::ALLOTMENT_MANUAL}{l s='Manual Allotment' mod='hotelreservationsystem'}{/if} diff --git a/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/search-stats.tpl b/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/search-stats.tpl index c672c941b..11690bc24 100644 --- a/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/search-stats.tpl +++ b/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/search-stats.tpl @@ -1,5 +1,5 @@
    -
    +
    From e1289601a9f12d34a627b01e2046dd8e595e7b70 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Thu, 22 Aug 2024 13:26:36 +0530 Subject: [PATCH 159/169] Added rtl for bootstrap grid system, also updated the design of the elements having custom css --- classes/controller/FrontController.php | 1 + .../_partials/room_type_list.tpl | 2 +- .../hotel-reservation-theme/contact-form.tpl | 2 +- .../hotel-reservation-theme/css/category.css | 4 + themes/hotel-reservation-theme/css/rtl.css | 41 ++ .../hotel-reservation-theme/css/rtl_grid.css | 594 ++++++++++++++++++ 6 files changed, 642 insertions(+), 2 deletions(-) create mode 100644 themes/hotel-reservation-theme/css/rtl_grid.css diff --git a/classes/controller/FrontController.php b/classes/controller/FrontController.php index f7ba791f7..d3cc17eda 100644 --- a/classes/controller/FrontController.php +++ b/classes/controller/FrontController.php @@ -1217,6 +1217,7 @@ class FrontControllerCore extends Controller */ if ($this->context->language->is_rtl) { $this->addCSS(_THEME_CSS_DIR_.'rtl.css'); + $this->addCSS(_THEME_CSS_DIR_.'rtl_grid.css'); $this->addCSS(_THEME_CSS_DIR_.$this->context->language->iso_code.'.css'); } } diff --git a/themes/hotel-reservation-theme/_partials/room_type_list.tpl b/themes/hotel-reservation-theme/_partials/room_type_list.tpl index b13241709..bdaf902fe 100644 --- a/themes/hotel-reservation-theme/_partials/room_type_list.tpl +++ b/themes/hotel-reservation-theme/_partials/room_type_list.tpl @@ -37,7 +37,7 @@

    {/if}
    -
    {$room_v['description']|truncate:190:"":true} {l s='View More'}....
    +
    {$room_v['description']|truncate:190:"":true} {l s='View More'}....
    diff --git a/themes/hotel-reservation-theme/contact-form.tpl b/themes/hotel-reservation-theme/contact-form.tpl index c21943f6b..b0ac66109 100644 --- a/themes/hotel-reservation-theme/contact-form.tpl +++ b/themes/hotel-reservation-theme/contact-form.tpl @@ -165,7 +165,7 @@

    {$hotel['hotel_name']}

    {$hotel['address']}, {$hotel['city']}, {if {$hotel['state_name']}}{$hotel['state_name']},{/if} {$hotel['country_name']}, {$hotel['postcode']}

    - {if $hotel['latitude'] != 0 || $hotel['longitude'] != 0 && $viewOnMap} + {if ($hotel['latitude'] != 0 || $hotel['longitude'] != 0) && $viewOnMap}

    {l s='View on map'} diff --git a/themes/hotel-reservation-theme/css/category.css b/themes/hotel-reservation-theme/css/category.css index 2e47c512e..d23693344 100644 --- a/themes/hotel-reservation-theme/css/category.css +++ b/themes/hotel-reservation-theme/css/category.css @@ -323,4 +323,8 @@ p.capa_txt { text-decoration: line-through; color:#e85757; font-size:18px; +} + +.rm_desc .view_more { + display: inline-block; } \ No newline at end of file diff --git a/themes/hotel-reservation-theme/css/rtl.css b/themes/hotel-reservation-theme/css/rtl.css index 0d49ef483..dfc7a8f43 100644 --- a/themes/hotel-reservation-theme/css/rtl.css +++ b/themes/hotel-reservation-theme/css/rtl.css @@ -8,6 +8,18 @@ text-align: right !important; } /* globals - start */ +.pull-left { + float: right !important; +} +.pull-right { + float: left !important; +} +.text-right { + text-align: left !important; +} +.text-left { + text-align: right !important; +} .owl-stage-outer { direction: rtl !important; } @@ -312,6 +324,35 @@ div.uploader .filename, div.uploader .action { } /* my account - end */ +/* Room type - start */ +#image-block-cont { + padding-left: 15px !important; +} +.close_room_serach_wrapper { + right: unset !important; + left: 0px; +} +/* Room type - end */ + +/* order-opc - start */ + +#order-opc .avail_vouchers_block .avail_voucher_name>.voucher_name, +#tc_txt, .product_info_label{ + float: right !important; +} +#order-opc .cart_total_detail_block .cart_total_values { + float: left !important; +} + +/* order-opc - end */ + +/* contact-us - start */ + +#contact_type { + text-align: right !important; +} +/* contact-us - end */ + /* order-detail - start */ @media (min-width: 576px) { .booking-room-detail .num-refunded-rooms { diff --git a/themes/hotel-reservation-theme/css/rtl_grid.css b/themes/hotel-reservation-theme/css/rtl_grid.css new file mode 100644 index 000000000..8a30ba72f --- /dev/null +++ b/themes/hotel-reservation-theme/css/rtl_grid.css @@ -0,0 +1,594 @@ + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11 { + float: right +} +.col-xs-1 { + width: 8.33333% +} +.col-xs-2 { + width: 16.66667% +} +.col-xs-3 { + width: 25% +} +.col-xs-4 { + width: 33.33333% +} +.col-xs-5 { + width: 41.66667% +} +.col-xs-6 { + width: 50% +} +.col-xs-7 { + width: 58.33333% +} +.col-xs-8 { + width: 66.66667% +} +.col-xs-9 { + width: 75% +} +.col-xs-10 { + width: 83.33333% +} +.col-xs-11 { + width: 91.66667% +} +.col-xs-12 { + width: 100% +} +@media (min-width: 768px) { + .container { + max-width: 728px + } + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11 { + float: right + } + .col-sm-1 { + width: 8.33333% + } + .col-sm-2 { + width: 16.66667% + } + .col-sm-3 { + width: 25% + } + .col-sm-4 { + width: 33.33333% + } + .col-sm-5 { + width: 41.66667% + } + .col-sm-6 { + width: 50% + } + .col-sm-7 { + width: 58.33333% + } + .col-sm-8 { + width: 66.66667% + } + .col-sm-9 { + width: 75% + } + .col-sm- { + width: 83.33333% + } + .col-sm- { + width: 91.66667% + } + .col-sm-12 { + width: 100% + } + .col-sm-push-1 { + right: 8.33333% + } + .col-sm-push-2 { + right: 16.66667% + } + .col-sm-push-3 { + right: 25% + } + .col-sm-push-4 { + right: 33.33333% + } + .col-sm-push-5 { + right: 41.66667% + } + .col-sm-push-6 { + right: 50% + } + .col-sm-push-7 { + right: 58.33333% + } + .col-sm-push-8 { + right: 66.66667% + } + .col-sm-push-9 { + right: 75% + } + .col-sm-push-10 { + right: 83.33333% + } + .col-sm-push-11 { + right: 91.66667% + } + .col-sm-pull-0 { + left: auto; + right: auto + } + .col-sm-pull-1 { + left: 8.33333%; + right: auto + } + .col-sm-pull-2 { + left: 16.66667%; + right: auto + } + .col-sm-pull-3 { + left: 25%; + right: auto + } + .col-sm-pull-4 { + left: 33.33333%; + right: auto + } + .col-sm-pull-5 { + left: 41.66667%; + right: auto + } + .col-sm-pull-6 { + left: 50%; + right: auto + } + .col-sm-pull-7 { + left: 58.33333%; + right: auto + } + .col-sm-pull-8 { + left: 66.66667%; + right: auto + } + .col-sm-pull-9 { + left: 75%; + right: auto + } + .col-sm-pull-10 { + left: 83.33333%; + right: auto + } + .col-sm-pull-11 { + left: 91.66667%; + right: auto + } + .col-sm-offset-1 { + margin-right: 8.33333% + } + .col-sm-offset-2 { + margin-right: 16.66667% + } + .col-sm-offset-3 { + margin-right: 25% + } + .col-sm-offset-4 { + margin-right: 33.33333% + } + .col-sm-offset-5 { + margin-right: 41.66667% + } + .col-sm-offset-6 { + margin-right: 50% + } + .col-sm-offset-7 { + margin-right: 58.33333% + } + .col-sm-offset-8 { + margin-right: 66.66667% + } + .col-sm-offset-9 { + margin-right: 75% + } + .col-sm-offset-10 { + margin-right: 83.33333% + } + .col-sm-offset-11 { + margin-right: 91.66667% + } + .col-sm-offset-1, + .col-sm-offset-2, + .col-sm-offset-3, + .col-sm-offset-4, + .col-sm-offset-5, + .col-sm-offset-6, + .col-sm-offset-7, + .col-sm-offset-8, + .col-sm-offset-9, + .col-sm-offset-10, + .col-sm-offset-11 { + margin-left: 0 + } +} +@media (min-width: 992px) { + .container { + max-width: 940px + } + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11 { + float: right + } + .col-md-1 { + width: 8.33333% + } + .col-md-2 { + width: 16.66667% + } + .col-md-3 { + width: 25% + } + .col-md-4 { + width: 33.33333% + } + .col-md-5 { + width: 41.66667% + } + .col-md-6 { + width: 50% + } + .col-md-7 { + width: 58.33333% + } + .col-md-8 { + width: 66.66667% + } + .col-md-9 { + width: 75% + } + .col-md-10 { + width: 83.33333% + } + .col-md-11 { + width: 91.66667% + } + .col-md-12 { + width: 100% + } + .col-md-push-1 { + right: 8.33333% + } + .col-md-push-2 { + right: 16.66667% + } + .col-md-push-3 { + right: 25% + } + .col-md-push-4 { + right: 33.33333% + } + .col-md-push-5 { + right: 41.66667% + } + .col-md-push-6 { + right: 50% + } + .col-md-push-7 { + right: 58.33333% + } + .col-md-push-8 { + right: 66.66667% + } + .col-md-push-9 { + right: 75% + } + .col-md-push-10 { + right: 83.33333% + } + .col-md-push-11 { + right: 91.66667% + } + .col-md-pull-0 { + left: auto; + right: auto + } + .col-md-pull-1 { + left: 8.33333%; + right: auto + } + .col-md-pull-2 { + left: 16.66667%; + right: auto + } + .col-md-pull-3 { + left: 25%; + right: auto + } + .col-md-pull-4 { + left: 33.33333%; + right: auto + } + .col-md-pull-5 { + left: 41.66667%; + right: auto + } + .col-md-pull-6 { + left: 50%; + right: auto + } + .col-md-pull-7 { + left: 58.33333%; + right: auto + } + .col-md-pull-8 { + left: 66.66667%; + right: auto + } + .col-md-pull-9 { + left: 75%; + right: auto + } + .col-md-pull-10 { + left: 83.33333%; + right: auto + } + .col-md-pull-11 { + left: 91.66667%; + right: auto + } + .col-md-offset-1 { + margin-right: 8.33333% + } + .col-md-offset-2 { + margin-right: 16.66667% + } + .col-md-offset-3 { + margin-right: 25% + } + .col-md-offset-4 { + margin-right: 33.33333% + } + .col-md-offset-5 { + margin-right: 41.66667% + } + .col-md-offset-6 { + margin-right: 50% + } + .col-md-offset-7 { + margin-right: 58.33333% + } + .col-md-offset-8 { + margin-right: 66.66667% + } + .col-md-offset-9 { + margin-right: 75% + } + .col-md-offset-10 { + margin-right: 83.33333% + } + .col-md-offset-11 { + margin-right: 91.66667% + } + .col-md-offset-1, + .col-md-offset-2, + .col-md-offset-3, + .col-md-offset-4, + .col-md-offset-5, + .col-md-offset-6, + .col-md-offset-7, + .col-md-offset-8, + .col-md-offset-9, + .col-md-offset-10, + .col-md-offset-11 { + margin-left: 0 + } +} +@media (min-width: 1200px) { + .container { + max-width: 1170px + } + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11 { + float: right + } + .col-lg-1 { + width: 8.33333% + } + .col-lg-2 { + width: 16.66667% + } + .col-lg-3 { + width: 25% + } + .col-lg-4 { + width: 33.33333% + } + .col-lg-5 { + width: 41.66667% + } + .col-lg-6 { + width: 50% + } + .col-lg-7 { + width: 58.33333% + } + .col-lg-8 { + width: 66.66667% + } + .col-lg-9 { + width: 75% + } + .col-lg-10 { + width: 83.33333% + } + .col-lg-11 { + width: 91.66667% + } + .col-lg-12 { + width: 100% + } + .col-lg-push-1 { + right: 8.33333% + } + .col-lg-push-2 { + right: 16.66667% + } + .col-lg-push-3 { + right: 25% + } + .col-lg-push-4 { + right: 33.33333% + } + .col-lg-push-5 { + right: 41.66667% + } + .col-lg-push-6 { + right: 50% + } + .col-lg-push-7 { + right: 58.33333% + } + .col-lg-push-8 { + right: 66.66667% + } + .col-lg-push-9 { + right: 75% + } + .col-lg-push-10 { + right: 83.33333% + } + .col-lg-push-11 { + right: 91.66667% + } + .col-lg-pull-0 { + left: auto; + right: auto + } + .col-lg-pull-1 { + left: 8.33333%; + right: auto + } + .col-lg-pull-2 { + left: 16.66667%; + right: auto + } + .col-lg-pull-3 { + left: 25%; + right: auto + } + .col-lg-pull-4 { + left: 33.33333%; + right: auto + } + .col-lg-pull-5 { + left: 41.66667%; + right: auto + } + .col-lg-pull-6 { + left: 50%; + right: auto + } + .col-lg-pull-7 { + left: 58.33333%; + right: auto; + right: unset + } + .col-lg-pull-8 { + left: 66.66667%; + right: auto + } + .col-lg-pull-9 { + left: 75%; + right: auto + } + .col-lg-pull-10 { + left: 83.33333%; + right: auto + } + .col-lg-pull-11 { + left: 91.66667%; + right: auto + } + .col-lg-offset-1 { + margin-right: 8.33333% + } + .col-lg-offset-2 { + margin-right: 16.66667% + } + .col-lg-offset-3 { + margin-right: 25% + } + .col-lg-offset-4 { + margin-right: 33.33333% + } + .col-lg-offset-5 { + margin-right: 41.66667% + } + .col-lg-offset-6 { + margin-right: 50% + } + .col-lg-offset-7 { + margin-right: 58.33333% + } + .col-lg-offset-8 { + margin-right: 66.66667% + } + .col-lg-offset-9 { + margin-right: 75% + } + .col-lg-offset-10 { + margin-right: 83.33333% + } + .col-lg-offset-11 { + margin-right: 91.66667% + } + .col-lg-offset-1, + .col-lg-offset-2, + .col-lg-offset-3, + .col-lg-offset-4, + .col-lg-offset-5, + .col-lg-offset-6, + .col-lg-offset-7, + .col-lg-offset-8, + .col-lg-offset-9, + .col-lg-offset-10, + .col-lg-offset-11 { + margin-left: 0 + } +} \ No newline at end of file From dbba0c8aed39e6c71b8911760da43f603181f563 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Thu, 22 Aug 2024 13:37:47 +0530 Subject: [PATCH 160/169] Revert: changes made for thr RTL design --- themes/hotel-reservation-theme/css/rtl.css | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/themes/hotel-reservation-theme/css/rtl.css b/themes/hotel-reservation-theme/css/rtl.css index cc3713113..f2d491884 100644 --- a/themes/hotel-reservation-theme/css/rtl.css +++ b/themes/hotel-reservation-theme/css/rtl.css @@ -80,22 +80,6 @@ ul.footer_links li .button.button-small span i { } } -#checkout-guest-info-block [class*=col], -#order-opc .avail_vouchers_block .avail_voucher_name>.voucher_name, -.room_price_detail_block [class*=col], -.cart_product_line [class*=col], -.room_duration_block [class*=col], -.avail_vouchers_block [class*=col], -.cart_voucher_detail_block [class*=col], -.product_info_label { - float: right !important; -} - -#order-opc .cart_total_detail_block .cart_total_values, -.proceed_btn_block a { - float: left !important; -} - .booking-actions-wrap .btn.pull-right { float: left !important; margin-left: unset; From 8d2fc83bde731c138c6a462d3071be905232ec5e Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Thu, 22 Aug 2024 15:48:07 +0530 Subject: [PATCH 161/169] updated changes --- classes/controller/FrontController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/classes/controller/FrontController.php b/classes/controller/FrontController.php index cfdf17881..74150d376 100644 --- a/classes/controller/FrontController.php +++ b/classes/controller/FrontController.php @@ -391,8 +391,9 @@ class FrontControllerCore extends Controller $cart->id_shop = $this->context->shop->id; if ($this->context->cookie->id_customer) { $cart->id_customer = (int)$this->context->cookie->id_customer; - $cart->id_address_invoice = (int)Address::getFirstCustomerAddressId($cart->id_customer);; + $cart->id_address_invoice = (int)Address::getFirstCustomerAddressId($cart->id_customer); } else { + $cart->id_address_delivery = 0; $cart->id_address_invoice = 0; } From 84ed16bb439d665245d6c40d6b11059857bea02a Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Thu, 22 Aug 2024 18:14:08 +0530 Subject: [PATCH 162/169] Fixed: the positions of background images of elements in RTL, Updated the left and right icons for RTL and fixed some remaning RTL languages display issues --- themes/hotel-reservation-theme/css/rtl.css | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/themes/hotel-reservation-theme/css/rtl.css b/themes/hotel-reservation-theme/css/rtl.css index dfc7a8f43..abae4abc8 100644 --- a/themes/hotel-reservation-theme/css/rtl.css +++ b/themes/hotel-reservation-theme/css/rtl.css @@ -20,6 +20,41 @@ .text-left { text-align: right !important; } + +.icon-angle-double-left:before, +.icon-double-angle-left:before { + content: "" !important; +} + +.icon-angle-double-right:before, +.icon-double-angle-right:before { + content: "" !important; +} + +.icon-angle-left:before { + content: "" !important; +} + +.icon-angle-right:before { + content: "" !important; +} +.btn-edit-guest-info { + margin-left: 10px; +} + +.header-rmsearch-wrapper .filter_header .header-bottom-hr { + float: right !important; +} + +.booking_guest_occupancy.input-occupancy { + padding-right: 35px; + background-position-x: calc(100% - 10px), 10px !important; +} + +.booking_guest_occupancy.input-occupancy .pull-left { + float: right !important; +} + .owl-stage-outer { direction: rtl !important; } @@ -220,6 +255,30 @@ div.uploader .filename, div.uploader .action { #search_hotel_block_form .header-rmsearch-input.input-occupancy .pull-left { float: right !important; } + +#search_hotel_block_form #id_hotel_button{ + background-position-x: calc(100% - 10px), 10px !important; +} + +#search_hotel_block_form #id_hotel_button_chosen .chosen-single, #search_hotel_block_form .chosen-container-single .chosen-search input[type="text"]{ + padding-right: 35px; + background-position-x: calc(100% - 10px), 10px !important; +} + +#search_hotel_block_form .chosen-container-single .chosen-single div { + right: unset !important; + left: 5px !important; +} + +#search_hotel_block_form .chosen-container-single .chosen-search::after { + right: unset !important; + left: 10px !important; +} + +#search_hotel_block_form .chosen-container-single .chosen-single span { + margin-right: unset; +} + /* room search block - end */ /* sidebar - start */ @@ -344,6 +403,24 @@ div.uploader .filename, div.uploader .action { float: left !important; } +p.payment_module a:after { + right: unset !important; + content: "\f053" !important; + left: 12px !important; +} + +p.payment_module a { + padding: 30px 100px 27px 25px; + background-position-x: calc(100% - 10px) !important; +} + +.room-type-feature { + float: right !important; + margin-bottom: 5px; + padding: 0px 0px 0px 10px !important; + line-height: 24px !important; +} + /* order-opc - end */ /* contact-us - start */ From 86b5f1afa70f9e5a9074d96ac35251f0907d89f7 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Thu, 22 Aug 2024 18:37:31 +0530 Subject: [PATCH 163/169] Updated the exta_services to services in the APIs and optmized the code --- classes/Address.php | 17 +++--- classes/CustomerMessage.php | 1 - classes/Guest.php | 1 - classes/Product.php | 22 ++++---- classes/webservice/WebserviceRequest.php | 3 +- .../classes/HotelBranchInformation.php | 52 +++++++++---------- .../classes/HotelRoomType.php | 2 +- 7 files changed, 47 insertions(+), 51 deletions(-) diff --git a/classes/Address.php b/classes/Address.php index 9c0c2c242..a9360be5a 100644 --- a/classes/Address.php +++ b/classes/Address.php @@ -560,21 +560,21 @@ class AddressCore extends ObjectModel if (isset($this->webservice_validation) && $this->webservice_validation) { if (!$this->id_customer || !Validate::isLoadedObject(new Customer((int) $this->id_customer))) { $message = Tools::displayError('Invalid Id customer.'); - } else if (Customer::getCustomerIdAddress($this->id_customer, false) && !$this->id) { - $message = Tools::displayError('You cannot create multiple addresses for a single customer.'); - } else if (!$this->id_country || !Validate::isLoadedObject($objCountry = new Country($this->id_country))) { + } elseif (Customer::getCustomerIdAddress($this->id_customer, false) && !$this->id) { + $message = Tools::displayError('A single customer cannot have multiple addresses.'); + } elseif (!$this->id_country || !Validate::isLoadedObject($objCountry = new Country($this->id_country))) { $message = Tools::displayError('Invalid Id country'); - } else if ($objCountry->contains_states + } elseif ($objCountry->contains_states && (!$this->id_state || !Validate::isLoadedObject($objState = new State((int) $this->id_state))) ) { $message = Tools::displayError('Invalid Id state'); - } else if (isset($objState) && ($objCountry->id != $objState->id_country)) { + } elseif (isset($objState) && ($objCountry->id != $objState->id_country)) { $message = Tools::displayError('The given provided Id state does not belongs to the provided Id country'); - } else if ($objCountry->zip_code_format && !$objCountry->checkZipCode($this->postcode)) { + } elseif ($objCountry->zip_code_format && !$objCountry->checkZipCode($this->postcode)) { $message = Tools::displayError('Your Zip/postal code is incorrect'); - } else if (empty($this->postcode) && $objCountry->need_zip_code) { + } elseif (empty($this->postcode) && $objCountry->need_zip_code) { $message = Tools::displayError('A Zip/postal code is required.'); - } else if ($this->postcode && !Validate::isPostCode($this->postcode)) { + } elseif ($this->postcode && !Validate::isPostCode($this->postcode)) { $message = Tools::displayError('The Zip/postal code is invalid.'); } @@ -587,5 +587,4 @@ class AddressCore extends ObjectModel } return parent::validateFields($die, $error_return); } - } diff --git a/classes/CustomerMessage.php b/classes/CustomerMessage.php index 89dd0366e..99522fa0d 100644 --- a/classes/CustomerMessage.php +++ b/classes/CustomerMessage.php @@ -149,5 +149,4 @@ class CustomerMessageCore extends ObjectModel return parent::validateFields($die, $error_return); } - } diff --git a/classes/Guest.php b/classes/Guest.php index f600d38c1..7a298ed87 100644 --- a/classes/Guest.php +++ b/classes/Guest.php @@ -215,5 +215,4 @@ class GuestCore extends ObjectModel } return parent::validateFields($die, $error_return); } - } diff --git a/classes/Product.php b/classes/Product.php index 1286db158..9cc5176b7 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -371,7 +371,7 @@ class ProductCore extends ObjectModel ), ); - protected $webserviceRoomTypeParameters = array( + protected $webserviceParameters = array( 'objectMethods' => array( 'add' => 'addWsRoomType', 'update' => 'updateWsRoomType', @@ -470,8 +470,8 @@ class ProductCore extends ObjectModel 'price' => array(), ) ), - 'extra_services' => array( - 'resource' => 'extra_service', + 'services' => array( + 'resource' => 'service', 'fields' => array( 'id' => array('validate' => 'isUnsignedId', 'required' => true), 'price' => array('validate' => 'isPrice', 'required' => true), @@ -485,14 +485,14 @@ class ProductCore extends ObjectModel ), ); - protected $webserviceRoomTypeServicesParameters = array( + protected $webserviceServicesParameters = array( 'objectMethods' => array( 'add' => 'addWsServices', 'update' => 'updateWsServices', 'delete' => 'deleteWs' ), - 'objectsNodeName' => 'extra_services', - 'objectNodeName' => 'extra_service', + 'objectsNodeName' => 'services', + 'objectNodeName' => 'service', 'retrieveData' => array( 'retrieveMethod' => 'getServicesObjectList' ), @@ -6594,13 +6594,12 @@ class ProductCore extends ObjectModel public function getWsExtraServices() { - // since the service prodcuts are also store in the product table, so we are using the RoomTypeServiceProduct class for the service products return Db::getInstance()->executeS( 'SELECT spp.`price`, spp.`id_tax_rules_group`, sp.`id_product` AS id - FROM `'._DB_PREFIX_.'htl_room_type_service_product` sp - LEFT JOIN `'._DB_PREFIX_.'htl_room_type_service_product_price` spp - ON (spp.`id_product` = sp.`id_product` AND spp.`id_element` = sp.`id_element` AND spp.`element_type` = sp.`element_type`) - WHERE sp.`id_element` = '.(int)$this->id + FROM `'._DB_PREFIX_.'htl_room_type_service_product` sp + LEFT JOIN `'._DB_PREFIX_.'htl_room_type_service_product_price` spp + ON (spp.`id_product` = sp.`id_product` AND spp.`id_element` = sp.`id_element` AND spp.`element_type` = sp.`element_type`) + WHERE sp.`id_element` = '.(int)$this->id ); } @@ -6756,5 +6755,4 @@ class ProductCore extends ObjectModel return true; } - } diff --git a/classes/webservice/WebserviceRequest.php b/classes/webservice/WebserviceRequest.php index 4fa67c4c5..d3ccba8f3 100644 --- a/classes/webservice/WebserviceRequest.php +++ b/classes/webservice/WebserviceRequest.php @@ -289,7 +289,8 @@ class WebserviceRequestCore 'room_type_feature_values' => array('description' => 'The product feature values','class' => 'FeatureValue'), 'room_type_options' => array('description' => 'The product options','class' => 'AttributeGroup'), 'room_type_option_values' => array('description' => 'The product options value','class' => 'Attribute'), - 'room_types' => array('description' => 'The room types','class' => 'Product', 'parameters_attribute' => 'webserviceRoomTypeParameters'), + 'room_types' => array('description' => 'The room types','class' => 'Product'), + 'services' => array('description' => 'Services', 'class' => 'Product', 'parameters_attribute' => 'webserviceServicesParameters'), 'states' => array('description' => 'The available states of countries','class' => 'State'), 'stores' => array('description' => 'The stores', 'class' => 'Store'), 'suppliers' => array('description' => 'The product suppliers','class' => 'Supplier'), diff --git a/modules/hotelreservationsystem/classes/HotelBranchInformation.php b/modules/hotelreservationsystem/classes/HotelBranchInformation.php index e4f8208e1..6a7c1bf50 100644 --- a/modules/hotelreservationsystem/classes/HotelBranchInformation.php +++ b/modules/hotelreservationsystem/classes/HotelBranchInformation.php @@ -1069,56 +1069,56 @@ class HotelBranchInformation extends ObjectModel if (isset($this->webservice_validation) && $this->webservice_validation) { if ($this->rating < 1 || $this->rating > 5) { $message = Tools::displayError('Rating must be between 1 and 5.'); - } else if (!strtotime($this->check_in)) { + } elseif (!strtotime($this->check_in)) { $message = Tools::displayError('Check In time is invalid.'); - } else if (!strtotime($this->check_out)) { + } elseif (!strtotime($this->check_out)) { $message = Tools::displayError('Check out time is invalid.'); - } else if ($this->check_in && $this->check_out && strtotime($this->check_out) >= strtotime($this->check_in)) { + } elseif ($this->check_in && $this->check_out && strtotime($this->check_out) >= strtotime($this->check_in)) { $message = Tools::displayError('Check Out time must be before Check In time.'); - } else if (!trim($this->phone)) { + } elseif (!trim($this->phone)) { $message = Tools::displayError('Phone number is required field.'); - } else if (!Validate::isPhoneNumber($this->phone)) { + } elseif (!Validate::isPhoneNumber($this->phone)) { $message = Tools::displayError('Please enter a valid phone number.'); - } else if (trim($this->address) == '') { + } elseif (trim($this->address) == '') { $message = Tools::displayError('Address is required field.'); - } else if (!Validate::isAddress($this->address)) { + } elseif (!Validate::isAddress($this->address)) { $message = Tools::displayError('Address is invalid.'); - } else if (!$this->id_country) { + } elseif (!$this->id_country) { $message = Tools::displayError('Country is required field.'); - } else if ($this->city == '') { + } elseif ($this->city == '') { $message = Tools::displayError('City is required field.'); - } else if (!Validate::isCityName($this->city)) { + } elseif (!Validate::isCityName($this->city)) { $message = Tools::displayError('Enter a Valid City Name.'); - } else if (!Validate::isBool($this->use_global_max_order_date)) { + } elseif (!Validate::isBool($this->use_global_max_order_date)) { $message = Tools::displayError('invalid value for use_global_max_order_date.'); - } else if (!Validate::isBool($this->use_global_preparation_time)) { + } elseif (!Validate::isBool($this->use_global_preparation_time)) { $message = Tools::displayError('invalid value for use_global_preparation_time.'); - } else if (!$this->use_global_max_order_date && $this->max_order_date == '') { + } elseif (!$this->use_global_max_order_date && $this->max_order_date == '') { $message = Tools::displayError('Maximum date to book a room is required.'); - } else if (!$this->use_global_max_order_date && !Validate::isDate($this->max_order_date)) { + } elseif (!$this->use_global_max_order_date && !Validate::isDate($this->max_order_date)) { $message = Tools::displayError('Maximum date to book a room is invalid.'); - } else if (!$this->use_global_max_order_date + } elseif (!$this->use_global_max_order_date && ($maxOrderDateFormatted = date('Y-m-d', strtotime($this->max_order_date))) && strtotime($maxOrderDateFormatted) < strtotime(date('Y-m-d')) ) { $message = Tools::displayError('Maximum Global Date to book a room can not be a past date. Please use a future date.'); - } else if (!$this->use_global_preparation_time && $this->preparation_time === '') { + } elseif (!$this->use_global_preparation_time && $this->preparation_time === '') { $message = Tools::displayError('Minimum booking offset is a required.'); - } else if (!$this->use_global_preparation_time && $this->preparation_time !== '0' && !Validate::isUnsignedInt($this->preparation_time)) { + } elseif (!$this->use_global_preparation_time && $this->preparation_time !== '0' && !Validate::isUnsignedInt($this->preparation_time)) { $message = Tools::displayError('Minimum booking offset is invalid.'); - } else if (!Validate::isLoadedObject($objCountry = new Country($this->id_country))) { + } elseif (!Validate::isLoadedObject($objCountry = new Country($this->id_country))) { $message = Tools::displayError('country is invalid.'); - } else if ($this->id_state + } elseif ($this->id_state && (!Validate::isLoadedObject($objState = new State($this->id_state)) || $objState->id_country != $this->id_country) ) { $message = Tools::displayError('State is invalid.'); - } else if (State::getStatesByIdCountry($this->id_country) && !$this->id_state) { + } elseif (State::getStatesByIdCountry($this->id_country) && !$this->id_state) { $message = Tools::displayError('State is required field.'); - } else if (empty($this->zipcode) && $objCountry->need_zip_code) { + } elseif (empty($this->zipcode) && $objCountry->need_zip_code) { $message = Tools::displayError('A Zip / Postal code is required.'); - } else if ($objCountry->zip_code_format && !$objCountry->checkZipCode($this->zipcode)) { + } elseif ($objCountry->zip_code_format && !$objCountry->checkZipCode($this->zipcode)) { $message = sprintf(Tools::displayError('The Zip/Postal code you have entered is invalid. It must follow this format: %s'), str_replace('C', $objCountry->iso_code, str_replace('N', '0', str_replace('L', 'A', $objCountry->zip_code_format)))); - } else if ($this->zipcode && !Validate::isPostCode($this->zipcode)) { + } elseif ($this->zipcode && !Validate::isPostCode($this->zipcode)) { $message = Tools::displayError('The Zip / Postal code is invalid.'); } else { if ($addressValidation = Address::getValidationRules('Address')) { @@ -1129,19 +1129,19 @@ class HotelBranchInformation extends ObjectModel $maxSize ); break; - } else if ('address1' == $field && Tools::strlen($this->address) > $maxSize) { + } elseif ('address1' == $field && Tools::strlen($this->address) > $maxSize) { $message = sprintf( Tools::displayError('The Hotel address is too long (%1$d chars max).'), $maxSize ); break; - } else if ('city' == $field && Tools::strlen($this->city) > $maxSize) { + } elseif ('city' == $field && Tools::strlen($this->city) > $maxSize) { $message = sprintf( Tools::displayError('The Hotel city name is too long (%1$d chars max).'), $maxSize ); break; - } else if ('postcode' == $field && Tools::strlen($this->zipcode) > $maxSize) { + } elseif ('postcode' == $field && Tools::strlen($this->zipcode) > $maxSize) { $message = sprintf( Tools::displayError('The Hotel zip code is too long (%1$d chars max).'), $maxSize diff --git a/modules/hotelreservationsystem/classes/HotelRoomType.php b/modules/hotelreservationsystem/classes/HotelRoomType.php index bff9e8adf..4316f94ce 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomType.php +++ b/modules/hotelreservationsystem/classes/HotelRoomType.php @@ -425,7 +425,7 @@ class HotelRoomType extends ObjectModel if (isset($this->webservice_validation) && $this->webservice_validation) { if (!(int) $this->id_product || !Validate::isLoadedObject(new Product((int) $this->id_product))) { $message = Tools::displayError('Invalid Id product.'); - } else if (!(int)$this->id_hote || !Validate::isLoadedObject(new HotelBranchInformation((int) $this->id_hotel))) { + } elseif (!(int)$this->id_hotel || !Validate::isLoadedObject(new HotelBranchInformation((int) $this->id_hotel))) { $message = Tools::displayError('Invalid Id hotel.'); } From 0c95a3273936033947eb2049e8c11ec2a11bc257 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Fri, 23 Aug 2024 11:55:36 +0530 Subject: [PATCH 164/169] Added: Feature in tree select all children node when parent node is selected --- .../normal_products/helpers/tree/tree.tpl | 39 ------------------- .../default/template/helpers/tree/tree.tpl | 16 ++++++++ classes/helper/HelperTree.php | 14 +++++++ .../admin/AdminNormalProductsController.php | 1 + .../classes/HotelHelper.php | 6 +-- 5 files changed, 32 insertions(+), 44 deletions(-) delete mode 100644 admin/themes/default/template/controllers/normal_products/helpers/tree/tree.tpl diff --git a/admin/themes/default/template/controllers/normal_products/helpers/tree/tree.tpl b/admin/themes/default/template/controllers/normal_products/helpers/tree/tree.tpl deleted file mode 100644 index ce2479919..000000000 --- a/admin/themes/default/template/controllers/normal_products/helpers/tree/tree.tpl +++ /dev/null @@ -1,39 +0,0 @@ -{* -* Since 2010 Webkul. -* -* NOTICE OF LICENSE -* -* All right is reserved, -* Please go through this link for complete license : https://store.webkul.com/license.html -* -* DISCLAIMER -* -* Do not edit or add to this file if you wish to upgrade this module to newer -* versions in the future. If you wish to customize this module for your -* needs please refer to https://store.webkul.com/customisation-guidelines/ for more information. -* -* @author Webkul IN -* @copyright Since 2010 Webkul IN -* @license https://store.webkul.com/license.html -*} -{extends file="helpers/tree/tree.tpl"} - \ No newline at end of file diff --git a/admin/themes/default/template/helpers/tree/tree.tpl b/admin/themes/default/template/helpers/tree/tree.tpl index c4ecff65f..30c4283c6 100644 --- a/admin/themes/default/template/helpers/tree/tree.tpl +++ b/admin/themes/default/template/helpers/tree/tree.tpl @@ -84,6 +84,22 @@ }); {/if} + {if isset($auto_select_children) && $auto_select_children == true} + $('#{$id|escape:'html':'UTF-8'}').find(':input[type=checkbox]').on('click', function(){ + if ($(this).is(":checked")) { + $(this).closest('.tree-folder').find(':input[type=checkbox]').each(function(){ + $(this).prop('checked', true); + $(this).parent().addClass('tree-selected'); + }); + } else { + $(this).closest('.tree-folder').find(':input[type=checkbox]').each(function(){ + $(this).prop('checked', false); + $(this).parent().removeClass('tree-selected'); + }); + } + }); + {/if} + $(document).ready(function () { var tree = $("#{$id|escape:'html':'UTF-8'}").tree('collapseAll'); diff --git a/classes/helper/HelperTree.php b/classes/helper/HelperTree.php index 0a3824205..d79bea095 100644 --- a/classes/helper/HelperTree.php +++ b/classes/helper/HelperTree.php @@ -29,6 +29,7 @@ class HelperTreeCore extends TreeCore private $_use_bulk_actions; private $_use_checkbox; private $_show_collapse_expand_button = true; + private $_auto_select_children = false; private $_max_height = 350; @@ -43,6 +44,18 @@ class HelperTreeCore extends TreeCore return (isset($this->_use_search) && $this->_use_search); } + public function setAutoSelectChildren($value) + { + $this->_auto_select_children = (bool)$value; + return $this; + } + + public function autoSelectChildren() + { + return (isset($this->_auto_select_children) && $this->_auto_select_children); + } + + public function setUseBulkActions($value) { $this->_use_bulk_actions = (bool)$value; @@ -119,6 +132,7 @@ class HelperTreeCore extends TreeCore ); $this->setAttribute('use_search', $this->useSearch()); } + $this->setAttribute('auto_select_children', $this->autoSelectChildren()); if ($this->showCollapseExpandButton()) { $collapse_all = new TreeToolbarLink( diff --git a/controllers/admin/AdminNormalProductsController.php b/controllers/admin/AdminNormalProductsController.php index 0e52ca53f..c584a46b6 100644 --- a/controllers/admin/AdminNormalProductsController.php +++ b/controllers/admin/AdminNormalProductsController.php @@ -3507,6 +3507,7 @@ class AdminNormalProductsControllerCore extends AdminController 'selectedElements' => $selectedElements ])) ->setUseCheckBox(true) + ->setAutoSelectChildren(true) ->setUseBulkActions(true) ->setUseSearch(true); $data->assign('hotel_tree', $tree->render()); diff --git a/modules/hotelreservationsystem/classes/HotelHelper.php b/modules/hotelreservationsystem/classes/HotelHelper.php index d44240626..dc442e32d 100644 --- a/modules/hotelreservationsystem/classes/HotelHelper.php +++ b/modules/hotelreservationsystem/classes/HotelHelper.php @@ -2730,11 +2730,7 @@ class HotelHelper if (isset($rooms[$roomType['value']])) { $roomType['children'] = $rooms[$roomType['value']]; } - $roomType['hint'] = 'This is Room type hint'; - $roomType['badge'] = array( - 'class' => 'badge-danger', - 'title' => 'Disabled' - ); + if ($previousElements) { $return[$roomType['id_hotel']][] = $roomType; } else { From 2fa760fa309498b8556b0d9e8c0246e5bfe400bd Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 23 Aug 2024 12:37:51 +0530 Subject: [PATCH 165/169] Updated the output builder to set the params for the resources having parameters_attribute --- classes/webservice/WebserviceOutputBuilder.php | 4 ++-- classes/webservice/WebserviceRequest.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/classes/webservice/WebserviceOutputBuilder.php b/classes/webservice/WebserviceOutputBuilder.php index 000e42f6b..cdba833eb 100644 --- a/classes/webservice/WebserviceOutputBuilder.php +++ b/classes/webservice/WebserviceOutputBuilder.php @@ -831,9 +831,9 @@ class WebserviceOutputBuilderCore $this->fieldsToDisplay = $fields; } - public static function setWsParams($class, $params) + public function setWsParameters($class, $parameters) { - WebserviceOutputBuilder::$_cache_ws_parameters[$class] = $params; + WebserviceOutputBuilder::$_cache_ws_parameters[$class] = $parameters; } } diff --git a/classes/webservice/WebserviceRequest.php b/classes/webservice/WebserviceRequest.php index d3ccba8f3..dd8383074 100644 --- a/classes/webservice/WebserviceRequest.php +++ b/classes/webservice/WebserviceRequest.php @@ -513,11 +513,11 @@ class WebserviceRequestCore $object = new $url_resource['class'](); if (isset($this->resourceList[$this->urlSegment[0]]['parameters_attribute'])) { $this->resourceConfiguration = $object->getWebserviceParameters($this->resourceList[$this->urlSegment[0]]['parameters_attribute']); + // Setting the parameters for the output builder in cache for the resources having parameters_attribute. + $this->objOutput->setWsParameters($url_resource['class'], $this->resourceConfiguration); } else { $this->resourceConfiguration = $object->getWebserviceParameters(); } - - WebserviceOutputBuilder::setWsParams($url_resource['class'], $this->resourceConfiguration); } $success = false; // execute the action From 3543ca27ab15bcf363a72f097cc1a78965ff8665 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 23 Aug 2024 12:47:05 +0530 Subject: [PATCH 166/169] Fixed: services setter and getter for the room type API --- classes/Product.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/Product.php b/classes/Product.php index 9cc5176b7..862dd457d 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -6592,7 +6592,7 @@ class ProductCore extends ObjectModel return $res; } - public function getWsExtraServices() + public function getWsServices() { return Db::getInstance()->executeS( 'SELECT spp.`price`, spp.`id_tax_rules_group`, sp.`id_product` AS id @@ -6707,7 +6707,7 @@ class ProductCore extends ObjectModel return true; } - public function setWsExtraServices($services) + public function setWsServices($services) { Db::getInstance()->execute(' DELETE FROM `'._DB_PREFIX_.'htl_room_type_service_product` From 1428f7d8d37c3e87b9ff6c12879b0534bfc72fd0 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 23 Aug 2024 13:18:00 +0530 Subject: [PATCH 167/169] Udpated the popup design for services and demands on order detail and order confirmation page in the front --- .../_partials/order-extra-services.tpl | 15 ++++++--------- themes/hotel-reservation-theme/css/global.css | 1 - .../css/order-confirmation.css | 2 +- .../hotel-reservation-theme/css/order-detail.css | 2 +- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/themes/hotel-reservation-theme/_partials/order-extra-services.tpl b/themes/hotel-reservation-theme/_partials/order-extra-services.tpl index 5e643b6f0..41c1d338a 100644 --- a/themes/hotel-reservation-theme/_partials/order-extra-services.tpl +++ b/themes/hotel-reservation-theme/_partials/order-extra-services.tpl @@ -25,8 +25,12 @@ {if (isset($extraDemands) && $extraDemands) || (isset($additionalServices) && $additionalServices)}

    @@ -64,10 +68,6 @@
    {assign var=roomCount value=$roomCount+1} {/foreach} - {else} -
    - {l s='No service found.'} -
    {/if}
    @@ -98,9 +98,6 @@
    {assign var=roomCount value=$roomCount+1} {/foreach} - {else} -
    - {l s='No facility found.'}
    {/if}
    diff --git a/themes/hotel-reservation-theme/css/global.css b/themes/hotel-reservation-theme/css/global.css index ab37bfe6a..cd790b7c6 100644 --- a/themes/hotel-reservation-theme/css/global.css +++ b/themes/hotel-reservation-theme/css/global.css @@ -8981,7 +8981,6 @@ a.open_rooms_extra_services_panel { margin-bottom: 18px;} */ #rooms_extra_services .room_demand_block { - margin-bottom: 15px; color: #333; font-size: 14px;} #rooms_extra_services .checkbox { diff --git a/themes/hotel-reservation-theme/css/order-confirmation.css b/themes/hotel-reservation-theme/css/order-confirmation.css index f7f16bdbe..d5b416c63 100644 --- a/themes/hotel-reservation-theme/css/order-confirmation.css +++ b/themes/hotel-reservation-theme/css/order-confirmation.css @@ -115,10 +115,10 @@ #rooms_extra_services .nav-tabs { border-bottom: none; + margin-left: 15px; } #rooms_extra_services .nav-tabs > li { - width: 50%; text-align: center; margin: 0; } diff --git a/themes/hotel-reservation-theme/css/order-detail.css b/themes/hotel-reservation-theme/css/order-detail.css index 3f7544dcd..81666c2cf 100644 --- a/themes/hotel-reservation-theme/css/order-detail.css +++ b/themes/hotel-reservation-theme/css/order-detail.css @@ -1005,10 +1005,10 @@ #popup-view-extra-services .nav-tabs { border-bottom: none; + margin-left: 15px; } #popup-view-extra-services .nav-tabs > li { - width: 50%; text-align: center; margin: 0; } From a6dc63552076ef409da0d1d39f385e9ffb224c34 Mon Sep 17 00:00:00 2001 From: "vishalsingh.qlo325" Date: Fri, 23 Aug 2024 19:24:14 +0530 Subject: [PATCH 168/169] Removed the non required css and opimized the code --- .../_partials/order-extra-services.tpl | 140 +++++++++--------- .../css/order-confirmation.css | 6 +- .../css/order-detail.css | 6 +- 3 files changed, 77 insertions(+), 75 deletions(-) diff --git a/themes/hotel-reservation-theme/_partials/order-extra-services.tpl b/themes/hotel-reservation-theme/_partials/order-extra-services.tpl index 41c1d338a..8a101f3cb 100644 --- a/themes/hotel-reservation-theme/_partials/order-extra-services.tpl +++ b/themes/hotel-reservation-theme/_partials/order-extra-services.tpl @@ -23,85 +23,83 @@
    {if (isset($extraDemands) && $extraDemands) || (isset($additionalServices) && $additionalServices)} -
    - -
    + +
    + {if isset($additionalServices) && $additionalServices}
    - {if isset($additionalServices) && $additionalServices} - {assign var=roomCount value=1} - {foreach $additionalServices as $key => $roomAdditionalService} -
    -
    - {l s='Room'} {$roomCount|string_format:'%02d'}  - ({if {$roomAdditionalService['adults']} <= 9}0{$roomAdditionalService['adults']}{else}{$roomAdditionalService['adults']}{/if} {if $roomAdditionalService['adults'] > 1}{l s='Adults'}{else}{l s='Adult'}{/if}{if $roomAdditionalService['children'] > 0}, {if {$roomAdditionalService['children']} <= 9}0{$roomAdditionalService['children']}{else}{$roomAdditionalService['children']}{/if} {if $roomAdditionalService['children'] > 1}{l s='Children'}{else}{l s='Child'}{/if}{/if}) -
    -
    - {foreach $roomAdditionalService['additional_services'] as $additionalService} -
    + {assign var=roomCount value=1} + {foreach $additionalServices as $key => $roomAdditionalService} +
    +
    + {l s='Room'} {$roomCount|string_format:'%02d'}  + ({if {$roomAdditionalService['adults']} <= 9}0{$roomAdditionalService['adults']}{else}{$roomAdditionalService['adults']}{/if} {if $roomAdditionalService['adults'] > 1}{l s='Adults'}{else}{l s='Adult'}{/if}{if $roomAdditionalService['children'] > 0}, {if {$roomAdditionalService['children']} <= 9}0{$roomAdditionalService['children']}{else}{$roomAdditionalService['children']}{/if} {if $roomAdditionalService['children'] > 1}{l s='Children'}{else}{l s='Child'}{/if}{/if}) +
    +
    + {foreach $roomAdditionalService['additional_services'] as $additionalService} +
    +
    -
    - {$additionalService['name']|escape:'html':'UTF-8'} - {if $additionalService['allow_multiple_quantity']} - {l s='(Quantity: %s)' sprintf=[$additionalService['quantity']|string_format:'%02d']} - {/if} -
    -
    -
    - - {if $useTax} - {displayPrice price=$additionalService['total_price_tax_incl']|escape:'html':'UTF-8' currency=$objOrder->id_currency} - {else} - {displayPrice price=$additionalService['total_price_tax_excl']|escape:'html':'UTF-8' currency=$objOrder->id_currency} - {/if} - + {$additionalService['name']|escape:'html':'UTF-8'} + {if $additionalService['allow_multiple_quantity']} + {l s='(Quantity: %s)' sprintf=[$additionalService['quantity']|string_format:'%02d']} + {/if}
    - {/foreach} -
    -
    - {assign var=roomCount value=$roomCount+1} - {/foreach} - {/if} -
    -
    - {if isset($extraDemands) && $extraDemands} - {assign var=roomCount value=1} - {foreach $extraDemands as $roomDemand} -
    -
    - {l s='Room'} {$roomCount|string_format:'%02d'}  - ({if {$roomDemand['adults']} <= 9}0{$roomDemand['adults']}{else}{$roomDemand['adults']}{/if} {if $roomDemand['adults'] > 1}{l s='Adults'}{else}{l s='Adult'}{/if}{if $roomDemand['children'] > 0}, {if {$roomDemand['children']} <= 9}0{$roomDemand['children']}{else}{$roomDemand['children']}{/if} {if $roomDemand['children'] > 1}{l s='Children'}{else}{l s='Child'}{/if}{/if}) -
    -
    - {foreach $roomDemand['extra_demands'] as $demand} -
    -
    {$demand['name']|escape:'html':'UTF-8'}
    -
    - - {if $useTax} - {displayPrice price="{$demand['total_price_tax_incl']|escape:'html':'UTF-8'}" currency=$objOrder->id_currency} - {else} - {displayPrice price="{$demand['total_price_tax_excl']|escape:'html':'UTF-8'}" currency=$objOrder->id_currency} - {/if} - -
    +
    + + {if $useTax} + {displayPrice price=$additionalService['total_price_tax_incl']|escape:'html':'UTF-8' currency=$objOrder->id_currency} + {else} + {displayPrice price=$additionalService['total_price_tax_excl']|escape:'html':'UTF-8' currency=$objOrder->id_currency} + {/if} +
    - {/foreach} -
    +
    + {/foreach}
    - {assign var=roomCount value=$roomCount+1} - {/foreach}
    - {/if} + {assign var=roomCount value=$roomCount+1} + {/foreach}
    -
    + {/if} + {if isset($extraDemands) && $extraDemands} +
    + {assign var=roomCount value=1} + {foreach $extraDemands as $roomDemand} +
    +
    + {l s='Room'} {$roomCount|string_format:'%02d'}  + ({if {$roomDemand['adults']} <= 9}0{$roomDemand['adults']}{else}{$roomDemand['adults']}{/if} {if $roomDemand['adults'] > 1}{l s='Adults'}{else}{l s='Adult'}{/if}{if $roomDemand['children'] > 0}, {if {$roomDemand['children']} <= 9}0{$roomDemand['children']}{else}{$roomDemand['children']}{/if} {if $roomDemand['children'] > 1}{l s='Children'}{else}{l s='Child'}{/if}{/if}) +
    +
    + {foreach $roomDemand['extra_demands'] as $demand} +
    +
    {$demand['name']|escape:'html':'UTF-8'}
    +
    + + {if $useTax} + {displayPrice price="{$demand['total_price_tax_incl']|escape:'html':'UTF-8'}" currency=$objOrder->id_currency} + {else} + {displayPrice price="{$demand['total_price_tax_excl']|escape:'html':'UTF-8'}" currency=$objOrder->id_currency} + {/if} + +
    +
    + {/foreach} +
    +
    + {assign var=roomCount value=$roomCount+1} + {/foreach} +
    +
    + {/if}
    {/if}
    diff --git a/themes/hotel-reservation-theme/css/order-confirmation.css b/themes/hotel-reservation-theme/css/order-confirmation.css index d5b416c63..68c5a778d 100644 --- a/themes/hotel-reservation-theme/css/order-confirmation.css +++ b/themes/hotel-reservation-theme/css/order-confirmation.css @@ -113,9 +113,12 @@ } /* card-tabs - end */ +#rooms_extra_services .card-body{ + padding: 0px 18px; +} + #rooms_extra_services .nav-tabs { border-bottom: none; - margin-left: 15px; } #rooms_extra_services .nav-tabs > li { @@ -160,7 +163,6 @@ } #rooms_extra_services .tab-content .room_demands { - padding: 0 18px; margin-top: 20px; } diff --git a/themes/hotel-reservation-theme/css/order-detail.css b/themes/hotel-reservation-theme/css/order-detail.css index 81666c2cf..cbcd0c446 100644 --- a/themes/hotel-reservation-theme/css/order-detail.css +++ b/themes/hotel-reservation-theme/css/order-detail.css @@ -1003,9 +1003,12 @@ line-height: 24px; } +#popup-view-extra-services .card-body{ + padding: 0px 18px; +} + #popup-view-extra-services .nav-tabs { border-bottom: none; - margin-left: 15px; } #popup-view-extra-services .nav-tabs > li { @@ -1049,7 +1052,6 @@ } #popup-view-extra-services .tab-content .room_demands { - padding: 0 18px; margin-top: 20px; } From aa957ac9012e3eb25a4bf7d4eefdadf8fe5cace3 Mon Sep 17 00:00:00 2001 From: Shreesh Arora Date: Mon, 26 Aug 2024 15:37:13 +0530 Subject: [PATCH 169/169] updated getBookingData function hook calls --- .../classes/HotelBookingDetail.php | 81 ++++++++----------- .../classes/HotelRoomInformation.php | 24 +++--- 2 files changed, 45 insertions(+), 60 deletions(-) diff --git a/modules/hotelreservationsystem/classes/HotelBookingDetail.php b/modules/hotelreservationsystem/classes/HotelBookingDetail.php index 0563578d1..074dc1ea5 100644 --- a/modules/hotelreservationsystem/classes/HotelBookingDetail.php +++ b/modules/hotelreservationsystem/classes/HotelBookingDetail.php @@ -185,7 +185,7 @@ class HotelBookingDetail extends ObjectModel return $result; } - public function getBookingDataParams($params) + public function getBookingDataParams(&$params) { if (!isset($params['id_room_type'])) { $params['id_room_type'] = 0; @@ -304,7 +304,7 @@ class HotelBookingDetail extends ObjectModel 'idRoomType' => $id_room_type, 'allowedIdRoomTypes' => $allowedIdRoomTypes, 'applyLosRestriction' => $applyLosRestriction, - 'extra_params' => $params, + 'allParams' => $params, ); $unavailRoomTypes = $this->getSearchUnavailableRooms($searchParams); } @@ -317,7 +317,7 @@ class HotelBookingDetail extends ObjectModel 'idGuest' => $id_guest, 'idRoomType' => $id_room_type, 'allowedIdRoomTypes' => $allowedIdRoomTypes, - 'extra_params' => $params, + 'allParams' => $params, ); $cartRoomTypes = $this->getSearchCartRooms($searchParams); } @@ -335,7 +335,7 @@ class HotelBookingDetail extends ObjectModel 'allowedIdRoomTypes' => $allowedIdRoomTypes, 'applyLosRestriction' => $applyLosRestriction, 'hourlyBooking' => $hourly_booking, - 'extra_params' => $params, + 'allParams' => $params, ); $availableRoomTypes = $this->getSearchAvailableRooms($searchParams); if ($availableRoomTypes['unavailableRoomTypes'] && $search_unavai) { @@ -370,7 +370,7 @@ class HotelBookingDetail extends ObjectModel 'dateTo' => $date_to, 'idRoomType' => $id_room_type, 'allowedIdRoomTypes' => $allowedIdRoomTypes, - 'extra_params' => $params, + 'allParams' => $params, ); $bookedRoomTypes = $this->getSearchBookedRooms($searchParams); } @@ -387,7 +387,7 @@ class HotelBookingDetail extends ObjectModel 'searchOccupancy' => $occupancy, 'allowedIdRoomTypes' => $allowedIdRoomTypes, 'hourlyBooking' => $hourly_booking, - 'extra_params' => $params, + 'allParams' => $params, ); $partiallyAvailRoomTypes = $this->getSearchPartiallyAvailRooms($searchParams); @@ -493,7 +493,7 @@ class HotelBookingDetail extends ObjectModel * 'idRoomType' => ..., * 'allowedIdRoomTypes' => ..., * 'applyLosRestriction' => ..., - * 'extra_params' => ..., + * 'allParams' => ..., * ); */ protected function getSearchUnavailableRooms($params) @@ -541,19 +541,16 @@ class HotelBookingDetail extends ObjectModel } - $hookParams = array( + Hook::exec('actionUnavailRoomSearchSqlModifier', array( 'sql' => &$sql, 'params' => array( 'id_hotel' => $idHotel, 'id_product' => $idRoomType, 'date_from' => $dateFrom, 'date_to' => $dateTo, + 'all_params' => $allParams ) - ); - if (isset($extra_params)) { - $hookParams['params']['extra_params'] = $extra_params; - } - Hook::exec('actionUnavailRoomSearchSqlModifier', $hookParams); + )); $sql = implode(' UNION ', $sql); $sql .= ' ORDER BY `id_room`, `date_from` ASC'; @@ -589,7 +586,7 @@ class HotelBookingDetail extends ObjectModel * 'idGuest' => ..., * 'idRoomType' => ..., * 'allowedIdRoomTypes' => ..., - * 'extra_params' => ..., + * 'allParams' => ..., * ); */ protected function getSearchCartRooms($params) @@ -609,7 +606,7 @@ class HotelBookingDetail extends ObjectModel $orderByCartRoomSearch = ''; $orderWayCartRoomSearch = ''; - $hookParams = array( + Hook::exec('actionCartRoomSearchSqlModifier', array( 'select' => $selectCartRoomSearch, 'join' => &$joinCartRoomSearch, 'where' => &$whereCartRoomSearch, @@ -621,12 +618,9 @@ class HotelBookingDetail extends ObjectModel 'id_product' => $idRoomType, 'idCart' => $idCart, 'idGuest' => $idGuest, + 'all_params' => $allParams ) - ); - if (isset($extra_params)) { - $hookParams['params']['extra_params'] = $extra_params; - } - Hook::exec('actionCartRoomSearchSqlModifier', $hookParams); + )); $sql = $selectCartRoomSearch; $sql .= ' FROM `'._DB_PREFIX_.'htl_cart_booking_data` AS cbd'; @@ -659,7 +653,7 @@ class HotelBookingDetail extends ObjectModel * 'allowedIdRoomTypes' => ..., * 'applyLosRestriction' => ..., * 'hourlyBooking' => ..., - * 'extra_params' => ..., + * 'allParams' => ..., * ); */ protected function getSearchAvailableRooms($params) @@ -689,8 +683,8 @@ class HotelBookingDetail extends ObjectModel } // Exculde Booked rooms - $exclude_ids = array(); - $exclude_ids['checked_out'] = 'SELECT `id_room` + $excludeRoomId = array(); + $excludeRoomId['checked_out'] = 'SELECT `id_room` FROM `'._DB_PREFIX_.'htl_booking_detail` WHERE `id_hotel` = '.(int)$idHotel.' AND `is_back_order` = 0 AND `is_refunded` = 0 AND IF(`id_status` = '. self::STATUS_CHECKED_OUT.', IF('.(int) $hourlyBooking.', 1, (DATE_FORMAT(`check_out`, "%Y-%m-%d") != DATE_FORMAT(\''.pSQL($dateFrom).'\', "%Y-%m-%d")) AND (`check_out` > \''.pSQL($dateFrom).'\' AND `check_out` <= \''.PSQL($dateTo).'\')) AND ( @@ -706,14 +700,14 @@ class HotelBookingDetail extends ObjectModel )) AND IF('.(int)$idRoomType.' > 0, `id_product` = '.(int)$idRoomType.', 1) AND `id_product` IN ('.$allowedIdRoomTypes.')'; // Exclude temporary disable rooms - $exclude_ids['disabled'] = 'SELECT hri.`id` AS id_room + $excludeRoomId['disabled'] = 'SELECT hri.`id` AS id_room FROM `'._DB_PREFIX_.'htl_room_information` AS hri INNER JOIN `'._DB_PREFIX_.'htl_room_disable_dates` AS hrdd ON (hrdd.`id_room_type` = hri.`id_product` AND hrdd.`id_room` = hri.`id`) WHERE hri.`id_hotel`='.(int)$idHotel.' AND hri.`id_status` = '. HotelRoomInformation::STATUS_TEMPORARY_INACTIVE .' AND (hrdd.`date_from` < \''.pSql($dateTo).'\' AND hrdd.`date_to` > \''.pSql($dateFrom).'\') AND IF('.(int)$idRoomType.' > 0, hri.`id_product` = '.(int)$idRoomType.', 1) AND hri.`id_product` IN ('.$allowedIdRoomTypes.')'; // LOS Restriction. Also, Remember to check max LOS restriction is greater than zero if ($applyLosRestriction) { - $exclude_ids['length_of_stay'] = 'SELECT hri.`id` AS `id_room` + $excludeRoomId['length_of_stay'] = 'SELECT hri.`id` AS `id_room` FROM `'._DB_PREFIX_.'htl_room_information` AS hri INNER JOIN `'._DB_PREFIX_.'htl_room_type` AS hrt ON (hrt.`id_product` = hri.`id_product`) LEFT JOIN `'._DB_PREFIX_.'htl_room_type_restriction_date_range` AS hrtr ON (hrt.`id_product` = hrtr.`id_product` AND (hrtr.`date_from` <= \''.pSQL($stayStartDate).'\' AND hrtr.`date_to` > \''.pSQL($stayStartDate).'\')) @@ -731,11 +725,11 @@ class HotelBookingDetail extends ObjectModel $orderByAvailRoomSearch = 'ORDER BY ri.`id`'; $orderWayAvailRoomSearch = 'ASC'; - $hookParams = array( + Hook::exec('actionAvailRoomSearchSqlModifier', array( 'select' => $selectAvailRoomSearch, 'join' => &$joinAvailRoomSearch, 'where' => &$whereAvailRoomSearch, - 'exclude_ids' => &$exclude_ids, + 'exclude_room_id' => &$excludeRoomId, 'group_by' => &$groupByAvailRoomSearch, 'order_by' => &$orderByAvailRoomSearch, 'order_way' => &$orderWayAvailRoomSearch, @@ -744,18 +738,15 @@ class HotelBookingDetail extends ObjectModel 'id_product' => $idRoomType, 'date_from' => $dateFrom, 'date_to' => $dateTo, + 'all_params' => $allParams ) - ); - if (isset($extra_params)) { - $hookParams['params']['extra_params'] = $extra_params; - } - Hook::exec('actionAvailRoomSearchSqlModifier', $hookParams); + )); $sql = $selectAvailRoomSearch; $sql .= ' FROM `'._DB_PREFIX_.'htl_room_information` AS ri'; $sql .= ' '.$joinAvailRoomSearch; $sql .= ' '.$whereAvailRoomSearch; - $sql .= ' AND ri.`id` NOT IN ('.implode(' UNION ', $exclude_ids).')'; + $sql .= ' AND ri.`id` NOT IN ('.implode(' UNION ', $excludeRoomId).')'; $sql .= ' '.$groupByAvailRoomSearch; $sql .= ' '.$orderByAvailRoomSearch; $sql .= ' '.$orderWayAvailRoomSearch; @@ -1013,7 +1004,7 @@ class HotelBookingDetail extends ObjectModel * 'searchOccupancy' => ..., * 'allowedIdRoomTypes' => ..., * 'hourlyBooking' => ..., - * 'extra_params' => ..., + * 'allParams' => ..., * ); */ protected function getSearchPartiallyAvailRooms($params) @@ -1045,19 +1036,16 @@ class HotelBookingDetail extends ObjectModel (hrdd.`date_from` > \''.pSQL($dateFrom).'\' AND hrdd.`date_from` < \''.pSQL($dateTo).'\' AND hrdd.`date_to` < \''.pSQL($dateTo).'\') ) AND IF('.(int)$idRoomType.' > 0, hri.`id_product` = '.(int)$idRoomType.', 1) AND hri.`id_product` IN ('.$allowedIdRoomTypes.')'; - $hookParams = array( + Hook::exec('actionPartiallyAvailRoomSearchSqlModifier', array( 'sql' => &$sql, 'params' => array( 'id_hotel' => $idHotel, 'id_product' => $idRoomType, 'date_from' => $dateFrom, 'date_to' => $dateTo, + 'all_params' => $allParams ) - ); - if (isset($extra_params)) { - $hookParams['params']['extra_params'] = $extra_params; - } - Hook::exec('actionPartiallyAvailRoomSearchSqlModifier', $hookParams); + )); $sql = implode(' UNION ', $sql); $sql .= ' ORDER BY id_room ASC'; @@ -1372,10 +1360,10 @@ class HotelBookingDetail extends ObjectModel (`date_from` <= \''.pSQL($dateFrom).'\' AND `date_to` >= \''.pSQL($dateTo).'\') )) AND IF('.(int)$idRoomType.' > 0, `id_product` = '.(int)$idRoomType.', 1) AND `id_product` IN ('.$allowedIdRoomTypes.')'; $groupByBookedRoomSearch = ''; - $orderByBookedRoomSearch = 'ORDER BY `id_room`, `date_from` ASC'; - $orderWayBookedRoomSearch = ''; + $orderByBookedRoomSearch = 'ORDER BY `id_room`, `date_from`'; + $orderWayBookedRoomSearch = 'ASC'; - $hookParams = array( + Hook::exec('actionBookedRoomSearchSqlModifier', array( 'select' => $selectBookedRoomSearch, 'join' => &$joinBookedRoomSearch, 'where' => &$whereBookedRoomSearch, @@ -1387,12 +1375,9 @@ class HotelBookingDetail extends ObjectModel 'id_product' => $idRoomType, 'date_from' => $dateFrom, 'date_to' => $dateTo, + 'all_params' => $allParams ) - ); - if (isset($extra_params)) { - $hookParams['params']['extra_params'] = $extra_params; - } - Hook::exec('actionBookedRoomSearchSqlModifier', $hookParams); + )); $sql = $selectBookedRoomSearch; $sql .= ' FROM `'._DB_PREFIX_.'htl_booking_detail`'; diff --git a/modules/hotelreservationsystem/classes/HotelRoomInformation.php b/modules/hotelreservationsystem/classes/HotelRoomInformation.php index 8b5941a5a..d1f8dc2de 100644 --- a/modules/hotelreservationsystem/classes/HotelRoomInformation.php +++ b/modules/hotelreservationsystem/classes/HotelRoomInformation.php @@ -79,7 +79,7 @@ class HotelRoomInformation extends ObjectModel { if ($idRoom = $this->id) { // delete rooms from cart which are set inactive - if ($this->id_status == self::STATUS_INACTIVE) { + if ($this->id_status == HotelRoomInformation::STATUS_INACTIVE) { $objCartBookingData = new HotelCartBookingData(); if (!$objCartBookingData->deleteCartBookingData(0, 0, $idRoom)) { return false; @@ -143,16 +143,16 @@ class HotelRoomInformation extends ObjectModel { $status = array( 'STATUS_ACTIVE' => array( - 'id' => self::STATUS_ACTIVE, - 'status' => self::getRoomStatusTitle(self::STATUS_ACTIVE) + 'id' => HotelRoomInformation::STATUS_ACTIVE, + 'status' => self::getRoomStatusTitle(HotelRoomInformation::STATUS_ACTIVE) ), 'STATUS_INACTIVE' => array( - 'id' => self::STATUS_INACTIVE, - 'status' => self::getRoomStatusTitle(self::STATUS_INACTIVE) + 'id' => HotelRoomInformation::STATUS_INACTIVE, + 'status' => self::getRoomStatusTitle(HotelRoomInformation::STATUS_INACTIVE) ), 'STATUS_TEMPORARY_INACTIVE' => array( - 'id' => self::STATUS_TEMPORARY_INACTIVE, - 'status' => self::getRoomStatusTitle(self::STATUS_TEMPORARY_INACTIVE) + 'id' => HotelRoomInformation::STATUS_TEMPORARY_INACTIVE, + 'status' => self::getRoomStatusTitle(HotelRoomInformation::STATUS_TEMPORARY_INACTIVE) ), ); return $status; @@ -162,11 +162,11 @@ class HotelRoomInformation extends ObjectModel { $moduleInstance = Module::getInstanceByName('hotelreservationsystem'); $status = array( - self::STATUS_ACTIVE => $moduleInstance->l('Active', 'hotelreservationsystem'), - self::STATUS_INACTIVE => $moduleInstance->l('Inactive', 'hotelreservationsystem'), - self::STATUS_TEMPORARY_INACTIVE => $moduleInstance->l('Temporarily Inactive', 'hotelreservationsystem'), - self::STATUS_SEARCH_LOS_UNSATISFIED => $moduleInstance->l('Searched duration outside room length of stay requirements', 'hotelreservationsystem'), - self::STATUS_SEARCH_OCCUPANCY_UNSATISFIED => $moduleInstance->l('Occupancy exceeds room capacity', 'hotelreservationsystem'), + HotelRoomInformation::STATUS_ACTIVE => $moduleInstance->l('Active', 'hotelreservationsystem'), + HotelRoomInformation::STATUS_INACTIVE => $moduleInstance->l('Inactive', 'hotelreservationsystem'), + HotelRoomInformation::STATUS_TEMPORARY_INACTIVE => $moduleInstance->l('Temporarily Inactive', 'hotelreservationsystem'), + HotelRoomInformation::STATUS_SEARCH_LOS_UNSATISFIED => $moduleInstance->l('Length of stay restriction not satisfied', 'hotelreservationsystem'), + HotelRoomInformation::STATUS_SEARCH_OCCUPANCY_UNSATISFIED => $moduleInstance->l('Occupancy exceeds room capacity', 'hotelreservationsystem'), ); return isset($status[$idStatus]) ? $status[$idStatus] : '';