summaryrefslogtreecommitdiff
path: root/addons/pos_restaurant/static/src/xml
diff options
context:
space:
mode:
Diffstat (limited to 'addons/pos_restaurant/static/src/xml')
-rw-r--r--addons/pos_restaurant/static/src/xml/Chrome.xml10
-rw-r--r--addons/pos_restaurant/static/src/xml/ChromeWidgets/BackToFloorButton.xml19
-rw-r--r--addons/pos_restaurant/static/src/xml/Resizeable.xml8
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/BillScreen.xml36
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/FloorScreen/EditBar.xml63
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/FloorScreen/EditableTable.xml31
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/FloorScreen/FloorScreen.xml37
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/FloorScreen/TableWidget.xml19
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/OrderManagementScreen/OrderList.xml12
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/OrderManagementScreen/OrderRow.xml12
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/PaymentScreen/PaymentScreen.xml24
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/PaymentScreen/PaymentScreenElectronicPayment.xml19
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/OrderlineNoteButton.xml12
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/PrintBillButton.xml12
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/SplitBillButton.xml12
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/SubmitOrderButton.xml12
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/TableGuestsButton.xml14
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/TransferOrderButton.xml12
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/ProductScreen/Orderline.xml15
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/ReceiptScreen/OrderReceipt.xml50
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/SplitBillScreen/SplitBillScreen.xml46
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/SplitBillScreen/SplitOrderline.xml48
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/TicketScreen.xml33
-rw-r--r--addons/pos_restaurant/static/src/xml/Screens/TipScreen.xml61
-rw-r--r--addons/pos_restaurant/static/src/xml/TipReceipt.xml79
-rw-r--r--addons/pos_restaurant/static/src/xml/multiprint.xml78
26 files changed, 774 insertions, 0 deletions
diff --git a/addons/pos_restaurant/static/src/xml/Chrome.xml b/addons/pos_restaurant/static/src/xml/Chrome.xml
new file mode 100644
index 00000000..86032c07
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Chrome.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="Chrome" t-inherit="point_of_sale.Chrome" t-inherit-mode="extension" owl="1">
+ <xpath expr="//div[hasclass('search-bar-portal')]" position="before">
+ <BackToFloorButton />
+ </xpath>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/ChromeWidgets/BackToFloorButton.xml b/addons/pos_restaurant/static/src/xml/ChromeWidgets/BackToFloorButton.xml
new file mode 100644
index 00000000..2b5c865c
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/ChromeWidgets/BackToFloorButton.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="BackToFloorButton" owl="1">
+ <span t-if="hasTable" class="order-button floor-button" t-on-click="backToFloorScreen">
+ <i class="fa fa-angle-double-left" role="img" aria-label="Back to floor" title="Back to floor" />
+ <span> </span>
+ <span t-esc="floor.name" />
+ <span> </span>
+ <span class="table-name">
+ <span>( </span>
+ <span t-esc="table.name" />
+ <span> )</span>
+ </span>
+ </span>
+ <span t-else=""></span>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Resizeable.xml b/addons/pos_restaurant/static/src/xml/Resizeable.xml
new file mode 100644
index 00000000..169c888e
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Resizeable.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="Resizeable" owl="1">
+ <t t-slot="default"></t>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/BillScreen.xml b/addons/pos_restaurant/static/src/xml/Screens/BillScreen.xml
new file mode 100644
index 00000000..5df01405
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/BillScreen.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="BillScreen" owl="1">
+ <div class="receipt-screen screen">
+ <div class="screen-content">
+ <div class="top-content">
+ <span class="button back" t-on-click="confirm">
+ <i class="fa fa-angle-double-left"></i>
+ <span> </span>
+ <span>Back</span>
+ </span>
+ <div class="top-content-center">
+ <h1>Bill Printing</h1>
+ </div>
+ <span class="button next highlight" t-on-click="confirm">
+ <span>Ok</span>
+ <span> </span>
+ <i class="fa fa-angle-double-right"></i>
+ </span>
+ </div>
+ <div class="centered-content">
+ <div class="button print" t-on-click="printReceipt">
+ <i class="fa fa-print"></i>
+ <span> </span>
+ <span>Print</span>
+ </div>
+ <div class="pos-receipt-container">
+ <OrderReceipt order="currentOrder" isBill="true" t-ref="order-receipt"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/EditBar.xml b/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/EditBar.xml
new file mode 100644
index 00000000..0d47a5c4
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/EditBar.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="EditBar" owl="1">
+ <div class="edit-bar" t-attf-style="top:{{props.floorMapScrollTop}}px;">
+ <span class="edit-button" t-on-click.stop="trigger('create-table')">
+ <i class="fa fa-plus" role="img" aria-label="Add" title="Add"></i>
+ </span>
+ <span class="edit-button" t-att-class="{ disabled: !props.selectedTable }" t-on-click.stop="trigger('duplicate-table')">
+ <i class="fa fa-files-o" role="img" aria-label="Duplicate" title="Duplicate"></i>
+ </span>
+ <span class="edit-button" t-att-class="{ disabled: !props.selectedTable }" t-on-click.stop="trigger('rename-table')">
+ <i class="fa fa-font" role="img" aria-label="Rename" title="Rename"></i>
+ </span>
+ <span class="edit-button" t-att-class="{ disabled: !props.selectedTable }" t-on-click.stop="trigger('change-seats-num')">
+ <i class="fa fa-user" role="img" aria-label="Seats" title="Seats"></i>
+ </span>
+ <span class="edit-button" t-att-class="{ disabled: !props.selectedTable }" t-on-click.stop="trigger('change-shape')">
+ <span t-if="!props.selectedTable or props.selectedTable.shape == 'square'" class="button-option square">
+ <i class="fa fa-square-o" role="img" aria-label="Square Shape" title="Square Shape"></i>
+ </span>
+ <span t-else="" class="button-option round">
+ <i class="fa fa-circle-o" role="img" aria-label="Round Shape" title="Round Shape"></i>
+ </span>
+ </span>
+ <span class="edit-button" t-on-click.stop="state.isColorPicker = !state.isColorPicker">
+ <i class="fa fa-tint" role="img" aria-label="Tint" title="Tint"></i>
+ </span>
+ <div t-if="state.isColorPicker and props.selectedTable" class="color-picker fg-picker">
+ <div class="close-picker" title="Close" role="img" aria-label="Close" t-on-click.stop="state.isColorPicker = false">
+ <i class="fa fa-times" />
+ </div>
+ <span class="color tl" style="background-color:#EB6D6D" role="img" aria-label="Red" title="Red" t-on-click.stop="trigger('set-table-color', '#EB6D6D')" />
+ <span class="color" style="background-color:#35D374" role="img" aria-label="Green" title="Green" t-on-click.stop="trigger('set-table-color', '#35D374')" />
+ <span class="color tr" style="background-color:#6C6DEC" role="img" aria-label="Blue" title="Blue" t-on-click.stop="trigger('set-table-color', '#6C6DEC')" />
+ <span class="color" style="background-color:#EBBF6D" role="img" aria-label="Orange" title="Orange" t-on-click.stop="trigger('set-table-color', '#EBBF6D')" />
+ <span class="color" style="background-color:#EBEC6D" role="img" aria-label="Yellow" title="Yellow" t-on-click.stop="trigger('set-table-color', '#EBEC6D')" />
+ <span class="color" style="background-color:#AC6DAD" role="img" aria-label="Purple" title="Purple" t-on-click.stop="trigger('set-table-color', '#AC6DAD')" />
+ <span class="color bl" style="background-color:#6C6D6D" role="img" aria-label="Grey" title="Grey" t-on-click.stop="trigger('set-table-color', '#6C6D6D')" />
+ <span class="color" style="background-color:#ACADAD" role="img" aria-label="Light grey" title="Light grey" t-on-click.stop="trigger('set-table-color', '#ACADAD')" />
+ <span class="color br" style="background-color:#4ED2BE" role="img" aria-label="Turquoise" title="Turquoise" t-on-click.stop="trigger('set-table-color', '#4ED2BE')" />
+ </div>
+ <div t-if="state.isColorPicker and !props.selectedTable" class="color-picker bg-picker">
+ <div class="close-picker" title="Close" role="img" aria-label="Close" t-on-click.stop="state.isColorPicker = false">
+ <i class="fa fa-times" />
+ </div>
+ <span class="color tl" style="background-color:rgb(244, 149, 149)" role="img" aria-label="Red" title="Red" t-on-click.stop="trigger('set-floor-color', 'rgb(244, 149, 149)')" />
+ <span class="color" style="background-color:rgb(130, 233, 171)" role="img" aria-label="Green" title="Green" t-on-click.stop="trigger('set-floor-color', 'rgb(130, 233, 171)')" />
+ <span class="color tr" style="background-color:rgb(136, 137, 242)" role="img" aria-label="Blue" title="Blue" t-on-click.stop="trigger('set-floor-color', 'rgb(136, 137, 242)')" />
+ <span class="color" style="background-color:rgb(255, 214, 136)" role="img" aria-label="Orange" title="Orange" t-on-click.stop="trigger('set-floor-color', 'rgb(255, 214, 136)')" />
+ <span class="color" style="background-color:rgb(254, 255, 154)" role="img" aria-label="Yellow" title="Yellow" t-on-click.stop="trigger('set-floor-color', 'rgb(254, 255, 154)')" />
+ <span class="color" style="background-color:rgb(209, 171, 210)" role="img" aria-label="Purple" title="Purple" t-on-click.stop="trigger('set-floor-color', 'rgb(209, 171, 210)')" />
+ <span class="color bl" style="background-color:rgb(75, 75, 75)" role="img" aria-label="Grey" title="Grey" t-on-click.stop="trigger('set-floor-color', 'rgb(75, 75, 75)')" />
+ <span class="color" style="background-color:rgb(210, 210, 210)" role="img" aria-label="Light grey" title="Light grey" t-on-click.stop="trigger('set-floor-color', 'rgb(210, 210, 210)')" />
+ <span class="color br" style="background-color:rgb(127, 221, 236)" role="img" aria-label="Turquoise" title="Turquoise" t-on-click.stop="trigger('set-floor-color', 'rgb(127, 221, 236)')" />
+ </div>
+ <span class="edit-button trash" t-att-class="{ disabled: !props.selectedTable }" t-on-click.stop="trigger('delete-table')">
+ <i class="fa fa-trash" role="img" aria-label="Delete" title="Delete"></i>
+ </span>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/EditableTable.xml b/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/EditableTable.xml
new file mode 100644
index 00000000..9c3a6079
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/EditableTable.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="EditableTable" owl="1">
+ <Draggable limitArea="'.floor-map'">
+ <Resizeable limitArea="'.floor-map'">
+ <div class="table selected" t-on-click.stop="">
+ <span class="label drag-handle">
+ <t t-esc="props.table.name" />
+ </span>
+ <span class="table-seats">
+ <t t-esc="props.table.seats" />
+ </span>
+ <t t-if="props.table.shape === 'round'">
+ <div class="table-handle top resize-handle-n"></div>
+ <div class="table-handle bottom resize-handle-s"></div>
+ <div class="table-handle left resize-handle-w"></div>
+ <div class="table-handle right resize-handle-e"></div>
+ </t>
+ <t t-if="props.table.shape === 'square'">
+ <span class='table-handle top right resize-handle-ne'></span>
+ <span class='table-handle top left resize-handle-nw'></span>
+ <span class='table-handle bottom right resize-handle-se'></span>
+ <span class='table-handle bottom left resize-handle-sw'></span>
+ </t>
+ </div>
+ </Resizeable>
+ </Draggable>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/FloorScreen.xml b/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/FloorScreen.xml
new file mode 100644
index 00000000..818f2d83
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/FloorScreen.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="FloorScreen" owl="1">
+ <div class="floor-screen screen">
+ <div class="screen-content-flexbox">
+ <t t-if="env.pos.floors.length > 1">
+ <div class="floor-selector">
+ <t t-foreach="env.pos.floors" t-as="floor" t-key="floor.id">
+ <span class="button button-floor" t-att-class="{ active: floor.id === state.selectedFloorId }" t-on-click="selectFloor(floor)">
+ <t t-esc="floor.name" />
+ </span>
+ </t>
+ </div>
+ </t>
+ <div class="floor-map" t-on-click="trigger('deselect-table')" t-ref="floor-map-ref">
+ <div t-if="isFloorEmpty" class="empty-floor">
+ <span>This floor has no tables yet, use the </span>
+ <i class="fa fa-plus" role="img" aria-label="Add button" title="Add button"></i>
+ <span> button in the editing toolbar to create new tables.</span>
+ </div>
+ <div t-else="" class="tables">
+ <t t-foreach="activeTables" t-as="table" t-key="table.id">
+ <TableWidget t-if="table.id !== state.selectedTableId" table="table" />
+ <EditableTable t-else="" table="table" />
+ </t>
+ </div>
+ <span t-if="env.pos.user.role == 'manager'" class="edit-button editing" t-att-class="{ active: state.isEditMode }" t-on-click.stop="toggleEditMode"
+ t-attf-style="top:{{state.floorMapScrollTop}}px;">
+ <i class="fa fa-pencil" role="img" aria-label="Edit" title="Edit"></i>
+ </span>
+ <EditBar t-if="state.isEditMode" selectedTable="selectedTable" floorMapScrollTop="state.floorMapScrollTop"/>
+ </div>
+ </div>
+ </div>
+ </t>
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/TableWidget.xml b/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/TableWidget.xml
new file mode 100644
index 00000000..c9a7549a
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/FloorScreen/TableWidget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="TableWidget" owl="1">
+ <div t-if="!props.isSelected" class="table" t-on-click.stop="trigger('select-table', props.table)">
+ <span class="table-cover" t-att-class="{ full: fill >= 1 }"></span>
+ <span t-att-class="orderCountClass" t-att-hidden="orderCount === 0">
+ <t t-esc="orderCount" />
+ </span>
+ <span class="label">
+ <t t-esc="props.table.name" />
+ </span>
+ <span class="table-seats">
+ <t t-esc="props.table.seats" />
+ </span>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/OrderManagementScreen/OrderList.xml b/addons/pos_restaurant/static/src/xml/Screens/OrderManagementScreen/OrderList.xml
new file mode 100644
index 00000000..79607102
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/OrderManagementScreen/OrderList.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="OrderList" t-inherit="point_of_sale.OrderList" t-inherit-mode="extension" owl="1">
+ <xpath expr="//div[hasclass('order-row')]//div[hasclass('customer')]" position="after">
+ <div t-if="env.pos.config.module_pos_restaurant" class="header table">
+ Table
+ </div>
+ </xpath>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/OrderManagementScreen/OrderRow.xml b/addons/pos_restaurant/static/src/xml/Screens/OrderManagementScreen/OrderRow.xml
new file mode 100644
index 00000000..3006e5bf
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/OrderManagementScreen/OrderRow.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="OrderRow" t-inherit="point_of_sale.OrderRow" t-inherit-mode="extension" owl="1">
+ <xpath expr="//div[hasclass('order-row')]//div[hasclass('customer')]" position="after">
+ <div t-if="env.pos.config.module_pos_restaurant" class="item table">
+ <t t-esc="table" />
+ </div>
+ </xpath>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/PaymentScreen/PaymentScreen.xml b/addons/pos_restaurant/static/src/xml/Screens/PaymentScreen/PaymentScreen.xml
new file mode 100644
index 00000000..7a460e5e
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/PaymentScreen/PaymentScreen.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="PaymentScreen" t-inherit="point_of_sale.PaymentScreen" t-inherit-mode="extension" owl="1">
+ <xpath expr="//div[hasclass('button') and hasclass('next')]" position="attributes">
+ <attribute name="t-att-hidden">env.pos.config.set_tip_after_payment and !currentOrder.is_paid()</attribute>
+ </xpath>
+
+ <xpath expr="//div[hasclass('button') and hasclass('back')]/span[hasclass('back_text')]" position="replace">
+ <t t-if="env.pos.config.set_tip_after_payment and currentOrder.is_paid()">
+ <span class="back_text">Keep Open</span>
+ </t>
+ <t t-else="">$0</t>
+ </xpath>
+
+ <xpath expr="//div[hasclass('button') and hasclass('next')]/span[hasclass('next_text')]" position="replace">
+ <t t-if="env.pos.config.set_tip_after_payment and currentOrder.is_paid()">
+ <span class="back_text">Close Tab</span>
+ </t>
+ <t t-else="">$0</t>
+ </xpath>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/PaymentScreen/PaymentScreenElectronicPayment.xml b/addons/pos_restaurant/static/src/xml/Screens/PaymentScreen/PaymentScreenElectronicPayment.xml
new file mode 100644
index 00000000..11683ddb
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/PaymentScreen/PaymentScreenElectronicPayment.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="PaymentScreenElectronicPayment" t-inherit="point_of_sale.PaymentScreenElectronicPayment" t-inherit-mode="extension" owl="1">
+ <xpath expr="//div[hasclass('send_payment_reversal')]/.." position="replace">
+ <t t-if="props.line.canBeAdjusted() &amp;&amp; props.line.order.get_total_paid() &lt; props.line.order.get_total_with_tax()">
+ <div class="button send_adjust_amount" title="Adjust Amount" t-on-click="trigger('send-payment-adjust', props.line)">
+ Adjust Amount
+ </div>
+ </t>
+ <t t-elif="props.line.can_be_reversed">
+ <div class="button send_payment_reversal" title="Reverse Payment" t-on-click="trigger('send-payment-reverse', props.line)">
+ Reverse
+ </div>
+ </t>
+ </xpath>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/OrderlineNoteButton.xml b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/OrderlineNoteButton.xml
new file mode 100644
index 00000000..407103a5
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/OrderlineNoteButton.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="OrderlineNoteButton" owl="1">
+ <div class="control-button">
+ <i class="fa fa-tag" />
+ <span> </span>
+ <span>Note</span>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/PrintBillButton.xml b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/PrintBillButton.xml
new file mode 100644
index 00000000..12a4e397
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/PrintBillButton.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="PrintBillButton" owl="1">
+ <span class="control-button order-printbill">
+ <i class="fa fa-print"></i>
+ <span> </span>
+ <span>Bill</span>
+ </span>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/SplitBillButton.xml b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/SplitBillButton.xml
new file mode 100644
index 00000000..e8efb306
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/SplitBillButton.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="SplitBillButton" owl="1">
+ <span class="control-button order-split">
+ <i class="fa fa-files-o"></i>
+ <span> </span>
+ <span>Split</span>
+ </span>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/SubmitOrderButton.xml b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/SubmitOrderButton.xml
new file mode 100644
index 00000000..e0229af8
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/SubmitOrderButton.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="SubmitOrderButton" owl="1">
+ <span class="control-button" t-att-class="addedClasses">
+ <i class="fa fa-cutlery"></i>
+ <span> </span>
+ <span>Order</span>
+ </span>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/TableGuestsButton.xml b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/TableGuestsButton.xml
new file mode 100644
index 00000000..5a33b17e
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/TableGuestsButton.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="TableGuestsButton" owl="1">
+ <div class="control-button">
+ <span class="control-button-number">
+ <t t-esc="nGuests" />
+ </span>
+ <span> </span>
+ <span>Guests</span>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/TransferOrderButton.xml b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/TransferOrderButton.xml
new file mode 100644
index 00000000..6eb0c975
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/ControlButtons/TransferOrderButton.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="TransferOrderButton" owl="1">
+ <div class="control-button">
+ <i class="fa fa-arrow-right" />
+ <span> </span>
+ <span>Transfer</span>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/Orderline.xml b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/Orderline.xml
new file mode 100644
index 00000000..a5c96ded
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/ProductScreen/Orderline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="Orderline" t-inherit="point_of_sale.Orderline" t-inherit-mode="extension" owl="1">
+ <xpath expr="//ul[hasclass('info-list')]" position="inside">
+ <t t-if="props.line.get_note()">
+ <li class="info orderline-note">
+ <i class="fa fa-tag" role="img" aria-label="Note" title="Note"/>
+ <t t-esc="props.line.get_note()" />
+ </li>
+ </t>
+ </xpath>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/ReceiptScreen/OrderReceipt.xml b/addons/pos_restaurant/static/src/xml/Screens/ReceiptScreen/OrderReceipt.xml
new file mode 100644
index 00000000..94a8e45e
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/ReceiptScreen/OrderReceipt.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="OrderReceipt" t-inherit="point_of_sale.OrderReceipt" t-inherit-mode="extension" owl="1">
+ <xpath expr="//div[hasclass('pos-receipt-order-data')]" position="inside">
+ <t t-if="props.isBill">
+ <div>PRO FORMA</div>
+ </t>
+ </xpath>
+ <xpath expr="//div[hasclass('receipt-change')]" position="attributes">
+ <attribute name="t-if">!props.isBill</attribute>
+ </xpath>
+ <xpath expr="//div[hasclass('cashier')]" position="after">
+ <t t-if="receipt.table">
+ at table <t t-esc="receipt.table" />
+ </t>
+ <t t-if="receipt.table and receipt.customer_count">
+ <div>Guests: <t t-esc="receipt.customer_count" /></div>
+ </t>
+ </xpath>
+ <xpath expr="//div[hasclass('before-footer')]" position="after">
+ <t t-if="props.isBill and env.pos.config.set_tip_after_payment">
+ <div class="tip-form">
+ <div class="title">For convenience, we are providing the following gratuity calculations:</div>
+ <div class="percentage-options">
+ <div class="option">
+ <div>15%</div>
+ <div class="amount">
+ <t t-esc="env.pos.format_currency(receipt.total_with_tax * 0.15)"></t>
+ </div>
+ </div>
+ <div class="option">
+ <div>20%</div>
+ <div class="amount">
+ <t t-esc="env.pos.format_currency(receipt.total_with_tax * 0.20)"></t>
+ </div>
+ </div>
+ <div class="option">
+ <div>25%</div>
+ <div class="amount">
+ <t t-esc="env.pos.format_currency(receipt.total_with_tax * 0.25)"></t>
+ </div>
+ </div>
+ </div>
+ </div>
+ </t>
+ </xpath>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/SplitBillScreen/SplitBillScreen.xml b/addons/pos_restaurant/static/src/xml/Screens/SplitBillScreen/SplitBillScreen.xml
new file mode 100644
index 00000000..f853d8aa
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/SplitBillScreen/SplitBillScreen.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="SplitBillScreen" owl="1">
+ <div class="splitbill-screen screen">
+ <div class="contents">
+ <div class="top-content">
+ <span class="button back" t-on-click="back">
+ <i class="fa fa-angle-double-left"></i>
+ <span> </span>
+ <span>Back</span>
+ </span>
+ <div class="top-content-center">
+ <h1>Bill Splitting</h1>
+ </div>
+ </div>
+ <div class="main">
+ <div class="lines">
+ <div class="order">
+ <ul class="orderlines">
+ <t t-foreach="orderlines" t-as="line" t-key="line.cid">
+ <SplitOrderline line="line" split="splitlines[line.id]" />
+ </t>
+ </ul>
+ </div>
+ </div>
+ <div class="controls">
+ <div class="order-info">
+ <span class="subtotal">
+ <t t-esc="env.pos.format_currency(newOrder.get_subtotal())" />
+ </span>
+ </div>
+ <div class="pay-button">
+ <div class="button" t-on-click="proceed">
+ <i class="fa fa-chevron-right" />
+ <span> </span>
+ <span>Payment</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/SplitBillScreen/SplitOrderline.xml b/addons/pos_restaurant/static/src/xml/Screens/SplitBillScreen/SplitOrderline.xml
new file mode 100644
index 00000000..fd71374f
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/SplitBillScreen/SplitOrderline.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="SplitOrderline" owl="1">
+ <li class="orderline" t-att-class="{ selected: isSelected, partially: props.split.quantity !== props.line.get_quantity() }">
+ <span class="product-name">
+ <t t-esc="props.line.get_product().display_name" />
+ </span>
+ <span class="price">
+ <t t-esc="env.pos.format_currency(props.line.get_display_price())" />
+ </span>
+ <ul class="info-list">
+ <t t-if="props.line.get_quantity_str() !== '1'">
+ <li class="info">
+ <t t-if="isSelected and props.line.get_unit().is_pos_groupable">
+ <em class="big">
+ <t t-esc="props.split.quantity" />
+ </em>
+ /
+ <t t-esc="props.line.get_quantity_str()" />
+ </t>
+ <t t-if="!(isSelected and props.line.get_unit().is_pos_groupable)">
+ <em>
+ <t t-esc="props.line.get_quantity_str()" />
+ </em>
+ </t>
+ <t t-esc="props.line.get_unit().name" />
+ at
+ <t t-esc="env.pos.format_currency(props.line.get_unit_price())" />
+ /
+ <t t-esc="props.line.get_unit().name" />
+ </li>
+ </t>
+ <t t-if="props.line.get_discount_str() !== '0'">
+ <li class="info">
+ <span>With a </span>
+ <em>
+ <t t-esc="props.line.get_discount_str()" />
+ <span>%</span>
+ </em>
+ <span> discount</span>
+ </li>
+ </t>
+ </ul>
+ </li>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/TicketScreen.xml b/addons/pos_restaurant/static/src/xml/Screens/TicketScreen.xml
new file mode 100644
index 00000000..1c0ac260
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/TicketScreen.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="TicketScreen" t-inherit="point_of_sale.TicketScreen" t-inherit-mode="extension" owl="1">
+ <xpath expr="//div[hasclass('header-row')]//div[@name='delete']" position="before">
+ <div t-if="env.pos.config.iface_floorplan" class="col start" name="table">Table</div>
+ <div t-if="filter === 'Tipping'" class="col end narrow" name="tip">Tip</div>
+ </xpath>
+ <xpath expr="//div[hasclass('order-row')]//div[@name='delete']" position="before">
+ <div t-if="env.pos.config.iface_floorplan" class="col start" name="table">
+ <t t-esc="getTable(order)"></t>
+ </div>
+ <div t-if="filter === 'Tipping'" class="col end narrow" name="tip">
+ <TipCell order="order" />
+ </div>
+ </xpath>
+ <xpath expr="//div[hasclass('buttons')]" position="inside">
+ <button class="settle-tips" t-if="filter === 'Tipping'" t-on-click="settleTips">Settle</button>
+ </xpath>
+ </t>
+
+ <t t-name="TipCell" owl="1">
+ <div class="tip-cell" t-on-click.stop="editTip">
+ <t t-if="state.isEditing">
+ <input type="text" name="tip-amount" t-model="orderUiState.inputTipAmount" t-on-blur="onBlur" t-on-keydown="onKeydown" />
+ </t>
+ <div t-else="">
+ <t t-esc="tipAmountStr"></t>
+ </div>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/Screens/TipScreen.xml b/addons/pos_restaurant/static/src/xml/Screens/TipScreen.xml
new file mode 100644
index 00000000..bae809a8
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/Screens/TipScreen.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="pos_restaurant.TipScreen" owl="1">
+ <div class="tip-screen screen">
+ <div class="pos-receipt-container"/>
+ <div class="screen-content">
+ <div class="top-content">
+ <span class="button back" t-on-click="showScreen('FloorScreen')">
+ <i class="fa fa-angle-double-left"></i>
+ <span> </span>
+ <span>Back</span>
+ </span>
+ <span class="button" t-if="env.pos.proxy.printer" t-on-click="printTipReceipt()">
+ <i class="fa fa-print"></i>
+ <span> </span>
+ <span>Reprint receipts</span>
+ </span>
+ <div class="top-content-center">
+ <h1>Add a tip</h1>
+ </div>
+ <div class="button highlight next" t-on-click="validateTip">
+ Settle <i class="fa fa-angle-double-right"></i>
+ </div>
+ </div>
+ <div class="tip-options">
+ <div class="total-amount">
+ <t t-esc="overallAmountStr" />
+ </div>
+ <div class="tip-amount-options">
+ <div class="percentage-amounts">
+ <t t-foreach="percentageTips" t-as="tip" t-key="tip.percentage">
+ <div class="button" t-on-click="state.inputTipAmount = tip.amount.toFixed(2)">
+ <div class="percentage">
+ <t t-esc="tip.percentage"></t>
+ </div>
+ <div class="amount">
+ <t t-esc="env.pos.format_currency(tip.amount)" />
+ </div>
+ </div>
+ </t>
+ </div>
+ <div class="no-tip" t-on-click="state.inputTipAmount = '0'">
+ <div class="button">No Tip</div>
+ </div>
+ <div class="custom-amount-form">
+ <div class="item label">Amount</div>
+ <div class="item input">
+ <input type="text" t-model="state.inputTipAmount" t-att-data-amount="state.inputTipAmount" />
+ <div class="currency">
+ <t t-esc="env.pos.getCurrencySymbol()" />
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/TipReceipt.xml b/addons/pos_restaurant/static/src/xml/TipReceipt.xml
new file mode 100644
index 00000000..2a82356e
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/TipReceipt.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="TipReceipt" owl="1">
+ <div class="pos-receipt">
+ <t t-if="receipt.company.logo">
+ <img class="pos-receipt-logo" t-att-src="receipt.company.logo" alt="Logo"/>
+ <br/>
+ </t>
+ <t t-if="!receipt.company.logo">
+ <h2 class="pos-receipt-center-align">
+ <t t-esc="receipt.company.name" />
+ </h2>
+ <br/>
+ </t>
+ <div class="pos-receipt-contact">
+ <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_html">
+ <t t-raw="receipt.header_html" />
+ </t>
+ <t t-if="!receipt.header_html and receipt.header">
+ <div><t t-esc="receipt.header" /></div>
+ </t>
+ <t t-if="receipt.cashier">
+ <div class="cashier">
+ <div>--------------------------------</div>
+ <div>Served by <t t-esc="receipt.cashier" /></div>
+ </div>
+ </t>
+ </div>
+ <br/>
+
+ <div class="pos-payment-terminal-receipt">
+ <t t-raw="data"/>
+ </div>
+ <br/>
+
+
+ <div class="subtotal">
+ <span>Subtotal</span>
+ <div class="pos-receipt-right-align"><t t-esc="total"/></div>
+ </div>
+ <br/>
+
+ <div class="tip">
+ <span>Tip:</span>
+ <div class="pos-receipt-right-align">________________________</div>
+ </div>
+ <br/>
+
+ <div class="total">
+ <span>Total:</span>
+ <div class="pos-receipt-right-align">________________________</div>
+ </div>
+ <br/>
+ <br/>
+
+ <div class="signature">
+ <div>______________________________________________</div>
+ <div>Signature</div>
+ </div>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/pos_restaurant/static/src/xml/multiprint.xml b/addons/pos_restaurant/static/src/xml/multiprint.xml
new file mode 100644
index 00000000..e162e03d
--- /dev/null
+++ b/addons/pos_restaurant/static/src/xml/multiprint.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates id="template" xml:space="preserve">
+
+ <t t-name="NameWrapped">
+ <t t-foreach="change.name_wrapped.slice(1)" t-as="wrapped_line">
+ <div style="text-align: right">
+ <span t-esc="wrapped_line"/>
+ </div>
+ </t>
+ </t>
+
+ <t t-name="OrderChangeReceipt">
+ <div class="pos-receipt">
+ <div class="pos-receipt-order-data"><t t-esc="changes.name" /></div>
+ <t t-if="changes.floor || changes.table">
+ <br />
+ <div class="pos-receipt-title">
+ <t t-esc="changes.floor" /> / <t t-esc="changes.table"/>
+ </div>
+ </t>
+ <br />
+ <br />
+ <t t-if="changes.cancelled.length > 0">
+ <div class="pos-order-receipt-cancel">
+ <div class="pos-receipt-title">
+ CANCELLED
+ <t t-esc='changes.time.hours'/>:<t t-esc='changes.time.minutes'/>
+ </div>
+ <br />
+ <br />
+ <t t-foreach="changes.cancelled" t-as="change">
+ <div class="multiprint-flex">
+ <t t-esc="change.qty"/>
+ <span t-esc="change.name_wrapped[0]"/>
+ </div>
+ <t t-call="NameWrapped"/>
+ <t t-if="change.note">
+ <div>
+ NOTE
+ <span class="pos-receipt-right-align">...</span>
+ </div>
+ <div><span class="pos-receipt-left-padding">--- <t t-esc="change.note" /></span></div>
+ <br/>
+ </t>
+ </t>
+ <br />
+ <br />
+ </div>
+ </t>
+ <t t-if="changes.new.length > 0">
+ <div class="pos-receipt-title">
+ NEW
+ <t t-esc='changes.time.hours'/>:<t t-esc='changes.time.minutes'/>
+ </div>
+ <br />
+ <br />
+ <t t-foreach="changes.new" t-as="change">
+ <div class="multiprint-flex">
+ <t t-esc="change.qty"/>
+ <span t-esc="change.name_wrapped[0]"/>
+ </div>
+ <t t-call="NameWrapped"/>
+ <t t-if="change.note">
+ <div>
+ NOTE
+ <span class="pos-receipt-right-align">...</span>
+ </div>
+ <div><span class="pos-receipt-left-padding">--- <t t-esc="change.note" /></span></div>
+ <br/>
+ </t>
+ </t>
+ <br />
+ <br />
+ </t>
+ </div>
+ </t>
+
+</templates>