Merge branch 'Qloapps:develop' into gli-2242

This commit is contained in:
Shazar Rahman
2026-07-16 11:15:07 +05:30
committed by GitHub
60 changed files with 1288 additions and 136 deletions

View File

@@ -108,6 +108,8 @@
@import "partials/select2"
@import "partials/ndv3"
@import "partials/tooltip"
//Backward compatibility
@import "partials/backward"

View File

@@ -112,6 +112,8 @@
//RTL
@import "partials/rtl"
@import "partials/tooltip"
//Backward compatibility
@import "partials/backward"

View File

@@ -0,0 +1,30 @@
.tooltip_cont
min-width: 280px
width: 100%
font-size: 14px
font-weight: 600
.tip_header
margin-bottom: 10px
.tip-body > div
margin-bottom: 6px
.tip_element_head
font-size: 12px
.tip_element_value
font-size: 14px
font-weight: 400
opacity: 0.8
.tip-body
display: grid
grid-template-columns: auto auto
&.tip-body-grid
grid-template-columns: 1fr 1fr
gap: 8px 16px
.ui-tooltip,
.ui-tooltip.ui-widget-content
border: none
padding: 10px
box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.15)

View File

@@ -51,7 +51,12 @@
{assign var=curr_id value=$cart->id_currency|intval}
{foreach from=$cart_detail_data item=data}
<tr data-id-booking-data="{$data.id}" data-id-product="{$data.id_product}" data-id-room="{$data.id_room}" data-date-from="{$data.date_from}" data-date-to="{$data.date_to}" >
<td>{$data.room_num|escape:'html':'UTF-8'} {hook h='displayRoomNumAfter' data=$data type='adminOrder'}</td>
<td>{$data.room_num|escape:'html':'UTF-8'}
{if isset($data['connected_rooms'][$data.id_room])}
{include file="controllers/products/connected-rooms.tpl" htl_connected_rooms=$data['connected_rooms'][$data.id_room]}
{/if}
{hook h='displayRoomNumAfter' data=$data type='adminOrder'}</td>
<td><img src="{$data.image_link|escape:'html':'UTF-8'}" title="Room image" /></td>
<td>
<p>{$data.room_type|escape:'html':'UTF-8'}</p>

View File

@@ -25,7 +25,11 @@
<tr class="product-line-row" data-id_htl_booking="{$data.id|escape:'html':'UTF-8'}" data-id_room="{$data.id_room}" data-id_product="{$data.id_product}" data-id_hotel="{$data.id_hotel}" data-date_from="{$data.date_from}" data-date_to="{$data.date_to}" data-product_price="{$data.unit_amt_tax_incl}" data-id_order_detail="{$data.id_order_detail}">
<td>
<p>{$data.room_num}</p>
<p>{$data.room_num}
{if isset($data['connected_rooms'][$data.id_room])}
{include file="controllers/products/connected-rooms.tpl" htl_connected_rooms=$data['connected_rooms'][$data.id_room]}
{/if}
</p>
{if $data.is_back_order}
<span class="overbooked_room">{l s='overbooked'}</span>
{/if}

View File

