diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/pos_restaurant/static/src/xml | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/pos_restaurant/static/src/xml')
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() && props.line.order.get_total_paid() < 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> |
