Files
kupshop/admin/templates/window/pos.pos.tpl
2025-08-02 16:30:27 +02:00

624 lines
35 KiB
Smarty

{extends "../frame.tpl"}
{block body_class}class="panel_frame"{/block}
{block title}
Pokladna
{/block}
{block tabs}
{windowTab id='flapPOS' label="Pokladna"}
{/block}
{block css append}
<link href="./static/css/Pos.pos.css" rel="stylesheet" type="text/css" media="screen"/>
{/block}
{block js append}
<!-- jQuery[-UI] -->
<script src="./static/js/qwebchannel.js?v4"></script>
{/block}
{block name="js-onready" append}
<script src="./static/js/Pos.pos.js"></script>
{/block}
{block windowContent}
<div class="container-fluid flex-row-wrap">
<div class="row flex-full-grow" style="height: calc(100% - 180px);">
<div class="col-md-9 flex-full-column">
<div class="row bottom-space" data-form-new>
<div class="col-md-5">
<input type="hidden" data-result="msg" value="{$result_info.msg}">
<input type="hidden" data-result="type"
value="{if $result_info.type == 1}success{else}danger{/if}">
<input type="text" class="form-control input-lg id_product" name="data[items][0][id_product]"
placeholder="Produkt ..." size="2" maxlength="255" onkeypress="checkInputData('int');"/>
</div>
<div class="col-md-3">
<select data-placeholder="Varianta ..." class="form-control input-lg selecter"
name="data[items][0][id_variation]">
<option value=""></option>
</select>
</div>
{*<div class="col-md-1">
<div class="col-md-6">
<div class="form-inline text-right form-pieces">
<input id="number" class="form-control orderInput disable-spinner product_pieces" type="number" name="data[items][{$item@iteration}][pieces]" value="{$item.pieces}" maxlength="3" size="2" onkeypress="checkInputData('int');" />
<div class="buy_count buy_count_pieces">
<i class="glyphicon glyphicon-chevron-up plus_unit"></i>
<i class="glyphicon glyphicon-chevron-down minus_unit"></i>
</div>
</div>
</div>
</div>*}
<div class="col-md-3">
<div class="input-group">
<input type="text" class="form-control input-lg piece_price"
name="data[items][0][piece_price]" placeholder="Cena ..." size="2" maxlength="255"
onkeypress="checkInputData('int');"/>
<span class="input-group-addon">
<select class="form-control input-lg selecter input-group-addon" id="vat_selecter"
name="data[items][0][vat]">
{foreach $vats as $vat}
<option value="{$vat.id}"
{if $vat.is_default == 'Y'}selected{/if}>{$vat.vat}%</option>
{/foreach}
</select>
</span>
</div>
</div>
<div class="col-md-1 text-right">
<a class="btn-lg addItem btn-success btn">
<i class="glyphicon glyphicon-plus"></i>
</a>
</div>
</div>
<div class="panel panel-default flex-full-column">
<div class="panel-heading no-padding">
<div class="row">
<div class="col-md-4">
<strong>Název</strong>
</div>
<div class="col-md-3">
<div class="row">
<div class="col-md-6 text-center">
<strong>Sleva v %</strong>
</div>
<div class="col-md-6 text-center">
<strong>Množství</strong>
</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-5 text-right">
<strong>Cena za kus s DPH</strong>
<p class="no-margin no-padding small-text">bez DPH</p>
</div>
<div class="col-md-6 text-right">
<strong>Cena položky S DPH</strong>
<p class="no-margin no-padding small-text">bez DPH</p>
</div>
<div class="col-md-1">
<strong></strong>
</div>
</div>
</div>
</div>
<ul class="list-group" id="items" style="overflow: auto; height:100%; background-color:#F1F2F6">
<div id="items_content">
{foreach $cart.products as $item}
<li class="list-group-item list_item"
style="background-color:{if $item.pieces <= $item.inStore}#e5fccd{else}#fdd7db{/if}">
<div class="row">
<div class="col-md-4">
<p class="input-height no-margin product_name" style="font-size: 19px;">
<strong>{$item.title}</strong></p>
{if $item.ean || $item.code}
<p class="no-margin product_code">{if $item.ean}
EAN: {$item.ean}
{elseif $item.code}
KOD: {$item.code}
{else}
(--)
{/if}
{if $item.note_}
<span class="note">
Pozice: <strong>{$item.note_}</strong>
</span>
{/if}
{ifmodule STORES}
<div style="font-size: 12px;">
{get_stores_inStore assign="storesInStore"}
{$productInStore = $storesInStore->getProductInStoreAmounts($item.id, $item.id_variation)}
{if $productInStore}
<span>
{$stores = $storesInStore->getStoresNames()}
{foreach $stores as $key => $store}
{$store_in_store = "store{$key}_in_store"}
{$long_text = "{$productInStore[$store_in_store]}ks {$store}"}
<span style="padding-left: 10px;">(<strong>{$productInStore[$store_in_store]}</strong> ks {$store})</span>
{/foreach}
</span>
{/if}
</div>
{/ifmodule}
{ifmodule WAREHOUSE}
<div style="font-size: 12px;">
{foreach $item.positions as $position}
<span style="padding-left: 10px;">
(<strong style="font-size: 15px;">{$position.code}</strong> - {$position.pieces}Ks)
</span>
{/foreach}
</div>
{/ifmodule}
</p>
{/if}
</div>
<div class="col-md-3">
<div class="row">
<div class="col-md-6">
<div class="form-inline text-right form-control-spinner item-input">
<input id="number"
class="form-control input-lg orderInput disable-spinner product_discount"
type="number"
name="data[items][{$item@iteration}][product_discount]"
value="{$item.discount}" maxlength="3" size="2"
onkeypress="checkInputData('int');"/>
<div class="buy_count change-product">
<i class="glyphicon glyphicon-chevron-up plus_unit"></i>
<i class="glyphicon glyphicon-chevron-down minus_unit"></i>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-inline text-right form-control-spinner item-input">
<input id="number"
class="form-control input-lg orderInput disable-spinner product_pieces"
type="number"
name="data[items][{$item@iteration}][pieces]"
value="{$item.pieces}" maxlength="3" size="2"
onkeypress="checkInputData('int');"/>
<div class="buy_count change-product">
<i class="glyphicon glyphicon-chevron-up plus_unit"></i>
<i class="glyphicon glyphicon-chevron-down minus_unit"></i>
</div>
{if $item.pieces > $item.inStore}
<a class="help-tip pos-tip" data-toggle="tooltip"
title="Vloženo více kusů než je skladem!">
<span class="glyphicon glyphicon-warning-sign"
style="color: #ED5565;font-size: x-large;"></span>
</a>
{/if}
</div>
</div>
</div>
</div>
<div class="col-md-5">
<div class="row" style="font-size: 20px;">
<div class="col-md-5 product_price text-right">
<p class="input-height no-margin">{$item.price.value_with_vat|format_price:'ceil=false'}</p>
<p class="no-margin small-text">{$item.price.value_without_vat|format_price:'ceil=false'}</p>
</div>
<div class="col-md-5 product_item_price text-right">
<p class="input-height no-margin">{$item.totalPrice.value_with_vat|format_price:'ceil=false'}</p>
<p class="no-margin small-text">{$item.totalPrice.value_without_vat|format_price:'ceil=false'}</p>
</div>
<div class="col-md-2 text-right">
<button name="{$item@key}" id="delete-item"
data-id_product="{$item.id}"
data-id_variation="{$item.id_variation}"
title="Odstranit položku"
class="btn btn-danger deleteItem"><span
class="glyphicon glyphicon-remove"></span></button>
</div>
</div>
</div>
</div>
</li>
{/foreach}
</div>
</ul>
</div>
</div>
<div class="col-md-3" id="additional-inputs">
{block right_column}
<div class="" style="height:65px;">
<div class="info-box" id="info_box">
</div>
</div>
<div class="well">
<div class="row bottom-space">
<div class="col-md-12 order">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-shopping-cart"></i></span>
<input type="text" class="form-control input-lg" id="order" name="order"
value="{$cart.order_no}" placeholder="Kód objednávky.."
{if !empty($cart.id)}disabled='disabled'{/if}>
<input type="hidden" class="form-control input-sm id_order" value="{$cart.id}">
{if $cart.order_no}
<span class="input-group-btn">
<button class="btn btn-danger btn-lg remove-order" type="submit">
<span class="glyphicon glyphicon-remove"></span>
</button>
</span>
{/if}
</div>
</div>
</div>
<div class="row bottom-space">
<div class="col-md-12 user">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<input type="text" class="form-control input-lg" id="user" name="user"
placeholder="Uživatel..."
value="{if !empty($user)}{$user.name} {$user.surname} - {$user.email}"
disabled='disabled'{else}"{/if}>
{if !empty($user)}
<span class="input-group-btn user-group">
<button class="btn btn-danger btn-lg remove-user" type="submit">
<span class="glyphicon glyphicon-remove"></span>
</button>
</span>
{/if}
</div>
{if $user && ($user->getPriceLevel() || $user.note)}
<div class="control-label dealer-price-level">
{if $user->getPriceLevel()}
<span>
Odběrová sleva:</span>
<label>
{$user.userPriceLevel->name}
</label>
{/if}
{if $user.note}
<div>
<span>
Poznámka:
</span>
<label>
{$user.note}
</label>
</div>
{/if}
</div>
{/if}
</div>
</div>
<div class="row bottom-space">
<div class="col-md-12">
<div class="input-group">
<span class="input-group-addon">
<i class="glyphicon glyphicon-star"></i>
</span>
<input type="text" class="form-control input coupon-number" id="coupon-number" disabled
name="coupon-number" placeholder="Slevový kupón..." value="{$coupon}"
{if !empty($cart.id) || !empty($coupon)}disabled='disabled'{/if}>
{if !empty($coupon)}
<span class="input-group-btn coupon-number-group">
<button class="btn btn-danger btn remove-coupon" type="submit"
{if !empty($cart.id)}disabled='disabled'{/if}>
<span class="glyphicon glyphicon-remove"></span>
</button>
</span>
{/if}
</div>
</div>
</div>
</div>
<div class="well">
<div class="row">
<div class="form-group">
<div class="col-md-12">
<input type="button" class="btn btn-lg btn-block insert-money" value="Vklad do kasy">
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<input type="button" class="btn btn-lg btn-block choose-money" value="Výběr z kasy">
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<input type="button" class="btn btn-lg btn-block list-money" value="Pohyby v kase">
</div>
</div>
</div>
</div>
{/block}
<input type="hidden" class="form-control user_id" value="{$user.id}">
</div>
</div>
<div class="row price-row">
<div class="col-md-4">
<input type="hidden" class="global_discount" name="data[items][discount]" value="0">
{* <div class="row">
<div class="col-md-5 control-label">
<label>Sleva</label>
</div>
<div class="col-md-7">
<div class="form-inline text-right form-control-spinner">
<input id="number" class="form-control orderInput disable-spinner global_discount" type="number" name="data[items][discount]" value="{$discount}" maxlength="3" size="2" onkeypress="checkInputData('int');" />
<div class="buy_count global_discount_spinner">
<i class="glyphicon glyphicon-chevron-up {if empty($cart.id)}plus_unit{/if}"></i>
<i class="glyphicon glyphicon-chevron-down {if empty($cart.id)}minus_unit{/if}"></i>
</div>
</div>
</div>
</div>*}
</div>
<div class="col-md-4 col-md-offset-1">
{* TODO nezapomenout při tvoření GUI na zobrazení slevy*}
{*<div class="coupons">*}
{*{foreach $cart.discounts as $discount}*}
{*<div class="row">*}
{*<div class="col-md-6 coupon-name">*}
{*<p>{$discount.descr}</p>*}
{*</div>*}
{*<div class="col-md-6 text-right coupon-value">*}
{*<p>{$discount.discount_number} {$discount.unit}</p>*}
{*</div>*}
{*<input type="hidden" class="coupon-id" value="{$discount.id}">*}
{*</div>*}
{*{/foreach}*}
{*</div>*}
<div class="row">
<div class="col-md-6 text-left">
<p>Celkem bez DPH</p>
</div>
<div class="col-md-6 text-right">
<p id="price_without_vat">
{$cart.totalPricePayNoVat|format_price}
</p>
</div>
</div>
<div class="row">
<div class="col-md-5 text-left">
<p>Celkem s DPH</p>
</div>
<div class="col-md-7 text-right">
<p id="price_with_vat">
{$cart.totalPriceWithVat|format_price}
</p>
</div>
</div>
<div class="row">
<div class="col-md-5 text-left">
<p style="font-size: 15pt;"><strong> K platbě </strong></p>
</div>
<div class="col-md-7 text-right to_pay">
<strong>
<p id="price_to_pay" style="font-size: 15pt;">
{$cart.totalPricePay|format_price}
</p>
</strong>
</div>
</div>
</div>
</div>
<div class="row" style="width: 100%;">
<div class="col-md-2">
<input type="button" class="btn btn-sm btn-block btn-danger" id="order_cancel" value="Nový zákazník">
</div>
<div class="col-md-2">
<input type="button" class="btn btn btn-block btn-primary" id="save_order"
value="Uložit jako objednávku">
</div>
<div class="col-md-4 col-md-offset-1">
<input type="button" class="btn btn-lg btn-block btn-success" id="pay" value="Přejít k platbě">
</div>
</div>
</div>
<div id="dialog_paying" title="Dialog Title">
<div id='paying_loader' style="display: none">
<div class="loader"></div>
<div class="loader-text"><strong>Makám na tom!<strong></strong></div>
</div>
<div id="paying_buttons">
<div class="well">
<div class="row" style="margin-bottom: 10px;">
<div class="col-md-12 text-center">
<h3 style="margin-top:-20px;">Platba</h3>
</div>
</div>
<div class="row">
<div class="col-md-6 control-label text-center" style="font-size: 19px; margin-top:10px;">
<strong>Celkem k platbě</strong>
</div>
<div class="col-md-6">
<input type="text" id="input_to_pay" style="margin-bottom: 10px; font-size: 25px;"
class="form-control input-lg"
name="data[to_pay]"
value="{if $cart.totalPricePay}{$cart.totalPricePay|format_price:"ceil=yes,printcurrency=no"}{else}0{/if}"
disabled>
</div>
</div>
<div class="row">
<div class="col-md-6 control-label text-center" style="font-size: 19px; margin-top:10px;">
<strong> Hotovost</strong>
</div>
<div class="col-md-6">
<input type="text" style="margin-bottom: 40px; " class="form-control input-lg"
name="data[getting_money]" value="" onKeyPress="checkInputDataType('int', event);">
</div>
</div>
<div class="row">
<div class="col-md-6 control-label text-center" style="font-size: 19px; margin-top:10px;">
<strong> K vrácení</strong>
</div>
<div class="col-md-6">
<input type="text" class="form-control input-lg"
style="font-size: 25px;color: red;font-weight: bold;" name="data[give_back]"
disabled>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="well">
<div class="row" style="margin-bottom: 10px;">
<div class="col-md-6">
<input type="button" class="btn btn-lg btn-block btn-success pay_card" value="Kartou"
style="font-size: 19px;">
</div>
<div class="col-md-6">
<input type="button" class="btn btn-lg btn-block btn-success pay_invoice"
value="Na fakturu" style="font-size: 19px; padding-left: 4px;">
</div>
</div>
<div class="row">
<div class="col-md-12">
<input type="button" class="btn btn-lg btn-block btn-primary" id="print_invoice"
disabled="disabled"
value="Znovu vytisknout účtenku">
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="well">
<div class="row">
<div class="col-md-12">
<input type="button" class="btn btn-lg btn-block btn-success pay_cash"
value="Potvrdit hotovost" style="font-size: 19px; margin-bottom: 10px;">
</div>
</div>
<div class="row">
<div class="col-md-12">
<input type="button" class="btn btn-lg btn-block btn-normal pay_cancel" value="Zpět"
style="font-size: 19px;">
</div>
</div>
</div>
</div>
</div>
<div class="well">
<div class="row">
{*<div class="col-md-3">*}
{*<input type="button" class="btn btn-lg btn-block btn-danger pay_storno" value="Stornovat">*}
{*</div>*}
<div class="col-md-12">
<input type="button" class="btn btn-lg btn-block btn-success finish_order" disabled="disabled"
style="font-size: 19px; height: 60px; font-weight: bold;"
value="Nákup dokončen">
</div>
</div>
</div>
</div>
</div>
<div id="dialog_insert_money" title="Vklad do pokladny">
<div class="row" style="margin-bottom: 10px;">
<div class="col-md-12 text-center">
<h1 class="h4 main-panel-title">Vklad do pokladny</h1>
</div>
</div>
<div class="row bottom-space">
<div class="col-md-5 control-label">
Vložená částka
</div>
<div class="col-md-7">
<input type="text" style="margin-bottom: 10px;" class="form-control input-sm" id="inserted_money"
onKeyPress="checkInputDataType('int', event);">
</div>
</div>
<div class="row bottom-space">
<div class="col-md-5 control-label">
Poznámka
</div>
<div class="col-md-7">
<textarea class="form-control input-sm" id="inserted_money_descr"></textarea>
</div>
</div>
<div class="row bottom-space">
<div class="col-md-6" style="margin-top: 10px;">
<input type="button" class="btn btn-block btn-primary insert_accept" value="Vlozit">
</div>
<div class="col-md-6" style="margin-top: 10px;">
<input type="button" class="btn btn-block btn-primary insert_cancel" value="Zrusit">
</div>
</div>
</div>
<div id="dialog_choose_money" title="Výběr z pokladny">
<div class="row" style="margin-bottom: 10px;">
<div class="col-md-12 text-center">
<h1 class="h4 main-panel-title">Výběr z pokladny</h1>
</div>
</div>
<div class="row bottom-space">
<div class="col-md-5 control-label">
Vybraná částka
</div>
<div class="col-md-7">
<input type="text" style="margin-bottom: 10px;" class="form-control input-sm" id="choosed_money"
onKeyPress="checkInputDataType('int', event);">
</div>
</div>
<div class="row bottom-space">
<div class="col-md-5 control-label">
Poznámka
</div>
<div class="col-md-7">
<textarea class="form-control input-sm" id="choosed_money_descr"></textarea>
</div>
</div>
<div class="row bottom-space">
<div class="col-md-6" style="margin-top: 10px;">
<input type="button" class="btn btn-block btn-primary choose_accept" value="Vybrat">
</div>
<div class="col-md-6" style="margin-top: 10px;">
<input type="button" class="btn btn-block btn-primary choose_cancel" value="Zrusit">
</div>
</div>
</div>
<div id="dialog_list_money" title="Pohyby v pokladně" style="overflow: hidden;">
<iframe id="list_money" class='on-demand boxFlex' style="height:580px; width:1050px; overflow: hidden;"
scrolling="no" src="launch.php?s=list.php&type=pos&order=1d&pagedivide=11"></iframe>
</div>
<div id="dialog_print_iframe" title="Tisk">
<iframe id="print_iframe" class='on-demand boxFlex' style="height:500px; width:800px;"
src="about:blank"></iframe>
<div class="row bottom-space">
<div class="col-md-12 text-center">
<input type="button" class="btn btn-block btn-danger finish_order" value="Dokončeno">
</div>
</div>
</div>
{/block}
{block windowButtons}
{/block}
<script>
{block onready append}
// Show button "Print invoice"
function PrintInvoice() {
showPayingLoad(false);
setTimeout(function () {
$(document).find('#print_invoice').removeAttr('disabled');
}, 1000);
var url = "launch.php?s=printCenter/printCenter.POS.php&type=order&set=POS&template=POSInvoice&ID=" + getOrderID();
if (typeof codereader !== 'undefined') {
codereader.printOrderRequest("{$cfg.Addr.full}admin/" + url);
setTimeout(function () {
clearPage();
}, 2000
);
} else {
$("#print_iframe")[0].contentWindow.location.href = "{$cfg.Addr.full}admin/" + url;
$("#dialog_print_iframe").dialog('open');
setTimeout(function () {
$("#print_iframe")[0].contentWindow.print();
}, 1000);
clearPage();
}
}
{/block}
</script>