@@ -67,6 +67,14 @@
</span>
</label>
</th>
<th class="col-sm-1 center">
<label class="control-label">
<span class="label-tooltip" data-toggle="tooltip"
data-original-title="{l s='Manage connected rooms for this room'}">
{l s='Connected Rooms'}
</span>
</label>
</th>
{hook h='displayHotelRoomListTableHeaderColumn'}
<th class="col-sm-1 center">
{l s='--'}
@@ -108,6 +116,21 @@
<input type="hidden" class="form-control disable_dates_json" name="{$var_name_room_info|cat:'[disable_dates_json]'}" {if $room_info['id_status'] == $rm_status['STATUS_TEMPORARY_INACTIVE']['id']}value="{$room_info['disable_dates_json']|escape:'html':'UTF-8'}"{/if}>
</td>
{* Since the data can also be used from post incase of errors, which will cause issues with the id index *}
<td class="col-sm-1 center">
{if isset($room_info['id'])}
<a href="#" class="btn btn-default connectedRoomModal" data-toggle="modal"
data-target="#connectedRoomModal" data-id-room="{$room_info['id']|intval}"
data-room-num="{$room_info['room_num']|escape:'html':'UTF-8'}"
data-room-type="{$room_info['id_product']|intval}">
<span class="connected-room-icon-wrapper">
<i class="icon-random"></i>
<span class="connected-room-count">
{if isset($room_info['connected_rooms_count'])}{$room_info['connected_rooms_count']|intval}{else}0{/if}
</span>
</span>
</a>
{/if}
</td>
{if isset($room_info['id'])}
{hook h='displayHotelRoomListTableRowColumn' index=$key id_room=$room_info['id']}
{else}
@@ -343,6 +366,7 @@
</label>
<div class="col-lg-6">
<select class="form-control bulk_update_room_status" name="bulk_update_room_status">
<option value="0">{l s='Select Status'}</option>
{foreach from=$rm_status item=room_stauts}
<option value="{$room_stauts['id']}">{$room_stauts['status']|escape:'htmlall':'UTF-8'}</option>
{/foreach}
@@ -578,6 +602,26 @@
border: 1px solid #f2f2f2;
margin-top: 10px;
}
.connected-room-icon-wrapper {
display: inline-flex;
align-items: center;
gap: 4px;
justify-content: center;
}
.connected-room-count {
min-width: 14px;
height: 14px;
padding: 0 3px;
border-radius: 9px;
background: #f5f5f5;
color: #666;
border: 1px solid #d5d5d5;
font-size: 9px;
line-height: 12px;
font-weight: 600;
text-align: center;
box-shadow: none;
}
</style>
<script>
@@ -585,6 +629,8 @@
var rm_status = {$rm_status|@json_encode};
var confirmText = "{l s='Are you sure?' js=1}";
var removeDisableDateText = "{l s='Are you sure you want to remove the selected date range?' js=1}";
var selectRoomText = "{l s='Please select a room' js=1}";
var roomNoText = "{l s='Room No' js=1}";
var currentRoomRow = 0;
$(document).ready(function() {
var tooltipCounter = 0;
@@ -616,44 +662,55 @@
{/literal}
// Add new room detail
$('#add-more-rooms-button').on('click',function() {
var lengthRooms = parseInt($('.room_data_values').length);
$('#add-more-rooms-button').on('click', function() {
var lengthRooms = parseInt($('.room_data_values').length);
var prefix = 'rooms_info['+lengthRooms+']';
html = '<tr class="room_data_values" data-row-index="'+lengthRooms+'">';
var prefix = 'rooms_info[' + lengthRooms + ']';
html = '<tr class="room_data_values" data-row-index="' + lengthRooms + '">';
html += '<td class="center">';
html += '<input type="checkbox" disabled name="selected_room_ids[]">';
html += '<input type="checkbox" disabled name="selected_room_ids[]">';
html += '</td>';
html += '<td class="col-sm-1 center">';
html += '<input class="form-control" type="text" name="'+prefix+'[room_num]">';
html += '<input class="form-control" type="text" name="' + prefix + '[room_num]">';
html += '</td>';
html += '<td class="col-sm-2 center">';
html += '<input class="form-control" type="text" name="'+prefix+'[floor]">';
html += '<input class="form-control" type="text" name="' + prefix + '[floor]">';
html += '</td>';
html += '<td class="col-sm-2 center">';
html += '<select class="form-control room_status" name="'+prefix+'[id_status]">';
$.each(rm_status, function(key, value) {
html += '<option value="'+value.id+'">'+value.status+'</option>';
});
html += '</select>';
html += '<select class="form-control room_status" name="' + prefix + '[id_status]">';
$.each(rm_status, function(key, value) {
html += '<option value="' + value.id + '">' + value.status + '</option>';
});
html += '</select>';
html += '</td>';
html += '<td class="col-sm-3 center">';
html += '<input class="form-control" type="text" name="'+prefix+'[comment]">';
html += '<input class="form-control" type="text" name="' + prefix + '[comment]">';
html += '</td>';
html += '<td class="center col-sm-2">';
html += '<a class="btn btn-default deactiveDatesModal disabled" data-toggle="modal" data-target="#deactiveDatesModal">';
html += "{l s='Add Dates'}";
html += '</a>';
html += '<input type="hidden" class="form-control disable_dates_json" name="'+prefix+'[disable_dates_json]">';
html +=
'<a class="btn btn-default deactiveDatesModal disabled" data-toggle="modal" data-target="#deactiveDatesModal">';
html += "{l s='Add Dates'}";
html += '</a>';
html += '<input type="hidden" class="form-control disable_dates_json" name="' + prefix +
'[disable_dates_json]">';
html += '</td>';
html += '<td class="col-sm-1 center">';
html += '<a href="#" class="btn btn-default disabled">';
html += '<span class="connected-room-icon-wrapper">';
html += '<i class="icon-random"></i>';
html += '<span class="connected-room-count">0</span>';
html += '</span>';
html += '</a>';
html += '</td>';
html += '{hook h='displayHotelRoomListTableRowColumn'}';
html += '<td class="center col-sm-1">';
html += '<a href="#" class="remove-rooms-button btn btn-default"><i class="icon-trash"></i></a>';
html +=
'<a href="#" class="remove-rooms-button btn btn-default"><i class="icon-trash"></i></a>';
html += '</td>';
html += '</tr>';
html += '</tr>';
$('table.hotel-room tbody').append(html);
});
$('table.hotel-room tbody').append(html);
});
// delete room
$('.rm_htl_room').on('click',function(e) {
@@ -669,13 +726,26 @@
action:'deleteHotelRoom',
id: id_htl_info,
},
success: function (response) {
success: function(response) {
if (response.success) {
showSuccessMessage("{l s='Removed successfully'}");
$current.closest(".room_data_values").remove();
if (response.affected_rooms && response.affected_rooms.length) {
$.each(response.affected_rooms, function(i, roomId) {
var $badge = $(
'.connectedRoomModal[data-id-room="' +
roomId + '"] .connected-room-count');
if ($badge.length) {
var count = parseInt($badge.text().trim());
if (count > 0) {
$badge.text(count - 1);
}
}
});
}
} else {
if (response.errors)
showErrorMessage(response.errors);
showErrorMessage(response.errors);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
@@ -1027,7 +1097,7 @@
$('#bulkUpdateRoomModal').on('show.bs.modal', function(e){
if (!$(e.relatedTarget).attr('disabled')) {
$('#bulkUpdateRoomModal table tbody').html('');
$('.bulk_update_room_status').val(rm_status.STATUS_ACTIVE.id).closest('.modal-body').find('.rooms-disable-dates').parent().hide();
$('.bulk_update_room_status').val('0').closest('.modal-body').find('.rooms-disable-dates').parent().hide();
$('[name="bulk_update_room_comment"]').val('');
$('[name="bulk_update_room_floor"]').val('');
$('#page-loader').show();
@@ -1885,6 +1955,184 @@
return false;
}
}
const initConnectedRoomModal = {
show: function(e) {
e.preventDefault();
var roomId = $(this).data('id-room');
var roomNum = $(this).data('room-num');
$.ajax({
type: 'POST',
url: prod_link,
dataType: 'json',
data: {
ajax: true,
action: 'initConnectedRoomModal',
room_id: roomId,
},
success: function(response) {
if (!response.hasError) {
if ($('#connectedRoomModal').length) {
$('#connectedRoomModal').modal('hide');
$('#connectedRoomModal').data('bs.modal', null);
$('#connectedRoomModal').remove();
}
$('.modal-backdrop').remove();
$('body').removeClass('modal-open');
$("#footer").next(".bootstrap").append(response.modalHtml);
$('#connectedRoomModal').modal({
backdrop: 'static',
keyboard: true
});
if (roomNum) {
roomNum = '( ' + roomNoText + ' ' + roomNum + ')';
$('#connectedRoomModal').attr('data-room-num-title', roomNum);
$('#connected_room_title').html(roomNum);
} else {
$('#connectedRoomModal').attr('data-room-num-title', '');
$('#connected_room_title').html('');
}
} else {
alert(response.message);
}
}
});
},
add: function() {
var $row = $(this).closest('tr');
var mainRoomId = $('#connected_room_main_id').val();
var connectedRoomId = $row.find('.connect-room').val();
if (!connectedRoomId) {
alert(selectRoomText);
return;
}
$.ajax({
url: prod_link,
type: 'POST',
dataType: 'json',
data: {
ajax: true,
action: 'ManageConnectedRoom',
mode: 'add',
room_id: mainRoomId,
connected_room_id: connectedRoomId,
},
beforeSend: function() {
$row.find('.save-connected-room').prop('disabled', true);
},
success: function(response) {
if (response.success) {
showSuccessMessage(response.message);
$('#connectedRoomModal .modal-body').replaceWith($(response.html).filter('.modal-body'));
$('#connected_room_title').html($('#connectedRoomModal').attr('data-room-num-title'));
var $icon = $('.connectedRoomModal[data-id-room="' + mainRoomId + '"]').find('.connected-room-count');
if ($icon.length && typeof response.connected_count !== 'undefined') {
$icon.text(response.connected_count);
}
} else {
alert(response.message);
}
},
complete: function() {
$row.find('.save-connected-room').prop('disabled', false);
}
});
},
showNotConnectedRooms: function() {
var $typeSelect = $(this);
var $row = $typeSelect.closest('tr');
var roomTypeId = $typeSelect.val();
var roomId = $('#connected_room_main_id').val();
var $roomSelect = $row.find('.connect-room');
$roomSelect.empty();
if (!roomTypeId) {
return;
}
$.ajax({
url: prod_link,
type: 'POST',
dataType: 'json',
data: {
ajax: true,
action: 'getNotConnectedRooms',
room_id: roomId,
room_type_id: roomTypeId,
},
success: function(response) {
if (response.success && response.rooms && response.rooms.length) {
$.each(response.rooms, function(i, room) {
$roomSelect.append(
$('<option>').val(room.id_room).text(room.name)
);
});
}
}
});
},
addRow: function() {
var $template = $('#connected_room_add_template');
if (!$template.length) {
return;
}
var $tbody = $('#connected_rooms_tbody');
if ($tbody.find('.connected-room-add-row').not('#connected_room_add_template').length) {
return;
}
var $newRow = $template.clone().removeAttr('id').removeClass('hide');
$('#connected_rooms_table_wrapper').removeClass('hide');
$('#connected_rooms_empty_state').hide();
$tbody.append($newRow);
initConnectedRoomModal.showNotConnectedRooms.call($newRow.find('.connect-room-type')[0]);
$('#add_connected_room_row').prop('disabled', true);
},
removeRow: function() {
var $row = $(this).closest('tr');
$row.remove();
$('#add_connected_room_row').prop('disabled', false);
if (!$('#connected_rooms_tbody').find('.connected-room-row').length) {
$('#connected_rooms_table_wrapper').addClass('hide');
$('#connected_rooms_empty_state').removeClass('hide').show();
}
},
delete: function() {
var mainRoomId = $('#connected_room_main_id').val();
var connectedId = $(this).data('connected-id');
$.ajax({
url: prod_link,
type: 'POST',
dataType: 'json',
data: {
ajax: true,
action: 'ManageConnectedRoom',
mode: 'delete',
room_id: mainRoomId,
connected_id: connectedId,
},
success: function(response) {
if (response.success) {
showSuccessMessage(response.message);
$('#connectedRoomModal .modal-body').replaceWith($(response.html).filter('.modal-body'));
$('#connected_room_title').html($('#connectedRoomModal').attr('data-room-num-title'));
var $icon = $('.connectedRoomModal[data-id-room="' + mainRoomId + '"]').find('.connected-room-count');
if ($icon.length && typeof response.connected_count !== 'undefined') {
$icon.text(response.connected_count);
}
} else {
alert(response.message);
}
}
});
}
};
$(document).on('click', '.connectedRoomModal', initConnectedRoomModal.show);
$(document).on('click', '.save-connected-room', initConnectedRoomModal.add);
$(document).on('click', '.delete-connected-room', initConnectedRoomModal.delete);
$(document).on('click', '#add_connected_room_row', initConnectedRoomModal.addRow);
$(document).on('click', '.remove-connected-room-row', initConnectedRoomModal.removeRow);
$(document).on('change', '.connect-room-type', initConnectedRoomModal.showNotConnectedRooms);
});
</script>

View File

@@ -0,0 +1,82 @@
{**
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License version 3.0
* that is bundled with this package in the file LICENSE.md
* It is also available through the world-wide-web at this URL:
* https://opensource.org/license/osl-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 support@qloapps.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade this module to a 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
* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0
*}
{if isset($htl_connected_rooms) && $htl_connected_rooms|@count > 0}
<span class="connected-room-tooltip-trigger"
data-connected-details='{json_encode($htl_connected_rooms.connected_room_types)|escape:'html':'UTF-8'}'>
<i class="icon-random" style="color: #008abd; cursor: pointer;"></i>
</span>
{/if}
<script>
$(document).ready(function() {
{literal}
if (typeof window.initConnectedRoomTooltips === 'undefined') {
window.initConnectedRoomTooltips = function() {
if (typeof $.fn.tooltip === 'undefined' || typeof $.ui === 'undefined' || typeof $.ui.tooltip === 'undefined') {
return;
}
$('.connected-room-tooltip-trigger').each(function() {
if ($(this).data('ui-tooltip')) {
return;
}
$(this).tooltip({
items: '.connected-room-tooltip-trigger',
content: function() {
var details = $(this).data('connected-details');
if (!details || $.isEmptyObject(details)) {
return "{/literal}{l s='No rooms connected' js=1}{literal}";
}
var html = '<div class="tooltip_cont">';
html += '<div class="tip_header"><div class="tip_date">{/literal}{l s="Connected Rooms" js=1}{literal}</div></div>';
html += '<div class="tip-body tip-body-grid">';
for (var typeId in details) {
var group = details[typeId];
var names = [];
for (var i = 0; i < group.connected_rooms.length; i++) {
names.push(group.connected_rooms[i].name);
}
html += '<div>';
html += '<div class="tip_element_head">' + group.room_type_name + '</div>';
html += '<div class="tip_element_value">' + names.join(', ') + '</div>';
html += '</div>';
}
html += '</div></div>';
return html;
},
position: { my: "left top+10", at: "left bottom", collision: "flipfit", within: "#content" },
close: function(event, ui) {
ui.tooltip.hover(function() {
$(this).stop(true).fadeTo(300, 1);
},
function() {
$(this).fadeOut('300', function() {
$(this).remove();
});
});
}
});
});
};
}
window.initConnectedRoomTooltips();
{/literal}
});
</script>

View File

@@ -0,0 +1,140 @@
{*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License version 3.0
* that is bundled with this package in the file LICENSE.md
* It is also available through the world-wide-web at this URL:
* https://opensource.org/license/osl-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 support@qloapps.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade this module to a 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
* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0
*}
<style>
#connectedRoomModal .connected-rooms-table {
table-layout: fixed;
width: 100%;
border-radius: 3px;
}
#connectedRoomModal .modal-title .disable_dates_title {
display: inline-block;
font-weight: 600;
}
#connectedRoomModal .modal-title .connected_room_num {
color: grey;
}
#connectedRoomModal .modal-title {
line-height: 2;
}
#connectedRoomModal .modal-title .close {
line-height: 2;
}
#connectedRoomModal .modal-body {
max-height: 600px;
overflow-y: auto;
}
</style>
<div class="modal-body">
<input type="hidden" id="connected_room_main_id" name="main_room_id" value="{$main_room_id|intval}">
{assign var="connected_room_types" value=[]}
{if isset($htl_connected_rooms[$main_room_id].connected_room_types)}
{assign var="connected_room_types" value=$htl_connected_rooms[$main_room_id].connected_room_types}
{/if}
<!-- connectedrooms list -->
<div class="">
<div class="">
<div id="connected_rooms_list">
<div id="connected_rooms_table_wrapper"
class="{if $connected_room_types|@count == 0}hide{/if}">
<table class="table table-bordered table-striped connected-rooms-table">
<thead>
<tr>
<th>{l s='Room Type'}</th>
<th>{l s='Connected Room'}</th>
<th class="text-center">
{l s='Action'}
</th>
</tr>
</thead>
<tbody id="connected_rooms_tbody">
{foreach from=$connected_room_types item=typeGroup}
{foreach from=$typeGroup.connected_rooms item=room}
<tr class="connected-room-row">
<td>{$typeGroup.room_type_name|escape:'html':'UTF-8'}</td>
<td>{$room.name|escape:'html':'UTF-8'}</td>
<td class="text-center">
<a href="javascript:void(0);"
class="delete-connected-room btn btn-default"
data-connected-id="{$room.id_connected_room|intval}"
data-connected-room-id="{$room.id_room|intval}"
title="{l s='Remove'}">
<i class="icon-trash"></i>
</a>
</td>
</tr>
{/foreach}
{/foreach}
</tbody>
</table>
</div>
<div class="list-empty {if $connected_room_types|@count > 0}hide{/if}"
id="connected_rooms_empty_state">
<div class="list-empty-msg">
<i class="icon-warning-sign list-empty-icon"></i>
{l s='No connected rooms.'}
</div>
</div>
</div>
{if isset($htl_not_connected_rooms) && $htl_not_connected_rooms|count > 0}
<button type="button" id="add_connected_room_row" class="btn btn-default">
<i class="icon-plus"></i> {l s='Add Connected Room'}
</button>
{/if}
</div>
</div>
{if isset($htl_not_connected_rooms) && $htl_not_connected_rooms|count > 0}
<table class="hide">
<tbody>
<tr id="connected_room_add_template" class="connected-room-add-row hide">
<td>
<select class="form-control connect-room-type" name="connect_room_type">
{foreach from=$htl_not_connected_rooms key=typeId item=typeGroup}
<option value="{$typeGroup.id_room_type|intval}"
{if $typeGroup.id_room_type == $current_roomtype}selected{/if}>
{$typeGroup.name|escape:'html':'UTF-8'}
</option>
{/foreach}
</select>
</td>
<td>
<select class="form-control connect-room" name="connect_room">
</select>
</td>
<td class="text-center">
<button type="button" class="btn btn-default remove-connected-room-row"
title="{l s='Remove'}">
<i class="icon-trash"></i>
</button>
<button type="button" class="btn btn-primary save-connected-room">
{l s='Add'}
</button>
</td>
</tr>
</tbody>
</table>
{/if}
</div>

