Merge branch 'develop' into gli-2599_2

This commit is contained in:
vishalsingh.qlo325
2025-06-18 09:58:22 +05:30
116 changed files with 696 additions and 428 deletions

View File

@@ -8,7 +8,7 @@
<p align="center">
<a href="https://qloapps.com/download/"><img src="https://img.shields.io/badge/Download-Download%20QloApps%20-brightgreen" alt="Download"></a>
<a href="https://qloapps.com/qlo-reservation-system/"><img src="https://img.shields.io/badge/Documentation-Blog-yellowgreen" alt="Documentation"></a>
<a href="https://docs.qloapps.com/"><img src="https://img.shields.io/badge/Documentation-Blog-yellowgreen" alt="Documentation"></a>
<a href="https://forums.qloapps.com/"><img src="https://img.shields.io/badge/Forum-Help%2FSupport-green" alt="Forum"></a>
<a href="https://qloapps.com/addons/"><img src="https://img.shields.io/badge/Addons-Plugins-blueviolet" alt="Addons"></a>
<a href="https://qloapps.com/contact/"><img src="https://img.shields.io/badge/Contact-Get%20In%20Touch-blue" alt="Contact us"></a>
@@ -89,7 +89,7 @@ Please don't disclose security vulnerabilities publicly. If you find any securit
### Documentation & Demo
#### QloApps Documentation
[https://qloapps.com/qlo-reservation-system](https://qloapps.com/qlo-reservation-system)
[https://docs.qloapps.com](https://docs.qloapps.com)
#### QloApps Demo
**Link** : https://demo.qloapps.com </br>
**username** : demo@demo.com </br>

View File

@@ -75,7 +75,7 @@ $sqlJoin =' LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (pl.`id_product` = p.`
$sqlWhere = ' WHERE (pl.name LIKE \'%'.pSQL($query).'%\' OR p.reference LIKE \'%'.pSQL($query).'%\')'.
(!empty($excludeIds) ? ' AND p.id_product NOT IN ('.$excludeIds.') ' : ' ').
(!empty($excludePackItself) ? ' AND p.id_product <> '.$excludePackItself.' ' : ' ').
(!empty($excludePackItself) ? ' AND p.id_product <> '.(int) $excludePackItself.' ' : ' ').
($excludeVirtuals ? 'AND NOT EXISTS (SELECT 1 FROM `'._DB_PREFIX_.'product_download` pd WHERE (pd.id_product = p.id_product))' : '').
($exclude_packs ? 'AND (p.cache_is_pack IS NULL OR p.cache_is_pack = 0)' : '').
($bookingProduct ? 'AND p.`booking_product` = '.(int) $bookingProduct : '');
@@ -96,7 +96,7 @@ $sql = $sqlSelect.' '.$sqlFrom.' '.$sqlJoin.' '.$sqlWhere.' '.$sqlGroupBy;
$items = Db::getInstance()->executeS($sql);
if ($items && ($excludeIds || strpos($_SERVER['HTTP_REFERER'], 'AdminScenes') !== false)) {
if ($items && ($excludeIds || (isset($_SERVER['HTTP_REFERER']) && Tools::strpos($_SERVER['HTTP_REFERER'], 'AdminScenes') !== false))) {
foreach ($items as $item) {
$item['name'] = str_replace('|', '&#124;', $item['name']);
echo trim($item['name']).(!empty($item['reference']) ? ' (ref: '.$item['reference'].')' : '').'|'.(int)($item['id_product'])."\n";
@@ -151,7 +151,7 @@ if ($items && ($excludeIds || strpos($_SERVER['HTTP_REFERER'], 'AdminScenes') !=
'id' => (int)($item['id_product']),
'name' => $item['name'],
'ref' => (!empty($item['reference']) ? $item['reference'] : ''),
'image' => str_replace('http://', Tools::getShopProtocol(), $context->link->getImageLink($item['link_rewrite'], $item['id_image'], 'home_default')),
'image' => $item['id_image'] ? str_replace('http://', Tools::getShopProtocol(), $context->link->getImageLink($item['link_rewrite'], $item['id_image'], 'home_default')) : false,
);
array_push($results, $product);
}

View File

@@ -67,7 +67,7 @@
{l s='Created on:'} {dateFormat date=$cart_order.date_add}
{else}
<h2>{l s='No order was created from this cart.'}</h2>
{if $customer->id}
{if $customer->id && !$hotel_products && !$standalone_products}
<a class="btn btn-default" href="{$link->getAdminLink('AdminOrders')|escape:'html':'UTF-8'}&amp;cart_id={$cart->id|intval}&amp;addorder"><i class="icon-shopping-cart"></i> {l s='Create an order from this cart.'}</a>
{/if}
{/if}

View File

@@ -128,7 +128,7 @@
<section class="dash_links widget panel">
<h3><i class="icon-link"></i> {l s="Help Center"}</h3>
<dl>
<dt><a href="https://qloapps.com/qlo-reservation-system/" class="_blank">{l s="Official Documentation"}</a></dt>
<dt><a href="https://docs.qloapps.com/" class="_blank">{l s="Official Documentation"}</a></dt>
<dd>{l s="QloApps User Guide"}</dd>
</dl>
<dl>

View File

@@ -99,7 +99,7 @@
{foreach from=$languages item=language}
<div class="alert alert-warning translatable-field lang-{$language.id_lang}">
<i class="icon-link"></i> {l s='The product link will look like this:'}<br/>
<strong>{if isset($rewritten_links[$language.id_lang][0])}{$rewritten_links[$language.id_lang][0]|escape:'html':'UTF-8'}{/if}<span id="friendly-url_{$language.id_lang}">{$product->link_rewrite[$language.id_lang]|escape:'html':'UTF-8'}</span>{if isset($rewritten_links[$language.id_lang][1])}{$rewritten_links[$language.id_lang][1]|escape:'html':'UTF-8'}{/if}</strong>
<strong>{if isset($rewritten_links[$language.id_lang][0])}{$rewritten_links[$language.id_lang][0]|escape:'html':'UTF-8'}{/if}<span id="friendly-url_{$language.id_lang}">{if isset($product->id)}{$product->link_rewrite[$language.id_lang]|escape:'html':'UTF-8'}{/if}</span>{if isset($rewritten_links[$language.id_lang][1])}{$rewritten_links[$language.id_lang][1]|escape:'html':'UTF-8'}{/if}</strong>
</div>
{/foreach}
</div>

View File

@@ -42,7 +42,7 @@
</tr>
</thead>
<tbody>
{if $orderDocuments|count}
{if isset($orderDocuments) && $orderDocuments|count}
{foreach from=$orderDocuments item=document}
{if get_class($document) eq 'OrderInvoice'}
<tr id="invoice_{$document->id}">

View File

@@ -225,7 +225,6 @@
</button>
</div>
</div>
{/if}
{*Disable Dates Model*}
<div class="modal fade" id="deactiveDatesModal" tabindex="-1" role="dialog" aria-labelledby="deactiveDatesLabel">
@@ -1886,3 +1885,4 @@
});
</script>
{/if}

View File

@@ -455,7 +455,7 @@
<p class="help-block">{l s='Please note that position numbering starts from 0. A position of 0 means room type will be displayed at the topmost position.'}</p>
<div class="alert alert-info">
{l s='You can manage positions of the room types of this hotel from'}
<a href="{$link->getAdminLink('AdminProducts')}&id_category={$htl_full_info['id_category']}">{l s='here.'}</a>
<a href="{$link->getAdminLink('AdminProducts')}&submitResetproduct&submitFilterproduct=1&productFilter_a!id_category_default={$htl_full_info['id_category']}">{l s='here.'}</a>
</div>
</div>
</div>

View File

@@ -99,7 +99,7 @@
{foreach from=$languages item=language}
<div class="alert alert-warning translatable-field lang-{$language.id_lang}">
<i class="icon-link"></i> {l s='The product link will look like this:'}<br/>
<strong>{if isset($rewritten_links[$language.id_lang][0])}{$rewritten_links[$language.id_lang][0]|escape:'html':'UTF-8'}{/if}<span id="friendly-url_{$language.id_lang}">{$product->link_rewrite[$language.id_lang]|escape:'html':'UTF-8'}</span>{if isset($rewritten_links[$language.id_lang][1])}{$rewritten_links[$language.id_lang][1]|escape:'html':'UTF-8'}{/if}</strong>
<strong>{if isset($rewritten_links[$language.id_lang][0])}{$rewritten_links[$language.id_lang][0]|escape:'html':'UTF-8'}{/if}<span id="friendly-url_{$language.id_lang}">{if isset($product->id)}{$product->link_rewrite[$language.id_lang]|escape:'html':'UTF-8'}{/if}</span>{if isset($rewritten_links[$language.id_lang][1])}{$rewritten_links[$language.id_lang][1]|escape:'html':'UTF-8'}{/if}</strong>
</div>
{/foreach}
</div>

View File

@@ -17,6 +17,12 @@
* @license LICENSE.txt
*}
<a class="btn btn-link" href="{$link->getAdminLink('AdminCartRules')|escape:'html':'UTF-8'}&updatecart_rule&id_cart_rule={$id_cart_rule}" target="_blank">
#{$id_cart_rule}
</a>
{if $id_cart_rule}
<a class="btn btn-link" href="{$link->getAdminLink('AdminCartRules')|escape:'html':'UTF-8'}&updatecart_rule&id_cart_rule={$id_cart_rule}" target="_blank">
#{$id_cart_rule}
</a>
{else}
<a href="{$link->getAdminLink('AdminSlip')|escape:'html':'UTF-8'}&generateVoucher=1&id_order_slip={$row['id_order_slip']}" class="btn btn-default" title="{l s='Generate voucher for credit slip'}">
<i class="icon-refresh"></i> {l s='Generate Voucher'}
</a>
{/if}

View File

@@ -72,7 +72,7 @@
{l s='Addons'}
</a>
/&nbsp;
<a href="https://qloapps.com/qlo-reservation-system/" class="footer_link _blank">
<a href="https://docs.qloapps.com/" class="footer_link _blank">
<i class="icon-book"></i>
{l s='Training'}
</a>

View File

@@ -1427,7 +1427,7 @@ class CategoryCore extends ObjectModel
'.Shop::addSqlAssociation('category', 'cp').'
WHERE cp.`id_parent` = '.(int)$this->id_parent.'
ORDER BY category_shop.`position` ASC')
) {
) {
return false;
}
@@ -1443,10 +1443,11 @@ class CategoryCore extends ObjectModel
}
// < and > statements rather than BETWEEN operator
// since BETWEEN is treated differently according to databases
$increment = ($way ? '- 1' : '+ 1');
$result = (Db::getInstance()->execute('
UPDATE `'._DB_PREFIX_.'category` c '.Shop::addSqlAssociation('category', 'c').'
SET c.`position`= c.`position` '.($way ? '- 1' : '+ 1').',
category_shop.`position`= category_shop.`position` '.($way ? '- 1' : '+ 1').',
SET c.`position`= IF(cast(c.`position` as signed) '.$increment.' > 0, c.`position` '.$increment.', 0), ' .
'category_shop.`position` = IF(cast(category_shop.`position` as signed) '.$increment.' > 0, category_shop.`position` '.$increment.', 0),
c.`date_upd` = "'.date('Y-m-d H:i:s').'"
WHERE category_shop.`position`
'.($way

View File

@@ -1788,6 +1788,9 @@ class ToolsCore
public static function strpos($str, $find, $offset = 0, $encoding = 'UTF-8')
{
if (is_array($str) || is_null($str)) {
return false;
}
if (function_exists('mb_strpos')) {
return mb_strpos($str, $find, $offset, $encoding);
}

View File

@@ -907,9 +907,8 @@ class AdminControllerCore extends Controller
}
}
if (empty($filters)) {
$filters = $this->context->cookie->getFamily($prefix.$this->list_id.'Filter_');
}
// To merge the older filters with the new ones, and replace if new data is added to filter.
$filters = array_merge($this->context->cookie->getFamily($prefix.$this->list_id.'Filter_'), $filters);
foreach ($filters as $key => $value) {
$key_org = $key;
@@ -1198,7 +1197,7 @@ class AdminControllerCore extends Controller
}
}
fputcsv($fd, $headers, ';', $text_delimiter);
fputcsv($fd, $headers, ';', $text_delimiter, escape: "");
foreach ($this->_list as $i => $row) {
$content = array();
$path_to_image = false;
@@ -1222,7 +1221,7 @@ class AdminControllerCore extends Controller
}
$content[] = $field_value;
}
fputcsv($fd, $content, ';', $text_delimiter);
fputcsv($fd, $content, ';', $text_delimiter, escape: "");
}
@fclose($fd);

