Страница заказов товаров состоит из списка заказов ( На странице заказов товаров (orders_list.html
) и информации о заказе (orders_item.html
).orders.html
) нужно разместить следующий код:
{% set invoice_pkid = xget('pkid') %}
{% if invoice_pkid is not null %}
{% include concat(template.path, '/orders_item.html') %}
{% else %}
{% include concat(template.path, '/orders_list.html') %}
{% endif %}
На странице списка заказов (orders_list.html
) нужно разместить следующий код:
{% set ppage = xget('page', 1) %}
{% set filter_isPayed = xget('isPayed') %}
{% set filter_status = xget('status') %}
{% set limit = 10 %}
{% set start = (ppage - 1) * limit %}
<script type="text/javascript">
{% set pageOrdersID = random(999999) %}
jsApplication.pageLoad(function(){
{% set variable = 'var_'~random(999999) %}
var {{variable}} = 0;
var param = '';
var load = [];
load = load.concat(ioGetModuleUrls({module: 'noty-packaged', push: 1}));
if(jsApplication.busy && load.length > 0) {jsApplication.busy(true); {{variable}} = 1;}
if(load.length > 0){
yepnope({
load: load,
complete: function(){
if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
//onBootstrapEditable();
setTimeout('pageOrders{{pageOrdersID}}()', 10);
},
});
} else {
if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
setTimeout('pageOrders{{pageOrdersID}}()', 10);
}
});
function pageOrders{{pageOrdersID}}(){
// отмена заказа (удаление инвойса)
$(document).on('click', '.invoice-item .invoice-cancel-btn', function(){
var $objb = $(this);
var pkid = $objb.attr('data-pkid');
/*
type: BootstrapDialog.TYPE_DEFAULT,
type: BootstrapDialog.TYPE_INFO,
type: BootstrapDialog.TYPE_PRIMARY,
type: BootstrapDialog.TYPE_SUCCESS,
type: BootstrapDialog.TYPE_WARNING,
type: BootstrapDialog.TYPE_DANGER,
size: BootstrapDialog.SIZE_NORMAL, // normal
size: BootstrapDialog.SIZE_SMALL, // small
size: BootstrapDialog.SIZE_WIDE, // large
size: BootstrapDialog.SIZE_LARGE, // big font
*/
BootstrapDialog.show({
closable: true,
type: BootstrapDialog.TYPE_DANGER,
size: BootstrapDialog.SIZE_NORMAL, // normal
title: '<i class="icon-times"></i> Отмена заказа',
message: 'Вы действительно хотите отменить данный заказ?',
buttons: [
{
label: 'Отменить заказ',
//icon: 'icon-lock',
cssClass: 'btn-danger',
action: function(dialog, event){
var $btnDel = this;
var $btnCancel = dialog.getButton('cancel-btn');
$btnDel.spin();
$btnDel.disable();
$btnCancel.disable();
dialog.setClosable(false);
// обработка запроса
ioCallEntity({
entity: 'bmc.trade2.model.invoices.deleteClient',
resultType: 'json',
params: {
pkid: pkid,
},
success: function(data, tag){
//console.log(data);
var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
// перезагрузка страницы
document.location.reload();
/*
$btnDel.stopSpin();
$btnDel.enable();
$btnCancel.enable();
dialog.setClosable(true);
dialog.close();
*/
} else {
var n = noty({
text: 'Не удалось отменить заказ. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
type: 'warning',
layout: 'bottomRight',
timeout: 4000,
});
$btnDel.stopSpin();
$btnDel.enable();
$btnCancel.enable();
dialog.setClosable(true);
}
}
});
}
},
{
id: 'cancel-btn',
label: 'Отмена',
cssClass: 'btn-default',
action: function(dialog, event){
dialog.close();
},
}
],
});
});
// оплата заказа
$(document).on('click', '.invoice-item .invoice-buy-btn', function(){
var $objb = $(this);
var pkid = $objb.attr('data-pkid');
var amount = $objb.attr('data-amount');
/*
type: BootstrapDialog.TYPE_DEFAULT,
type: BootstrapDialog.TYPE_INFO,
type: BootstrapDialog.TYPE_PRIMARY,
type: BootstrapDialog.TYPE_SUCCESS,
type: BootstrapDialog.TYPE_WARNING,
type: BootstrapDialog.TYPE_DANGER,
size: BootstrapDialog.SIZE_NORMAL, // normal
size: BootstrapDialog.SIZE_SMALL, // small
size: BootstrapDialog.SIZE_WIDE, // large
size: BootstrapDialog.SIZE_LARGE, // big font
*/
BootstrapDialog.show({
closable: true,
type: BootstrapDialog.TYPE_DEFAULT,
size: BootstrapDialog.SIZE_NORMAL, // normal
title: 'Оплата заказа',
message: (
'<div class="text-center">'+
'<h3>Оплата заказа через Банковскую карту</h3>'+
'Оплачиваемая сумма в тенге<br/>'+
'<span class="invoice-pay-amount">'+amount+'</span><br/>'+
'<br/>'+
'<a href="'+urlGetAdd('/goodspay/processing', 'account', '{{user.account}}', 'invoice_pkid', pkid)+'" class="btn btn-lg btn-primary invoice-pay-processingkz-btn">'+
'<span>Оплатить</span>'+
'</a>'+
'<br/>'+
'<br/>'+
'<br/>'+
'<table width="100%">'+
'<tr>'+
'<td width="30%">'+
'<div><i class="fa fa-lock"></i> HTTPS / SSL</div>'+
'<div>Защищенное соединение</div>'+
'</td>'+
'<td width="70%">'+
'<img src="/img/cabinet20/visamasteecardprocessing.png" />'+
'</td>'+
'</tr>'+
'</table>'+
'</div>'+
'<hr/>'+
'<div class="text-center">'+
'Если произведенная Вами оплата не будет зачислена в течение суток, пожалуйста, обратитесь в нашу <a href="{{ioProjects.ticket}}/cabinet/create" target="_blank">службу поддержки.</a></span>'+
'</div>'
),
});
});
// добавление товаров инвойса в корзину снова
$(document).on('click', '.invoice-item .invoice-basket-add-btn', function(){
var $objb = $(this);
if(!$objb.hasClass('process')){
$objb
.addClass('process disabled')
.html('<i class="fa fa-spinner fa-spin"></i> Добавление в корзину');
var pkid = $objb.attr('data-pkid');
// обработка запроса
ioCallEntity({
entity: 'bmc.trade2.model.offersBasket.addFromOrder',
resultType: 'json',
params: {
invoice_pkid: pkid,
},
success: function(data, tag){
//console.log(data);
var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
var n = noty({
text: 'Товары добавлены в корзину',
type: 'success',
layout: 'bottomRight',
timeout: 2000,
});
$('.basket-offers-count').html(obj.res.count <= 99 ? obj.res.count : '99+');
} else {
var n = noty({
text: 'Не удалось добавить часть товаров в корзину. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
type: 'warning',
layout: 'bottomRight',
timeout: 4000,
});
}
$objb
.removeClass('process disabled')
.html('Добавить в корзину снова');
}
});
}
});
// скрытие инвойса клиента
$(document).on('click', '.invoice-item .invoice-hide-btn', function(){
var $objb = $(this);
if(!$objb.hasClass('process')){
if(confirm('Вы уверены?')){
$objb
.addClass('process disabled')
.html('<i class="fa fa-spinner fa-spin"></i> Удаление');
var pkid = $objb.attr('data-pkid');
// обработка запроса
ioCallEntity({
entity: 'bmc.trade2.model.invoices.setHide',
resultType: 'json',
params: {
pkid: pkid,
},
success: function(data, tag){
//console.log(data);
var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
// перезагрузка страницы
document.location.reload();
} else {
var n = noty({
text: 'Не удалось удалить заказ. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
type: 'warning',
layout: 'bottomRight',
timeout: 4000,
});
$objb
.removeClass('process disabled')
.html('Удалить');
}
}
});
}
}
});
}
</script>
<div class="global-wrapper clearfix" id="global-wrapper">
<div class="container">
<div class="row">
<div class="col-md-9">
<style>
.invoice-item table tr td{
padding: 5px 3px;
}
.invoice-item table tr td.invoice-product-info,
.invoice-item table tr td.invoice-product-status{
border-bottom: 1px dotted #ccc;
}
.invoice-item table tr:last-child td.invoice-product-info,
.invoice-item table tr:last-child td.invoice-product-status{
border: none;
}
</style>
{% if not user.isGuest %}
{#
filter: {
company_pkid: site.object.company_pkid,
company_pkid: 1,
}
#}
{% set filter = {
order_type: 2,
client_pkid: 'user_'~user.login,
isHide: false,
} %}
{% if filter_isPayed != '' %}
{% set filter = xadd(filter, 'isPayed', filter_isPayed) %}
{% endif %}
{% if filter_status != '' %}
{% set filter = xadd(filter, 'status', filter_status) %}
{% endif %}
{% set goodsinvoices = ioCallAction(
'bmc.trade2.model.invoices.getData2More', {
filter: filter,
order: {
pkid: 'desc',
},
start: start,
limit: limit,
}
) %}
{% if goodsinvoices.data|length > 0 %}
{% for invoice in goodsinvoices.data %}
{% set invoice_fullamount = {
value: invoice.amount.value + invoice.amount_delivery.value,
currency: 'KZT',
pay_type: 1,
} %}
<div class="invoice-item" data-pkid="{{invoice.pkid}}">
<section class="panel">
<div class="panel-body">
<table width="100%">
<tr>
<td class="text-muted text-sm" style="padding: 0 3px 5px 0; border-bottom: 1px dotted #ccc; vertical-align: top;">
<div>Заказ № {{invoice.invoice_number}} <a href="{{UrlGetAdd(link('/orders'), 'pkid', invoice.pkid)}}">Подробнее</a></div>
<div>Дата заказа: {{invoice.gmtimeAdd|iostrtodate('d.m.Y H:i', user.timezone)}}</div>
</td>
<td colspan="2" class="text-muted text-sm text-center" style="padding: 0 0 5px 0; border-bottom: 1px dotted #ccc; vertical-align: top;">
<div>Магазин: <a href="{{ioProjects.profile}}/company/{{invoice.company_pkid}}" target="_blank" title="Профиль компании-продавца">{{invoice.company_pkid}}</div>
<div><a href="{{UrlGetAdd(link('/catalog'), 'company', invoice.company_pkid)}}">Товары продавца</a><!-- | <a href="javascript://">Сообщение продавцу</a>--></div>
</td>
<td class="text-muted text-sm text-center" style="padding: 0 3px 5px 3px; border-bottom: 1px dotted #ccc; vertical-align: top;">
<div>Стоимость:</div>
<div><h4 style="color: #c00;">{{format_money(invoice_fullamount, false)}}</h4></div>
</td>
</tr>
{% for product in invoice.products %}
{% set prms = '' %}
{% set prms = prms ~ (
(product.color_pkid != null and product.color_pkid != 0 ?
'цвет: '~product.color_name[currentlang]|lower
)
) %}
{% set prms = prms ~(
(product.size_pkid != null and product.size_pkid != 0 ?
(prms != '' ? ', ')~
'размер: '~product.size_name|lower~
(product.size_type != null and product.size_type != 0 ?
' ('~product.size_type_name[currentlang]|lower~')'
)
)
) %}
{% set prms = prms ~ (
(product.gender_pkid != null and product.gender_pkid != 0 ?
(prms != '' ? ', ')~
'пол: '~product.gender_name|lower
)
) %}
{% set prms = (prms != '' ? ' ('~prms~')') %}
<tr>
<td class="invoice-product-info">
<div class="row">
<div class="col-xs-3">
<a href="{{UrlGetAdd(link('/catalog'), 'tid', product.tid, 'offernum', product.offer_number)}}">
{% set product_offer_poster = template.path~'/img/bmcsales-logo.svg' %}
{% if product.offer.images and product.offer.images|length > 0 %}
{% if product.offer.images.0.urlSmall %}
{% set product_offer_poster = ioProjects.trade~'/'~product.offer.images.0.urlSmall %}
{% else %}
{% if product.offer.images.0.url %}
{% set product_offer_poster = ioProjects.trade~'/'~product.offer.images.0.url %}
{% endif %}
{% endif %}
{% else %}
{% if product.offer.offer_images and product.offer.offer_images|length > 0 %}
{% if product.offer.offer_images.0.urlSmall %}
{% set product_offer_poster = ioProjects.trade~'/'~product.offer.offer_images.0.urlSmall %}
{% else %}
{% if product.offer.offer_images.0.url %}
{% set product_offer_poster = ioProjects.trade~'/'~product.offer.offer_images.0.url %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
<img src="{{product_offer_poster}}" style="width: 100%;" />
</a>
</div>
<div class="col-xs-9">
<a href="{{UrlGetAdd(link('/catalog'), 'tid', product.tid, 'offernum', product.offer_number)}}" style="text-decoration: none;">
<div class="text-sm">{{product.tid}}</div>
<div>{{product.offer_name|purify}}</div>
</a>
{% if prms != '' %}
<div class="text-sm text-muted">Характеристики: {{prms}}</div>
{% endif %}
<div class="text-sm" style="margin-top: 10px;">{{format_money(product.amount, false)}} X 1</div>
</div>
</div>
</td>
<td width="20%" class="text-center invoice-product-status">
{% if invoice.status == 12 %}
<div class="btn btn-block btn-default disabled" style="white-space: normal;">Получено подтверждение</div>
{% endif %}
<!--<a class="btn btn-block btn-default" href="#">Открыть спор</a>-->
</td>
{% if loop.index == 1 %}
<td width="20%" rowspan="{{invoice.products|length}}" style="vertical-align: top;" class="text-center">
{% if invoice.status != -1 %}
<div class="btn btn-block btn-default disabled" style="white-space: normal;">{{invoice.isPayed ? 'Оплачен' : 'Не оплачен'}}</div>
{% endif %}
<div class="btn btn-block btn-default disabled" style="white-space: normal;">{{ioEnum.invoices_statuses[invoice.status]}}</div>
</td>
<td width="20%" rowspan="{{invoice.products|length}}" style="vertical-align: top;" class="text-center">
<a class="btn btn-block btn-default" style="white-space: normal;" href="{{UrlGetAdd(link('/orders'), 'pkid', invoice.pkid)}}">Подробнее</a>
{% if (invoice.status <= 7 or not invoice.isPayed) and invoice.status != -1 %}
{% if not invoice.isPayed %}
<div class="btn btn-block btn-primary invoice-buy-btn" style="white-space: normal;" data-pkid="{{invoice.pkid}}" data-amount="{{format_money(invoice_fullamount, false)}}">Оплатить</div>
{% endif %}
{% if invoice.status <= 7 and not invoice.isPayed %}
<div class="btn btn-block btn-danger invoice-cancel-btn" style="white-space: normal;" data-pkid="{{invoice.pkid}}">Отменить</div>
{% endif %}
{% endif %}
{% if invoice.status > 7 and invoice.status != 12 %}
<a class="btn btn-block btn-default" style="white-space: normal;" href="#">Подтвердить получение товара</a>
{% endif %}
<div class="btn btn-block btn-default invoice-basket-add-btn" style="white-space: normal;" data-pkid="{{invoice.pkid}}">Добавить в корзину снова</div>
{% if invoice.status == 12 or invoice.status == -1 %}
<div class="btn btn-block btn-default invoice-hide-btn" style="white-space: normal;" data-pkid="{{invoice.pkid}}">Удалить</div>
{% endif %}
</td>
{% endif %}
</tr>
{% endfor %}
</table>
</div>
</section>
</div>
{% endfor %}
{% set pages_alfa = 1 %}
{% set pages_count = (goodsinvoices.count / limit)|ceil %}
<div class="row">
<div class="col-md-12 text-center">
<!--
<p class="category-pagination-sign">Найдено заказов: {{goodsinvoices.count}}. Показано с {{(ppage - 1) * limit + 1}} по {{goodsinvoices.count >= ppage * limit ? ppage * limit : goodsinvoices.count}}</p>
-->
<p class="category-pagination-sign">Найдено заказов: {{goodsinvoices.count}}. Показано с {{start + 1}} по {{start + goodsinvoices.data|length}}</p>
<nav>
<ul class="pagination category-pagination">
{% if ppage > 1 %}
<li class="last">
<a href="{{UrlGetAdd(
link('/orders'),
'isPayed', filter_isPayed,
'status', filter_status,
'page', (ppage - 1)
)}}"><i class="fa fa-long-arrow-left"></i></a>
</li>
{% endif %}
<li{% if 1 == ppage %} class="active"{% endif %}>
<a href="{{UrlGetAdd(
link('/orders'),
'isPayed', filter_isPayed,
'status', filter_status,
'page', 1
)}}">1</a>
</li>
{% if ppage - pages_alfa > 2 %}
<li><a class="disabled">...</a></li>
{% endif %}
{% set a1 = max(ppage - pages_alfa, 2) %}
{% set a2 = min(ppage + pages_alfa, pages_count - 1) %}
{% if a2 >= a1 %}
{% for i in range(a1, a2) %}
{% set class = 'cursor itm' %}
<li{% if i == ppage %} class="active"{% endif %}>
<a href="{{UrlGetAdd(
link('/orders'),
'isPayed', filter_isPayed,
'status', filter_status,
'page', i
)}}">{{i}}</a>
</li>
{% endfor %}
{% endif %}
{% if ppage + pages_alfa < pages_count - 1 %}
<li><a class="disabled">...</a></li>
{% endif %}
{% if pages_count > 1 %}
{% set class = 'cursor itm' %}
<li{% if pages_count == ppage %} class="active"{% endif %}>
<a href="{{UrlGetAdd(
link('/orders'),
'isPayed', filter_isPayed,
'status', filter_status,
'page', pages_count
)}}">{{pages_count}}</a>
</li>
{% endif %}
{# for i in 1..pages_count %}
<li{% if ppage == i %} class="active"{% endif %}>
<a href="{{UrlGetAdd(
link('/orders'),
'isPayed', filter_isPayed,
'status', filter_status,
'page', i
)}}">{{i}}</a>
</li>
{% endfor #}
{% if ppage < pages_count and pages_count > 1 %}
<li class="last">
<a href="{{UrlGetAdd(
link('/orders'),
'isPayed', filter_isPayed,
'status', filter_status,
'page', (ppage + 1)
)}}"><i class="fa fa-long-arrow-right"></i></a>
</li>
{% endif %}
</ul>
</nav>
</div>
</div>
<div class="gap"></div>
{% else %}
<div class="text-center">
<h3>Заказов пока не было</h3>
<div class="gap gap-small"></div>
<a class="btn btn-primary btn-lg" href="{{link('/catalog')}}">Начать покупки <i class="fa fa-long-arrow-right"></i></a>
</div>
<div class="gap"></div>
{% endif %}
{% else %}
<div class="text-center">
<h3>Для просмотра истории заказов товаров<br/>нужно войти в Ваш профиль</h3>
<div class="gap gap-small"></div>
<a class="btn btn-primary btn-lg" style="margin: 0 5px 5px 0;" href="{{UrlGetAdd(link('/login'), 'back', page.uri)}}">Войти <i class="fa fa-long-arrow-right"></i></a>
<a class="btn btn-default btn-lg" style="margin: 0 5px 5px 0;" href="{{ioProjects.com}}/registration?ref={{site.uri}}">Создать профиль <i class="fa fa-long-arrow-right"></i></a>
</div>
<div class="gap"></div>
{% endif %}
</div>
<div class="col-md-3">
{% include concat(template.path, '/orders_filter.html') %}
</div>
</div>
</div>
<div class="gap"></div>
</div>
Также на странице списка заказов имеется блок фильтра (orders_filter.html
). где нужно разместить следующий код:
<script type="text/javascript">
{% set pageOrdersFilterID = random(999999) %}
jsApplication.pageLoad(function(){
{% set variable = 'var_'~random(999999) %}
var {{variable}} = 0;
var param = '';
var load = [];
load = load.concat(ioGetModuleUrls({module: 'noty-packaged', push: 1}));
if(jsApplication.busy && load.length > 0) {jsApplication.busy(true); {{variable}} = 1;}
if(load.length > 0){
yepnope({
load: load,
complete: function(){
if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
//onBootstrapEditable();
setTimeout('pageOrdersFilter{{pageOrdersFilterID}}()', 10);
},
});
} else {
if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
setTimeout('pageOrdersFilter{{pageOrdersFilterID}}()', 10);
}
});
function pageOrdersFilter{{pageOrdersFilterID}}(){
var enum_si = {{ioEnum.SI|json_encode|raw}};
// загрузка недавно просмотренных товаров
function loadingOffersViews(){
var offersViewsData = getOffersViewsData() || []; // вытаскиваем все данные из недавно просмотренного
//console.log(offersViewsData);
/*{
tmp_pkid: ioGenPkid(), // pkid записи
company_pkid: 0, // pkid компании
goods_pkid: 0, // pkid товара
offer_number: 0, // номер предложения товара, уникальный во всей системе
tid: '', // ИНТ товара
}*/
// если что-то в корзине уже есть, начинаем формировать данные для вывода
if(offersViewsData !== null){
$('.offers-views-list').html('');
var offersViewsData2 = [], cnt1 = 0;
$.each(offersViewsData, function(i, el){
if(cnt1 < 4){
if(el.company_pkid != '{{offer.company_pkid}}'
|| el.goods_pkid != '{{offer.goods_pkid}}'
|| el.offer_number != '{{offer.offer_number}}'
|| el.offer_type != '{{offer.offer_type}}'
|| el.tid != '{{offer.tid}}'){
cnt1++;
offersViewsData2.push(el);
}
}
});
// обработка запроса
ioCallEntity({
entity: 'bmc.trade2.model.offersFavorite.getData2Guest',
resultType: 'json',
params: {
offersFavorite: offersViewsData2,
},
success: function(data, tag){
//console.log(data);
var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
var offersViews = obj.res.data || [];
$.each(offersViews, function(i, offer){
var offeritems = '';
$.each(offer.offers, function(j, offeritem){
var offer_poster = '{{template.path}}/img/bmcsales-logo.svg';
if(offeritem.images && offeritem.images.length > 0){
if(offeritem.images[0].urlSmall){
offer_poster = '{{ioProjects.trade}}/'+offeritem.images[0].urlSmall;
} else {
if(offeritem.images[0].url){
offer_poster = '{{ioProjects.trade}}/'+offeritem.images[0].url;
}
}
} else {
if(offeritem.offer_images && offeritem.offer_images.length > 0){
if(offeritem.offer_images[0].urlSmall){
offer_poster = '{{ioProjects.trade}}/'+offeritem.offer_images[0].urlSmall;
} else {
{% if offeritem.offer_images.0.url %}
offer_poster = '{{ioProjects.trade}}/'+offeritem.offer_images[0].url;
{% endif %}
}
}
}
var offer_cost_per_unit_min = {value: 0, currency: 'KZT'};
var offer_cost_per_unit_max = {value: 0, currency: 'KZT'};
$.each(offeritem.offer_parameters, function(k, param){
var param_cost_per_unit = param.cost_per_unit;
param_cost_per_unit.value /= enum_si[offeritem.si_visible].coeff;
if(param_cost_per_unit.value > offer_cost_per_unit_max.value){
offer_cost_per_unit_max = param_cost_per_unit;
}
if(param_cost_per_unit.value < offer_cost_per_unit_min.value || offer_cost_per_unit_min.value == 0){
offer_cost_per_unit_min = param_cost_per_unit;
}
});
offeritems += (
'<li>'+
'<div class="product product-sm-left">'+
'<ul class="product-labels">'+
/*'<li>-30%</li>'+
'<li>stuff pick</li>'+
'<li>hot</li>'+*/
(offeritem.category_name && offeritem.category_name['{{currentlang}}'] ?
'<li>'+offeritem.category_name['{{currentlang}}']+'</li>'
:'')+
(offeritem.offer_discount && offeritem.offer_discount > 0 ?
'<li>-'+offeritem.offer_discount+'%</li>'
:'')+
'</ul>'+
'<div class="product-img-wrap">'+
'<img class="product-img" src="'+offer_poster+'" />'+
/*'<img class="product-img-primary" src="{{template.path}}/img/test_product/35.jpg" />'+
'<img class="product-img-alt" src="{{template.path}}/img/test_product/35-a.jpg" />'+*/
'</div>'+
'<a class="product-link" href="'+urlGetAdd('{{link('/catalog')}}', 'tid', offeritem.tid, 'offernum', offeritem.offer_number)+'"></a>'+
'<div class="product-caption">'+
'<ul class="product-caption-rating">'+
'<li class="rated"><i class="fa fa-star"></i></li>'+
'<li class="rated"><i class="fa fa-star"></i></li>'+
'<li class="rated"><i class="fa fa-star"></i></li>'+
'<li class="rated"><i class="fa fa-star"></i></li>'+
'<li class="rated"><i class="fa fa-star"></i></li>'+
/*'<li class="rated"><i class="fa fa-star"></i></li>'+
'<li><i class="fa fa-star"></i></li>'+*/
'</ul>'+
'<h5 class="product-caption-title">'+(offeritem.goods_name['{{currentlang}}']||(offeritem.offer_name||''))+'</h5>'+
'<div class="product-caption-price">'+
(offeritem.offer_discount && offeritem.offer_discount > 0 ?
'<span class="product-caption-price-new">'+number_format(offer_cost_per_unit_min.value - ((offer_cost_per_unit_min.value / 100) * offeritem.offer_discount), 2, '.', ' ')+' '+offer_cost_per_unit_min.currency+'</span>'
:
'<span class="product-caption-price-new">'+number_format(offer_cost_per_unit_min.value, 2, '.', ' ')+' '+offer_cost_per_unit_min.currency+'</span>'
)+
/*'<span class="product-caption-price-old">$67</span>'+
'<span class="product-caption-price-new">$54</span>'+*/
'</div>'+
'<ul class="product-caption-feature-list">'+
/*'<li>1 left</li>'+
'<li>Free Shipping</li>'+*/
'</ul>'+
'</div>'+
'</div>'+
'</li>'
);
});
$('.offers-views .offers-views-list').append(offeritems);
});
if(offersViews.length > 0){
$('.offers-views .offers-views-list').css('display', '');
} else {
// если недавно просмотренных нет, то сигнализируем об этом
$('.offers-views .offers-views-list').css('display', 'none');
}
} else {
// произошла ошибка при загрузке недавно просмотренных товаров
$('.offers-views .offers-views-list').css('display', 'none');
}
$('.offers-views .offers-views-loading').css('display', 'none');
}
});
} else {
// если недавно просмотренных нет, то сигнализируем об этом
$('.offers-views-loading').css('display', 'none');
$('.offers-views .offers-views-list').css('display', 'none');
}
}
loadingOffersViews();
}
</script>
{% if not user.isGuest %}
<div class="list-group">
<a href="{{UrlGetAdd(
link('/orders'),
'page', ppage
)}}" class="list-group-item{{filter_isPayed == '' and filter_status == '' ? ' active'}}">Все заказы</a>
</div>
<div class="list-group">
{% for elitem in [
{val: '0', name: 'Не оплаченные'},
{val: '1', name: 'Оплаченные'},
] %}
<a href="{{UrlGetAdd(
link('/orders'),
'isPayed', elitem.val,
'status', filter_status
)}}" class="list-group-item{{filter_isPayed == elitem.val ? ' active'}}">{{elitem.name}}</a>
{% endfor %}
</div>
<div class="list-group">
{% for elitem in [
{val: '0', name: 'Создан'},
{val: '1', name: 'Принят'},
{val: '2', name: 'Подготавливается'},
{val: '3', name: 'Заказан у поставщика'},
{val: '4', name: 'Ожидает отправки в регион'},
{val: '5', name: 'Транзит'},
{val: '6', name: 'Комплектуется'},
{val: '7', name: 'Доступен'},
{val: '8', name: 'Готов к отправке'},
{val: '9', name: 'В резерве (Курьер)'},
{val: '10', name: 'Посылка сформирована'},
{val: '11', name: 'На доставке'},
{val: '12', name: 'Доставлен'},
{val: '-1', name: 'Отменен'},
] %}
<a href="{{UrlGetAdd(
link('/orders'),
'isPayed', filter_isPayed,
'status', elitem.val
)}}" class="list-group-item{{filter_status == elitem.val ? ' active'}}">{{elitem.name}}</a>
{% endfor %}
</div>
<div class="list-group">
{% for elitem in [
{val: '101', name: 'Возврат создан'},
{val: '102', name: 'Возврат совершен'},
] %}
<a href="{{UrlGetAdd(
link('/orders'),
'isPayed', filter_isPayed,
'status', elitem.val
)}}" class="list-group-item{{filter_status == elitem.val ? ' active'}}">{{elitem.name}}</a>
{% endfor %}
</div>
<div class="gap gap-small"></div>
{% endif %}
<div class="offers-views">
<h4 class="widget-title-sm">Недавно просмотренное</h4>
<div class="offers-views-loading text-center">
<i class="fa fa-spinner fa-spin fa-3x"></i>
</div>
<ul class="product-list offers-views-list" style="display: none;"></ul>
<div class="gap gap-small"></div>
</div>
<div class="gap gap-small"></div>
На странице информации о заказе (orders_item.html
) нужно разместить следующий код:
{% set invoice_pkid = xget('pkid') %}
<script type="text/javascript">
{% set pageOrdersID = random(999999) %}
jsApplication.pageLoad(function(){
{% set variable = 'var_'~random(999999) %}
var {{variable}} = 0;
var param = '';
var load = [];
load = load.concat(ioGetModuleUrls({module: 'noty-packaged', push: 1}));
if(jsApplication.busy && load.length > 0) {jsApplication.busy(true); {{variable}} = 1;}
if(load.length > 0){
yepnope({
load: load,
complete: function(){
if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
//onBootstrapEditable();
setTimeout('pageOrders{{pageOrdersID}}()', 10);
},
});
} else {
if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
setTimeout('pageOrders{{pageOrdersID}}()', 10);
}
});
function pageOrders{{pageOrdersID}}(){
// отмена заказа (удаление инвойса)
$(document).on('click', '.invoice-item .invoice-cancel-btn', function(){
var $objb = $(this);
var pkid = $objb.attr('data-pkid');
/*
type: BootstrapDialog.TYPE_DEFAULT,
type: BootstrapDialog.TYPE_INFO,
type: BootstrapDialog.TYPE_PRIMARY,
type: BootstrapDialog.TYPE_SUCCESS,
type: BootstrapDialog.TYPE_WARNING,
type: BootstrapDialog.TYPE_DANGER,
size: BootstrapDialog.SIZE_NORMAL, // normal
size: BootstrapDialog.SIZE_SMALL, // small
size: BootstrapDialog.SIZE_WIDE, // large
size: BootstrapDialog.SIZE_LARGE, // big font
*/
BootstrapDialog.show({
closable: true,
type: BootstrapDialog.TYPE_DANGER,
size: BootstrapDialog.SIZE_NORMAL, // normal
title: '<i class="icon-times"></i> Отмена заказа',
message: 'Вы действительно хотите отменить данный заказ?',
buttons: [
{
label: 'Отменить заказ',
//icon: 'icon-lock',
cssClass: 'btn-danger',
action: function(dialog, event){
var $btnDel = this;
var $btnCancel = dialog.getButton('cancel-btn');
$btnDel.spin();
$btnDel.disable();
$btnCancel.disable();
dialog.setClosable(false);
// обработка запроса
ioCallEntity({
entity: 'bmc.trade2.model.invoices.deleteClient',
resultType: 'json',
params: {
pkid: pkid,
},
success: function(data, tag){
//console.log(data);
var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
// переход в список заказов
document.location.href = urlGetAdd('/orders', 'account', '{{user.account}}');
/*
$btnDel.stopSpin();
$btnDel.enable();
$btnCancel.enable();
dialog.setClosable(true);
dialog.close();
*/
} else {
var n = noty({
text: 'Не удалось отменить заказ. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
type: 'warning',
layout: 'bottomRight',
timeout: 4000,
});
$btnDel.stopSpin();
$btnDel.enable();
$btnCancel.enable();
dialog.setClosable(true);
}
}
});
}
},
{
id: 'cancel-btn',
label: 'Отмена',
cssClass: 'btn-default',
action: function(dialog, event){
dialog.close();
},
}
],
});
});
// оплата заказа
$(document).on('click', '.invoice-item .invoice-buy-btn', function(){
var $objb = $(this);
var pkid = $objb.attr('data-pkid');
var amount = $objb.attr('data-amount');
/*
type: BootstrapDialog.TYPE_DEFAULT,
type: BootstrapDialog.TYPE_INFO,
type: BootstrapDialog.TYPE_PRIMARY,
type: BootstrapDialog.TYPE_SUCCESS,
type: BootstrapDialog.TYPE_WARNING,
type: BootstrapDialog.TYPE_DANGER,
size: BootstrapDialog.SIZE_NORMAL, // normal
size: BootstrapDialog.SIZE_SMALL, // small
size: BootstrapDialog.SIZE_WIDE, // large
size: BootstrapDialog.SIZE_LARGE, // big font
*/
BootstrapDialog.show({
closable: true,
type: BootstrapDialog.TYPE_DEFAULT,
size: BootstrapDialog.SIZE_NORMAL, // normal
title: 'Оплата заказа',
message: (
'<div class="text-center">'+
'<h3>Оплата заказа через Банковскую карту</h3>'+
'Оплачиваемая сумма в тенге<br/>'+
'<span class="invoice-pay-amount">'+amount+'</span><br/>'+
'<br/>'+
'<a href="'+urlGetAdd('/goodspay/processing', 'account', '{{user.account}}', 'invoice_pkid', pkid)+'" class="btn btn-lg btn-primary invoice-pay-processingkz-btn">'+
'<span>Оплатить</span>'+
'</a>'+
'<br/>'+
'<br/>'+
'<br/>'+
'<table width="100%">'+
'<tr>'+
'<td width="30%">'+
'<div><i class="fa fa-lock"></i> HTTPS / SSL</div>'+
'<div>Защищенное соединение</div>'+
'</td>'+
'<td width="70%">'+
'<img src="/img/cabinet20/visamasteecardprocessing.png" />'+
'</td>'+
'</tr>'+
'</table>'+
'</div>'+
'<hr/>'+
'<div class="text-center">'+
'Если произведенная Вами оплата не будет зачислена в течение суток, пожалуйста, обратитесь в нашу <a href="{{ioProjects.ticket}}/cabinet/create" target="_blank">службу поддержки.</a></span>'+
'</div>'
),
});
});
// добавление товаров инвойса в корзину снова
$(document).on('click', '.invoice-item .invoice-basket-add-btn', function(){
var $objb = $(this);
if(!$objb.hasClass('process')){
$objb
.addClass('process disabled')
.html('<i class="fa fa-spinner fa-spin"></i> Добавление в корзину');
var pkid = $objb.attr('data-pkid');
// обработка запроса
ioCallEntity({
entity: 'bmc.trade2.model.offersBasket.addFromOrder',
resultType: 'json',
params: {
invoice_pkid: pkid,
},
success: function(data, tag){
//console.log(data);
var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
var n = noty({
text: 'Товары добавлены в корзину',
type: 'success',
layout: 'bottomRight',
timeout: 2000,
});
$('.basket-offers-count').html(obj.res.count <= 99 ? obj.res.count : '99+');
} else {
var n = noty({
text: 'Не удалось добавить часть товаров в корзину. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
type: 'warning',
layout: 'bottomRight',
timeout: 4000,
});
}
$objb
.removeClass('process disabled')
.html('Добавить в корзину снова');
}
});
}
});
// скрытие инвойса клиента
$(document).on('click', '.invoice-item .invoice-hide-btn', function(){
var $objb = $(this);
if(!$objb.hasClass('process')){
if(confirm('Вы уверены?')){
$objb
.addClass('process disabled')
.html('<i class="fa fa-spinner fa-spin"></i> Удаление');
var pkid = $objb.attr('data-pkid');
// обработка запроса
ioCallEntity({
entity: 'bmc.trade2.model.invoices.setHide',
resultType: 'json',
params: {
pkid: pkid,
},
success: function(data, tag){
//console.log(data);
var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
// переход в список заказов
document.location.href = urlGetAdd('/orders', 'account', '{{user.account}}');
} else {
var n = noty({
text: 'Не удалось удалить заказ. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
type: 'warning',
layout: 'bottomRight',
timeout: 4000,
});
$objb
.removeClass('process disabled')
.html('Удалить');
}
}
});
}
}
});
}
</script>
<div class="global-wrapper clearfix" id="global-wrapper">
<div class="container">
{% if not user.isGuest %}
{% set invoice = ioCallAction(
'bmc.trade2.model.invoices.getData2More', {
filter: {
pkid: invoice_pkid,
order_type: 2,
client_pkid: 'user_'~user.login,
},
limit: 1,
}
).data.0 %}
{% if invoice %}
<style>
.invoice-item table tr td{
padding: 5px 3px;
border-bottom: 1px dotted #ccc;
}
.invoice-item table tr:last-child td{
border: none;
}
.invoice-item table tr td.invoice-product-val{
padding: 5px 10px;
border-bottom: 1px dotted #ccc;
}
.invoice-item table tr td.invoice-product-info{
border-bottom: 1px dotted #ccc;
}
</style>
{% set invoice_fullamount = {
value: invoice.amount.value + invoice.amount_delivery.value,
currency: 'KZT',
pay_type: 1,
} %}
<div class="invoice-item" data-pkid="{{invoice.pkid}}">
<section class="panel">
<div class="panel-body">
<table width="100%">
<tbody>
<tr>
<td width="25%" class="text-muted text-sm" style="padding: 0 3px 5px 0; vertical-align: top;">
<div>Номер заказа: {{invoice.invoice_number}}</div>
<div>Дата заказа: {{invoice.gmtimeAdd|iostrtodate('d.m.Y H:i', user.timezone)}}</div>
</td>
<td width="45%" class="text-muted text-sm text-center" style="padding: 0 0 5px 0; vertical-align: top;">
<div>Магазин: <a href="{{ioProjects.profile}}/company/{{invoice.company_pkid}}" target="_blank" title="Профиль компании-продавца">{{invoice.company_pkid}}</div>
<div><a href="{{UrlGetAdd(link('/catalog'), 'company', invoice.company_pkid)}}">Товары продавца</a><!-- | <a href="javascript://">Сообщение продавцу</a>--></div>
</td>
<td width="30%" class="text-muted text-sm text-center" style="padding: 0 3px 5px 3px; vertical-align: top;">
<div class="btn btn-block btn-default disabled" style="white-space: normal;">{{ioEnum.invoices_statuses[invoice.status]}}</div>
</td>
</tr>
<tr>
<td colspan="3" class="text-right">
{% if (invoice.status <= 7 or not invoice.isPayed) and invoice.status != -1 %}
{% if not invoice.isPayed %}
<div class="btn btn-primary invoice-buy-btn" style="margin: 0 3px; white-space: normal;" data-pkid="{{invoice.pkid}}" data-amount="{{format_money(invoice_fullamount, false)}}">Оплатить</div>
{% endif %}
{% if invoice.status <= 7 and not invoice.isPayed %}
<div class="btn btn-danger invoice-cancel-btn" style="margin: 0 3px; white-space: normal;" data-pkid="{{invoice.pkid}}">Отменить</div>
{% endif %}
{% endif %}
{% if invoice.status > 7 and invoice.status != 12 %}
<a class="btn btn-default" style="margin: 0 3px; white-space: normal;" href="#">Подтвердить получение товара</a>
{% endif %}
<div class="btn btn-default invoice-basket-add-btn" style="margin: 0 3px; white-space: normal;" data-pkid="{{invoice.pkid}}">Добавить в корзину снова</div>
{% if invoice.status == 12 or invoice.status == -1 %}
<div class="btn btn-default invoice-hide-btn" style="margin: 0 3px; white-space: normal;" data-pkid="{{invoice.pkid}}">Удалить</div>
{% endif %}
</td>
</tr>
</tbody>
</table>
</div>
</section>
<section class="panel">
<div class="panel-body">
<table width="100%">
<thead>
<tr>
<td width="30%">Товар</td>
<td width="10%" class="text-center" title="Цена за единицу">Цена за ед.</td>
<td width="5%" class="text-center" title="Количество">Кол-во</td>
<td width="10%" class="text-center">Общая сумма</td>
<td width="15%" class="text-center">Статус</td>
<td width="30%" class="text-center">Служба доставки</td>
</tr>
</thead>
<tbody>
{% for product in invoice.products %}
{% set prms = '' %}
{% set prms = prms ~ (
(product.color_pkid != null and product.color_pkid != 0 ?
product.color_name[currentlang]
)
) %}
{% set prms = prms ~(
(product.size_pkid != null and product.size_pkid != 0 ?
(prms != '' ? ', ')~
product.size_name~
(product.size_type != null and product.size_type != 0 ?
' ('~product.size_type_name[currentlang]~')'
)
)
) %}
{% set prms = prms ~ (
(product.gender_pkid != null and product.gender_pkid != 0 ?
(prms != '' ? ', ')~
product.gender_name
)
) %}
{% set prms = (prms != '' ? ' ('~prms~')') %}
<tr>
<td width="30%" class="invoice-product-info" style="vertical-align: middle;">
<div class="row">
<div class="col-xs-3">
<a href="{{UrlGetAdd(link('/catalog'), 'tid', product.tid, 'offernum', product.offer_number)}}">
{% set product_offer_poster = template.path~'/img/bmcsales-logo.svg' %}
{% if product.offer.images and product.offer.images|length > 0 %}
{% if product.offer.images.0.urlSmall %}
{% set product_offer_poster = ioProjects.trade~'/'~product.offer.images.0.urlSmall %}
{% else %}
{% if product.offer.images.0.url %}
{% set product_offer_poster = ioProjects.trade~'/'~product.offer.images.0.url %}
{% endif %}
{% endif %}
{% else %}
{% if product.offer.offer_images and product.offer.offer_images|length > 0 %}
{% if product.offer.offer_images.0.urlSmall %}
{% set product_offer_poster = ioProjects.trade~'/'~product.offer.offer_images.0.urlSmall %}
{% else %}
{% if product.offer.offer_images.0.url %}
{% set product_offer_poster = ioProjects.trade~'/'~product.offer.offer_images.0.url %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
<img src="{{product_offer_poster}}" style="width: 100%;" />
</a>
</div>
<div class="col-xs-9">
<a href="{{UrlGetAdd(link('/catalog'), 'tid', product.tid, 'offernum', product.offer_number)}}" style="text-decoration: none;">
<div class="text-sm">{{product.tid}}</div>
<div>{{product.offer_name|purify}}</div>
</a>
{% if prms != '' %}
<div class="text-sm text-muted">Характеристики: {{prms}}</div>
{% endif %}
</div>
</div>
</td>
<td width="10%" style="vertical-align: middle;" class="text-center invoice-product-val">
{{format_money(product.amount, false)}}
</td>
<td width="5%" style="vertical-align: middle;" class="text-center invoice-product-val">
1
</td>
<td width="10%" style="vertical-align: middle;" class="text-center invoice-product-val">
{{format_money(product.amount, false)}}
</td>
<td width="15%" style="vertical-align: middle;" class="text-center invoice-product-val">
{% if invoice.status == 12 %}
Получено подтверждение
{% endif %}
<!--<a href="#">Открыть спор</a>-->
</td>
<td width="30%" style="border-left: 1px dotted #ccc; vertical-align: middle;" class="invoice-product-val">
<div>{{invoice.delivery_method == 0 ? 'Самовывоз (0 тг)' : ''}}</div>
{% if offeritem.delivery_method == 0 %}
<div class="text-sm">Точка самовывоза: {{invoice.warehouse_name|default('не выбрана')}}</div>
{% endif %}
<!--
Yanwen Economic Air Mail<br/>
Время доставки: 30-50 дн
-->
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="row" style="margin-top: 10px;">
<div class="col-md-6 col-md-offset-6 text-right">
<div class="row">
<div class="col-md-4 text-center">
<div>Стоимость товаров:</div>
<h5 style="color: #c00;">{{format_money(invoice.amount, false)}}</h5>
</div>
<div class="col-md-4 text-center">
<div>Стоимость доставки:</div>
<div style="color: #c00;">{{format_money(invoice.amount_delivery, false)}}</div>
</div>
<div class="col-md-4 text-center">
<div>Общая сумма:</div>
<div style="color: #c00;">{{format_money(invoice_fullamount, false)}}</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="panel panel-default">
<div class="panel-heading">Информация о доставке, адрес:</div>
<div class="panel-body">
<div class="row">
<div class="col-md-3 text-right"><b>Контактное лицо:</b></div>
<div class="col-xs-9">{{user['user-info'].sname}} {{user['user-info'].fname}} {{user['user-info'].lname}}</div>
</div>
<!--
<div class="row">
<div class="col-md-3 text-right"><b>Страна:</b></div>
<div class="col-xs-9">Казахстан</div>
</div>
<div class="row">
<div class="col-md-3 text-right"><b>Город:</b></div>
<div class="col-xs-9">Астана</div>
</div>
<div class="row">
<div class="col-md-3 text-right"><b>Адрес:</b></div>
<div class="col-xs-9">улица Абая, дом 8, офис 303</div>
</div>
<div class="row">
<div class="col-md-3 text-right"><b>Почтовый индекс:</b></div>
<div class="col-xs-9">010000</div>
</div>
-->
{% if user['user-info'].tel %}
<div class="row">
<div class="col-md-3 text-right"><b>Контактный телефон:</b></div>
<div class="col-xs-9">{{user['user-info'].tel|phone3}}</div>
</div>
{% endif %}
{% if user['user-info'].email %}
<div class="row">
<div class="col-md-3 text-right"><b>Контактный email:</b></div>
<div class="col-xs-9">{{user['user-info'].email}}</div>
</div>
{% endif %}
{% if invoice.delivery_info %}
<div class="row">
<div class="col-md-3 text-right"><b>Дополнительно:</b></div>
<div class="col-xs-9">{{invoice.delivery_info|n2br|purify|raw}}</div>
</div>
{% endif %}
</div>
</section>
{% if invoice.isPayed %}
<section class="panel panel-default">
<div class="panel-heading">Платеж:</div>
<div class="panel-body">
<div class="row">
<div class="col-md-3 text-center">
<div>Итого:</div>
<h5 style="color: #c00;">{{format_money(invoice.amount_cash, false)}}</h5>
</div>
<div class="col-md-3 text-center">
<div>Платеж получен:</div>
<div style="color: #c00;">{{format_money(invoice.amount_cash, false)}}</div>
</div>
<div class="col-md-3 text-center">
<div>Способ оплаты:</div>
<div style="color: #c00;">{{ioEnum.pay_types[invoice.amount_cash.pay_type]|default('Наличные')}}</div>
</div>
<div class="col-md-3 text-center">
<div>Дата получения:</div>
<div style="color: #c00;">{{invoice.dateSale|iodate('d.m.Y H:i', user.timezone)}}</div>
</div>
</div>
</div>
</section>
{% endif %}
</div>
{% else %}
<div class="text-center">
<h3>Данный заказ не найден</h3>
<div class="gap gap-small"></div>
<a class="btn btn-primary btn-lg" href="{{link('/orders')}}">Перейти в список заказов <i class="fa fa-long-arrow-right"></i></a>
</div>
{% endif %}
{% else %}
<div class="text-center">
<h3>Для просмотра истории покупок и заказов товаров<br/>нужно войти в Ваш профиль</h3>
<div class="gap gap-small"></div>
<a class="btn btn-primary btn-lg" style="margin: 0 5px 5px 0;" href="{{link('/login')}}">Войти <i class="fa fa-long-arrow-right"></i></a>
<a class="btn btn-default btn-lg" style="margin: 0 5px 5px 0;" href="{{ioProjects.com}}/registration?ref={{site.uri}}">Создать профиль <i class="fa fa-long-arrow-right"></i></a>
</div>
{% endif %}
</div>
<div class="gap"></div>
</div>