View File

@@ -2010,7 +2010,9 @@ class AdminControllerCore extends Controller
}
if ($conf = Tools::getValue('conf')) {
$this->context->smarty->assign('conf', $this->json ? json_encode($this->_conf[(int)$conf]) : $this->_conf[(int)$conf]);
if (isset($this->_conf[$conf])) {
$this->context->smarty->assign('conf', $this->json ? json_encode($this->_conf[(int)$conf]) : $this->_conf[(int)$conf]);
}
}
foreach (array('errors', 'warnings', 'informations', 'confirmations') as $type) {

View File

@@ -18,8 +18,8 @@
<meta meta_page="manufacturer" left="1" right="0"/>
<meta meta_page="new-products" left="1" right="0"/>
<meta meta_page="password" left="0" right="0"/>
<meta meta_page="prices-drop" left="1" right="0"/>
<meta meta_page="sitemap" left="1" right="0"/>
<!-- <meta meta_page="prices-drop" left="1" right="0"/> -->
<!-- <meta meta_page="sitemap" left="1" right="0"/> -->
<meta meta_page="supplier" left="0" right="0"/>
<meta meta_page="address" left="0" right="0"/>
<meta meta_page="addresses" left="0" right="0"/>
@@ -32,8 +32,8 @@
<meta meta_page="order-follow" left="0" right="0"/>
<meta meta_page="order-slip" left="0" right="0"/>
<meta meta_page="order" left="0" right="0"/>
<meta meta_page="search" left="1" right="0"/>
<meta meta_page="stores" left="0" right="0"/>
<!-- <meta meta_page="search" left="1" right="0"/> -->
<!-- <meta meta_page="stores" left="0" right="0"/> -->
<meta meta_page="order-opc" left="0" right="0"/>
<meta meta_page="guest-tracking" left="0" right="0"/>
<meta meta_page="order-confirmation" left="0" right="0"/>
@@ -45,7 +45,6 @@
<meta meta_page="module-bankwire-validation" left="0" right="0"/>
<meta meta_page="module-bankwire-payment" left="0" right="0"/>
<meta meta_page="module-cashondelivery-validation" left="0" right="0"/>
<meta meta_page="module-blocknewsletter-verification" left="1" right="0"/>
</metas>
<modules>
<module action="enable" name="blocknewsletter"/>

View File

@@ -1349,6 +1349,8 @@ class AdminOrdersControllerCore extends AdminController
parent::setMedia();
$this->addJqueryUI('ui.datepicker');
$this->addJqueryUI('ui.tooltip', 'base', true);
$this->addJS(_PS_JS_DIR_.'vendor/d3.v3.min.js');
if ($this->display == 'view') {
@@ -3218,6 +3220,7 @@ class AdminOrdersControllerCore extends AdminController
if (!Validate::isLoadedObject($order = new Order(Tools::getValue('id_order')))) {
return;
}
if ($this->tabAccess['kpi'] === 1) {
$this->content .= $this->renderKpis();
}
@@ -3580,6 +3583,7 @@ class AdminOrdersControllerCore extends AdminController
$order_detail_data[$key]['amt_with_qty_tax_incl'] = $value['total_price_tax_incl'];
$order_detail_data[$key]['room_type_info'] = $objHotelRoomType->getRoomTypeInfoByIdProduct($value['id_product']);
$order_detail_data[$key]['total_room_tax'] = $order_detail_data[$key]['total_room_price_ti'] - $order_detail_data[$key]['total_room_price_te'];
$order_detail_data[$key]['connected_rooms'] = HotelConnectedRoom::getConnectedRooms($value['id_room'], null, null, (int) Context::getContext()->language->id);
if (isset($value['refund_info'])
&& $value['refund_info']['refunded']

View File

@@ -1602,7 +1602,8 @@ class AdminProductsControllerCore extends AdminController
) {
$this->addJqueryUI(array(
'ui.core',
'ui.widget'
'ui.widget',
'ui.tooltip'
));
$this->addjQueryPlugin(array(
@@ -3159,6 +3160,7 @@ class AdminProductsControllerCore extends AdminController
$disableDates = $objRoomDisableDates->getRoomDisableDates($room['id']);
$room['disable_dates_json'] = json_encode($disableDates);
}
$room['connected_rooms_count'] = HotelConnectedRoom::getTotalConnectedRooms($room['id']);
}
$data->assign('htl_room_info', $hotelRoomInfo);
@@ -3786,6 +3788,7 @@ class AdminProductsControllerCore extends AdminController
$this->errors[] = $this->l('This room cannot be deleted as this room contains future booking.');
}
if (empty($this->errors)) {
$response['affected_rooms'] = HotelConnectedRoom::getTotalConnectedRooms(null, $idRoom);
if ($objRoomInfo->delete()) {
$response['success'] = true;
} else {
@@ -5506,7 +5509,9 @@ class AdminProductsControllerCore extends AdminController
if (empty($this->errors)) {
foreach ($roomsInfo as $roomInfo) {
$objHotelRoomInfo = new HotelRoomInformation($roomInfo['id']);
$objHotelRoomInfo->id_status = $roomInfo['id_status'];
if (!empty($roomInfo['id_status'])) {
$objHotelRoomInfo->id_status = $roomInfo['id_status'];
}
if (isset($roomInfo['floor']) && $roomInfo['floor'] != '') {
$objHotelRoomInfo->floor = $roomInfo['floor'];
}
@@ -5707,4 +5712,102 @@ class AdminProductsControllerCore extends AdminController
return $tpl->fetch();
}
public function ajaxProcessGetNotConnectedRooms()
{
$roomId = (int) Tools::getValue('room_id');
$roomTypeId = (int) Tools::getValue('room_type_id');
$allGroups = HotelConnectedRoom::getNotConnectedRooms($roomId, $this->context->language->id);
$rooms = isset($allGroups[$roomTypeId]) ? $allGroups[$roomTypeId]['rooms'] : array();
die(Tools::jsonEncode(['success' => true, 'rooms' => $rooms]));
}
public function ajaxProcessInitConnectedRoomModal()
{
$response['hasError'] = 1;
$roomId = (int) Tools::getValue('room_id');
$objRoom = new HotelRoomInformation($roomId);
$idProduct = (int) $objRoom->id_product;
$idHotel = (int) $objRoom->id_hotel;
$this->context->smarty->assign(array(
'htl_connected_rooms' => HotelConnectedRoom::getConnectedRooms($roomId, null, null, $this->context->language->id),
'htl_not_connected_rooms' => HotelConnectedRoom::getNotConnectedRooms($roomId, $this->context->language->id),
'main_room_id' => $roomId,
'current_roomtype' => $idProduct,
));
$modal = array(
'modal_id' => 'connectedRoomModal',
'modal_class' => 'modal-md',
'modal_title' => '<i class="icon-random"></i>&nbsp; '.$this->l('Connected Room').' <span id="connected_room_title" class="connected_room_num"></span>',
'modal_content' => $this->context->smarty->fetch('controllers/products/modal-connected-rooms.tpl'),
'modal_actions' => array(),
);
$this->context->smarty->assign($modal);
$response['hasError'] = 0;
$response['modalHtml'] = $this->context->smarty->fetch('modal.tpl');
die(Tools::jsonEncode($response));
}
public function ajaxProcessManageConnectedRoom()
{
if ($this->tabAccess['edit'] !== 1) {
die(json_encode(['success' => false, 'message' => $this->l('You do not have permission to edit this.')]));
}
$mode = Tools::getValue('mode');
$roomId = (int) Tools::getValue('room_id');
$connectedRoomId = (int) Tools::getValue('connected_room_id');
$connectedId = (int) Tools::getValue('connected_id');
$objRoom = new HotelRoomInformation($roomId);
$idProduct = (int) $objRoom->id_product;
$idHotel = (int) $objRoom->id_hotel;
if ($mode === 'add') {
$connection = new HotelConnectedRoom();
$connection->id_room = $roomId;
$connection->id_room_connected = $connectedRoomId;
if ($connection->add()) {
$this->context->smarty->assign(array(
'htl_connected_rooms' => HotelConnectedRoom::getConnectedRooms($roomId, null, null, $this->context->language->id),
'htl_not_connected_rooms' => HotelConnectedRoom::getNotConnectedRooms($roomId, $this->context->language->id),
'main_room_id' => $roomId,
'current_roomtype' => $idProduct,
));
die(json_encode([
'html' => $this->context->smarty->fetch('controllers/products/modal-connected-rooms.tpl'),
'success' => true,
'message' => $this->l('Room connected successfully.'),
'connected_count' => HotelConnectedRoom::getTotalConnectedRooms($roomId),
]));
}
die(json_encode(['success' => false, 'message' => $this->l('Failed to connect room.')]));
}
if ($mode === 'delete') {
if (!$connectedId) {
die(json_encode(['success' => false, 'message' => $this->l('Invalid data.')]));
}
$objHotelConnectedRoom = new HotelConnectedRoom($connectedId);
if ($objHotelConnectedRoom->delete()) {
$this->context->smarty->assign(array(
'htl_connected_rooms' => HotelConnectedRoom::getConnectedRooms($roomId, null, null, $this->context->language->id),
'htl_not_connected_rooms' => HotelConnectedRoom::getNotConnectedRooms($roomId, $this->context->language->id),
'main_room_id' => $roomId,
'current_roomtype' => $idProduct,
));
die(json_encode([
'success' => true,
'html' => $this->context->smarty->fetch('controllers/products/modal-connected-rooms.tpl'),
'message' => $this->l('Connected room removed successfully.'),
'connected_count' => HotelConnectedRoom::getTotalConnectedRooms($roomId),
]));
}
die(json_encode(['success' => false, 'message' => $this->l('Failed to remove connected room.')]));
}
}
}

View File

@@ -150,7 +150,12 @@ class Datas
'name' => 'newsletter',
'default' => 1,
'help' => 'Get news from QloApps',
)
),
'enable_ssl' => array(
'name' => 'ssl',
'default' => 0,
'help' => 'Enable SSL for QloApps',
),
);
protected $datas = array();

View File

@@ -238,6 +238,7 @@ class InstallControllerConsoleProcess extends InstallControllerConsole
'admin_lastname' => $this->datas->admin_lastname,
'admin_password' => $this->datas->admin_password,
'admin_email' => $this->datas->admin_email,
'enable_ssl' => $this->datas->enable_ssl,
'marketing_consent' => $this->datas->marketing_consent,
'configuration_agrement' => true,
'send_informations' => true,

View File

@@ -32,14 +32,18 @@
<page>password</page>
<configurable>1</configurable>
</meta>
<!--
<meta id="prices-drop">
<page>prices-drop</page>
<configurable>1</configurable>
</meta>
-->
<!--
<meta id="sitemap">
<page>sitemap</page>
<configurable>1</configurable>
</meta>
-->
<meta id="supplier">
<page>supplier</page>
<configurable>1</configurable>
@@ -92,14 +96,18 @@
<page>order</page>
<configurable>1</configurable>
</meta>
<!--
<meta id="search">
<page>search</page>
<configurable>1</configurable>
</meta>
-->
<!--
<meta id="stores">
<page>stores</page>
<configurable>1</configurable>
</meta>
-->
<meta id="order-opc">
<page>order-opc</page>
<configurable>1</configurable>
@@ -144,10 +152,12 @@
<page>module-cashondelivery-validation</page>
<configurable>0</configurable>
</meta>
<!--
<meta id="products-comparison">
<page>products-comparison</page>
<configurable>1</configurable>
</meta>
-->
<meta id="our-properties">
<page>our-properties</page>
<configurable>1</configurable>

View File

@@ -39,9 +39,5 @@
<theme_meta id="theme_meta_30" id_theme="1" id_meta="30" left_column="0" right_column="0"/>
<theme_meta id="theme_meta_31" id_theme="1" id_meta="31" left_column="0" right_column="0"/>
<theme_meta id="theme_meta_32" id_theme="1" id_meta="32" left_column="0" right_column="0"/>
<theme_meta id="theme_meta_33" id_theme="1" id_meta="33" left_column="0" right_column="0"/>
<theme_meta id="theme_meta_34" id_theme="1" id_meta="34" left_column="0" right_column="0"/>
<theme_meta id="theme_meta_35" id_theme="1" id_meta="35" left_column="0" right_column="0"/>
<theme_meta id="theme_meta_37" id_theme="1" id_meta="37" left_column="0" right_column="0"/>
</entities>
</entity_theme_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>A place where comfort and luxury are blended with nature!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Prices drop</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Suppliers</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id='index' id_shop='1'>
<title>হোটেল প্রাইম</title>
<description>এটি এমন একটি স্থান যেখানে আরাম এবং বিলাসিতা প্রকৃতির সাথে মিলিত হয়েছে!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id='prices-drop' id_shop='1'>
<title>মূল্য কমানো</title>
<description>আমাদের বিশেষ পণ্য </description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id='sitemap' id_shop='1'>
<title>সাইট ম্যাপ </title>
<description>ভুলে গেছেন? যা চান তা খুজুন </description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id='supplier' id_shop='1'>
<title>সরবরাহকারী </title>
<description>সরবরাহকারির তালিকা </description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id='search' id_shop='1'>
<title>খোজ </title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id='stores' id_shop='1'>
<title>দোকান </title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id='order-opc' id_shop='1'>
<title>অর্ডার </title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>entrar-em-contato-conosco</url_rewrite>
</meta>
<meta id='index' id_shop='1'>
<title>Hotel Prime</title>
<description>Um lugar onde o conforto e o luxo se misturam com a natureza!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords>forgot, password, e-mail, new, reset</keywords>
<url_rewrite>recuperar-senha</url_rewrite>
</meta>
<!--
<meta id='prices-drop' id_shop='1'>
<title>Preços em queda</title>
<description>Nossos produtos especiais</description>
<keywords>special, prices drop</keywords>
<url_rewrite>preços-em-queda</url_rewrite>
</meta>
-->
<!--
<meta id='sitemap' id_shop='1'>
<title>Mapa do site</title>
<description>Perdido(a)? Encontre o que procura</description>
<keywords>sitemap</keywords>
<url_rewrite>mapa do site</url_rewrite>
</meta>
-->
<meta id='supplier' id_shop='1'>
<title>Fornecedores</title>
<description>Lista de fornecedores</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>pedido</url_rewrite>
</meta>
<!--
<meta id='search' id_shop='1'>
<title>Procurar</title>
<description/>
<keywords/>
<url_rewrite>procurar</url_rewrite>
</meta>
-->
<!--
<meta id='stores' id_shop='1'>
<title>Lojas</title>
<description/>
<keywords/>
<url_rewrite>lojas</url_rewrite>
</meta>
-->
<meta id='order-opc' id_shop='1'>
<title>Pedido</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>confirmação-do-pedido</url_rewrite>
</meta>
<!--
<meta id='products-comparison' id_shop='1'>
<title>Comparação de produtos</title>
<description/>
<keywords/>
<url_rewrite>comparação-de-produtos</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>napiste-nam</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>Místo, kde se komfort a luxus mísí s přírodou!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Slevy</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>slevy</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Mapa stránek</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>mapa-stranek</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Dodavatelé</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>objednavka</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Vyhledávání</title>
<description/>
<keywords/>
<url_rewrite>vyhledavani</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Prodejny</title>
<description/>
<keywords/>
<url_rewrite>prodejny</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Rychlá Objednávka</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>potvrzeni-objednavky</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Porovnání produktů</title>
<description/>
<keywords/>
<url_rewrite>porovnani-produktu</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>kontaktieren-sie-uns</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>Ein Ort, an dem Komfort und Luxus mit der Natur verschmelzen!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords>vergessen, Kennwort, E-Mail, neu, Reset</keywords>
<url_rewrite>kennwort-wiederherstellung</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Angebote</title>
<description>Unsere Sonderangebote</description>
<keywords>besonders, Angebote</keywords>
<url_rewrite>angebote</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Verloren? Finden Sie, was Sie suchen</description>
<keywords>sitemap</keywords>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Zulieferer</title>
<description>Zuliefererliste</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>bestellung</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Suche</title>
<description/>
<keywords/>
<url_rewrite>suche</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Shops</title>
<description/>
<keywords/>
<url_rewrite>shops</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Bestellung</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>bestellbestatigung</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>A place where comfort and luxury are blended with nature!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Prices drop</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Suppliers</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contactanos</url_rewrite>
</meta>
<meta id='index' id_shop='1'>
<title>Hotel Prime</title>
<description>¡Un lugar donde el confort y el lujo se mezclan con la naturaleza!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords>contrase&#xF1;a, has olvidado, e-mail, nuevo, regeneraci&#xF3;n</keywords>
<url_rewrite>recuperacion-contraseña</url_rewrite>
</meta>
<!--
<meta id='prices-drop' id_shop='1'>
<title>Bajamos los precios</title>
<description>Nuestros productos especiales</description>
<keywords>promoci&#xF3;n, reducci&#xF3;n</keywords>
<url_rewrite>bajamos-precios</url_rewrite>
</meta>
-->
<!--
<meta id='sitemap' id_shop='1'>
<title>Mapa del sitio web</title>
<description>¿Estás perdido? Encuentra lo que buscas</description>
<keywords>plan, sitio</keywords>
<url_rewrite>mapa-web</url_rewrite>
</meta>
-->
<meta id='supplier' id_shop='1'>
<title>Proveedores</title>
<description>Lista de proveedores</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>pedido</url_rewrite>
</meta>
<!--
<meta id='search' id_shop='1'>
<title>Buscar</title>
<description/>
<keywords/>
<url_rewrite>buscar</url_rewrite>
</meta>
-->
<!--
<meta id='stores' id_shop='1'>
<title>Tiendas</title>
<description/>
<keywords/>
<url_rewrite>tiendas</url_rewrite>
</meta>
-->
<meta id='order-opc' id_shop='1'>
<title>Pedido</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>confirmacion-pedido</url_rewrite>
</meta>
<!--
<meta id='products-comparison' id_shop='1'>
<title>Comparativa de productos</title>
<description/>
<keywords/>
<url_rewrite>comparativa-productos</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>هتل پرایم</title>
<description>مکانی که در آن راحتی و لوکس بودن با طبیعت ترکیب شده‌اند!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>کاهش قیمت ها</title>
<description>محصولات ویژه ما</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>نقشه سایت</title>
<description>گمشده اید؟ آنچه را که به دنبالش هستید پیدا کنید</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>تامین کننده ها</title>
<description>لیست تامین کننده ها</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>جستجو</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>مغازه‌ها</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>سفارش</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>مقایسه محصولات</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>nous-contacter</url_rewrite>
</meta>
<meta id='index' id_shop='1'>
<title>Hôtel Prime</title>
<description>Un endroit où le confort et le luxe se mélangent avec la nature !</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>recuperation-mot-de-passe</url_rewrite>
</meta>
<!--
<meta id='prices-drop' id_shop='1'>
<title>Promotions</title>
<description>Nos promotions</description>
<keywords/>
<url_rewrite>promotions</url_rewrite>
</meta>
-->
<!--
<meta id='sitemap' id_shop='1'>
<title>Plan du site</title>
<description>Vous êtes perdu ? Trouvez ce que vous cherchez</description>
<keywords/>
<url_rewrite>plan-site</url_rewrite>
</meta>
-->
<meta id='supplier' id_shop='1'>
<title>Fournisseurs</title>
<description>Liste des fournisseurs</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>commande</url_rewrite>
</meta>
<!--
<meta id='search' id_shop='1'>
<title>Recherche</title>
<description/>
<keywords/>
<url_rewrite>recherche</url_rewrite>
</meta>
-->
<!--
<meta id='stores' id_shop='1'>
<title>Magasins</title>
<description/>
<keywords/>
<url_rewrite>magasins</url_rewrite>
</meta>
-->
<meta id='order-opc' id_shop='1'>
<title>Commande</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>confirmation-commande</url_rewrite>
</meta>
<!--
<meta id='products-comparison' id_shop='1'>
<title>Comparaison de produits</title>
<description/>
<keywords/>
<url_rewrite>comparaison-produits</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>צור-קשר</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>מלון פריים</title>
<description>מקום שבו נוחות ולוקסוס משתלבים עם הטבע!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>שחזור-סיסמה</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>ירידת מחירים</title>
<description>מוצרים מיוחדים</description>
<keywords/>
<url_rewrite>ירידת-מחירים</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>מפת האתר</title>
<description>אבוד ? מצא כאן את יעדך באתר</description>
<keywords/>
<url_rewrite>מפת-האתר</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>ספקים</title>
<description>רשימת ספקים</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>הזמנה</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>חפש</title>
<description/>
<keywords/>
<url_rewrite>חפש</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>חנויות</title>
<description/>
<keywords/>
<url_rewrite>חנויות</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>הזמנה</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>אימות-הזמנה</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>השוואת מוצרים</title>
<description/>
<keywords/>
<url_rewrite>השוואת-מוצרים</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>A place where comfort and luxury are blended with nature!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Prices drop</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Suppliers</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>A place where comfort and luxury are blended with nature!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Prices drop</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Suppliers</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>hubungi-kami</url_rewrite>
</meta>
<meta id='index' id_shop='1'>
<title>Hotel Prime</title>
<description>Tempat di mana kenyamanan dan kemewahan berpadu dengan alam!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords>forgot, password, e-mail, new, reset</keywords>
<url_rewrite>lupa-password</url_rewrite>
</meta>
<!--
<meta id='prices-drop' id_shop='1'>
<title>Turun harga</title>
<description>Daftar produk diskon</description>
<keywords>special, prices drop</keywords>
<url_rewrite>turun-harga</url_rewrite>
</meta>
-->
<!--
<meta id='sitemap' id_shop='1'>
<title>Sitemap</title>
<description>Tersesat ? Temukan yang anda cari</description>
<keywords>sitemap</keywords>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id='supplier' id_shop='1'>
<title>Supplier</title>
<description>Daftar supplier</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id='search' id_shop='1'>
<title>Cari</title>
<description/>
<keywords/>
<url_rewrite>cari</url_rewrite>
</meta>
-->
<!--
<meta id='stores' id_shop='1'>
<title>Toko</title>
<description/>
<keywords/>
<url_rewrite>toko</url_rewrite>
</meta>
-->
<meta id='order-opc' id_shop='1'>
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>konfirmasi-pembelian</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contattarci</url_rewrite>
</meta>
<meta id='index' id_shop='1'>
<title>Hotel Prime</title>
<description>Un luogo dove il comfort e il lusso si mescolano con la natura!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords>dimenticato, password, e-mail, nuovo, reset</keywords>
<url_rewrite>recupero-password</url_rewrite>
</meta>
<!--
<meta id='prices-drop' id_shop='1'>
<title>Calo dei prezzi</title>
<description>I nostri prodotti speciali</description>
<keywords>speciali, riduzione prezzi</keywords>
<url_rewrite>calo-prezzi</url_rewrite>
</meta>
-->
<!--
<meta id='sitemap' id_shop='1'>
<title>Mappa del sito</title>
<description>Vi siete persi? Trovate quello che state cercando</description>
<keywords>sitemap</keywords>
<url_rewrite>mappa del sito</url_rewrite>
</meta>
-->
<meta id='supplier' id_shop='1'>
<title>Fornitori</title>
<description>Elenco fornitori</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>ordine</url_rewrite>
</meta>
<!--
<meta id='search' id_shop='1'>
<title>Ricerca</title>
<description/>
<keywords/>
<url_rewrite>ricerca</url_rewrite>
</meta>
-->
<!--
<meta id='stores' id_shop='1'>
<title>Negozi</title>
<description/>
<keywords/>
<url_rewrite>negozi</url_rewrite>
</meta>
-->
<meta id='order-opc' id_shop='1'>
<title>Ordine</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>conferma-ordine</url_rewrite>
</meta>
<!--
<meta id='products-comparison' id_shop='1'>
<title>Confronto prodotti</title>
<description/>
<keywords/>
<url_rewrite>confronto-prodotti</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>Vieta, kur komfortas ir prabanga dera su gamta!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Prices drop</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Suppliers</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>A place where comfort and luxury are blended with nature!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Prices drop</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Suppliers</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-met-ons-opnemen</url_rewrite>
</meta>
<meta id='index' id_shop='1'>
<title>Hotel Prime</title>
<description>Een plek waar comfort en luxe samengaan met de natuur!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords>forgot, password, e-mail, new, reset</keywords>
<url_rewrite>wachtwoord-opvragen</url_rewrite>
</meta>
<!--
<meta id='prices-drop' id_shop='1'>
<title>Prijsverlaging</title>
<description>Onze speciale producten</description>
<keywords>special, prices drop</keywords>
<url_rewrite>prijs-verlaging</url_rewrite>
</meta>
-->
<!--
<meta id='sitemap' id_shop='1'>
<title>Sitemap</title>
<description>De weg kwijt? Vinden wat u zoekt</description>
<keywords>sitemap</keywords>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id='supplier' id_shop='1'>
<title>Leveranciers</title>
<description>Lijst met leveranciers</description>
@@ -132,18 +136,22 @@
<keywords/>
<url_rewrite>bestelling</url_rewrite>
</meta>
<!--
<meta id='search' id_shop='1'>
<title>Zoeken</title>
<description/>
<keywords/>
<url_rewrite>zoeken</url_rewrite>
</meta>
-->
<!--
<meta id='stores' id_shop='1'>
<title>Winkels</title>
<description/>
<keywords/>
<url_rewrite>winkels</url_rewrite>
</meta>
-->
<meta id='order-opc' id_shop='1'>
<title>Bestelling</title>
<description/>
@@ -162,10 +170,12 @@
<keywords/>
<url_rewrite>order-bevestiging</url_rewrite>
</meta>
<!--
<meta id='products-comparison' id_shop='1'>
<title>Productvergelijking</title>
<description/>
<keywords/>
<url_rewrite>product-vergelijking</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>A place where comfort and luxury are blended with nature!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Prices drop</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Suppliers</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>kontakt</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>Miejsce, gdzie komfort i luksus łączą się z naturą!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords>przypomnienie, hasło, e-mail, nowy</keywords>
<url_rewrite>odzyskiwanie-hasla</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Promocje</title>
<description>Produkty w promocji</description>
<keywords>promocje, specjalne, spadek ceny</keywords>
<url_rewrite>promocje</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Mapa strony</title>
<description>Zagubiłeś się? Znajdź to, czego szukasz!</description>
<keywords>mapa strony</keywords>
<url_rewrite>mapa-strony</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Dostawcy</title>
<description>Lista dostawców</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>zamowienie</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Szukaj</title>
<description/>
<keywords/>
<url_rewrite>szukaj</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>sklepy</title>
<description/>
<keywords/>
<url_rewrite>sklepy</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Zamówienie</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>potwierdzenie-zamowienia</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contacte-nos</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>Um lugar onde o conforto e o luxo se misturam com a natureza!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords>esqueci-me, recuperar, palavra-passe, e-mail, nova, reset</keywords>
<url_rewrite>recuperar-palavra-passe</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Promo&#xE7;&#xE3;o</title>
<description>Os nossos produtos com descontos</description>
<keywords>promo&#231;&#245;es, promo&#231;&#227;o, desconto, descontos</keywords>
<url_rewrite>promocoes</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Mapa do site</title>
<description>Lost ? Find what your are looking for</description>
<keywords>mapa do site</keywords>
<url_rewrite>mapa-do-site</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Fornecedores</title>
<description>Lista de Fornecedores</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>encomenda</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Pesquisa</title>
<description/>
<keywords/>
<url_rewrite>pesquisa</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Lojas</title>
<description/>
<keywords/>
<url_rewrite>lojas</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Encomenda R&#225;pida</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>confirmacao-encomenda</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Compara&#231;&#227;o de Produtos</title>
<description/>
<keywords/>
<url_rewrite>comparacao-de-produtos</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>nous-contacter</url_rewrite>
</meta>
<meta id='index' id_shop='1'>
<title>Hôtel Prime</title>
<description>Un endroit où le confort et le luxe se mêlent à la nature !</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>recuperation-mot-de-passe</url_rewrite>
</meta>
<!--
<meta id='prices-drop' id_shop='1'>
<title>Promotions</title>
<description>Nos promotions</description>
<keywords/>
<url_rewrite>promotions</url_rewrite>
</meta>
-->
<!--
<meta id='sitemap' id_shop='1'>
<title>Plan du site</title>
<description>Vous êtes perdu ? Trouvez ce que vous cherchez</description>
<keywords/>
<url_rewrite>plan-site</url_rewrite>
</meta>
-->
<meta id='supplier' id_shop='1'>
<title>Fournisseurs</title>
<description>Liste des fournisseurs</description>
@@ -132,18 +136,22 @@
<keywords/>
<url_rewrite>commande</url_rewrite>
</meta>
<!--
<meta id='search' id_shop='1'>
<title>Recherche</title>
<description/>
<keywords/>
<url_rewrite>recherche</url_rewrite>
</meta>
-->
<!--
<meta id='stores' id_shop='1'>
<title>Magasins</title>
<description/>
<keywords/>
<url_rewrite>magasins</url_rewrite>
</meta>
-->
<meta id='order-opc' id_shop='1'>
<title>Commande</title>
<description/>
@@ -162,10 +170,12 @@
<keywords/>
<url_rewrite>confirmation-commande</url_rewrite>
</meta>
<!--
<meta id='products-comparison' id_shop='1'>
<title>Comparaison de produits</title>
<description/>
<keywords/>
<url_rewrite>comparaison-produits</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>Un loc unde confortul și luxul se îmbină cu natura!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>recuperare-parola</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Reduceri de preț</title>
<description>Ofertele nostre speciale</description>
<keywords/>
<url_rewrite>reduceri-de-pret</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>V-ați rătăcit? Găsiți ceea ce căutați</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Furnizori</title>
<description>Lista furnizorilor</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>comanda</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Căutare</title>
<description/>
<keywords/>
<url_rewrite>cautare</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Magazine</title>
<description/>
<keywords/>
<url_rewrite>magazine</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Comandă</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>confirmare-comanda</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Comparație între produse</title>
<description/>
<keywords/>
<url_rewrite>comparare-produse</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Отель Прайм</title>
<description>Место, где комфорт и роскошь сочетаются с природой!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords>забыли пароль, e-mail, новый пароль,восстановить пароль</keywords>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Снижение цен</title>
<description>Наши скидки</description>
<keywords>снижение цен, распродажи</keywords>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Карта сайта</title>
<description>Потерялись? Найдите то, что ищете</description>
<keywords>карта сайта</keywords>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Поставщики</title>
<description>Список поставщиков</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Поиск</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Магазины</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Быстрый заказ</title>
<description/>
@@ -162,10 +170,12 @@
<keywords/>
<url_rewrite>guest-tracking</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>A place where comfort and luxury are blended with nature!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Prices drop</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Suppliers</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>A place where comfort and luxury are blended with nature!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Prices drop</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Suppliers</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>A place where comfort and luxury are blended with nature!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Prices drop</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Suppliers</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Prime 酒店</title>
<description>一個舒適與奢華與自然融合的地方!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords>forgot, password, e-mail, new, reset</keywords>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>降價</title>
<description>我們的特價產品</description>
<keywords>special, prices drop</keywords>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>網站地圖</title>
<description>找不到網頁?可以參考這兒</description>
<keywords>sitemap</keywords>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>供應商</title>
<description>供應商列表</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>搜尋</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>商店</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>訂單</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Khách sạn Prime</title>
<description>Nơi mà sự thoải mái và sang trọng hòa quyện với thiên nhiên!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Giảm giá</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sơ đồ web</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Nhà cung cấp</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Đơn hàng</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -19,8 +19,8 @@
<url_rewrite>contact-us</url_rewrite>
</meta>
<meta id="index" id_shop="1">
<title>Hotel Prime</title>
<description>A place where comfort and luxury are blended with nature!</description>
<title></title>
<description></description>
<keywords/>
<url_rewrite/>
</meta>
@@ -42,18 +42,22 @@
<keywords/>
<url_rewrite>password-recovery</url_rewrite>
</meta>
<!--
<meta id="prices-drop" id_shop="1">
<title>Prices drop</title>
<description>Our special products</description>
<keywords/>
<url_rewrite>prices-drop</url_rewrite>
</meta>
-->
<!--
<meta id="sitemap" id_shop="1">
<title>Sitemap</title>
<description>Lost ? Find what your are looking for</description>
<keywords/>
<url_rewrite>sitemap</url_rewrite>
</meta>
-->
<meta id="supplier" id_shop="1">
<title>Suppliers</title>
<description>Suppliers list</description>
@@ -138,18 +142,22 @@
<keywords/>
<url_rewrite>order</url_rewrite>
</meta>
<!--
<meta id="search" id_shop="1">
<title>Search</title>
<description/>
<keywords/>
<url_rewrite>search</url_rewrite>
</meta>
-->
<!--
<meta id="stores" id_shop="1">
<title>Stores</title>
<description/>
<keywords/>
<url_rewrite>stores</url_rewrite>
</meta>
-->
<meta id="order-opc" id_shop="1">
<title>Order</title>
<description/>
@@ -168,10 +176,12 @@
<keywords/>
<url_rewrite>order-confirmation</url_rewrite>
</meta>
<!--
<meta id="products-comparison" id_shop="1">
<title>Products Comparison</title>
<description/>
<keywords/>
<url_rewrite>products-comparison</url_rewrite>
</meta>
-->
</entity_meta>

View File

@@ -54,8 +54,6 @@ class Blocknewsletter extends Module
$this->tab = 'front_office_features';
$this->need_instance = 0;
$this->controllers = array('verification');
$this->bootstrap = true;
parent::__construct();

View File

@@ -1331,6 +1331,7 @@ class HotelCartBookingData extends ObjectModel
);
$cart_detail_data[$key]['amt_with_qty'] = $roomTypeDateRangePrice['total_price_tax_excl'];
$cart_detail_data[$key]['connected_rooms'] = HotelConnectedRoom::getConnectedRooms((int) $obj_htl_room_info->id, null, null, Context::getContext()->language->id);
}
}
if ($cart_detail_data) {

View File

@@ -0,0 +1,180 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License version 3.0
* that is bundled with this package in the file LICENSE.md
* It is also available through the world-wide-web at this URL:
* https://opensource.org/license/osl-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 support@qloapps.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade this module to a 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
* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0
*/
class HotelConnectedRoom extends ObjectModel
{
/** @var bool|null */
protected static $connectedRoomTableAvailable = null;
public $id_connected_room;
public $id_room;
public $id_room_connected;
public $date_add;
public $date_upd;
public static $definition = array(
'table' => 'htl_connected_room',
'primary' => 'id_connected_room',
'fields' => array(
'id_room' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
'id_room_connected' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
'date_add' => array('type' => self::TYPE_DATE),
'date_upd' => array('type' => self::TYPE_DATE),
),
);
public static function getConnectedRooms($idRoom = null, $idRoomType = null, $idHotel = null, $idLang = null)
{
$idLang = $idLang ? (int) $idLang : (int) Context::getContext()->language->id;
$sql = 'SELECT
hcr.id_connected_room,
hcr.id_room,
base_room.room_num AS room_name,
connected_room.id AS id_room_connected,
connected_room.id_product AS id_room_type,
conn_pl.name AS room_type_name,
connected_room.room_num AS connected_room_name
FROM `' . _DB_PREFIX_ . 'htl_connected_room` hcr
INNER JOIN `' . _DB_PREFIX_ . 'htl_room_information` connected_room
ON connected_room.id = hcr.id_room_connected
INNER JOIN `' . _DB_PREFIX_ . 'htl_room_information` base_room
ON base_room.id = hcr.id_room
LEFT JOIN `' . _DB_PREFIX_ . 'product_lang` conn_pl
ON (conn_pl.id_product = connected_room.id_product AND conn_pl.id_lang = ' . $idLang . ')
WHERE 1';
if ($idRoom !== null) {
$sql .= ' AND hcr.id_room = ' . $idRoom;
}
if ($idRoomType !== null) {
$sql .= ' AND base_room.id_product = ' . (int) $idRoomType;
}
if ($idHotel !== null) {
$sql .= ' AND base_room.id_hotel = ' . (int) $idHotel;
}
$sql .= ' ORDER BY hcr.id_room, connected_room.id_product, connected_room.room_num';
$results = Db::getInstance()->executeS($sql);
if ($results === false) {
return array();
}
$connectedRooms = array();
foreach ($results as $row) {
$roomId = (int) $row['id_room'];
$roomTypeId = (int) $row['id_room_type'];
if (!isset($connectedRooms[$roomId])) {
$connectedRooms[$roomId] = array(
'name' => $row['room_name'],
'connected_room_types' => array(),
);
}
if (!isset($connectedRooms[$roomId]['connected_room_types'][$roomTypeId])) {
$connectedRooms[$roomId]['connected_room_types'][$roomTypeId] = array(
'room_type_name' => $row['room_type_name'],
'connected_rooms' => array(),
);
}
$connectedRooms[$roomId]['connected_room_types'][$roomTypeId]['connected_rooms'][] = array(
'id_connected_room' => (int) $row['id_connected_room'],
'id_room' => (int) $row['id_room_connected'],
'name' => $row['connected_room_name'],
);
}
return $connectedRooms;
}
public static function getNotConnectedRooms($idRoom, $idLang = null)
{
$idRoom = (int) $idRoom;
if ($idRoom <= 0) {
return array();
}
$idLang = $idLang ? (int) $idLang : (int) Context::getContext()->language->id;
$sql = 'SELECT hri.id AS id_room, hri.id_product AS id_room_type, pl.name AS room_type_name, hri.room_num AS room_name
FROM `' . _DB_PREFIX_ . 'htl_room_information` hri
LEFT JOIN `' . _DB_PREFIX_ . 'product_lang` pl
ON (pl.id_product = hri.id_product AND pl.id_lang = ' . $idLang . ')
WHERE hri.id != ' . $idRoom . '
AND hri.id_hotel = (
SELECT id_hotel FROM `' . _DB_PREFIX_ . 'htl_room_information` WHERE id = ' . $idRoom . '
)
AND NOT EXISTS (
SELECT 1 FROM `' . _DB_PREFIX_ . 'htl_connected_room` cr
WHERE cr.id_room = ' . $idRoom . ' AND cr.id_room_connected = hri.id
)
ORDER BY pl.name ASC, hri.room_num ASC';
$results = Db::getInstance()->executeS($sql);
$grouped = array();
foreach ($results as $row) {
$typeId = (int) $row['id_room_type'];
if (!isset($grouped[$typeId])) {
$grouped[$typeId] = array(
'id_room_type' => $typeId,
'name' => $row['room_type_name'],
'rooms' => array(),
);
}
$grouped[$typeId]['rooms'][] = array(
'id_room' => (int) $row['id_room'],
'name' => $row['room_name'],
);
}
return $grouped;
}
public static function getTotalConnectedRooms($idRoom = 0, $idRoomConnected = 0)
{
$idRoom = (int) $idRoom;
$idRoomConnected = (int) $idRoomConnected;
if ($idRoom <= 0 && $idRoomConnected > 0) {
$sql = 'SELECT DISTINCT id_room
FROM `' . _DB_PREFIX_ . 'htl_connected_room`
WHERE id_room_connected = ' . $idRoomConnected;
$results = Db::getInstance()->executeS($sql);
if ($results === false) {
return array();
}
return array_column($results, 'id_room');
}
$sql = 'SELECT COUNT(*) FROM `' . _DB_PREFIX_ . 'htl_connected_room` hcr
INNER JOIN `' . _DB_PREFIX_ . 'htl_room_information` hri
ON hri.id = hcr.id_room_connected
WHERE hcr.id_room = ' . $idRoom;
return (int) Db::getInstance()->getValue($sql);
}
}

View File

@@ -262,7 +262,7 @@ class HotelOrderRefundRules extends ObjectModel
ON (horr.`id_refund_rule` = hbrr.`id_refund_rule`)
LEFT JOIN `'._DB_PREFIX_.'htl_order_refund_rules_lang` horrl
ON (horrl.`id_refund_rule` = horr.`id_refund_rule` AND horrl.`id_lang` = '.(int) $idLang.')
LEFT JOIN `'._DB_PREFIX_.'htl_booking_detail` hbd
INNER JOIN `'._DB_PREFIX_.'htl_booking_detail` hbd
ON (hbd.`id_hotel` = hbrr.`id_hotel` AND hbd.`id_order` = '.(int) $idOrder.')
WHERE horr.`days` <= '.(int) $days.'
GROUP BY hbrr.`id_refund_rule`

View File

@@ -552,6 +552,17 @@ class HotelReservationSystemDb
SELECT 5, `id_lang`, 'Hotel Amenities Block', 'Configure Hotels Amenities settings. You can display hotel amenities images using this block. This block will be displayed on home page.'
FROM `"._DB_PREFIX_."lang`
ORDER BY `id_lang`;",
"CREATE TABLE IF NOT EXISTS `"._DB_PREFIX_."htl_connected_room` (
`id_connected_room` int(11) NOT NULL AUTO_INCREMENT,
`id_room` int(11) NOT NULL,
`id_room_connected` int(11) NOT NULL,
`date_add` datetime NOT NULL,
`date_upd` datetime NOT NULL,
PRIMARY KEY (`id_connected_room`),
UNIQUE KEY `uniq_room_connection` (`id_room`, `id_room_connected`),
KEY `idx_id_room` (`id_room`),
KEY `idx_id_room_connected` (`id_room_connected`)
) ENGINE="._MYSQL_ENGINE_." DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;",
);
}
@@ -615,7 +626,8 @@ class HotelReservationSystemDb
`'._DB_PREFIX_.'htl_room_type_bed_type`,
`'._DB_PREFIX_.'htl_access`,
`'._DB_PREFIX_.'htl_settings_link`,
`'._DB_PREFIX_.'htl_settings_link_lang`'
`'._DB_PREFIX_.'htl_settings_link_lang`,
`'._DB_PREFIX_.'htl_connected_room`'
);
}
}

