1001 lines
41 KiB
XML
1001 lines
41 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- vim:fdl=1:
|
|
-->
|
|
<templates id="template" xml:space="preserve">
|
|
|
|
<t t-name="PosWidget">
|
|
<div class="pos">
|
|
<div class="pos-topheader">
|
|
<div class="pos-branding">
|
|
<img class="pos-logo" src="/point_of_sale/static/src/img/logo.png" />
|
|
<span class="placeholder-UsernameWidget"></span>
|
|
</div>
|
|
<div class="pos-rightheader">
|
|
<div class="order-selector">
|
|
<button class="order-button square neworder-button"><img src='/point_of_sale/static/src/img/plus.png' /></button>
|
|
<button class="order-button square deleteorder-button"><img src='/point_of_sale/static/src/img/minus.png' /></button>
|
|
<span class="orders"></span>
|
|
</div>
|
|
<!-- here goes header buttons -->
|
|
</div>
|
|
</div>
|
|
|
|
<div class="pos-content">
|
|
|
|
<div class="pos-leftpane">
|
|
<div class='window'>
|
|
<div class='subwindow'>
|
|
<div class='subwindow-container'>
|
|
<div class='subwindow-container-fix'>
|
|
<div class="placeholder-OrderWidget"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class='subwindow collapsed'>
|
|
<div class='subwindow-container'>
|
|
<div class='subwindow-container-fix pads'>
|
|
<div class="placeholder-PaypadWidget"></div>
|
|
<div class="placeholder-NumpadWidget"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class='subwindow collapsed'>
|
|
<div class='subwindow-container'>
|
|
<div class='subwindow-container-fix'>
|
|
<div class='placeholder-LeftActionBar'></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="rightpane">
|
|
<div class='window'>
|
|
<div class='subwindow'>
|
|
<div class='subwindow-container'>
|
|
<div class='subwindow-container-fix screens'>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class='subwindow collapsed'>
|
|
<div class='subwindow-container'>
|
|
<div class='subwindow-container-fix'>
|
|
<div class='placeholder-RightActionBar'></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="placeholder-OnscreenKeyboardWidget"></div>
|
|
</div>
|
|
|
|
<div class="loader">
|
|
<div class='loader-feedback oe_hidden'>
|
|
<h1 class='message'>Loading</h1>
|
|
<div class='progressbar'>
|
|
<div class='progress' width='50%'></div>
|
|
</div>
|
|
<div class='oe_hidden button skip'>
|
|
Skip
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!--[if IE]>
|
|
<div class='not-supported-browser'>
|
|
<div class='message'>
|
|
<img src='/point_of_sale/static/src/img/pos_screenshot.jpg' />
|
|
<p>
|
|
The Point of Sale is not supported by Microsoft Internet Explorer. Please use
|
|
a modern browser like <a href="http://www.mozilla.org/firefox/" target="_blank">Mozilla Firefox</a>
|
|
or <a href="http://www.google.com/chrome" target="_blank">Google Chrome</a>.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<![endif]-->
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="SynchNotificationWidget">
|
|
<div class="oe_status js_synch">
|
|
<span class='js_msg oe_hidden'>0</span>
|
|
<div class="js_connected oe_icon oe_green">
|
|
<i class='fa fa-fw fa-rss'></i>
|
|
</div>
|
|
<div class="js_connecting oe_icon oe_hidden">
|
|
<i class='fa fa-fw fa-spin fa-spinner'></i>
|
|
</div>
|
|
<div class="js_disconnected oe_icon oe_red oe_hidden">
|
|
<i class='fa fa-fw fa-rss'></i>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ProxyStatusWidget">
|
|
<div class="oe_status js_proxy">
|
|
<span class='js_msg oe_orange oe_hidden'></span>
|
|
<div class="js_connected oe_icon oe_green">
|
|
<i class='fa fa-fw fa-sitemap'></i>
|
|
</div>
|
|
<div class="js_connecting oe_icon oe_hidden">
|
|
<i class='fa fa-fw fa-spin fa-spinner'></i>
|
|
</div>
|
|
<div class="js_warning oe_icon oe_orange oe_hidden">
|
|
<i class='fa fa-fw fa-sitemap'></i>
|
|
</div>
|
|
<div class="js_disconnected oe_icon oe_red oe_hidden">
|
|
<i class='fa fa-fw fa-sitemap'></i>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="HeaderButtonWidget">
|
|
<div class="header-button">
|
|
<t t-esc="widget.label" />
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="PosCloseWarning">
|
|
<div>There are pending operations that could not be saved into the database, are you sure you want to exit?</div>
|
|
</t>
|
|
|
|
<t t-name="PaypadWidget">
|
|
<div class="paypad touch-scrollable">
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="NumpadWidget">
|
|
<div class="numpad">
|
|
<button class="input-button number-char">1</button>
|
|
<button class="input-button number-char">2</button>
|
|
<button class="input-button number-char">3</button>
|
|
<button class="mode-button" data-mode='quantity'>Qty</button>
|
|
<br />
|
|
<button class="input-button number-char">4</button>
|
|
<button class="input-button number-char">5</button>
|
|
<button class="input-button number-char">6</button>
|
|
<button class="mode-button" data-mode='discount'>Disc</button>
|
|
<br />
|
|
<button class="input-button number-char">7</button>
|
|
<button class="input-button number-char">8</button>
|
|
<button class="input-button number-char">9</button>
|
|
<button class="mode-button" data-mode='price'>Price</button>
|
|
<br />
|
|
<button class="input-button numpad-minus" >+/-</button>
|
|
<button class="input-button number-char">0</button>
|
|
<button class="input-button number-char">.</button>
|
|
<button class="input-button numpad-backspace">
|
|
<img src="/point_of_sale/static/src/img/backspace.png" width="24" height="21" />
|
|
</button>
|
|
<br />
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="CategoryButton">
|
|
<span class='category-button js-category-switch' t-att-data-category-id="category.id" >
|
|
<div class="category-img">
|
|
<img t-att-src="image_url" />
|
|
</div>
|
|
<div class="category-name">
|
|
<t t-esc="category.name"/>
|
|
</div>
|
|
</span>
|
|
</t>
|
|
|
|
<t t-name="CategorySimpleButton">
|
|
<span class='category-simple-button js-category-switch' t-att-data-category-id="category.id" >
|
|
<t t-esc="category.name"/>
|
|
</span>
|
|
</t>
|
|
|
|
<t t-name="ProductCategoriesWidget">
|
|
<div>
|
|
<header class='rightpane-header'>
|
|
<div class="breadcrumbs">
|
|
<span class="breadcrumb">
|
|
<span class=" breadcrumb-button js-category-switch">
|
|
<img src="/point_of_sale/static/src/img/home.png" class="breadcrumb-homeimg" />
|
|
</span>
|
|
</span>
|
|
<t t-foreach="widget.breadcrumb" t-as="category">
|
|
<span class="breadcrumb">
|
|
<img src="/point_of_sale/static/src/img/bc-arrow-big.png" class="breadcrumb-arrow" />
|
|
<span class="breadcrumb-button js-category-switch" t-att-data-category-id="category.id">
|
|
<t t-esc="category.name"/>
|
|
</span>
|
|
</span>
|
|
</t>
|
|
</div>
|
|
<div class="searchbox">
|
|
<input placeholder="Search Products" />
|
|
<span class="search-clear"></span>
|
|
</div>
|
|
</header>
|
|
<t t-if="widget.subcategories.length > 0">
|
|
<div class="categories">
|
|
<div class="category-list">
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ProductListWidget">
|
|
<div class='product-list-container'>
|
|
<div class="product-list-scroller touch-scrollable">
|
|
<div class="product-list">
|
|
</div>
|
|
</div>
|
|
<span class="placeholder-ScrollbarWidget" />
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ProductScreenWidget">
|
|
<div class="product-screen screen">
|
|
<table class="layout-table">
|
|
|
|
<tr class="header-row">
|
|
<td class="header-cell">
|
|
<span class="placeholder-ProductCategoriesWidget" />
|
|
</td>
|
|
</tr>
|
|
|
|
<tr class="content-row">
|
|
<td class="content-cell">
|
|
<div class="content-container">
|
|
<span class="placeholder-ProductListWidget" />
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
|
|
</table>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ScaleScreenWidget">
|
|
<div class="scale-screen screen">
|
|
<div class="display">
|
|
<span class="weight">
|
|
<p>
|
|
<span class='js-weight'>
|
|
<t t-esc="widget.get_product_weight_string()" />
|
|
</span>
|
|
</p>
|
|
</span>
|
|
<span class="product-name">
|
|
<t t-esc="widget.get_product_name()" />
|
|
</span>
|
|
<div class="product-picture">
|
|
<span class="product-price">
|
|
<t t-esc="widget.format_currency(widget.get_product_price()) + '/Kg'" />
|
|
</span>
|
|
<t t-if="widget.get_product()">
|
|
<img t-att-src="widget.get_product_image_url()" />
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="PaymentScreenWidget">
|
|
<div class="payment-screen screen touch-scrollable">
|
|
<div class="pos-payment-container">
|
|
<div class='payment-due-total'></div>
|
|
<div class='payment-lines'></div>
|
|
<div class='payment-info'>
|
|
<div class="infoline">
|
|
<span class='left-block'>
|
|
Paid:
|
|
</span>
|
|
<span class="right-block payment-paid-total"></span>
|
|
</div>
|
|
<div class="infoline">
|
|
<span class='left-block'>
|
|
Remaining:
|
|
</span>
|
|
<span class="right-block payment-remaining"></span>
|
|
</div>
|
|
<div class="infoline bigger" >
|
|
<span class='left-block'>
|
|
Change:
|
|
</span>
|
|
<span class="right-block payment-change"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ReceiptScreenWidget">
|
|
<div class="receipt-screen screen touch-scrollable" >
|
|
<div class="pos-step-container">
|
|
<div class="pos-receipt-container">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="XmlReceipt">
|
|
<receipt align='center' width='40' value-thousands-separator='' >
|
|
<t t-if='receipt.company.logo'>
|
|
<img t-att-src='receipt.company.logo' />
|
|
<br/>
|
|
</t>
|
|
<t t-if='!receipt.company.logo'>
|
|
<h1><t t-esc='receipt.company.name' /></h1>
|
|
<br/>
|
|
</t>
|
|
<div font='b'>
|
|
<t t-if='receipt.shop.name'>
|
|
<div><t t-esc='receipt.shop.name' /></div>
|
|
</t>
|
|
<t t-if='receipt.company.contact_address'>
|
|
<div><t t-esc='receipt.company.contact_address' /></div>
|
|
</t>
|
|
<t t-if='receipt.company.phone'>
|
|
<div>Tel:<t t-esc='receipt.company.phone' /></div>
|
|
</t>
|
|
<t t-if='receipt.company.vat'>
|
|
<div>VAT:<t t-esc='receipt.company.vat' /></div>
|
|
</t>
|
|
<t t-if='receipt.company.email'>
|
|
<div><t t-esc='receipt.company.email' /></div>
|
|
</t>
|
|
<t t-if='receipt.company.website'>
|
|
<div><t t-esc='receipt.company.website' /></div>
|
|
</t>
|
|
<t t-if='receipt.header'>
|
|
<div><t t-esc='receipt.header' /></div>
|
|
</t>
|
|
<t t-if='receipt.cashier'>
|
|
<div>--------------------------------</div>
|
|
<div>Served by <t t-esc='receipt.cashier' /></div>
|
|
</t>
|
|
</div>
|
|
<br /><br />
|
|
|
|
<!-- Orderlines -->
|
|
|
|
<div line-ratio='0.6'>
|
|
<t t-foreach='receipt.orderlines' t-as='line'>
|
|
<t t-set='simple' t-value='line.discount === 0 and line.unit_name === "Unit(s)" and line.quantity === 1' />
|
|
<t t-if='simple'>
|
|
<line>
|
|
<left><t t-esc='line.product_name' /></left>
|
|
<right><value><t t-esc='line.price_display' /></value></right>
|
|
</line>
|
|
</t>
|
|
<t t-if='!simple'>
|
|
<line><left><t t-esc='line.product_name' /></left></line>
|
|
<t t-if='line.discount !== 0'>
|
|
<line indent='1'><left>Discount: <t t-esc='line.discount' />%</left></line>
|
|
</t>
|
|
<line indent='1'>
|
|
<left>
|
|
<value value-decimals='3' autoint='on'>
|
|
<t t-esc='line.quantity' />
|
|
</value>
|
|
<t t-if='line.unit_name !== "Unit(s)"'>
|
|
<t t-esc='line.unit_name' />
|
|
</t>
|
|
x
|
|
<value value-decimals='2'>
|
|
<t t-esc='line.price' />
|
|
</value>
|
|
</left>
|
|
<right>
|
|
<value><t t-esc='line.price_display' /></value>
|
|
</right>
|
|
</line>
|
|
</t>
|
|
</t>
|
|
</div>
|
|
|
|
<!-- Subtotal -->
|
|
|
|
<t t-set='taxincluded' t-value='Math.abs(receipt.subtotal - receipt.total_with_tax) <= 0.000001' />
|
|
<t t-if='!taxincluded'>
|
|
<line><right>--------</right></line>
|
|
<line><left>Subtotal</left><right> <value><t t-esc="receipt.subtotal" /></value></right></line>
|
|
<t t-foreach='receipt.tax_details' t-as='tax'>
|
|
<line>
|
|
<left><t t-esc='tax.name' /></left>
|
|
<right><value><t t-esc='tax.amount' /></value></right>
|
|
</line>
|
|
</t>
|
|
</t>
|
|
|
|
<!-- Total -->
|
|
|
|
<line><right>--------</right></line>
|
|
<line size='double-height'>
|
|
<left><pre> TOTAL</pre></left>
|
|
<right><value><t t-esc='receipt.total_with_tax' /></value></right>
|
|
</line>
|
|
<br/><br/>
|
|
|
|
<!-- Payment Lines -->
|
|
|
|
<t t-foreach='receipt.paymentlines' t-as='line'>
|
|
<line>
|
|
<left><t t-esc='line.journal' /></left>
|
|
<right><value><t t-esc='line.amount'/></value></right>
|
|
</line>
|
|
</t>
|
|
<br/>
|
|
|
|
<line size='double-height'>
|
|
<left><pre> CHANGE</pre></left>
|
|
<right><value><t t-esc='receipt.change' /></value></right>
|
|
</line>
|
|
<br/>
|
|
|
|
<!-- Extra Payment Info -->
|
|
|
|
<t t-if='receipt.total_discount'>
|
|
<line>
|
|
<left>Discounts</left>
|
|
<right><value><t t-esc='receipt.total_discount'/></value></right>
|
|
</line>
|
|
</t>
|
|
<t t-if='taxincluded'>
|
|
<t t-foreach='receipt.tax_details' t-as='tax'>
|
|
<line>
|
|
<left><t t-esc='tax.name' /></left>
|
|
<right><value><t t-esc='tax.amount' /></value></right>
|
|
</line>
|
|
</t>
|
|
</t>
|
|
|
|
<!-- Footer -->
|
|
<t t-if='receipt.footer'>
|
|
<br/>
|
|
<pre><t t-esc='receipt.footer' /></pre>
|
|
<br/>
|
|
<br/>
|
|
</t>
|
|
|
|
<br/>
|
|
<div font='b'>
|
|
<div><t t-esc='receipt.name' /></div>
|
|
<div><t t-esc='receipt.date.localestring' /></div>
|
|
</div>
|
|
|
|
</receipt>
|
|
</t>
|
|
|
|
<t t-name="WelcomeScreenWidget">
|
|
<div class="welcome-screen screen">
|
|
<header class='rightpane-header'><h2>Welcome</h2></header>
|
|
<div class="dialog">
|
|
<img src="/point_of_sale/static/src/img/scan.png" />
|
|
<p> Please scan an item or your member card </p>
|
|
</div>
|
|
</div>
|
|
<div class="goodbye-message">
|
|
<p>Thank you for shopping with us.</p>
|
|
</div>
|
|
</t>
|
|
|
|
|
|
<t t-name="ScanProductScreenWidget">
|
|
<div class="scan-product-screen screen touch-scrollable">
|
|
<header class='rightpane-header'><h2>Please scan an item</h2></header>
|
|
<img src="/point_of_sale/static/src/img/scan.png" />
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ClientPaymentScreenWidget">
|
|
<div class="scan-product-screen screen">
|
|
<header class='rightpane-header'><h2>Payment</h2></header>
|
|
<div class="dialog">
|
|
<img src="/point_of_sale/static/src/img/bancontact.png" />
|
|
<p>Please insert your card in the reader and follow the instructions to complete
|
|
your purchase</p>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ScaleInviteScreenWidget">
|
|
<div class="scale-invite-screen screen">
|
|
<header class='rightpane-header'><h2>Please put your product on the scale</h2></header>
|
|
<img src="/point_of_sale/static/src/img/scale.png" />
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="HelpPopupWidget">
|
|
<div class="modal-dialog">
|
|
<div class="popup popup-help">
|
|
<p class="message">Please be patient, help is on the way</p>
|
|
<div class="footer">
|
|
<div class="button">
|
|
Cancel
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ChooseReceiptPopupWidget">
|
|
<div class="modal-dialog">
|
|
<div class="popup popup-help">
|
|
<p class="message">Welcome <t t-esc="widget.get_client_name()" /><br /> Choose your type of receipt:</p>
|
|
<div class = "button big-left receipt">
|
|
Ticket
|
|
</div>
|
|
<div class = "button big-right invoice">
|
|
Invoice
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ProductErrorPopupWidget">
|
|
<div class="modal-dialog">
|
|
<div class="popup popup-help">
|
|
<p class="message">The scanned product was not recognized<br /> Please wait, a cashier is on the way</p>
|
|
<div class="footer">
|
|
<div class="button">
|
|
Ok
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ErrorSessionPopupWidget">
|
|
<div class="modal-dialog">
|
|
<div class="popup popup-help">
|
|
<p class="message">Sorry, we could not create a session for this user.</p>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ErrorNegativePricePopupWidget">
|
|
<div class="modal-dialog">
|
|
<div class="popup popup-help">
|
|
<p class="message">Your order has to be validated by a cashier.</p>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ErrorNoClientPopupWidget">
|
|
<div class="modal-dialog">
|
|
<div class="popup popup-help">
|
|
<p class="message">An anonymous order cannot be invoiced</p>
|
|
<div class="footer">
|
|
<div class="button">
|
|
Ok
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ErrorInvoiceTransferPopupWidget">
|
|
<div class="modal-dialog">
|
|
<div class="popup popup-help">
|
|
<p class="message">The Order could not be sent to the server for invoicing. Invoices cannot be generated
|
|
in offline mode. Please check your internet connection and try again.</p>
|
|
<div class="footer">
|
|
<div class="button">
|
|
Ok
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ErrorPopupWidget">
|
|
<div class="modal-dialog">
|
|
<div class="popup popup-help">
|
|
<p class="message"><t t-esc=" widget.message || 'Error' " /></p>
|
|
<p class="comment"><t t-esc=" widget.comment || '' "/></p>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="Product">
|
|
<span class='product' t-att-data-product-id="product.id">
|
|
<div class="product-img">
|
|
<img t-att-src='image_url' />
|
|
<t t-if="!product.to_weight">
|
|
<span class="price-tag">
|
|
<t t-esc="widget.format_currency(product.price)"/>
|
|
</span>
|
|
</t>
|
|
<t t-if="product.to_weight">
|
|
<span class="price-tag">
|
|
<t t-esc="widget.format_currency(product.price)+'/Kg'"/>
|
|
</span>
|
|
</t>
|
|
</div>
|
|
<div class="product-name">
|
|
<t t-esc="product.name"/>
|
|
</div>
|
|
</span>
|
|
</t>
|
|
|
|
<t t-name="OrderWidget">
|
|
<div class="order-container">
|
|
<div class="order-scroller touch-scrollable">
|
|
<div class="order">
|
|
<ul class="orderlines">
|
|
<t t-if="orderlines.length === 0">
|
|
<li class="orderline empty">
|
|
Your shopping cart is empty
|
|
</li>
|
|
</t>
|
|
</ul>
|
|
<div class="summary clearfix">
|
|
<div t-attf-class="line #{orderlines.length === 0 ? 'empty' : ''}">
|
|
<div class='entry total'>
|
|
<span class="label">Total: </span> <span class="value">0.00 €</span>
|
|
<div class='subentry'>Taxes: <span class="value">0.00€</span></div>
|
|
</div>
|
|
</div>
|
|
<div class='clear'></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="DebugWidget">
|
|
<div class="debug-widget">
|
|
<h1>Debug Window</h1>
|
|
<div class="toggle">▾</div>
|
|
<div class="content">
|
|
<p class="category">Payment Terminal</p>
|
|
|
|
<ul>
|
|
<li class="button accept_payment">Accept Payment</li>
|
|
<li class="button reject_payment">Reject Payment</li>
|
|
</ul>
|
|
<p class="category">Electronic Scale</p>
|
|
<ul>
|
|
<li><input type="text" class="weight"></input></li>
|
|
<li class="button set_weight">Set Weight</li>
|
|
<li class="button reset_weight">Reset</li>
|
|
</ul>
|
|
|
|
<p class="category">Barcode Scanner</p>
|
|
<ul>
|
|
<li><input type="text" class="ean"></input></li>
|
|
<li class="button custom_ean">Custom Ean13</li>
|
|
<li class="button admin_badge">Admin Badge</li>
|
|
<li class="button client_badge">Client Badge</li>
|
|
<li class="button soda_33cl">Soda 33cl</li>
|
|
<li class="button oranges_kg">3.141Kg Oranges</li>
|
|
<li class="button lemon_price">1.54€ Lemon</li>
|
|
<li class="button unknown_product">Unknown Product</li>
|
|
<li class="button invalid_ean">Invalid Ean</li>
|
|
<li class="button reference">Reference</li>
|
|
</ul>
|
|
|
|
<p class="category">Hardware Status</p>
|
|
<ul>
|
|
<li class="status help_needed">Help needed</li>
|
|
<li class="status weighting">Weighting</li>
|
|
<li class="status transaction">In Transaction</li>
|
|
</ul>
|
|
<p class="category">Hardware Events</p>
|
|
<ul>
|
|
<li class="event scan_item_success">Scan Item Success</li>
|
|
<li class="event scan_item_error_unrecognized">Scan Item Unrecognized</li>
|
|
<li class="event payment_request">Payment Request</li>
|
|
<li class="event payment_status">Payment Status</li>
|
|
<li class="event open_cashbox">Open Cashbox</li>
|
|
<li class="event print_receipt">Print Receipt</li>
|
|
<li class="event print_pdf_invoice">Print Invoice</li>
|
|
<li class="event scale_read">Read Weighting Scale</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="Orderline">
|
|
<li t-attf-class="orderline #{ line.selected ? 'selected' : '' }">
|
|
<span class="product-name">
|
|
<t t-esc="line.get_product().name"/>
|
|
</span>
|
|
<span class="price">
|
|
<t t-esc="widget.format_currency(line.get_display_price())"/>
|
|
</span>
|
|
<ul class="info-list">
|
|
<t t-if="line.get_quantity_str() !== '1' || line.selected ">
|
|
<li class="info">
|
|
<em>
|
|
<t t-esc="line.get_quantity_str()" />
|
|
</em>
|
|
<t t-esc="line.get_unit().name" />
|
|
at
|
|
<t t-esc="widget.format_currency(line.get_unit_price())" />
|
|
/
|
|
<t t-esc="line.get_unit().name" />
|
|
</li>
|
|
</t>
|
|
<t t-if="line.get_discount_str() !== '0'">
|
|
<li class="info">
|
|
With a
|
|
<em>
|
|
<t t-esc="line.get_discount_str()" />%
|
|
</em>
|
|
discount
|
|
</li>
|
|
</t>
|
|
</ul>
|
|
</li>
|
|
</t>
|
|
|
|
<t t-name="Paymentline">
|
|
<div t-attf-class="paymentline #{line.selected ? 'selected' : ''}">
|
|
<div class='paymentline-name'>
|
|
<t t-esc="line.name"/>
|
|
</div>
|
|
<input class='paymentline-input' type="number" step="0.01" t-att-value="line.get_amount().toFixed(2)" />
|
|
<span class='paymentline-delete'>
|
|
<img src="/point_of_sale/static/src/img/search_reset.gif" />
|
|
</span>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="PaymentlineOld">
|
|
<tr t-attf-class="paymentline #{line.selected ? 'selected' : ''}">
|
|
<td class="paymentline-type">
|
|
<t t-esc="line.name"/>
|
|
</td>
|
|
<td class="paymentline-amount pos-right-align">
|
|
<input type="number" step="0.01" t-att-value="line.get_amount().toFixed(2)" />
|
|
<span class='delete-payment-line'><img src="/point_of_sale/static/src/img/search_reset.gif" /></span>
|
|
</td>
|
|
</tr>
|
|
</t>
|
|
|
|
<t t-name="PaypadButtonWidget">
|
|
<button class="paypad-button" t-att-cash-register-id="widget.cashregister.id">
|
|
<t t-esc="widget.cashregister.journal.name"/>
|
|
</button>
|
|
</t>
|
|
|
|
<t t-name="OrderButtonWidget">
|
|
<button class="order-button select-order"><t t-esc="(widget.order.get_client() ? widget.order.get_client_name()+' : ':'') + widget.order.get('creationDate').toString('t')"/></button>
|
|
</t>
|
|
|
|
<t t-name="UsernameWidget">
|
|
<span class="username">
|
|
<t t-esc="widget.get_name()" />
|
|
</span>
|
|
</t>
|
|
|
|
<t t-name="PosTicket">
|
|
<div class="pos-sale-ticket">
|
|
|
|
<div class="pos-center-align"><t t-esc="new Date().toString(Date.CultureInfo.formatPatterns.shortDate + ' ' +
|
|
Date.CultureInfo.formatPatterns.longTime)"/> <t t-esc="order.get('name')"/></div>
|
|
<br />
|
|
<t t-esc="widget.pos.company.name"/><br />
|
|
Phone: <t t-esc="widget.pos.company.phone || ''"/><br />
|
|
User: <t t-esc="widget.pos.user.name"/><br />
|
|
Shop: <t t-esc="widget.pos.shop.name"/><br />
|
|
<br />
|
|
<t t-if="widget.pos.config.receipt_header">
|
|
<div style='text-align:center'>
|
|
<t t-esc="widget.pos.config.receipt_header" />
|
|
</div>
|
|
<br />
|
|
</t>
|
|
<table>
|
|
<colgroup>
|
|
<col width='50%' />
|
|
<col width='25%' />
|
|
<col width='25%' />
|
|
</colgroup>
|
|
<tr t-foreach="orderlines" t-as="orderline">
|
|
<td>
|
|
<t t-esc="orderline.get_product().name"/>
|
|
<t t-if="orderline.get_discount() > 0">
|
|
<div class="pos-disc-font">
|
|
With a <t t-esc="orderline.get_discount()"/>% discount
|
|
</div>
|
|
</t>
|
|
</td>
|
|
<td class="pos-right-align">
|
|
<t t-esc="orderline.get_quantity_str_with_unit()"/>
|
|
</td>
|
|
<td class="pos-right-align">
|
|
<t t-esc="widget.format_currency(orderline.get_display_price())"/>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br />
|
|
<table>
|
|
<tr>
|
|
<td>Subtotal:</td>
|
|
<td class="pos-right-align">
|
|
<t t-esc="widget.format_currency(order.getSubtotal())"/>
|
|
</td>
|
|
</tr>
|
|
<t t-foreach="order.getTaxDetails()" t-as="taxdetail">
|
|
<tr>
|
|
<td><t t-esc="taxdetail.tax.name" /></td>
|
|
<td class="pos-right-align">
|
|
<t t-esc="widget.format_currency(taxdetail.amount)" />
|
|
</td>
|
|
</tr>
|
|
</t>
|
|
<tr>
|
|
<td>Discount:</td>
|
|
<td class="pos-right-align">
|
|
<t t-esc="widget.format_currency(order.getDiscountTotal())"/>
|
|
</td>
|
|
</tr>
|
|
<tr class="emph">
|
|
<td>Total:</td>
|
|
<td class="pos-right-align">
|
|
<t t-esc="widget.format_currency(order.getTotalTaxIncluded())"/>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br />
|
|
<table>
|
|
<tr t-foreach="paymentlines" t-as="line">
|
|
<td>
|
|
<t t-esc="line.name"/>
|
|
</td>
|
|
<td class="pos-right-align">
|
|
<t t-esc="widget.format_currency(line.get_amount())"/>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br />
|
|
<table>
|
|
<tr><td>Change:</td><td class="pos-right-align">
|
|
<t t-esc="widget.format_currency(order.getChange())"/>
|
|
</td></tr>
|
|
</table>
|
|
<t t-if="widget.pos.config.receipt_footer">
|
|
<br />
|
|
<div style='text-align:center'>
|
|
<t t-esc="widget.pos.config.receipt_footer" />
|
|
</div>
|
|
</t>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ActionBarWidget">
|
|
<div class="pos-actionbar">
|
|
<ul class="pos-actionbar-button-list">
|
|
</ul>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="ActionButtonWidget">
|
|
<li t-att-class=" 'button '+ (widget.rightalign ? 'rightalign ' : '') + (widget.disabled ? 'disabled ' : '')">
|
|
<div class='label'>
|
|
<t t-esc="widget.label" />
|
|
</div>
|
|
</li>
|
|
</t>
|
|
|
|
<t t-name="ActionButtonWidgetWithIcon">
|
|
<li t-att-class=" 'button '+ (widget.rightalign ? 'rightalign ' : '') + (widget.disabled ? 'disabled ' : '')">
|
|
<div class='icon'>
|
|
<img t-att-src="widget.icon" />
|
|
<div class='iconlabel'><t t-esc="widget.label" /></div>
|
|
</div>
|
|
</li>
|
|
</t>
|
|
|
|
<!-- Onscreen Keyboard :
|
|
http://net.tutsplus.com/tutorials/javascript-ajax/creating-a-keyboard-with-css-and-jquery/ -->
|
|
<t t-name="OnscreenKeyboardFull">
|
|
<div class="keyboard_frame">
|
|
<ul class="keyboard full_keyboard">
|
|
<li class="symbol"><span class="off">`</span><span class="on">~</span></li>
|
|
<li class="symbol"><span class="off">1</span><span class="on">!</span></li>
|
|
<li class="symbol"><span class="off">2</span><span class="on">@</span></li>
|
|
<li class="symbol"><span class="off">3</span><span class="on">#</span></li>
|
|
<li class="symbol"><span class="off">4</span><span class="on">$</span></li>
|
|
<li class="symbol"><span class="off">5</span><span class="on">%</span></li>
|
|
<li class="symbol"><span class="off">6</span><span class="on">^</span></li>
|
|
<li class="symbol"><span class="off">7</span><span class="on">&</span></li>
|
|
<li class="symbol"><span class="off">8</span><span class="on">*</span></li>
|
|
<li class="symbol"><span class="off">9</span><span class="on">(</span></li>
|
|
<li class="symbol"><span class="off">0</span><span class="on">)</span></li>
|
|
<li class="symbol"><span class="off">-</span><span class="on">_</span></li>
|
|
<li class="symbol"><span class="off">=</span><span class="on">+</span></li>
|
|
<li class="delete lastitem">delete</li>
|
|
<li class="tab firstitem">tab</li>
|
|
<li class="letter">q</li>
|
|
<li class="letter">w</li>
|
|
<li class="letter">e</li>
|
|
<li class="letter">r</li>
|
|
<li class="letter">t</li>
|
|
<li class="letter">y</li>
|
|
<li class="letter">u</li>
|
|
<li class="letter">i</li>
|
|
<li class="letter">o</li>
|
|
<li class="letter">p</li>
|
|
<li class="symbol"><span class="off">[</span><span class="on">{</span></li>
|
|
<li class="symbol"><span class="off">]</span><span class="on">}</span></li>
|
|
<li class="symbol lastitem"><span class="off">\</span><span class="on">|</span></li>
|
|
<li class="capslock firstitem">caps lock</li>
|
|
<li class="letter">a</li>
|
|
<li class="letter">s</li>
|
|
<li class="letter">d</li>
|
|
<li class="letter">f</li>
|
|
<li class="letter">g</li>
|
|
<li class="letter">h</li>
|
|
<li class="letter">j</li>
|
|
<li class="letter">k</li>
|
|
<li class="letter">l</li>
|
|
<li class="symbol"><span class="off">;</span><span class="on">:</span></li>
|
|
<li class="symbol"><span class="off">'</span><span class="on">"</span></li>
|
|
<li class="return lastitem">return</li>
|
|
<li class="left-shift firstitem">shift</li>
|
|
<li class="letter">z</li>
|
|
<li class="letter">x</li>
|
|
<li class="letter">c</li>
|
|
<li class="letter">v</li>
|
|
<li class="letter">b</li>
|
|
<li class="letter">n</li>
|
|
<li class="letter">m</li>
|
|
<li class="symbol"><span class="off">,</span><span class="on"><</span></li>
|
|
<li class="symbol"><span class="off">.</span><span class="on">></span></li>
|
|
<li class="symbol"><span class="off">/</span><span class="on">?</span></li>
|
|
<li class="right-shift lastitem">shift</li>
|
|
<li class="space firstitem lastitem">&nbsp;</li>
|
|
</ul>
|
|
<p class="close_button">close</p>
|
|
</div>
|
|
</t>
|
|
|
|
<t t-name="OnscreenKeyboardSimple">
|
|
<div class="keyboard_frame">
|
|
<ul class="keyboard simple_keyboard">
|
|
<li class="symbol firstitem row_qwerty"><span class="off">q</span><span class="on">1</span></li>
|
|
<li class="symbol"><span class="off">w</span><span class="on">2</span></li>
|
|
<li class="symbol"><span class="off">e</span><span class="on">3</span></li>
|
|
<li class="symbol"><span class="off">r</span><span class="on">4</span></li>
|
|
<li class="symbol"><span class="off">t</span><span class="on">5</span></li>
|
|
<li class="symbol"><span class="off">y</span><span class="on">6</span></li>
|
|
<li class="symbol"><span class="off">u</span><span class="on">7</span></li>
|
|
<li class="symbol"><span class="off">i</span><span class="on">8</span></li>
|
|
<li class="symbol"><span class="off">o</span><span class="on">9</span></li>
|
|
<li class="symbol lastitem"><span class="off">p</span><span class="on">0</span></li>
|
|
|
|
<li class="symbol firstitem row_asdf"><span class="off">a</span><span class="on">@</span></li>
|
|
<li class="symbol"><span class="off">s</span><span class="on">#</span></li>
|
|
<li class="symbol"><span class="off">d</span><span class="on">%</span></li>
|
|
<li class="symbol"><span class="off">f</span><span class="on">*</span></li>
|
|
<li class="symbol"><span class="off">g</span><span class="on">/</span></li>
|
|
<li class="symbol"><span class="off">h</span><span class="on">-</span></li>
|
|
<li class="symbol"><span class="off">j</span><span class="on">+</span></li>
|
|
<li class="symbol"><span class="off">k</span><span class="on">(</span></li>
|
|
<li class="symbol lastitem"><span class="off">l</span><span class="on">)</span></li>
|
|
|
|
<li class="symbol firstitem row_zxcv"><span class="off">z</span><span class="on">?</span></li>
|
|
<li class="symbol"><span class="off">x</span><span class="on">!</span></li>
|
|
<li class="symbol"><span class="off">c</span><span class="on">"</span></li>
|
|
<li class="symbol"><span class="off">v</span><span class="on">'</span></li>
|
|
<li class="symbol"><span class="off">b</span><span class="on">:</span></li>
|
|
<li class="symbol"><span class="off">n</span><span class="on">;</span></li>
|
|
<li class="symbol"><span class="off">m</span><span class="on">,</span></li>
|
|
<li class="delete lastitem">delete</li>
|
|
|
|
<li class="numlock firstitem row_space"><span class="off">123</span><span class="on">ABC</span></li>
|
|
<li class="space">&nbsp;</li>
|
|
<li class="symbol"><span class="off">.</span><span class="on">.</span></li>
|
|
<li class="return lastitem">return</li>
|
|
</ul>
|
|
<p class="close_button">close</p>
|
|
</div>
|
|
</t>
|
|
|
|
</templates>
|