View File

@@ -604,8 +604,8 @@ abstract class ControllerCore
* @see https://www.php.net/manual/en/language.operators.errorcontrol.php
*/
if (!(error_reporting() & $errno)) {
return false;
}
return false;
switch ($errno) {
case E_USER_ERROR:

View File

@@ -52,6 +52,8 @@ abstract class ModuleGridCore extends Module
/** @var ModuleGridEngine grid engine */
protected $_render;
protected $_csv;
abstract protected function getData();
public function setEmployee($id_employee)

View File

@@ -2658,25 +2658,36 @@ class OrderCore extends ObjectModel
*
* @return boolean: true if order has been completely refunded as per requested parameters or false
*/
public function hasCompletelyRefunded($action = 0, $includeCheckIn = 0)
public function hasCompletelyRefunded($action = 0, $includeCheckIn = 0, $mustHaveRoomsOrProducts = 1)
{
$res = true;
// Check if order has bookings or products for refund
if ($mustHaveRoomsOrProducts) {
$hasRoomsOrProducts = 0;
} else {
$hasRoomsOrProducts = 1;
}
// check rooms in booking
$objHotelBooking = new HotelBookingdetail();
if ($orderBookings = $objHotelBooking->getOrderCurrentDataByOrderId($this->id)) {
$res &= $this->checkList($orderBookings, $action, $includeCheckIn);
$hasRoomsOrProducts = 1;
}
// check hotel linked products
$objServiceProductOrderDetail = new ServiceProductOrderDetail();
if ($hotelProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($this->id, 0, 0, Product::SELLING_PREFERENCE_HOTEL_STANDALONE)) {
$res &= $this->checkList($hotelProducts, $action, false);
$hasRoomsOrProducts = 1;
}
if ($standaloneProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($this->id, 0, 0, Product::SELLING_PREFERENCE_STANDALONE)) {
$res &= $this->checkList($standaloneProducts, $action, false);
$hasRoomsOrProducts = 1;
}
return $res;
return ($hasRoomsOrProducts && $res);
}
public function checkList($list, $action = 0, $includeCheckIn = 0) {
@@ -2800,7 +2811,7 @@ class OrderCore extends ObjectModel
) {
$result['errors'][] = Tools::displayError('Order status can not be set to Refunded until all bookings in the order are completely refunded.');
} elseif ($objNewOrderState->id == Configuration::get('PS_OS_CANCELED')
&& !$this->hasCompletelyRefunded(Order::ORDER_COMPLETE_CANCELLATION_FLAG)
&& !$this->hasCompletelyRefunded(Order::ORDER_COMPLETE_CANCELLATION_FLAG, 0, 1)
) {
$result['errors'][] = Tools::displayError('Order status can not be set to Cancelled until all bookings in the order are cancelled.');
} elseif ($objCurrentOrderState->id == Configuration::get('PS_OS_ERROR') && !($objNewOrderState->id == Configuration::get('PS_OS_ERROR'))) {

View File

@@ -261,7 +261,7 @@ class OrderReturnCore extends ObjectModel
0,
0,
null,
0,
null,
null,
0,
$bookingRow['id_htl_booking']

View File

@@ -646,6 +646,8 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate
$footer['additional_service_price_tax_incl'] =0;
$footer['total_convenience_fee_te'] = 0;
$footer['total_convenience_fee_ti'] = 0;
$footer['service_products_price_tax_excl'] = 0;
$footer['service_products_price_tax_incl'] = 0;
if ($idsOrderDetail = array_column($order_details, 'id_order_detail')) {
$footer['room_price_tax_excl'] = $this->order->getTotalProductsWithoutTaxes(false, true, null, null, null, $idsOrderDetail) + $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 1, Product::PRICE_ADDITION_TYPE_WITH_ROOM, $idsOrderDetail);
$footer['room_price_tax_incl'] = $this->order->getTotalProductsWithTaxes(false, true, null, null, null, $idsOrderDetail) + $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 1, Product::PRICE_ADDITION_TYPE_WITH_ROOM, $idsOrderDetail);

View File

@@ -1969,7 +1969,7 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We
0,
0,
null,
0,
null,
null,
0,
$idHotelBookingDetail
@@ -2007,7 +2007,7 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We
0,
0,
null,
0,
null,
null,
0,
$hotelBookingDetail['id']
@@ -2535,7 +2535,7 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We
0,
1,
1,
0,
null,
null,
0,
$idHotelBooking
@@ -2550,7 +2550,7 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We
0,
1,
0,
0,
null,
null,
0,
$idHotelBooking
@@ -2570,7 +2570,7 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We
0,
0,
null,
0,
null,
null,
0,
$idHotelBooking

View File

@@ -98,40 +98,40 @@ class AdminAdminPreferencesControllerCore extends AdminController
),
'submit' => array('title' => $this->l('Save'))
),
'upload' => array(
'title' => $this->l('Upload quota'),
'icon' => 'icon-cloud-upload',
'fields' => array(
'PS_ATTACHMENT_MAXIMUM_SIZE' => array(
'title' => $this->l('Maximum size for attachment'),
'hint' => sprintf($this->l('Set the maximum size allowed for attachment files (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'), $upload_mb),
'validation' => 'isInt',
'cast' => 'intval',
'type' => 'text',
'suffix' => $this->l('megabytes'),
'default' => '2'
),
'PS_LIMIT_UPLOAD_FILE_VALUE' => array(
'title' => $this->l('Maximum size for a downloadable product'),
'hint' => sprintf($this->l('Define the upload limit for a downloadable product (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'), $upload_mb),
'validation' => 'isInt',
'cast' => 'intval',
'type' => 'text',
'suffix' => $this->l('megabytes'),
'default' => '1'
),
'PS_LIMIT_UPLOAD_IMAGE_VALUE' => array(
'title' => $this->l('Maximum size for a product\'s image'),
'hint' => sprintf($this->l('Define the upload limit for an image (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'), $upload_mb),
'validation' => 'isInt',
'cast' => 'intval',
'type' => 'text',
'suffix' => $this->l('megabytes'),
'default' => '1'
),
),
'submit' => array('title' => $this->l('Save'))
),
// 'upload' => array(
// 'title' => $this->l('Upload quota'),
// 'icon' => 'icon-cloud-upload',
// 'fields' => array(
// 'PS_ATTACHMENT_MAXIMUM_SIZE' => array(
// 'title' => $this->l('Maximum size for attachment'),
// 'hint' => sprintf($this->l('Set the maximum size allowed for attachment files (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'), $upload_mb),
// 'validation' => 'isInt',
// 'cast' => 'intval',
// 'type' => 'text',
// 'suffix' => $this->l('megabytes'),
// 'default' => '2'
// ),
// 'PS_LIMIT_UPLOAD_FILE_VALUE' => array(
// 'title' => $this->l('Maximum size for a downloadable product'),
// 'hint' => sprintf($this->l('Define the upload limit for a downloadable product (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'), $upload_mb),
// 'validation' => 'isInt',
// 'cast' => 'intval',
// 'type' => 'text',
// 'suffix' => $this->l('megabytes'),
// 'default' => '1'
// ),
// 'PS_LIMIT_UPLOAD_IMAGE_VALUE' => array(
// 'title' => $this->l('Maximum size for a product\'s image'),
// 'hint' => sprintf($this->l('Define the upload limit for an image (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'), $upload_mb),
// 'validation' => 'isInt',
// 'cast' => 'intval',
// 'type' => 'text',
// 'suffix' => $this->l('megabytes'),
// 'default' => '1'
// ),
// ),
// 'submit' => array('title' => $this->l('Save'))
// ),
'notifications' => array(
'title' => $this->l('Notifications'),
'icon' => 'icon-list-alt',

View File

@@ -277,7 +277,10 @@ class AdminCartRulesControllerCore extends AdminController
// If the reduction is associated to a specific product, then it must be part of the product restrictions
if ((int)Tools::getValue('reduction_product') && Tools::getValue('apply_discount_to') == 'specific' && Tools::getValue('apply_discount') != 'off') {
$reduction_product = (int)Tools::getValue('reduction_product');
// In case the product_restriction was unchecked then remove the older products.
if (!Tools::getValue('product_restriction')) {
$_POST['product_rule_group'] = array();
}
// First, check if it is not already part of the restrictions
$already_restricted = false;
if (is_array($rule_group_array = Tools::getValue('product_rule_group')) && count($rule_group_array) && Tools::getValue('product_restriction')) {
@@ -285,7 +288,7 @@ class AdminCartRulesControllerCore extends AdminController
if (is_array($rule_array = Tools::getValue('product_rule_'.$rule_group_id)) && count($rule_array)) {
foreach ($rule_array as $rule_id) {
if (Tools::getValue('product_rule_'.$rule_group_id.'_'.$rule_id.'_type') == 'products'
&& in_array($reduction_product, Tools::getValue('product_rule_select_'.$rule_group_id.'_'.$rule_id))) {
&& in_array($reduction_product, Tools::getValue('product_rule_select_'.$rule_group_id.'_'.$rule_id, []))) {
$already_restricted = true;
break 2;
}
@@ -432,23 +435,32 @@ class AdminCartRulesControllerCore extends AdminController
// Add product rule restrictions
if (Tools::getValue('product_restriction') && is_array($ruleGroupArray = Tools::getValue('product_rule_group')) && count($ruleGroupArray)) {
foreach ($ruleGroupArray as $ruleGroupId) {
Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'cart_rule_product_rule_group` (`id_cart_rule`, `quantity`)
VALUES ('.(int)$currentObject->id.', '.(int)Tools::getValue('product_rule_group_'.$ruleGroupId.'_quantity').')');
$id_product_rule_group = Db::getInstance()->Insert_ID();
if (is_array($ruleArray = Tools::getValue('product_rule_'.$ruleGroupId)) && count($ruleArray)) {
foreach ($ruleArray as $ruleId) {
Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'cart_rule_product_rule` (`id_product_rule_group`, `type`)
VALUES ('.(int)$id_product_rule_group.', "'.pSQL(Tools::getValue('product_rule_'.$ruleGroupId.'_'.$ruleId.'_type')).'")');
$id_product_rule = Db::getInstance()->Insert_ID();
$values = array();
foreach (Tools::getValue('product_rule_select_'.$ruleGroupId.'_'.$ruleId) as $id) {
$values[] = '('.(int)$id_product_rule.','.(int)$id.')';
foreach ($ruleArray as $ruleKey => $ruleId) {
if (!Tools::getValue('product_rule_select_'.$ruleGroupId.'_'.$ruleId)) {
unset($ruleArray[$ruleKey]);
}
$values = array_unique($values);
if (count($values)) {
Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'cart_rule_product_rule_value` (`id_product_rule`, `id_item`) VALUES '.implode(',', $values));
}
if ($ruleArray) {
Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'cart_rule_product_rule_group` (`id_cart_rule`, `quantity`)
VALUES ('.(int)$currentObject->id.', '.(int)Tools::getValue('product_rule_group_'.$ruleGroupId.'_quantity').')');
$id_product_rule_group = Db::getInstance()->Insert_ID();
foreach ($ruleArray as $ruleId) {
Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'cart_rule_product_rule` (`id_product_rule_group`, `type`)
VALUES ('.(int)$id_product_rule_group.', "'.pSQL(Tools::getValue('product_rule_'.$ruleGroupId.'_'.$ruleId.'_type')).'")');
$id_product_rule = Db::getInstance()->Insert_ID();
$values = array();
if ($selectedProducts = Tools::getValue('product_rule_select_'.$ruleGroupId.'_'.$ruleId)) {
foreach ($selectedProducts as $id) {
$values[] = '('.(int)$id_product_rule.','.(int)$id.')';
}
}
$values = array_unique($values);
if (count($values)) {
Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'cart_rule_product_rule_value` (`id_product_rule`, `id_item`) VALUES '.implode(',', $values));
}
}
}
}

View File

@@ -336,8 +336,38 @@ class AdminCartsControllerCore extends AdminController
$helper->value = Tools::displayPrice($total_price, $currency);
$kpi = $helper->generate();
//end
// get standalone products in cart
$objServiceProductCartDetail = new ServiceProductCartDetail();
$hotelProducts = $objServiceProductCartDetail->getServiceProductsInCart(
$cart->id,
[Product::SELLING_PREFERENCE_HOTEL_STANDALONE, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE],
$idHotel = null,
0,
null,
null,
null,
null,
0,
null,
0,
null,
1
);
$standaloneProducts = $objServiceProductCartDetail->getServiceProductsInCart(
$cart->id,
[Product::SELLING_PREFERENCE_STANDALONE]
);
if (count($standaloneProducts)) {
$this->context->smarty->assign('standalone_products', $standaloneProducts);
}
$this->tpl_view_vars = array(
'cart_htl_data' => $cartHtlData,//by webkul hotel rooms in order data
'standalone_products' => $standaloneProducts,
'hotel_products' => $hotelProducts,
'kpi' => $kpi,
'products' => $products,
'discounts' => $cart->getCartRules(),
@@ -449,7 +479,7 @@ class AdminCartsControllerCore extends AdminController
die(json_encode($errors));
}
if ($this->context->cart->deleteProduct($id_product, $id_product_attribute, (int)Tools::getValue('id_customization'))) {
echo json_encode($this->ajaxReturnVars());
$this->ajaxDie(json_encode($this->ajaxReturnVars()));
}
}
}
@@ -563,7 +593,7 @@ class AdminCartsControllerCore extends AdminController
}
}
echo json_encode(array_merge($this->ajaxReturnVars(), array('errors' => $errors)));
$this->ajaxDie(json_encode(array_merge($this->ajaxReturnVars(), array('errors' => $errors))));
}
}
@@ -584,7 +614,7 @@ class AdminCartsControllerCore extends AdminController
$this->context->cart->gift_message = $gift_message;
}
$this->context->cart->save();
echo json_encode($this->ajaxReturnVars());
$this->ajaxDie(json_encode($this->ajaxReturnVars()));
}
}
@@ -606,7 +636,7 @@ class AdminCartsControllerCore extends AdminController
} elseif (Validate::isLoadedObject($message)) {
$message->delete();
}
echo json_encode($this->ajaxReturnVars());
$this->ajaxDie(json_encode($this->ajaxReturnVars()));
}
}
@@ -664,7 +694,7 @@ class AdminCartsControllerCore extends AdminController
$this->context->cart->id_lang = (int)$lang->id;
$this->context->cart->save();
}
echo json_encode($this->ajaxReturnVars());
$this->ajaxDie(json_encode($this->ajaxReturnVars()));
}
}
@@ -683,7 +713,7 @@ class AdminCartsControllerCore extends AdminController
$errors[] = Tools::displayError('The order cannot be renewed.');
} else {
$this->context->cart = $new_cart['cart'];
echo json_encode($this->ajaxReturnVars());
$this->ajaxDie(json_encode($this->ajaxReturnVars()));
}
}
}
@@ -692,7 +722,7 @@ class AdminCartsControllerCore extends AdminController
{
if ($this->tabAccess['edit'] === 1) {
if ($this->context->cart->removeCartRule((int)Tools::getValue('id_cart_rule'))) {
echo json_encode($this->ajaxReturnVars());
$this->ajaxDie(json_encode($this->ajaxReturnVars()));
}
}
}
@@ -723,7 +753,7 @@ class AdminCartsControllerCore extends AdminController
$this->context->cart->addCartRule((int)$cart_rule->id);
}
echo json_encode($this->ajaxReturnVars());
$this->ajaxDie(json_encode($this->ajaxReturnVars()));
}
}
@@ -741,14 +771,14 @@ class AdminCartsControllerCore extends AdminController
$errors[] = Tools::displayError('Can\'t add the voucher.');
}
}
echo json_encode(array_merge($this->ajaxReturnVars(), array('errors' => $errors)));
$this->ajaxDie(json_encode(array_merge($this->ajaxReturnVars(), array('errors' => $errors))));
}
}
public function ajaxProcessUpdateAddress()
{
if ($this->tabAccess['edit'] === 1) {
echo json_encode(array('addresses' => $this->context->customer->getAddresses((int)$this->context->cart->id_lang)));
$this->ajaxDie(json_encode(array('addresses' => $this->context->customer->getAddresses((int)$this->context->cart->id_lang))));
}
}
@@ -769,7 +799,7 @@ class AdminCartsControllerCore extends AdminController
/*$this->context->cart->id_address_invoice = (int)$address_invoice->id;*/
$this->context->cart->save();
echo json_encode($this->ajaxReturnVars());
$this->ajaxDie(json_encode($this->ajaxReturnVars()));
}
}
@@ -886,7 +916,7 @@ class AdminCartsControllerCore extends AdminController
$to_return = array_merge($this->ajaxReturnVars(), array('found' => false));
}
echo json_encode($to_return);
$this->ajaxDie(json_encode($to_return));
}
public function ajaxReturnVars()
@@ -952,7 +982,7 @@ class AdminCartsControllerCore extends AdminController
public function displayAjaxGetSummary()
{
echo json_encode($this->ajaxReturnVars());
$this->ajaxDie(json_encode($this->ajaxReturnVars()));
}
public function ajaxProcessUpdateProductPrice()
@@ -1151,8 +1181,8 @@ class AdminCartsControllerCore extends AdminController
if (Configuration::get('PS_ALLOW_ADD_ALL_SERVICES_IN_BOOKING')) {
// get all services
$objProduct = new Product();
$hotelServiceProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE);
$roomTypeServiceProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE);
$hotelServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE);
$roomTypeServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE);
$serviceProducts = array_merge($roomTypeServiceProducts, $hotelServiceProducts);
} else {
$objRoomTypeServiceProduct = new RoomTypeServiceProduct();
@@ -1378,7 +1408,7 @@ class AdminCartsControllerCore extends AdminController
foreach ($languages as $lang) {
$objServiceProduct->link_rewrite[$lang['id_lang']] = Tools::link_rewrite($name);
}
$objServiceProduct->available_for_order = true;
$objServiceProduct->available_for_order = false;
$objServiceProduct->show_price = true;
$objServiceProduct->is_virtual = true;
$objServiceProduct->auto_add_to_cart = $autoAdded;
@@ -1392,6 +1422,10 @@ class AdminCartsControllerCore extends AdminController
// ======= Create Service product END =========
if ($objServiceProduct->save()) {
$objServiceProduct->updateCategories(array(
Configuration::get('PS_SERVICE_CATEGORY')
));
$objRoomTypeServiceProduct = new RoomTypeServiceProduct();
$objRoomTypeServiceProduct->addRoomProductLink(
$objServiceProduct->id,
@@ -1466,8 +1500,8 @@ class AdminCartsControllerCore extends AdminController
if (Configuration::get('PS_ALLOW_ADD_ALL_SERVICES_IN_BOOKING')) {
// get all services
$objProduct = new Product();
$hotelServiceProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE);
$roomTypeServiceProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE);
$hotelServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE);
$roomTypeServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE);
$serviceProducts = array_merge($roomTypeServiceProducts, $hotelServiceProducts);
} else {
$objRoomTypeServiceProduct = new RoomTypeServiceProduct();
@@ -1571,21 +1605,40 @@ class AdminCartsControllerCore extends AdminController
$result = true;
$objServiceProductCartDetail = new ServiceProductCartDetail();
foreach ($selectedServiceProducts as $idServiceProduct => $selected) {
$unitPrice = $serviceUnitPrices[$idServiceProduct];
$updateServicePriceOnly = false;
$quantity = 0;
$operator = 'down';
if ($selected) {
$operator = 'up';
} else {
$operator = 'down';
if ($idServiceProductCartDetail = $objServiceProductCartDetail->alreadyExists(
$objHotelCartBookingData->id_cart,
$idServiceProduct,
$idCartBooking
)) {
$objServiceProductCartDetail = new ServiceProductCartDetail($idServiceProductCartDetail);
if ($objServiceProductCartDetail->quantity > $serviceQuantities[$idServiceProduct]) {
$quantity = $objServiceProductCartDetail->quantity - $serviceQuantities[$idServiceProduct];
$operator = 'down';
} else if ($objServiceProductCartDetail->quantity < $serviceQuantities[$idServiceProduct]) {
$quantity = $serviceQuantities[$idServiceProduct] - $objServiceProductCartDetail->quantity;
} else {
// Only update the price no need to update quantity
$updateServicePriceOnly = true;
}
} else {
$quantity = $serviceQuantities[$idServiceProduct];
}
}
$quantity = $serviceQuantities[$idServiceProduct];
$unitPrice = $serviceUnitPrices[$idServiceProduct];
if ($result &= $objServiceProductCartDetail->updateCartServiceProduct(
if ($updateServicePriceOnly || ($result &= $objServiceProductCartDetail->updateCartServiceProduct(
$objHotelCartBookingData->id_cart,
$idServiceProduct,
$operator,
$quantity,
0,
$idCartBooking
)) {
))) {
$originalPrice = Product::getPriceStatic($idServiceProduct, false);
// if price is different than the original service price then update the price
if ($operator == 'up' && $originalPrice != $unitPrice) {

View File

@@ -748,6 +748,7 @@ class AdminModulesControllerCore extends AdminController
$modules_list_save = implode('|', $modules);
}
} elseif (($modules = Tools::getValue($key)) && $key != 'checkAndUpdate' && $key != 'updateAll') {
$modules = strip_tags($modules);
if (strpos($modules, '|')) {
$modules_list_save = $modules;
$modules = explode('|', $modules);

View File

@@ -146,6 +146,7 @@ class AdminNormalProductsControllerCore extends AdminController
}
}
$catFilterKey = $this->table.'Filter_a!id_category_default';
if (Tools::getValue('reset_filter_category')) {
$this->context->cookie->id_category_products_filter = false;
}
@@ -156,6 +157,9 @@ class AdminNormalProductsControllerCore extends AdminController
Tools::redirectAdmin($this->context->link->getAdminLink('AdminNormalProducts'));
}
}
if (!Tools::getValue($catFilterKey)) {
$this->context->cookie->id_category_products_filter = false;
}
/* Join categories table */
if ($id_category = (int)Tools::getValue('productFilter_cl!name')) {
$this->_category = new Category((int)$id_category);
@@ -167,6 +171,21 @@ class AdminNormalProductsControllerCore extends AdminController
} elseif ($id_category = $this->context->cookie->id_category_products_filter) {
$this->id_current_category = $id_category;
}
$idFilterCategory = false;
if (!Tools::isSubmit($catFilterKey)) {
$prefix = $this->getCookieFilterPrefix();
$idFilterCategory = $this->context->cookie->{$prefix.$catFilterKey};
}
if ($idFilterCategory) {
$this->id_current_category = $idFilterCategory;
$this->context->cookie->id_category_products_filter = $idFilterCategory;
} else {
$this->id_current_category = false;
$this->context->cookie->id_category_products_filter = false;
}
if ($this->id_current_category) {
$this->_category = new Category((int)$this->id_current_category);
} else {
@@ -557,8 +576,9 @@ class AdminNormalProductsControllerCore extends AdminController
public function getList($id_lang, $orderBy = null, $orderWay = null, $start = 0, $limit = null, $id_lang_shop = null)
{
$orderByPriceFinal = (empty($orderBy) ? ($this->context->cookie->__get($this->table.'Orderby') ? $this->context->cookie->__get($this->table.'Orderby') : 'id_'.$this->table) : $orderBy);
$orderWayPriceFinal = (empty($orderWay) ? ($this->context->cookie->__get($this->table.'Orderway') ? $this->context->cookie->__get($this->table.'Orderby') : 'ASC') : $orderWay);
$prefix = $this->getCookieFilterPrefix();
$orderByPriceFinal = (empty($orderBy) ? ($this->context->cookie->__get($prefix.$this->table.'Orderby') ? $this->context->cookie->__get($prefix.$this->table.'Orderby') : 'id_'.$this->table) : $orderBy);
$orderWayPriceFinal = (empty($orderWay) ? ($this->context->cookie->__get($prefix.$this->table.'Orderway') ? $this->context->cookie->__get($prefix.$this->table.'Orderby') : 'ASC') : $orderWay);
if ($orderByPriceFinal == 'price_final') {
$orderBy = 'id_'.$this->table;
$orderWay = 'ASC';
@@ -2567,9 +2587,10 @@ class AdminNormalProductsControllerCore extends AdminController
// If products from all categories are displayed, we don't want to use sorting by position
if (!$id_category) {
$this->_defaultOrderBy = $this->identifier;
if ($this->context->cookie->{$this->table.'Orderby'} == 'position') {
unset($this->context->cookie->{$this->table.'Orderby'});
unset($this->context->cookie->{$this->table.'Orderway'});
$prefix = $this->getCookieFilterPrefix();
if ($this->context->cookie->{$prefix.$this->table.'Orderby'} == 'position') {
unset($this->context->cookie->{$prefix.$this->table.'Orderby'});
unset($this->context->cookie->{$prefix.$this->table.'Orderway'});
}
}
if (!$id_category) {

View File

@@ -513,7 +513,7 @@ class AdminOrdersControllerCore extends AdminController
if ($this->tabAccess['edit'] === 1) {
if (((int) $order->isReturnable())
&& !$order->hasCompletelyRefunded(Order::ORDER_COMPLETE_CANCELLATION_OR_REFUND_REQUEST_FLAG)
&& !$order->hasCompletelyRefunded(Order::ORDER_COMPLETE_CANCELLATION_OR_REFUND_REQUEST_FLAG, 0, 0)
) {
$orderTotalPaid = $order->getTotalPaid();
$orderDiscounts = $order->getCartRules();
@@ -537,6 +537,18 @@ class AdminOrdersControllerCore extends AdminController
return $res;
}
public function initToolbarTitle()
{
parent::initToolbarTitle();
switch ($this->display) {
case '':
case 'list':
array_pop($this->toolbar_title);
$this->toolbar_title[] = $this->l('Orders');
break;
}
}
public function ajaxProcessInitBookingDocumentsModal()
{
$response['hasError'] = 1;
@@ -977,8 +989,8 @@ class AdminOrdersControllerCore extends AdminController
if (Configuration::get('PS_ALLOW_ADD_ALL_SERVICES_IN_BOOKING')) {
// get all services
$objProduct = new Product();
$hotelServiceProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE);
$roomTypeServiceProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE);
$hotelServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE);
$roomTypeServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE);
$serviceProducts = array_merge($roomTypeServiceProducts, $hotelServiceProducts);
} else {
$objRoomTypeServiceProduct = new RoomTypeServiceProduct();
@@ -2022,6 +2034,7 @@ class AdminOrdersControllerCore extends AdminController
if (Validate::isLoadedObject($objCart)) {
$this->context->cart = $objCart;
$this->context->currency = new Currency((int)$objCart->id_currency);
$this->context->customer = new Customer((int) $objCart->id_customer);
$this->errors = HotelCartBookingData::validateCartBookings(!Configuration::get('PS_ALLOW_ADD_ALL_SERVICES_IN_BOOKING'));
@@ -2076,8 +2089,6 @@ class AdminOrdersControllerCore extends AdminController
}
if (!count($this->errors)) {
$this->context->currency = new Currency((int) $objCart->id_currency);
$this->context->customer = new Customer((int) $objCart->id_customer);
// Set payment module details
$objPaymentModule = new BoOrder();
@@ -3560,7 +3571,6 @@ class AdminOrdersControllerCore extends AdminController
'returns' => OrderReturn::getOrdersReturn($order->id_customer, $order->id),
'refundReqBookings' => $refundReqBookings,
'refundReqProducts' => $refundReqProducts,
'completeRefundRequestOrCancel' => $order->hasCompletelyRefunded(Order::ORDER_COMPLETE_CANCELLATION_OR_REFUND_REQUEST_FLAG),
'refundedAmount' => $refundedAmount,
'totalDemandsPriceTI' => $totalDemandsPriceTI,
'totalDemandsPriceTE' => $totalDemandsPriceTE,
@@ -4684,7 +4694,7 @@ class AdminOrdersControllerCore extends AdminController
}
$obj_booking_detail = new HotelBookingDetail();
$num_days = HotelHelper::getNumberOfDays($date_from, $date_to);
$product_informations['product_quantity'] = $product_informations['product_quantity'] * (int) $num_days;
$product_informations['product_quantity'] = $req_rm * (int) $num_days;
$obj_room_type = new HotelRoomType();
$room_info_by_id_product = $obj_room_type->getRoomTypeInfoByIdProduct($product_informations['product_id']);
@@ -4699,9 +4709,7 @@ class AdminOrdersControllerCore extends AdminController
'date_to' => $date_to,
'hotel_id' => $id_hotel,
'id_room_type' => $product_informations['product_id'],
'only_search_data' => 1,
'id_cart' => $id_cart,
'id_guest' => $id_guest,
'only_search_data' => 1
);
$hotel_room_data = $objBookingDetail->dataForFrontSearch($bookingParams);
$total_available_rooms = $hotel_room_data['stats']['num_avail'];
@@ -5601,26 +5609,38 @@ class AdminOrdersControllerCore extends AdminController
*/
public function updateOrderStatusOnOrderChange($objOrder)
{
// check if new order amount is greater that old order amount and order payment is accepted
// then update order status to partial payment accepted
$currentOrderState = $objOrder->getCurrentOrderState();
$psOsPartialPaymentAccepted = Configuration::get('PS_OS_PARTIAL_PAYMENT_ACCEPTED');
if ($currentOrderState->paid == 1 && $currentOrderState->id != $psOsPartialPaymentAccepted) {
// calculate due amount
$dueAmount = $objOrder->total_paid_tax_incl - $objOrder->total_paid_real;
if ($dueAmount > 0) {
// now change order status to partial payment
$objOrderHistory = new OrderHistory();
$objOrderHistory->id_order = $objOrder->id;
$objOrderHistory->id_employee = (int) $this->context->employee->id;
// If order is completely refunded or cancelled then change the order state
if ($idOrderState = $objOrder->getOrderCompleteRefundStatus()) {
$objOrderHistory = new OrderHistory();
$objOrderHistory->id_order = (int)$objOrder->id;
$useExistingPayment = false;
if (!$objOrder->hasInvoice()) {
$useExistingPayment = true;
}
$objOrderHistory->changeIdOrderState($idOrderState, $objOrder, $useExistingPayment);
$objOrderHistory->add();
} else {
// check if new order amount is greater that old order amount and order payment is accepted
// then update order status to partial payment accepted
$currentOrderState = $objOrder->getCurrentOrderState();
$psOsPartialPaymentAccepted = Configuration::get('PS_OS_PARTIAL_PAYMENT_ACCEPTED');
if ($currentOrderState->paid == 1 && $currentOrderState->id != $psOsPartialPaymentAccepted) {
// calculate due amount
$dueAmount = $objOrder->total_paid_tax_incl - $objOrder->total_paid_real;
if ($dueAmount > 0) {
// now change order status to partial payment
$objOrderHistory = new OrderHistory();
$objOrderHistory->id_order = $objOrder->id;
$objOrderHistory->id_employee = (int) $this->context->employee->id;
$useExistingPayment = false;
if (!$objOrder->hasInvoice()) {
$useExistingPayment = true;
$useExistingPayment = false;
if (!$objOrder->hasInvoice()) {
$useExistingPayment = true;
}
$objOrderHistory->changeIdOrderState($psOsPartialPaymentAccepted, $objOrder, $useExistingPayment);
$objOrderHistory->add();
}
$objOrderHistory->changeIdOrderState($psOsPartialPaymentAccepted, $objOrder, $useExistingPayment);
$objOrderHistory->add();
}
}
}
@@ -5678,10 +5698,12 @@ class AdminOrdersControllerCore extends AdminController
$product_quantity = (int) HotelHelper::getNumberOfDays($new_date_from, $new_date_to);
$old_product_quantity = (int) HotelHelper::getNumberOfDays($old_date_from, $old_date_to);
$qty_diff = $product_quantity - $old_product_quantity;
$occupancy = array_shift(Tools::getValue('occupancy'));
$occupancy = Tools::getValue('occupancy');
$occupancy = array_shift($occupancy);
$adults = $occupancy['adults'];
$children = $occupancy['children'];
$child_ages = $occupancy['child_ages'];
$child_ages = isset($occupancy['child_ages']) ? $occupancy['child_ages'] : false;
$totalRoomPriceBeforeTE = $obj_booking_detail->total_price_tax_excl;
$totalRoomPriceBeforeTI = $obj_booking_detail->total_price_tax_incl;
@@ -6346,40 +6368,43 @@ class AdminOrdersControllerCore extends AdminController
}
// update order detail for selected aditional services
$objServiceProductCartDetail = new ServiceProductCartDetail();
foreach ($selectedAdditonalServices as $service) {
$serviceOrderDetail = new OrderDetail($service['id_order_detail']);
if (isset($selectedAdditonalServices[$idHotelBooking])) {
$objServiceProductCartDetail = new ServiceProductCartDetail();
foreach ($selectedAdditonalServices[$idHotelBooking]['additional_services'] as $service) {
$serviceOrderDetail = new OrderDetail($service['id_order_detail']);
$cart_quantity = $service['quantity'];
if ($service['price_calculation_method'] == Product::PRICE_CALCULATION_METHOD_PER_DAY) {
$cart_quantity = $cart_quantity * $product_quantity;
}
if ($cart_quantity >= $serviceOrderDetail->product_quantity) {
$serviceOrderDetail->delete();
} else {
$serviceOrderDetail->total_price_tax_incl -= $service['total_price_tax_incl'];
$serviceOrderDetail->total_price_tax_excl -= $service['total_price_tax_excl'];
$serviceOrderDetail->product_quantity -= $cart_quantity;
$cart_quantity = $service['quantity'];
if ($service['price_calculation_method'] == Product::PRICE_CALCULATION_METHOD_PER_DAY) {
$cart_quantity = $cart_quantity * $product_quantity;
}
if ($cart_quantity >= $serviceOrderDetail->product_quantity) {
$serviceOrderDetail->delete();
} else {
$serviceOrderDetail->total_price_tax_incl -= $service['total_price_tax_incl'];
$serviceOrderDetail->total_price_tax_excl -= $service['total_price_tax_excl'];
$serviceOrderDetail->product_quantity -= $cart_quantity;
// update taxes
$res &= $serviceOrderDetail->updateTaxAmount($order);
// update taxes
$res &= $serviceOrderDetail->updateTaxAmount($order);
// Save order detail
$res &= $serviceOrderDetail->update();
}
// Save order detail
$res &= $serviceOrderDetail->update();
}
if (isset($roomHtlCartInfo['id'])) {
if ($idServiceProductCartDetail = $objServiceProductCartDetail->alreadyExists(
$service['id_product'],
$service['id_cart'],
$roomHtlCartInfo['id']
)) {
$objServiceProductCartDetail = new ServiceProductCartDetail((int) $idServiceProductCartDetail);
$serviceQuantity = $objServiceProductCartDetail->quantity;
if ($objServiceProductCartDetail->delete()
&& Validate::isLoadedObject(new Product((int) $service['id_product']))
) {
$objCart = new Cart($service['id_cart']);
$objCart->updateQty((int)abs($serviceQuantity), $service['id_product'], null, false, 'down');
if (isset($roomHtlCartInfo['id'])) {
if ($idServiceProductCartDetail = $objServiceProductCartDetail->alreadyExists(
$service['id_product'],
$selectedAdditonalServices[$idHotelBooking]['id_cart'],
$roomHtlCartInfo['id']
)) {
$objServiceProductCartDetail = new ServiceProductCartDetail((int) $idServiceProductCartDetail);
$serviceQuantity = $objServiceProductCartDetail->quantity;
if ($objServiceProductCartDetail->delete()
&& Validate::isLoadedObject(new Product((int) $service['id_product']))
) {
$objCart = new Cart($selectedAdditonalServices[$idHotelBooking]['id_cart']);
$objCart->updateQty((int)abs($serviceQuantity), $service['id_product'], null, false, 'down');
}
}
}
}
@@ -6501,7 +6526,8 @@ class AdminOrdersControllerCore extends AdminController
'invoices_collection' => $invoice_collection,
'current_id_lang' => Context::getContext()->language->id,
'link' => Context::getContext()->link,
'current_index' => self::$currentIndex
'current_index' => self::$currentIndex,
'can_edit' => ($this->tabAccess['edit'] === 1),
));
$this->sendChangedNotification($order);
@@ -6652,10 +6678,11 @@ class AdminOrdersControllerCore extends AdminController
$product_quantity = (int) HotelHelper::getNumberOfDays($new_date_from, $new_date_to);
$old_product_quantity = (int) HotelHelper::getNumberOfDays($old_date_from, $old_date_to);
$qty_diff = $product_quantity - $old_product_quantity;
$occupancy = array_shift(Tools::getValue('occupancy'));
$occupancy = Tools::getValue('occupancy');
$occupancy = array_shift($occupancy);
$adults = $occupancy['adults'];
$children = $occupancy['children'];
$child_ages = $occupancy['child_ages'];
$child_ages = isset($occupancy['child_ages']) ? $occupancy['child_ages'] : false;
// If order is refunded, the validate changes which are not allowed
$objOrderReturn = new OrderReturn();
@@ -7188,8 +7215,8 @@ class AdminOrdersControllerCore extends AdminController
if (Configuration::get('PS_ALLOW_ADD_ALL_SERVICES_IN_BOOKING')) {
// get all services
$objProduct = new Product();
$hotelServiceProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE);
$roomTypeServiceProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE);
$hotelServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE);
$roomTypeServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE);
$serviceProducts = array_merge($roomTypeServiceProducts, $hotelServiceProducts);
} else {
$objRoomTypeServiceProduct = new RoomTypeServiceProduct();
@@ -7197,9 +7224,9 @@ class AdminOrdersControllerCore extends AdminController
}
if ($serviceProducts) {
if (isset($additionalServices[$idHtlBookingDetail]) && $additionalServices[$idHtlBookingDetail]) {
foreach ($serviceProducts as $key => $servProduct) {
$serviceProducts[$key]['price_tax_exc'] = $servProduct['price'];
foreach ($serviceProducts as $key => $servProduct) {
$serviceProducts[$key]['price_tax_exc'] = $servProduct['price'];
if (isset($additionalServices[$idHtlBookingDetail]) && $additionalServices[$idHtlBookingDetail]) {
if (in_array($servProduct['id_product'], array_column($additionalServices[$idHtlBookingDetail]['additional_services'], 'id_product'))) {
unset($serviceProducts[$key]);
}
@@ -7714,10 +7741,10 @@ class AdminOrdersControllerCore extends AdminController
$autoAdded = Tools::getValue('new_service_auto_added');
// adjust values for auto added services
$objOrderDetail = new OrderDetail($objHotelBookingDetail->id_order_detail);
if ($autoAdded) {
$productQty = 1;
// check if booking room type tax rule is still exist
$objOrderDetail = new OrderDetail($objHotelBookingDetail->id_order_detail);
if (Validate::isLoadedObject($objTaxRuleGroup = new TaxRulesGroup($objOrderDetail->id_tax_rules_group))) {
$idTaxRuleGroup = $objOrderDetail->id_tax_rules_group;
}
@@ -7858,7 +7885,7 @@ class AdminOrdersControllerCore extends AdminController
$objHotelBookingDetail->date_to,
$objCart->id
) / $numDays;
$unitPriceTaxExcl = Product::getServiceProductPrice(
$unitPriceTaxIncl = Product::getServiceProductPrice(
(int)$product['id_product'],
0,
$roomHtlCartInfo['id_hotel'],
@@ -8044,7 +8071,7 @@ class AdminOrdersControllerCore extends AdminController
&& Validate::isLoadedObject(new Product($objServiceProductOrderDetail->id_product))
) {
$objCart = new Cart($objServiceProductOrderDetail->id_cart);
$objCart->updateQty((int) abs($quantity), $objServiceProductOrderDetail->id_product, null, false, 'down');
$objCart->updateQty((int) abs($quantity), $objServiceProductOrderDetail->id_product, null, 0, 'down', 0, null, 0);
}
}
}

View File

@@ -169,14 +169,36 @@ class AdminProductsControllerCore extends AdminController
$_POST['productFilter_a!id_category_default'] = $id_category;
}
$catFilterKey = $this->table.'Filter_a!id_category_default';
if (!Tools::getValue($catFilterKey)) {
$this->context->cookie->id_category_room_types_filter = false;
}
if (($id_category = (int)Tools::getValue('id_category'))
|| ($id_category = (int) Tools::getValue('productFilter_a!id_category_default'))
|| ($id_category = (int)Tools::getValue($catFilterKey))
) {
$this->id_current_category = $id_category;
$this->context->cookie->id_category_room_types_filter = $id_category;
if (Tools::isSubmit('submitResetproduct')) {
$this->id_current_category = false;
$this->context->cookie->id_category_room_types_filter = false;
}
} elseif ($id_category = $this->context->cookie->id_category_room_types_filter) {
$this->id_current_category = $id_category;
} else {
$idFilterCategory = false;
if (!Tools::isSubmit($catFilterKey)) {
$prefix = $this->getCookieFilterPrefix();
$idFilterCategory = $this->context->cookie->{$prefix.$catFilterKey};
}
if ($idFilterCategory) {
$this->id_current_category = $idFilterCategory;
$this->context->cookie->id_category_room_types_filter = $idFilterCategory;
} else {
$this->context->cookie->id_category_room_types_filter = false;
}
}
if ($this->id_current_category) {
$this->_category = new Category((int)$this->id_current_category);
$this->position_group_identifier = (int) $this->id_current_category;
@@ -639,8 +661,9 @@ class AdminProductsControllerCore extends AdminController
public function getList($id_lang, $orderBy = null, $orderWay = null, $start = 0, $limit = null, $id_lang_shop = null)
{
$orderByPriceFinal = (empty($orderBy) ? ($this->context->cookie->__get($this->table.'Orderby') ? $this->context->cookie->__get($this->table.'Orderby') : 'id_'.$this->table) : $orderBy);
$orderWayPriceFinal = (empty($orderWay) ? ($this->context->cookie->__get($this->table.'Orderway') ? $this->context->cookie->__get($this->table.'Orderby') : 'ASC') : $orderWay);
$prefix = $this->getCookieFilterPrefix();
$orderByPriceFinal = (empty($orderBy) ? ($this->context->cookie->__get($prefix.$this->table.'Orderby') ? $this->context->cookie->__get($prefix.$this->table.'Orderby') : 'id_'.$this->table) : $orderBy);
$orderWayPriceFinal = (empty($orderWay) ? ($this->context->cookie->__get($prefix.$this->table.'Orderway') ? $this->context->cookie->__get($prefix.$this->table.'Orderby') : 'ASC') : $orderWay);
if ($orderByPriceFinal == 'price_final') {
$orderBy = 'id_'.$this->table;
$orderWay = 'ASC';
@@ -2532,9 +2555,10 @@ class AdminProductsControllerCore extends AdminController
// If products from all categories are displayed, we don't want to use sorting by position
if (!(int) $this->id_current_category) {
$this->_defaultOrderBy = $this->identifier;
if ($this->context->cookie->{$this->table.'Orderby'} == 'position') {
unset($this->context->cookie->{$this->table.'Orderby'});
unset($this->context->cookie->{$this->table.'Orderway'});
$prefix = $this->getCookieFilterPrefix();
if ($this->context->cookie->{$prefix.$this->table.'Orderby'} == 'position') {
unset($this->context->cookie->{$prefix.$this->table.'Orderby'});
unset($this->context->cookie->{$prefix.$this->table.'Orderway'});
}
}
}

View File

@@ -108,16 +108,11 @@ class AdminSlipControllerCore extends AdminController
parent::__construct();
$this->_where = Shop::addSqlRestriction(false, 'o');
$this->_conf['33'] = $this->l('Voucher generated successfully');
}
public function initPageHeaderToolbar()
{
$this->page_header_toolbar_btn['generate_pdf'] = array(
'href' => self::$currentIndex.'&token='.$this->token,
'desc' => $this->l('Generate PDF', null, null, false),
'icon' => 'process-icon-save-date'
);
parent::initPageHeaderToolbar();
}
@@ -178,6 +173,25 @@ class AdminSlipControllerCore extends AdminController
}
$this->errors[] = $this->l('No order slips were found for this period.');
}
} else if (Tools::isSubmit('generateVoucher')) {
if (($idOrderSlip = Tools::getValue('id_order_slip'))
&& Validate::isLoadedObject($objOrderSlip = new OrderSlip($idOrderSlip))
) {
if ($objOrderSlip->redeem_status == OrderSlip::REDEEM_STATUS_REDEEMED) {
$this->errors[] = Tools::displayError('The credit slip has already been redeemed.');
}
if (!count($this->errors)) {
if ($objOrderSlip->generateVoucher()) {
Tools::redirectAdmin(self::$currentIndex.'&token='.$this->token.'&conf=33');
} else {
$this->errors[] = Tools::displayError('The voucher code for this credit slip could not be generated.');
}
}
} else {
$this->errors[] = Tools::displayError('Credit slip not found.');
}
} else {
return parent::postProcess();
}
@@ -235,10 +249,7 @@ class AdminSlipControllerCore extends AdminController
public function initToolbar()
{
$this->toolbar_btn['save-date'] = array(
'href' => '#',
'desc' => $this->l('Generate PDF file')
);
$this->toolbar_btn = array();
}
public function printPDFIcons($id_order_slip, $tr)
@@ -267,15 +278,12 @@ class AdminSlipControllerCore extends AdminController
public function displayVoucherLink($idCartRule, $row)
{
if ($row['redeem_status'] == OrderSlip::REDEEM_STATUS_REDEEMED && $idCartRule) {
$this->context->smarty->assign(array(
'id_cart_rule' => (int) $idCartRule,
));
$this->context->smarty->assign(array(
'id_cart_rule' => (int) $idCartRule,
'row' => $row
));
return $this->createTemplate('_display_voucher_link.tpl')->fetch();
}
return '--';
return $this->createTemplate('_display_voucher_link.tpl')->fetch();
}
public function displayStatusChangeLink($token, $id)
@@ -317,19 +325,19 @@ class AdminSlipControllerCore extends AdminController
'modal_content' => $modalConfirmDelete->fetch(),
'modal_actions' => array(
array(
'type' => 'button',
'type' => 'link',
'href' => '#',
'class' => 'process_update btn-primary',
'label' => $this->l('Change status'),
),
),
));
$response['modalHtml'] = $tpl->fetch();
}
}
$response['success'] = true;
die(Tools::jsonEncode($response));
$this->ajaxDie(json_encode($response));
}
public function setMedia()

View File

@@ -298,6 +298,8 @@ class ContactControllerCore extends FrontController
$gblHtlAddress = $shopAddress;
$gblHtlPhone = Configuration::get('PS_SHOP_PHONE');
$gblHtlEmail = Configuration::get('PS_SHOP_EMAIL');
$gblHtlRegistrationNumber = Configuration::get('PS_SHOP_DETAILS');
$gblHtlFax = Configuration::get('PS_SHOP_FAX');
$objHotelInfo = new HotelBranchInformation();
if ($hotelsInfo = $objHotelInfo->hotelBranchesInfo(false, 1, 1)) {
foreach ($hotelsInfo as &$hotel) {
@@ -333,6 +335,8 @@ class ContactControllerCore extends FrontController
'gblHtlEmail' => $gblHtlEmail,
'displayHotelMap' => $displayHotelMap,
'gblHtlAddress' => $gblHtlAddress,
'gblHtlRegistrationNumber' => $gblHtlRegistrationNumber,
'gblHtlFax' => $gblHtlFax,
'contacts' => Contact::getContacts($this->context->language->id),
'message' => html_entity_decode(Tools::getValue('message')),
'contactKey' => $contactKey,

View File

@@ -368,7 +368,7 @@ class OrderDetailControllerCore extends FrontController
0,
0,
0,
1,
1,
1,
1
);
@@ -464,7 +464,7 @@ class OrderDetailControllerCore extends FrontController
'returns' => OrderReturn::getOrdersReturn($order->id_customer, $order->id),
'refundReqBookings' => $refundReqBookings,
'refundReqProducts' => $refundReqProducts,
'completeRefundRequestOrCancel' => $order->hasCompletelyRefunded(Order::ORDER_COMPLETE_CANCELLATION_OR_REFUND_REQUEST_FLAG),
'completeRefundRequestOrCancel' => $order->hasCompletelyRefunded(Order::ORDER_COMPLETE_CANCELLATION_OR_REFUND_REQUEST_FLAG, 0, 0),
'refundedAmount' => $refundedAmount,
'shop_name' => strval(Configuration::get('PS_SHOP_NAME')),
'order' => $order,

View File

@@ -572,7 +572,7 @@ class OrderOpcControllerCore extends ParentOrderController
$date_from = Tools::getValue('date_from');
$date_to = Tools::getValue('date_to');
$objCartBookingData = new HotelCartBookingData();
if ($cart_data_dlt = $objCartBookingData->deleteRoomDataFromOrderLine(
if ($objCartBookingData->deleteRoomDataFromOrderLine(
$this->context->cart->id,
$this->context->cart->id_guest,
$id_product,

View File

@@ -436,7 +436,7 @@ class ProductControllerCore extends FrontController
'PS_SERVICE_PRODUCT_CATEGORY_FILTER' => Configuration::get('PS_SERVICE_PRODUCT_CATEGORY_FILTER'),
'bed_types_info' => $bedTypes,
'selected_bed_types' => $selectedBedTypes,
'dimension_unit' => Configuration::get('PS_DIMENSION_UNIT'),
'dimension_unit' => Configuration::get('WK_DIMENSION_UNIT', $this->context->language->id),
)
);

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Открийте вашия уебсайт',
'Share your experience with your friends!' => 'Споделете опита си с приятелите си!',
'I just built an online hotel booking website with QloApps!' => 'Току-що създадох уебсайт за онлайн резервация на хотел с QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Вижте всички функции тук: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Вижте всички функции тук: https://docs.qloapps.com/',
'Tweet' => 'Tweet',
'Share' => 'Дял',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'আপনার ওয়েবসাইট আবিষ্কার করুন',
'Share your experience with your friends!' => 'আপনার বন্ধুদের সাথে আপনার অভিজ্ঞতা শেয়ার করুন!',
'I just built an online hotel booking website with QloApps!' => 'আমি এইমাত্র QloApps দিয়ে একটি অনলাইন হোটেল বুকিং ওয়েবসাইট তৈরি করেছি!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'এখানে সমস্ত বৈশিষ্ট্য দেখুন: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'এখানে সমস্ত বৈশিষ্ট্য দেখুন: https://docs.qloapps.com/',
'Tweet' => 'টুইট',
'Share' => 'শেয়ার করুন',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Descubra o seu site',
'Share your experience with your friends!' => 'Compartilhe sua experiência com seus amigos!',
'I just built an online hotel booking website with QloApps!' => 'Acabei de criar um site de reservas de hotéis online com QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Veja todos os recursos aqui: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Veja todos os recursos aqui: https://docs.qloapps.com/',
'Tweet' => 'Tuitar',
'Share' => 'Compartilhar',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Descobriu el vostre lloc web',
'Share your experience with your friends!' => 'Comparteix la teva experiència amb els teus amics!',
'I just built an online hotel booking website with QloApps!' => 'Acabo de crear un lloc web de reserves d\'hotels en línia amb QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Consulteu totes les funcions aquí: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Consulteu totes les funcions aquí: https://docs.qloapps.com/',
'Tweet' => 'Tuitejar',
'Share' => 'Compartir',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Objevte svůj web',
'Share your experience with your friends!' => 'Podělte se o své zkušenosti se svými přáteli!',
'I just built an online hotel booking website with QloApps!' => 'Právě jsem vytvořil webovou stránku pro online rezervaci hotelů s QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Podívejte se na všechny funkce zde: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Podívejte se na všechny funkce zde: https://docs.qloapps.com/',
'Tweet' => 'tweet',
'Share' => 'Podíl',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -204,7 +204,7 @@ return array(
'Discover Your Website' => 'Entdecken Sie Ihre Website',
'Share your experience with your friends!' => 'Teilen Sie Ihre Erfahrungen mit Ihren Freunden!',
'I just built an online hotel booking website with QloApps!' => 'Ich habe gerade mit QloApps eine Online-Website zur Hotelbuchung erstellt!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Alle Funktionen finden Sie hier: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Alle Funktionen finden Sie hier: https://docs.qloapps.com/',
'Tweet' => 'Tweet',
'Share' => 'Aktie',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Discover Your Website',
'Share your experience with your friends!' => 'Share your experience with your friends!',
'I just built an online hotel booking website with QloApps!' => 'I just built an online hotel booking website with QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'See all the features here : https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'See all the features here : https://docs.qloapps.com/',
'Tweet' => 'Tweet',
'Share' => 'Share',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Descubra su sitio web',
'Share your experience with your friends!' => '¡Comparte tu experiencia con tus amigos!',
'I just built an online hotel booking website with QloApps!' => '¡Acabo de crear un sitio web de reservas de hoteles en línea con QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Vea todas las funciones aquí: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Vea todas las funciones aquí: https://docs.qloapps.com/',
'Tweet' => 'Pío',
'Share' => 'Compartir',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'وب سایت خود را کشف کنید',
'Share your experience with your friends!' => 'تجربه خود را با دوستان خود به اشتراک بگذارید!',
'I just built an online hotel booking website with QloApps!' => 'من به تازگی یک وب سایت رزرو هتل آنلاین با QloApps ایجاد کردم!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'همه ویژگی ها را اینجا ببینید: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'همه ویژگی ها را اینجا ببینید: https://docs.qloapps.com/',
'Tweet' => 'توییت',
'Share' => 'اشتراک گذاری',
'Google+' => '+Google',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Découvrez votre site Web',
'Share your experience with your friends!' => 'Partagez votre expérience avec vos amis !',
'I just built an online hotel booking website with QloApps!' => 'Je viens de créer un site de réservation d\'hôtel en ligne avec QloApps !',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Voir toutes les fonctionnalités ici : https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Voir toutes les fonctionnalités ici : https://docs.qloapps.com/',
'Tweet' => 'Tweeter',
'Share' => 'Partager',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'גלה את האתר שלך',
'Share your experience with your friends!' => 'שתף את החוויה שלך עם החברים שלך!',
'I just built an online hotel booking website with QloApps!' => 'זה עתה בניתי אתר אינטרנט להזמנת מלונות עם QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'ראה את כל התכונות כאן: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'ראה את כל התכונות כאן: https://docs.qloapps.com/',
'Tweet' => 'צִיוּץ',
'Share' => 'לַחֲלוֹק',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Otkrijte svoju web stranicu',
'Share your experience with your friends!' => 'Podijelite svoje iskustvo s prijateljima!',
'I just built an online hotel booking website with QloApps!' => 'Upravo sam izradio web mjesto za online rezervaciju hotela s QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Pogledajte sve značajke ovdje: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Pogledajte sve značajke ovdje: https://docs.qloapps.com/',
'Tweet' => 'Cvrkut',
'Share' => 'Udio',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Fedezze fel webhelyét',
'Share your experience with your friends!' => 'Oszd meg tapasztalataidat barátaiddal!',
'I just built an online hotel booking website with QloApps!' => 'Most építettem egy online szállodafoglalási webhelyet a QloApps segítségével!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Tekintse meg az összes funkciót itt: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Tekintse meg az összes funkciót itt: https://docs.qloapps.com/',
'Tweet' => 'Csipog',
'Share' => 'Ossza meg',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Temukan Situs Web Anda',
'Share your experience with your friends!' => 'Bagikan pengalaman Anda dengan teman-teman Anda!',
'I just built an online hotel booking website with QloApps!' => 'Saya baru saja membuat situs pemesanan hotel online dengan QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Lihat semua fitur di sini: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Lihat semua fitur di sini: https://docs.qloapps.com/',
'Tweet' => 'Menciak',
'Share' => 'Membagikan',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Scopri il tuo sito web',
'Share your experience with your friends!' => 'Condividi la tua esperienza con i tuoi amici!',
'I just built an online hotel booking website with QloApps!' => 'Ho appena creato un sito web di prenotazione di hotel online con QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Vedi tutte le funzionalità qui: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Vedi tutte le funzionalità qui: https://docs.qloapps.com/',
'Tweet' => 'Twitta',
'Share' => 'Condividere',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Atraskite savo svetainę',
'Share your experience with your friends!' => 'Pasidalinkite savo patirtimi su draugais!',
'I just built an online hotel booking website with QloApps!' => 'Ką tik sukūriau internetinę viešbučių užsakymo svetainę su QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Peržiūrėkite visas funkcijas čia: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Peržiūrėkite visas funkcijas čia: https://docs.qloapps.com/',
'Tweet' => 'Tviteryje',
'Share' => 'Dalintis',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Откријте ја вашата веб-страница',
'Share your experience with your friends!' => 'Споделете го вашето искуство со вашите пријатели!',
'I just built an online hotel booking website with QloApps!' => 'Само што изградив веб-страница за онлајн резервации на хотели со QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Погледнете ги сите карактеристики овде: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Погледнете ги сите карактеристики овде: https://docs.qloapps.com/',
'Tweet' => 'Твитнете',
'Share' => 'Споделете',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Ontdek uw website',
'Share your experience with your friends!' => 'Deel uw ervaring met uw vrienden!',
'I just built an online hotel booking website with QloApps!' => 'Ik heb zojuist een online hotelboekingswebsite gebouwd met QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Bekijk hier alle functies: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Bekijk hier alle functies: https://docs.qloapps.com/',
'Tweet' => 'Tweeten',
'Share' => 'Deel',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Oppdag nettstedet ditt',
'Share your experience with your friends!' => 'Del opplevelsen din med vennene dine!',
'I just built an online hotel booking website with QloApps!' => 'Jeg har nettopp bygget et nettsted for hotellbestilling på nett med QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Se alle funksjonene her: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Se alle funksjonene her: https://docs.qloapps.com/',
'Tweet' => 'kvitring',
'Share' => 'Dele',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Odkryj swoją witrynę',
'Share your experience with your friends!' => 'Podziel się swoim doświadczeniem ze znajomymi!',
'I just built an online hotel booking website with QloApps!' => 'Właśnie zbudowałem witrynę internetową do rezerwacji hoteli online za pomocą QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Zobacz wszystkie funkcje tutaj: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Zobacz wszystkie funkcje tutaj: https://docs.qloapps.com/',
'Tweet' => 'Ćwierkać',
'Share' => 'Udział',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Descubra o seu site',
'Share your experience with your friends!' => 'Compartilhe sua experiência com seus amigos!',
'I just built an online hotel booking website with QloApps!' => 'Acabei de criar um site de reservas de hotéis online com QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Veja todos os recursos aqui: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Veja todos os recursos aqui: https://docs.qloapps.com/',
'Tweet' => 'Tuitar',
'Share' => 'Compartilhar',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Découvrez votre site Web',
'Share your experience with your friends!' => 'Partagez votre expérience avec vos amis !',
'I just built an online hotel booking website with QloApps!' => 'Je viens de créer un site de réservation d\'hôtel en ligne avec QloApps !',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Voir toutes les fonctionnalités ici : https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Voir toutes les fonctionnalités ici : https://docs.qloapps.com/',
'Tweet' => 'Tweeter',
'Share' => 'Partager',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Descoperiți site-ul dvs',
'Share your experience with your friends!' => 'Împărtășește-ți experiența cu prietenii tăi!',
'I just built an online hotel booking website with QloApps!' => 'Tocmai am creat un site web de rezervare hotelieră online cu QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Vezi toate caracteristicile aici: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Vezi toate caracteristicile aici: https://docs.qloapps.com/',
'Tweet' => 'Tweet',
'Share' => 'Acțiune',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Откройте для себя свой веб-сайт',
'Share your experience with your friends!' => 'Поделитесь своим опытом с друзьями!',
'I just built an online hotel booking website with QloApps!' => 'Я только что создал сайт онлайн-бронирования отелей с помощью QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Посмотреть все функции можно здесь: https://qloapps.com/qlo-reservation-system/.',
'See all the features here : https://docs.qloapps.com/' => 'Посмотреть все функции можно здесь: https://docs.qloapps.com/.',
'Tweet' => 'Твитнуть',
'Share' => 'Делиться',
'Google+' => 'Гугл+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Odkrijte svoje spletno mesto',
'Share your experience with your friends!' => 'Delite svojo izkušnjo s prijatelji!',
'I just built an online hotel booking website with QloApps!' => 'Pravkar sem ustvaril spletno mesto za rezervacije hotelov s QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Oglejte si vse funkcije tukaj: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Oglejte si vse funkcije tukaj: https://docs.qloapps.com/',
'Tweet' => 'Tweet',
'Share' => 'Deliti',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Откријте своју веб локацију',
'Share your experience with your friends!' => 'Поделите своје искуство са пријатељима!',
'I just built an online hotel booking website with QloApps!' => 'Управо сам направио веб локацију за резервације хотела на мрежи са QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Погледајте све функције овде: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Погледајте све функције овде: https://docs.qloapps.com/',
'Tweet' => 'Твеет',
'Share' => 'Објави',
'Google+' => 'Гоогле+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Upptäck din webbplats',
'Share your experience with your friends!' => 'Dela din upplevelse med dina vänner!',
'I just built an online hotel booking website with QloApps!' => 'Jag har precis byggt en webbsida för hotellbokning online med QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Se alla funktioner här: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Se alla funktioner här: https://docs.qloapps.com/',
'Tweet' => 'Tweet',
'Share' => 'Dela med sig',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Web Sitenizi Keşfedin',
'Share your experience with your friends!' => 'Deneyiminizi arkadaşlarınızla paylaşın!',
'I just built an online hotel booking website with QloApps!' => 'Az önce QloApps ile bir çevrimiçi otel rezervasyon web sitesi oluşturdum!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Tüm özellikleri burada görün: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Tüm özellikleri burada görün: https://docs.qloapps.com/',
'Tweet' => 'Cıvıldamak',
'Share' => 'Paylaşmak',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => '發現您的網站',
'Share your experience with your friends!' => '與您的朋友分享您的經驗!',
'I just built an online hotel booking website with QloApps!' => '我剛剛使用 QloApps 建立了一個線上飯店預訂網站!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => '在這裡查看所有功能:https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => '在這裡查看所有功能:https://docs.qloapps.com/',
'Tweet' => '鳴叫',
'Share' => '分享',
'Google+' => '谷歌+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => 'Khám phá trang web của bạn',
'Share your experience with your friends!' => 'Chia sẻ kinh nghiệm của bạn với bạn bè của bạn!',
'I just built an online hotel booking website with QloApps!' => 'Tôi vừa xây dựng một trang web đặt phòng khách sạn trực tuyến với QloApps!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => 'Xem tất cả các tính năng tại đây: https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => 'Xem tất cả các tính năng tại đây: https://docs.qloapps.com/',
'Tweet' => 'tiếng riu ríu',
'Share' => 'Chia sẻ',
'Google+' => 'Google+',

View File

@@ -1,7 +1,7 @@
<?php
return array(
'informations' => array(
'documentation' => 'https://qloapps.com/qlo-reservation-system/',
'documentation' => 'https://docs.qloapps.com/',
'documentation_upgrade' => 'https://webkul.uvdesk.com/',
'forum' => 'https://forums.qloapps.com/',
'blog' => 'https://qloapps.com/blog/',
@@ -10,7 +10,7 @@ return array(
'tailored_help' => 'https://webkul.uvdesk.com/',
'contact' => 'https://qloapps.com/contact/',
'services' => 'https://qloapps.com/contact/',
'tutorials' => 'https://qloapps.com/qlo-reservation-system/',
'tutorials' => 'https://docs.qloapps.com/',
'installation_guide' => 'https://qloapps.com/qloapps-installation-process/',
'install_help' => 'https://qloapps.com/install-qloapps/',
),
@@ -206,7 +206,7 @@ return array(
'Discover Your Website' => '发现您的网站',
'Share your experience with your friends!' => '与您的朋友分享您的经验!',
'I just built an online hotel booking website with QloApps!' => '我刚刚用 QloApps 建立了一个在线酒店预订网站!',
'See all the features here : https://qloapps.com/qlo-reservation-system/' => '在此处查看所有功能:https://qloapps.com/qlo-reservation-system/',
'See all the features here : https://docs.qloapps.com/' => '在此处查看所有功能:https://docs.qloapps.com/',
'Tweet' => '鸣叫',
'Share' => '分享',
'Google+' => 'Google+',

View File

@@ -113,7 +113,7 @@ var admin = '<?php echo(file_exists('../admin-dev') ? '../admin-dev' : '../admin
<div class="sharing">
<p><?php echo $this->l('Share your experience with your friends!'); ?></p>
<button type="button" class="btn-twitter" onclick="psinstall_twitter_click('<?php echo $this->l('I just built an online hotel booking website with QloApps!'); ?> <?php echo $this->l('See all the features here : https://qloapps.com/qlo-reservation-system/'); ?>');">
<button type="button" class="btn-twitter" onclick="psinstall_twitter_click('<?php echo $this->l('I just built an online hotel booking website with QloApps!'); ?> <?php echo $this->l('See all the features here : https://docs.qloapps.com/'); ?>');">
<i></i> <?php echo $this->l('Tweet'); ?>
</button>
<button type="button" class="btn-facebook" onclick="psinstall_facebook_click();">

View File

@@ -11,7 +11,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -223,7 +223,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -190,7 +190,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -23,7 +23,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -192,7 +192,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -131,7 +131,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -190,7 +190,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -190,7 +190,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -223,7 +223,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -221,7 +221,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -201,7 +201,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -130,7 +130,7 @@
<units>
<unit type="weight" value="Kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="mi"/>
</units>

View File

@@ -254,7 +254,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -161,7 +161,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -221,7 +221,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -192,7 +192,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -333,7 +333,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -19,7 +19,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -221,7 +221,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -253,7 +253,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -190,7 +190,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -160,7 +160,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -41,7 +41,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -19,7 +19,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -190,7 +190,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -19,7 +19,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -17,7 +17,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -19,7 +19,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -190,7 +190,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -221,7 +221,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -265,7 +265,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -10,7 +10,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -161,7 +161,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -18,7 +18,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -190,7 +190,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="L"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

View File

@@ -190,7 +190,7 @@
<units>
<unit type="weight" value="kg"/>
<unit type="volume" value="l"/>
<unit type="short_distance" value="ft"/>
<unit type="short_distance" value="cm"/>
<unit type="base_distance" value="m"/>
<unit type="long_distance" value="km"/>
</units>

Some files were not shown because too many files have changed in this diff Show More