View File

@@ -386,6 +386,7 @@ class AdminHotelRoomsBookingController extends ModuleAdminController
'max_child_age' => Configuration::get('WK_GLOBAL_CHILD_MAX_AGE'),
'link' => $this->context->link,
'ALLOTMENT_MANUAL' => HotelBookingDetail::ALLOTMENT_MANUAL,
'htl_connected_rooms' => HotelConnectedRoom::getConnectedRooms(null, null, $this->id_hotel, $this->context->language->id),
));
if (Configuration::get('PS_BACKOFFICE_SEARCH_TYPE') == HotelBookingDetail::SEARCH_TYPE_OWS) {
@@ -1037,6 +1038,7 @@ class AdminHotelRoomsBookingController extends ModuleAdminController
// add fullcalender plugin
$this->addJqueryUI('ui.tooltip', 'base', true);
$this->removeJS(Media::getJqueryUIPath('effects.core', 'base', false), false);
$this->addCSS(array(_MODULE_DIR_.'hotelreservationsystem/views/css/HotelReservationAdmin.css'));
$this->addCSS(_PS_JS_DIR_.'fullcalendar/main.css');
$this->addJs(_PS_JS_DIR_.'fullcalendar/main.js');

View File

@@ -49,6 +49,7 @@ require_once 'classes/HotelRoomDisableDates.php';
require_once 'classes/HotelBranchRefundRules.php';
require_once 'classes/HotelBedType.php';
require_once 'classes/HotelRoomTypeBedType.php';
require_once 'classes/HotelConnectedRoom.php';
// linked products
require_once 'classes/RoomTypeServiceProduct.php';

View File

@@ -577,36 +577,6 @@ p.room_cat_data
.fc-today-button:disabled {
display: none;
}
/* book now page tooltip */
.tooltip_cont {
min-width: 280px;
width: 100%;
font-size: 14px;
font-weight: 600;
/* display: grid; */
}
.tooltip_cont .tip_header {
margin-bottom: 10px;
}
.tooltip_cont .tip-body > div {
margin-bottom: 6px;
}
.tip_element_head {
font-size: 12px;
}
.tip_element_value {
font-size: 16px;
opacity: 0.6;
}
.tip-body {
display: grid;
grid-template-columns: auto auto;
}
body.adminhotelroomsbooking .ui-tooltip {
border: unset;
padding: 10px;
box-shadow: 0px 0px 15px 0px #00000026;
}
#room-reallocation-modal .modal-footer {
padding: 15px 0px 0px 0px

View File

@@ -40,7 +40,12 @@
<tbody>
{foreach from=$book_v['data']['available'] key=avai_k item=avai_v}
<tr>
<td>{$avai_v['room_num']|escape:'htmlall':'UTF-8'} {hook h='displayRoomNumAfter' data=$avai_v type='available'}</td>
<td>{$avai_v['room_num']|escape:'htmlall':'UTF-8'}
{if isset($htl_connected_rooms[$avai_v['id_room']]) && $htl_connected_rooms[$avai_v['id_room']]|@count > 0}
{include file="controllers/products/connected-rooms.tpl" htl_connected_rooms=$htl_connected_rooms[$avai_v['id_room']]}
{/if}
{hook h='displayRoomNumAfter' data=$avai_v type='available'}</td>
{assign var="is_full_date" value=($show_full_date && ($date_from|date_format:'%D' == $date_to|date_format:'%D'))}
<td>{dateFormat date=$date_from full=$is_full_date} - {dateFormat date=$date_to full=$is_full_date}</td>
<td>{$avai_v['room_comment']|escape:'htmlall':'UTF-8'}</td>
@@ -132,7 +137,11 @@
<p>{dateFormat date=$part_v['date_from'] full=$is_full_date} - {dateFormat date=$part_v['date_to'] full=$is_full_date}</p>
</td>
{/if}
<td >{$sub_part_v['room_num']|escape:'htmlall':'UTF-8'} {hook h='displayRoomNumAfter' data=$sub_part_v type='partially_available'}</td>
<td >{$sub_part_v['room_num']|escape:'htmlall':'UTF-8'}
{if isset($htl_connected_rooms[$sub_part_v['id_room']]) && $htl_connected_rooms[$sub_part_v['id_room']]|@count > 0}
{include file="controllers/products/connected-rooms.tpl" htl_connected_rooms=$htl_connected_rooms[$sub_part_v['id_room']]}
{/if}
{hook h='displayRoomNumAfter' data=$sub_part_v type='partially_available'}</td>
<td>
{foreach $allotment_types as $allotment_type}
<label class="control-label">
@@ -217,7 +226,11 @@
<tr>
{assign var="is_full_date" value=($show_full_date && ($rm_dtl_v['date_from']|date_format:'%D' == $rm_dtl_v['date_to']|date_format:'%D'))}
{if $rm_dtl_v@first}
<td rowspan="{$booked_v['detail']|count}">{$booked_v['room_num']|escape:'htmlall':'UTF-8'} {hook h='displayRoomNumAfter' data=$booked_v key=$rm_dtl_k type='booked'}</td>
<td rowspan="{$booked_v['detail']|count}">{$booked_v['room_num']|escape:'htmlall':'UTF-8'}
{if isset($htl_connected_rooms[$booked_v['id_room']]) && $htl_connected_rooms[$booked_v['id_room']]|@count > 0}
{include file="controllers/products/connected-rooms.tpl" htl_connected_rooms=$htl_connected_rooms[$booked_v['id_room']]}
{/if}
{hook h='displayRoomNumAfter' data=$booked_v key=$rm_dtl_k type='booked'}</td>
{/if}
<td>{dateFormat date=$rm_dtl_v['date_from'] full=$is_full_date} - {dateFormat date=$rm_dtl_v['date_to'] full=$is_full_date}</td>
<td><a href="{$link->getAdminLink('AdminOrders')}&id_order={$rm_dtl_v['id_order']|intval}&vieworder" target="_blank">#{$rm_dtl_v['id_order']}</a></td>
@@ -257,7 +270,11 @@
{foreach from=$unavai_v['detail'] key=rm_dtl_k item=unavail_dtl_v}
<tr>
{if $unavail_dtl_v@first}
<td rowspan="{$unavai_v['detail']|count}">{$unavai_v['room_num']|escape:'htmlall':'UTF-8'}</td>
<td rowspan="{$unavai_v['detail']|count}">{$unavai_v['room_num']|escape:'htmlall':'UTF-8'}
{if isset($htl_connected_rooms[$unavai_v['id_room']]) && $htl_connected_rooms[$unavai_v['id_room']]|@count > 0}
{include file="controllers/products/connected-rooms.tpl" htl_connected_rooms=$htl_connected_rooms[$unavai_v['id_room']]}
{/if}
</td>
{/if}
<td>{HotelRoomInformation::getRoomStatusTitle($unavail_dtl_v['id_status'])|escape:'htmlall':'UTF-8'}</td>
<td>

View File

@@ -290,9 +290,13 @@ class QhrHotelReview extends ObjectModel
public function saveReviewImages()
{
$files = QhrHotelReviewHelper::fileAttachmentMultiple('images');
$allowedExtensions = array('jpg', 'png', 'jpeg',);
if (is_array($files) && count($files)) {
foreach ($files as $key => $file) {
$ext = pathinfo($file['rename'], PATHINFO_EXTENSION);
if (!in_array($ext, $allowedExtensions, true)) {
continue;
}
$dir = _PS_MODULE_DIR_.'qlohotelreview/views/img/review/'.Image::getImgFolderStatic($this->id);
QhrHotelReviewHelper::createDirectory($dir);
$useSameExt = false;

View File

@@ -85,6 +85,17 @@ class QloHotelReviewDefaultModuleFrontController extends ModuleFrontController
}
}
if (is_array($_FILES) && array_key_exists('images', $_FILES) ) {
$allowedExtensions = array('jpg', 'png', 'jpeg',);
foreach ($_FILES['images']['name'] as $key => $imageName) {
$extension = Tools::strtolower(pathinfo($imageName, PATHINFO_EXTENSION));
if (!in_array($extension, $allowedExtensions)) {
$errors['general'][] = $objModule->l('Only images with the following extensions are allowed: jpg, jpeg, png','default');
}
}
}
if (!count($errors['by_key']) && !count($errors['general'])) {
$customerReview = QhrHotelReview::getByCustomer(
$objOrder->id_customer,

View File

@@ -182,6 +182,7 @@ class QloHotelReview extends Module
$this->l('You can upload a maximum of %d images.', false, true),
(int) Configuration::get('QHR_MAX_IMAGES_PER_REVIEW')
),
'allowed_extensions' => $this->l('Only images with the following extensions are allowed: jpg, jpeg, png', false, true),
),
)));

View File

@@ -52,6 +52,10 @@
margin-bottom: 14px;
}
#add-review-popup .hint {
margin-top: 6px;
}
#add-review-popup .review-error {
margin-top: 2px;
color: #E85757;

View File

@@ -132,6 +132,29 @@ var QhrReviewImages = {
init: function() {
QhrReviewImages.inputHtml = '<input type="file" accept="image/*" class="input-images hidden" name="images[]" multiple>';
},
validateFiles: function () {
$('#review-general-errors').hide();
let isValid = true;
$('.images-field input.input-images').each(function (iInput, input) {
let files = input.files;
let dataTransfer = new DataTransfer();
$.each(files, function (iFile, file) {
if (file.type.startsWith('image/')) {
dataTransfer.items.add(file);
} else {
isValid = false;
}
});
input.files = dataTransfer.files;
if (!input.files.length) {
$(input).remove();
}
});
if (!isValid) {
QhrReviewForm.showGeneralErrors(qlo_hotel_review_js_vars.texts.allowed_extensions);
}
return isValid;
},
getFilesCount: function() {
var count = 0;
$('.images-field input.input-images').each(function(i, input) {
@@ -156,6 +179,9 @@ var QhrReviewImages = {
}
});
input.files = dataTransfer.files;
if (input.files.length === 0) {
$(input).remove();
}
},
resetPreviews: function() {
$('.previews-wrap').html('');
@@ -241,8 +267,9 @@ $(document).on('change', 'input.input-images', function(e) {
var filesCount = QhrReviewImages.getFilesCount();
if (filesCount > qlo_hotel_review_js_vars.num_images_max) {
QhrReviewImages.removeLastInput();
alert(qlo_hotel_review_js_vars.texts.num_files);
QhrReviewForm.showGeneralErrors(qlo_hotel_review_js_vars.texts.num_files);
} else {
QhrReviewImages.validateFiles();
QhrReviewImages.updatePreviews();
if (filesCount == qlo_hotel_review_js_vars.num_images_max) {

View File

@@ -40,6 +40,7 @@
<div class="image-input-btn">
<img class="img-camera-plus">
</div>
<p class="hint">{l s='Allowed formats are: .jpg, .jpeg, .png' mod='qlohotelreview'}</p>
<div class="previews-wrap"></div>
</div>